Integrations Guide
Connect dataextractor.io to your systems with the REST API today; pre-built ERP connectors are in development.
Last updated: June 17, 2026
Connecting your systems
Today, the way to push extracted data into another system is the REST API (see the API Reference). Create an API key on the Developer page, POST documents to /api/v1/extract/{workflow_slug}, and write the structured JSON response into your ERP, database, or data lake with a small adapter in any language.
Pre-built one-click connectors for SAP, Salesforce, Odoo, Microsoft Dynamics, and NetSuite are in development — they're listed as Coming Soon on the Integrations page, where you can join the waitlist. Until they ship, the REST API (the Custom HTTP pattern) covers the same ground; it's just a bit more glue code on your side.
Getting results: response or polling
There is no webhook/callback delivery yet. Collect results one of two ways:
Synchronous — POST to /api/v1/extract/{workflow_slug} and read the extracted fields directly from the response. Best for interactive or low-volume use.
Asynchronous — POST to /api/v1/extract/{workflow_slug}/async, then poll GET /api/v1/extract/jobs/{execution_id} every few seconds until status is extracted (or failed). Best for large documents and batch pipelines, so a slow extraction doesn't hold a request open.
Both return the same extracted_fields / structured / documents shape. (Event-driven webhooks are on the roadmap.)
REST API
The REST API exposes the extraction endpoints programmatically. Authenticate with an API key in the X-API-Key header from the Developer page (not a Bearer token). All endpoints return JSON with a success / data / meta envelope and use standard HTTP status codes.
Typical pattern: POST a document to /api/v1/extract/{workflow_slug} (sync) and read data.extracted_fields, or use the /async variant and poll /api/v1/extract/jobs/{execution_id}. Call GET /api/v1/extract/{workflow_slug}/schema first if you want to validate your field mapping before sending documents.
See the API Reference for the full endpoint list, request and response schemas, rate limits, and error codes.
Catalog matching deep dive
Catalog matching runs after extraction and compares extracted line-item data — SKU codes, product descriptions, unit prices — against a product catalog you provide, to identify the canonical record for each extracted line.
Matching uses fuzzy string comparison, not exact equality. A supplier invoice that lists "Blue Widget 500ml" will match the catalog record "Widget, Blue, 500mL" despite differences in capitalisation, word order, and punctuation. A confidence score reflects how closely the extracted text matches the catalog entry: high-confidence matches are accepted automatically, low-confidence matches are flagged for human review before you accept them.
Catalogs with complete records — including alternative descriptions and known supplier aliases — produce significantly higher automatic match rates. You can add manual aliases for frequently mismatched products without modifying the source catalog record.
Authentication & security
All API communication is encrypted in transit using HTTPS. API keys are prefixed dex_ and are hashed before storage — we cannot recover a key if it is lost, only revoke it and issue a replacement. Keys can be named and revoked independently from the Developer page, and each key has its own per-minute rate limit.
Never expose a key in client-side code or commit it to a public repository. If a key is compromised, revoke it immediately and issue a new one; revoking one key does not affect the others.
Testing your integration
Before wiring extraction into a downstream system, validate it end-to-end against a real workflow.
Create an API key on the Developer page and run a document you have already reviewed through /api/v1/extract/{workflow_slug}. Confirm the field paths and value shapes in the response match what your mapping expects — pay particular attention to numeric and currency fields and to line-item arrays.
For pipelines, exercise the async path: submit with /async and poll the job endpoint, so your retry and timeout handling is tested before go-live. Note that every extraction consumes a credit, including during testing, so use a small fixed set of sample documents for automated tests.