PARSER GUIDES
Get Document Data
GET
/api/v1/process/{parserId}/files/data
Retrieve 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 (
documentIdfield), 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
Authorizationheader
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.
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
Query Parameters
documentId?string
The ID of the document to retrieve
Format: uuid
externalId?string
The external tracking ID associated with the document (provided during upload)
Response Body
200
application/json
400
application/json
403
application/json
404
application/json
curl -X GET "https://api.PARSER.com/api/v1/process/d1458cd7-8692-488f-8b3f-0fddade05f9c/files/data"
200400403404
{
"data": {
"currency": "USD",
"Buyer Name": "Abcxyz Traders",
"Line Items": [
{
"sku": null,
"quantity": 3,
"unit_price": 1129.03,
"description": "Drag Series Transmission Build - A WD DSM",
"total_price": 3387.09
}
],
"Order Date": "2021-11-24",
"Buyer Email": "contact@parser.example",
"Order Number": "1437"
},
"error": "Timed out while processing document",
"metadata": {
"id": "2b9b1243-3d94-42b0-9515-729c7404e3b7",
"name": "sample-invoice.pdf",
"externalId": "doc-123",
"custom": {
"batchId": "xyz",
"customerId": "pqr"
},
"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",
"status": "processed",
"isProcessed": true,
"isFailed": false,
"thumbnail": "https://documents.PARSER.com/resources/t/01dd1542-7aac-463c-8eda-a7e042fd5876/p/d1458cd7-8692-488f-8b3f-0fddade05f9c/d/2b9b1243-3d94-42b0-9515-729c7404e3b7/thumbnail.png?sig=0c4f8f8d1c4ede6256afb7eec5ac4830cc9eb1c27e78895d72a21f03e681b6df",
"markdownUrl": "http://example.com",
"createdAt": "2026-01-23T18:11:47.319Z",
"updatedAt": "2026-01-23T18:12:29.860Z",
"pageCount": 1,
"isApproved": true,
"assignee": "John Doe",
"field_metadata": {}
}
}
{
"error": true,
"message": "Parser ID mismatch"
}
{
"error": true,
"message": "Access denied"
}
{
"error": true,
"message": "Document not found",
"notFound": [
{
"type": "documentId",
"value": "string"
}
]
}
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 →
Reprocess Document POSTRe-run extraction for an already uploaded document (useful after adding new parser fields). Reprocessing uses the parser's current settings. If the parser has document type rules enabled, PARSER checks the document type again before extraction. The document can return to the \skipped\ status when the current rule says it should not be processed. \*\*Request body:\*\* Provide exactly one of \documentId\ or \externalId\. - \documentId\ and \externalId\ cannot be sent together. - If neither is provided, the API returns \400\.Open guide →