PARSERGet Started

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 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:

{
  "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 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 →