PARSERGet Started

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 (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.

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 →