DoXroute API

Extract structured data from any document with AI

Quick Start

1. Get your API key

Log in at /settings.html and create an API key. Keys start with dxr_k1_.

2. Extract a document

curl -X POST https://doxroute.xdinamic.com/api/v1/extract \
  -H "X-Api-Key: dxr_k1_YOUR_KEY" \
  -F "file=@invoice.pdf" -F "doc_type=invoice"

3. Get results

curl -H "X-Api-Key: dxr_k1_YOUR_KEY" \
  https://doxroute.xdinamic.com/api/v1/jobs/{job_id}

When status is "completed", result.extraction has your structured JSON.

Auth

MethodUseHow
API KeyScriptsX-Api-Key: dxr_k1_xxx header
JWTBrowserAuto via /api/v1/auth/login

Extraction

PathDescription
POST/api/v1/extractSubmit document (async)
POST/api/v1/extract/syncSubmit and wait for result
POST/api/v1/extract/batchUpload multiple files
POST/api/v1/extract/splitSplit multi-doc PDF

Jobs

PathDescription
GET/api/v1/jobsList your jobs
GET/api/v1/jobs/{id}Status + results
GET/api/v1/jobs/{id}/pdfDownload original doc
GET/api/v1/jobs/{id}/bboxBounding boxes

Extractors

PathDescription
GET/api/v1/extractorsList extractors
POST/api/v1/extractorsCreate extractor
DEL/api/v1/extractors/{id}Delete extractor

Doc Types

invoice packing_list bill_of_lading delivery_note purchase_order customs_declaration generic

Plans

FreeProEnterprise
Docs/mo502,000Unlimited
Extractors350Unlimited
API Keys210Unlimited

Python

import requests, time
API = "https://doxroute.xdinamic.com/api/v1"
H = {"X-Api-Key": "dxr_k1_YOUR_KEY"}
r = requests.post(f"{API}/extract", headers=H,
    files={"file": open("invoice.pdf","rb")},
    data={"doc_type": "invoice"})
job_id = r.json()["job_id"]
while True:
    j = requests.get(f"{API}/jobs/{job_id}", headers=H).json()
    if j["status"] in ("completed","failed"): break
    time.sleep(2)
print(j["result"]["extraction"])