# Integration Overview

## General Description

The Mindee API is RESTful, and returns data in a JSON format.

In this section we'll go over the major steps required for a successful integration, and link to the relevant sections of the documentation.

## Before Starting

You'll need at least one model configured, see the [models-overview](https://docs.mindee.com/models/models-overview "mention") 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](https://docs.mindee.com/models/live-test "mention") feature before attempting to integrate the API.

You'll also need at least one API key, see the [api-keys](https://docs.mindee.com/integrations/api-keys "mention") section for more info.

## How to Integrate

We highly recommend using one of our [client-libraries-sdk](https://docs.mindee.com/integrations/client-libraries-sdk "mention").

They are the fastest and easiest way to call our APIs, and allow our support teams to better help you.

### Client Libraries

For a quick introduction and copy-paste ready code, look in the [quick-start](https://docs.mindee.com/integrations/client-libraries-sdk/quick-start "mention") section.

{% hint style="success" %}

#### 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:

<button type="button" class="button primary" data-action="ask" data-query="Write a code sample for my extraction model, ask for my model ID and  language first" data-icon="gitbook-assistant">Ask "Write a code sample for my extraction model, ask for my model ID and  language first"</button>
{% endhint %}

Supported languages/frameworks: **Python**, **Node.js** (JS/TS), **PHP**, **Ruby**, **Java**, **.NET** (C#).

### No-Code or Low-Code

If you're integrating using a no-code or low-code platform, take a look at the [no-code-integrations](https://docs.mindee.com/integrations/no-code-integrations "mention") section.

### Manual Integration

If none of the above options fit your requirements, take a look at the [api-reference](https://docs.mindee.com/integrations/api-reference "mention") section.

{% hint style="warning" %}
**We do not recommend manually integrating**, and cannot provide full support in this case.
{% endhint %}

## 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](https://docs.mindee.com/client-libraries-sdk/load-and-adjust-a-file#adjust-the-source-file "mention") if you have it locally.

## How to Receive Results

Inference operations are always asynchronous, meaning there is a route to POST the file and another mechanism to retrieve the results.

You can decide on using either the polling flow or the webhook flow.

[polling-for-results](https://docs.mindee.com/integrations/polling-for-results "mention") uses a GET route, and is better suited for testing and small volumes.

[webhooks](https://docs.mindee.com/integrations/webhooks "mention") sends directly to your server, and is more suited for heavy production use.
