PARSER GUIDES
Upload File
POST
/api/v1/process/{parserId}/files
Upload a document file to process and extract data.
What you need:
- Parser ID: Find it in Parser Settings -> General Settings
- API Key: Generate it from Team Settings -> API Keys
How to use:
- Endpoint:
POST /api/v1/process/{parserId}/files - Send the request as
multipart/form-datawith field namefile - (Optional) Provide additional fields:
folderId: Folder UUID to assign the created document(s)externalIds: JSON-encoded array of external IDs (one per uploaded file)custom: JSON-encoded array of tracking objects (one per uploaded file)- Include your API key in the
Authorizationheader
What you get:
- Response includes
documentIdfor the uploaded document - Document status will be
processinginitially - Use the
documentIdwith the "Get Document Data" endpoint to retrieve extracted data once processing is complete
Authorization
bearerAuth
authorization: <token>
Your API key. Include it directly in the Authorization header as the API key value (e.g., 'authorization: your-api-key-here')
In: header
Path Parameters
parserId — string
The ID of the parser
Format: uuid
Request Body
multipart/form-data
File to upload (plus optional externalIds, custom, and folderId)
file\*file
The document file to upload
Format: binary
externalIds?string
Optional JSON-encoded array string of external IDs (e.g. ["doc-123"]). When provided, the array length must match the number of uploaded file entries.
custom?string
Optional JSON-encoded array string of tracking objects (e.g. [{"batchId":"xyz"}]). When provided, the array length must match the number of uploaded file entries.
folderId?string
Optional folder UUID to assign created documents to that folder. The folder must belong to the same parser/team and must not be deleted.
Response Body
200
application/json
400
application/json
curl -X POST "https://api.PARSER.com/api/v1/process/d1458cd7-8692-488f-8b3f-0fddade05f9c/files" \ -F file="string"
200400
{
"success": true,
"result": [
{
"id": "2b9b1243-3d94-42b0-9515-729c7404e3b7",
"name": "sample-invoice.pdf",
"url": "https://documents.PARSER.com/resources/t/01dd1542-7aac-463c-8eda-a7e042fd5876/p/d1458cd7-8692-488f-8b3f-0fddade05f9c/d/2b9b1243-3d94-42b0-9515-729c7404e3b7/sample-invoice.pdf?sig=70adb475a196e71cd2f82c40623bb9be94647aff0d187120ee39c9fd9c7a10d0",
"isProcessed": false,
"status": "processing",
"message": "Extraction started: EXTRACT (f19c7e5b-efb1-48fd-bcd1-876b7aa211a7) job initiated",
"operationName": "f19c7e5b-efb1-48fd-bcd1-876b7aa211a7",
"documentId": "2b9b1243-3d94-42b0-9515-729c7404e3b7",
"pageCount": 1,
"externalId": "doc-123",
"custom": {
"batchId": "xyz",
"customerId": "pqr"
}
}
]
}
{
"error": true,
"message": "Parser ID mismatch"
}
Upload URLs to Parser or Classifier POSTUpload documents by URL to either a parser or a document classifier. Provide exactly one of \parserId\ or \classifierId\. Classifier URL uploads route documents to target parsers and return routing status. Each request accepts up to 20 public HTTP or HTTPS URLs, with a maximum of 100 MB per file. URLs must return the file without browser cookies, embedded credentials, or sign-in. PARSER validates every redirect, follows no more than five redirects, and blocks local, private-network, and cloud-metadata destinations. The batch is queued only after every file has been stored. If a transfer fails before queueing, retry the complete request.Open guide →
Upload via URL POSTUpload a document by providing a URL pointing to the document file. \*\*What you need:\*\* - \*\*Parser ID\*\*: Find it in Parser Settings -> General Settings - \*\*API Key\*\*: Generate it from Team Settings -> API Keys - \*\*Document URL\*\*: A publicly accessible HTTP or HTTPS URL that returns the document without cookies, credentials, or sign-in \*\*How to use:\*\* - Endpoint: \POST /api/v1/process/{parserId}/urls\ - Send a JSON body (application/json) - Include your API key in the \Authorization\ header - Optional fields: - \folderId\: Folder UUID to assign created documents to that folder - \externalIds\: Array of external IDs (one per URL); length must match \urls\ if provided - \custom\: Array of tracking objects (one per URL); length must match \urls\ if provided - \urls\ can contain up to 20 URLs per request - Each file can be up to 100 MB and must finish downloading within five minutes - PARSER follows up to five safe redirects and blocks local, private-network, and cloud-metadata destinations - The batch is queued only after every file has been stored; retry the complete request if a transfer fails before queueing \*\*Example:\*\* \\\json { "urls": \["https://example.com/document.pdf"\], "externalIds": \["doc-123"\], "custom": \[{"batchId":"xyz"}\], "folderId": "YOUR\_FOLDER\_ID" } \\\ \*\*What you get:\*\* - Response includes \documentId\ for each uploaded document - Document status will be \processing\ initially - Use the \documentId\ with the "Get Document Data" endpoint to retrieve extracted data once processing is completeOpen guide →