Extract Document

mindee.extract_document
ActionAI & modelsconnection required

Calls the Mindee API with the connection's credentials.

Run an extraction model over one invoice, receipt, passport or any other document and return its fields as plain values.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Mindee
Secret shape
the V2 API key, or {"api_key": "…"}
Config it needs
base_url, model_id
Resolved by
config.connection_id, else node.connection_id

Configuration

14 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
model_id
UUID of the Mindee model to run. Defaults to the connection's model_id, which is how one credential can drive an invoice model from one node and a passport model from the next.
stringNo——a1b2c3d4-0000-4000-8000-000000000000
document_url
Public HTTPS URL Mindee downloads the file from. Give this or file_content, never both.
stringNo—url formathttps://files.example.com/invoice-2026-01.pdf
file_content
The file itself, base64-encoded — an upstream download node's file_content can be wired straight in. Give this or document_url, never both.
stringNo——JVBERi0xLjQK
filename
Name recorded against the job and echoed back on the result.
stringNo———
alias
Your own reference for this file, such as an internal document id. Mindee returns it unchanged on both the job and the inference.
stringNo———
webhook_ids
Comma-separated UUIDs of the webhooks Mindee should call when processing finishes. Leave blank to poll instead.
stringNo———
wait
Poll the job through to its inference before finishing the step. Turn this off to return the job id immediately and fetch the result in a later step or from a webhook.
booleanNotrue——
timeout_seconds
How long to keep polling before returning the job as still processing. Mindee times an inference out at 590 seconds.
numberNo1201–590—
poll_interval_seconds
Seconds to wait between polls of the job status.
numberNo21–60—
raw_text
Also return the document's full text, page by page, in raw_text.
booleanNofalse——
polygon
Also return the bounding-box polygon of every extracted field.
booleanNofalse——
confidence
Also return a confidence level (Certain, High or Medium) per field.
booleanNofalse——
rag
Use Retrieval-Augmented Generation against the documents indexed on this model to improve accuracy.
booleanNofalse——
text_context
Extra context handed to the model for this one inference, for example a note about where the document came from.
stringNo———
  • At least one of document_url, file_content must be set.

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "confidence": false,
  "document_url": "https://files.example.com/invoice-2026-01.pdf",
  "file_content": "JVBERi0xLjQK",
  "model_id": "a1b2c3d4-0000-4000-8000-000000000000",
  "poll_interval_seconds": 2,
  "polygon": false,
  "rag": false,
  "raw_text": false,
  "timeout_seconds": 120,
  "wait": true
}

Output

One shape.

result

FieldTypeExample
job_id
UUID of the processing job.
string—
status
Mindee's job status, lower-cased: processing, processed or failed.
string—
completed
True only when the inference was fetched; false while the job is still processing.
boolean—
model_id
UUID of the model that ran.
string—
filename
File name as Mindee recorded it.
string—
alias
The alias sent with the file, echoed back.
string—
created_at
When the job was created, ISO 8601.
string—
completed_at
When the job finished, ISO 8601, once it has.
string—
polling_url
URL that reports this job's status.
string—
result_url
URL the inference is readable at once processed.
string—
webhooks
Outcome of each webhook Mindee called; empty until processing finishes.
array—
error
Mindee's RFC 9457 problem detail when the job failed, otherwise null.
object—
product
Which product ran: extraction, ocr, classification, split or crop.
string—
inference_id
UUID of the inference.
string—
page_count
Number of pages Mindee found in the file.
number—
mime_type
MIME type Mindee detected for the file.
string—
inference
The whole inference object exactly as Mindee returned it.
object—
values
Every extracted field reduced to a plain value, keyed by the field name in the model's data schema — object fields become nested objects and list fields become arrays.
object—
fields
The same fields with Mindee's full envelope per field: value, confidence and locations.
object—
raw_text
The document's full text with pages joined by newlines; empty unless raw_text was requested.
string—
{
  "alias": "",
  "completed": false,
  "completed_at": "",
  "created_at": "",
  "error": {},
  "fields": {},
  "filename": "",
  "inference": {},
  "inference_id": "",
  "job_id": "",
  "mime_type": "",
  "model_id": "",
  "page_count": 0,
  "polling_url": "",
  "product": "",
  "raw_text": "",
  "result_url": "",
  "status": "",
  "values": {},
  "webhooks": []
}

Notes

  • Mindee processes every file asynchronously; this node enqueues it and, with wait on, polls until the job is Processed.
  • A job that is still Processing when timeout_seconds runs out returns status 'processing' with completed=false — use the job_id with mindee.get_job rather than sending the document again.
  • An inference Mindee reports as Failed fails the step with Mindee's own problem detail, so error edges fire.

See Extract Document run in a workflow.

In a technical demo we add the Mindee connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.