Integration Overview
Overview of connecting your system to the Mindee API.
General Description
Mindee is ideal for handling large amounts of documents. The vast majority of our users will want to connect Mindee to their systems using our APIs.
It's possible to design any number of different use cases around document processing. These can be for purely internal processing or to provide final end users with a polished experience.
The API is asynchronous, RESTful, and returns objects.
Before Starting
You'll need at least one model configured, see the Models Overview section for more details. This can be any model type (extraction or utility model), all models are integrated in a very similar way.
We recommend using the Live Test feature before attempting to integrate the API.
You'll also need at least one API key, see the Manage API Keys section for more info.
How to Integrate
All file processing routes are asynchronous, no synchronous routes are provided. You can either use a polling or webhook workflow.
If using our SDK integrations polling is abstracted away for you, meaning you can use a single synchronous method within the SDK to receive processing results.
These are are the fastest and easiest way to call our APIs, and allow our support teams to better help you.
Client Libraries / SDKs
For a quick introduction and copy-paste ready code, look in the Extraction Quick Start section.
Ask for Code Samples
You can ask for specific code samples from the documentation AI.
Use the "Ask" button at the top of any page, or click below:
Supported languages/frameworks: Python, Node.js (JS/TS), PHP, Ruby, Java, .NET (C#).
We provide full support for Client Libraries regardless of your plan. You can report any issues on our bug tracker or directly on GitHub.
No-Code or Low-Code
If you're integrating using a no-code or low-code platform, take a look at the No-Code Integration section.
Manual Integration
We do not recommend manually integrating, and cannot guarantee full support.
Pro plans and above benefit from extended integration support.
Only if it's not possible to integrate using an SDK or no-code, take a look at the Manual Integration section.
What to Send
You can send either a local file or an URL, it makes no difference for server-side processing.
However, when using our client libraries, you can Adjust the Source File if you have it locally.
Retrieving Results
Processing is always asynchronous, meaning that retrieving results is separated from sending the file to the server.
Once a request has been sent, it is not possible to stop or cancel the processing.
You can decide on using either the polling flow or the webhook flow to retrieve results.
Polling - poll the server until results are ready. When using an SDK, the polling requests are handled for you in a single method call. Better suited for testing and small volumes.
Webhooks - send results directly to your server. When using an SDK, response deserialization is handled for you, just pass the raw request body. Better suited for heavy production use.
Developing and Testing
A typical development process will require testing before deploying to production, to ensure a given model works correctly with a specific code version.
Mindee models are not versioned, rather they can be locked and/or copied as needed. This provides more flexibility in how you organize and manage your models, to better fit your development process.
Your development release cycle could look like this:
Start with a new model. If you are making adjustments to an existing production model, copy it and only make changes to the copy. Consider adding versioning info to the copied model's name, i.e. "Invoice v1.1" or "Receipt 2026-05-17".
Adjust your code as needed and test.
When deploying your code to testing or production environments, use the new model's ID.
After deployment, lock your production model to avoid accidental changes.
GOTO 1
Frequently Asked Questions
Last updated
Was this helpful?

