PARSER GUIDES
Upload via URL
POST
/api/v1/process/{parserId}/urls
Upload 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
Authorizationheader - Optional fields:
folderId: Folder UUID to assign created documents to that folderexternalIds: Array of external IDs (one per URL); length must matchurlsif providedcustom: Array of tracking objects (one per URL); length must matchurlsif providedurlscan 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:
{
"urls": ["https://example.com/document.pdf"],
"externalIds": ["doc-123"],
"custom": [{"batchId":"xyz"}],
"folderId": "YOUR_FOLDER_ID"
}
What you get:
- Response includes
documentIdfor each 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
application/json
URLs to upload (plus optional externalIds, custom, and folderId)
urls\*array<string\>
URLs pointing to document files (up to 20 URLs per request)
Items1 <= items <= 20
externalIds?array<string\>
Optional array of external IDs (one per URL). Length must match urls when provided. You can use null to skip externalId for a given URL.
custom?array<object\>
Optional array of tracking objects (one per URL). Length must match urls when provided. You can use null to skip custom for a given URL.
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/urls" \ -H "Content-Type: application/json" \ -d '{ "urls": "https://www.dropbox.com/scl/fi/9c9kqu97zgcud0gf197oh/HYUMA_PO000196249_M230145652.PDF?rlkey=6i45hlmxss174w46y0swy3q7q&st=efwutpep&raw=1" }'
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 File POSTUpload 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-data\ with field name \file\ - (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 \Authorization\ header \*\*What you get:\*\* - Response includes \documentId\ for the 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 →
Get Document Data GETRetrieve the extracted data from a processed document. \*\*What you need:\*\* - \*\*Parser ID\*\*: Find it in Parser Settings -> General Settings - Either: - \*\*Document ID\*\*: Get this from the upload response (\documentId\ field), or - \*\*externalId\*\*: The external tracking ID you provided during upload - \*\*API Key\*\*: Generate it from Team Settings -> API Keys \*\*How to use:\*\* - Endpoint: \GET /api/v1/process/{parserId}/files/data?documentId={documentId}\ - OR: \GET /api/v1/process/{parserId}/files/data?externalId={externalId}\ - Include your API key in the \Authorization\ header \*\*What you get:\*\* - \*\*data\*\*: Extracted field values and table data matching your parser's fields and tables - \*\*metadata\*\*: Document information including status, timestamps, and file details \*\*Note:\*\* If the document is still processing, the \data\ field will be empty and \status\ will be \processing\. Poll this endpoint periodically until \status\ is \processed\ or \failed\.Open guide →