# Upload via URL

Source: https://www.digiparser.com/docs/api/uploadDocumentUrls

# Upload via URL

Server URL`loading...`

POST

/`api`/`v1`/`process`/`{parserId}`/`urls`

Send

Authorization

Path

Body

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 URL to the document file

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

**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](#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](#path-parameters)

parserId\*string

The ID of the parser

Format`uuid`

## [Request Body](#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)

Items`1 <= 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](#response-body)

### 200

`application/json`

### 400

`application/json`

cURL

JavaScript

Go

Python

Java

C#

```
curl -X POST "https://api.digiparser.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.digiparser.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 (markdown parsing disabled)",
      "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 POST

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

](/docs/api/uploadDocumentFile)