Integrations: connect document extraction to your systems

docRefinery connects through a REST API with keys, workflows built from one sample document, a Chrome extension in early access, and export to JSON, CSV or XLSX. Every document type returns the same output format, so one parser covers them all. Webhooks are in design, so today your system polls for results or exports them.

Updated

What can you connect today?

Ways to connect, and their status on 4 November 2026
RouteBest forStatus
REST API with keysYour own systems sending documents and reading resultsAvailable; keys are switched on per account
WorkflowsThe same fields from the same kind of document, every timeAvailable
Chrome extensionPeople typing document values into a web formEarly access; not yet in the Chrome Web Store
ExportSpreadsheets, imports and warehouse loadsAvailable
Custom document typesDocuments outside the catalogueAvailable; trained at no charge
On-premises deploymentDocuments that cannot leave your networkAvailable on Enterprise
Webhooks and connectorsResults pushed to you; documents collected from where they arriveIn design

What does every integration receive?

Every integration receives one output format, whatever the document type. You define each field: a plain-language instruction for what to extract, a “Return as” name that becomes its output key, a type, and whether it is required. Fields then share one shape, text, alias, field_confidence and location, and tables come back as rows. Confidence scoring and citations come from validation, which is on by default; with it off, field_confidence and location are not returned. A parser written for invoices also reads bank statements.

Two document types, one shape (excerpt, fictional values)
{
  "invoice": [
    { "alias": "invoice_number", "text": "NWF-20418", "field_confidence": 0.97,
      "location": { "page": 1, "bbox": [0.62, 0.11, 0.81, 0.13] } }
  ],
  "bank_statement": [
    { "alias": "closing_balance", "text": "8210.07", "field_confidence": 0.91,
      "location": { "page": 4, "bbox": [0.66, 0.77, 0.86, 0.79] } }
  ]
}

location gives a page and a box measured as fractions of that page. It is null when a value is empty, is not on the page, or is printed more than once with nothing to say which copy it is. A field that is not on the page comes back null rather than as a guess, so your code should expect null. Extract a document covers the full response.

How do API keys work?

An API key lets your own system call docRefinery without a person signing in. Keys are switched on per account, separately from your plan, so ask us first. Organisation owners and admins then create them under Settings, API keys. The quickstart takes you from a key to a first result, and authentication has the details.

  • Expiry: choose 1 to 3,650 days, or none.
  • The secret is shown once. A lost key cannot be recovered, so revoke it and create another.
  • Revocation takes effect within a minute.
  • Activity log: write requests made with a key are kept for 90 days.
  • Reach: a key can call /v1/runway/*, /v1/upload, /v1/usage and /v1/trace_id/*. It shares your account’s plan, quota and rate limit, and it cannot manage other keys.

How do you build a workflow from one sample document?

Upload one sample document in the dashboard under Workflows. docRefinery finds every field the document prints and extracts it, then you keep, rename or remove fields before saving. There is no schema to write first. Once saved, a workflow is active and can be used in two ways.

  • Save: the workflow runs by its id, through POST /v1/workflows/{id}/run, from the dashboard, the Chrome extension or your own system with an API key.
  • Apply everywhere: the workflow also handles documents of that layout sent to POST /v1/runway/async. A layout uses one workflow at a time.

A workflow can also carry business rules on the values, such as line amounts adding up to the total. A rule that fails is flagged on the run. Each configuration change writes a new version. You can restore an earlier version, replay past documents through a version, and compare the results field by field before you go live.

What does the Chrome extension do?

The Chrome extension is a side panel that runs a document and fills the web form in your open tab. It is in early access and not yet in the Chrome Web Store, so contact us to try it. You sign in with the same Google account as the dashboard, then run a file through an active workflow or through Runway, and see the extracted fields in the panel.

With Auto-fill this page on, it places each field into the matching input on the form, and Undo puts the page back. Tables go row by row. Mappings you save are kept with your account, so they follow you to another machine.

How do you export results?

Export returns results as JSON, CSV or XLSX, always as they stand after corrections, so a reviewer’s fix reaches your spreadsheet or import. You can export one run or a filtered list of runs. A list export is limited to 10,000 runs, and a larger request returns a 400 naming the count. Values a spreadsheet would execute are prefixed with ', so an exported cell cannot run as a formula.

Export every invoice run as XLSX
curl -OJ "$DOCREFINERY_API/v1/runway/results/export?format=xlsx&document_type=invoice" \
  -H "Authorization: Bearer $DOCREFINERY_API_KEY"
Export one run as CSV
curl -OJ "$DOCREFINERY_API/v1/runway/runs/9f1c0a7e/export?format=csv" \
  -H "Authorization: Bearer $DOCREFINERY_API_KEY"

What if your document type is not in the catalogue?

The catalogue covers 20 document types and 785 field definitions. When yours is not in it, we train a classifier on your samples, host it and re-train it, and help with fields and thresholds. That costs nothing; you pay only your normal extraction volume. Contact us with samples. For a single layout you want read now, a workflow needs only one sample document.

Can it run inside your network?

Yes. Managed cloud is the default. On the Enterprise plan, docRefinery runs in your private VPC or fully air-gapped on premises, on models that run inside your network, so a document never has to leave it. Our on-premises guide explains how to evaluate this kind of deployment, and pricing lists what each plan includes.

What is not available yet?

None of these has shipped. Until webhooks arrive, poll GET /v1/runway/{trace_id} every 2 seconds, as the quickstart shows, or export on a schedule of your own. Current status is on the roadmap.

What we are building
CapabilityStatus
Webhooks and channel integrations (email, storage, drives, SFTP)In design
Salesforce and CRM write-backPlanned
Retrieval pipeline (chunking, embeddings, vector-store connectors)Planned
Presentations and wider office formatsIn development
SSOPlanned for Enterprise

Common questions

Does docRefinery have webhooks?

Not yet. Webhooks are in design. Today you poll a run by its trace id until it finishes, or export results as JSON, CSV or XLSX.

Do I have to change my parser for each document type?

No. Every document type uses the same format: fields share text, alias, field_confidence and location, and tables come back as rows. You choose the alias, so the keys are your own names.

Can I get the Chrome extension from the Chrome Web Store?

Not yet. The extension is in early access and is not in the Chrome Web Store. Contact docRefinery to try it. It runs a document through a workflow or Runway and fills the form in your open tab.

Do exports include reviewer corrections?

Yes. An export always returns the extraction as it stands after corrections, in JSON, CSV or XLSX, for one run or for a filtered list of up to 10,000 runs.

Related

Send your first document.

Make a free account and try the API on a file of your own.

100 pages a month free. No credit card, no sales call.