API Documentation
Everything in the Document-Info dashboard is available through a REST API. API access is included in the Professional and Enterprise plans.
Authentication
Authenticate with your account credentials to receive a JWT, then pass it as a Bearer token on every request. Tokens are valid for one hour; use the refresh endpoint to renew them.
curl -X POST "$API_URL/auth/login" \
-H "Content-Type: application/json" \
-d '{"email": "you@company.com", "password": "..."}'
# → { "id_token": "eyJ...", "access_token": "...", "refresh_token": "..." }
curl "$API_URL/documents" -H "Authorization: Bearer $ID_TOKEN"Uploading a document
Uploads are a three-step flow: initiate (get a presigned URL), upload the file directly to storage, then confirm to start extraction.
# 1. Initiate
curl -X POST "$API_URL/documents/upload" \
-H "Authorization: Bearer $ID_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fileName": "invoice.pdf", "contentType": "application/pdf",
"fileSize": 182044, "processingTier": "standard"}'
# → { "docId": "...", "uploadUrl": "...", "uploadFields": { ... } }
# 2. Upload the file to the presigned URL (multipart form POST)
# 3. Confirm — extraction starts automatically
curl -X POST "$API_URL/documents/$DOC_ID/uploaded" \
-H "Authorization: Bearer $ID_TOKEN"
# 4. Poll until completed
curl "$API_URL/documents/$DOC_ID/status" -H "Authorization: Bearer $ID_TOKEN"Core endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/login | Exchange email + password for JWT tokens |
| POST | /documents/upload | Initiate an upload — returns a presigned S3 URL |
| POST | /documents/{id}/uploaded | Confirm upload and start extraction |
| GET | /documents | List documents (filter by status) |
| GET | /documents/{id} | Get a document with extracted fields |
| GET | /documents/{id}/status | Poll processing status |
| PUT | /documents/{id}/fields | Correct extracted field values |
| POST | /documents/{id}/approve | Approve extraction results |
| GET | /documents/{id}/export?format=json|csv | Export extracted data |
| GET | /org/usage | Current-month usage and quota |
| POST | /org/webhooks | Register a webhook for document events |
Webhooks
Register a webhook to receive document.completed, document.approved, and document.failed events. Each delivery is signed with an HMAC-SHA256 signature in the X-Signature header using the signing secret returned when the webhook is created.
Ready to integrate?
Your API base URL and keys are available in the dashboard under Settings → API Keys.
Start Free Trial