> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://infonite.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://infonite.dev/_mcp/server.

# How to read this reference

Every page under this heading is **generated from the running service**: the schemas are the real ones and the explorer sends a real call. What a generated page cannot tell you is which call comes first — so this one does, in about a minute.

**New here?** Read [what a direct execution is](/direct-executions/overview) and [your first execution](/direct-executions/quickstart) instead. This page assumes you have decided to integrate and want the map.

---

## The happy path

#### Find the engine

[List the engines you can run](api:GET/config/engines/list) and take the `reference` of the one you want. [Read what it needs](api:GET/config/engines/\{engine_reference}) to know which parameters its login takes and which features it can retrieve — that is the contract your request is checked against.

#### Start the execution

[Initiate with parameters](api:POST/executions/init/v1/parametrized) with the credentials in hand, or [Initiate with a token](api:POST/executions/init/v1/tokenized) when you have run this access before and would rather not hold the password.

You get `202` and an **`execution_id`**. That is the only value worth storing: everything below is addressed by it.

#### Wait for something to happen

Two ways, and one of them is better. Register a [webhook](/direct-executions/webhooks) and we tell you; or [poll the state](api:HEAD/executions/handler/v1/\{execution_id}), which answers with a status code and no body at all.

#### Answer, if you are asked

A source can stop mid-run to ask your customer for a code. [Read the state](api:GET/executions/handler/v1/\{execution_id}) — it answers `423` with the form to render — and send the values back to [Answer and resume](api:PUT/executions/handler/v1/\{execution_id}). [Challenges & MFA](/direct-executions/challenges) is the long version.

#### Read what came back

When the run is closed, the results are readable by family — [the customer profile](api:GET/executions/results/\{execution_id}/customer/v1/profile) to begin with, or, better, the [Financial Position](api:GET/executions/results/\{execution_id}/financial/v1/global-position) — the same records in one call instead of ten.

#### Delete it

[Delete the execution](api:DELETE/executions/handler/v1/\{execution_id}/delete) as soon as you have stored what you need. The less of somebody's financial data sits anywhere, the better — including here.

---

## What is in this reference

#### [Engines](/api-reference/direct-executions/direct-executions-api/engines/direct-executions-v-1-engines-list)

The catalogue: what your application may run today, what each engine needs to log in, and which features it can retrieve. Two endpoints, and the place every integration starts.

#### [Starting executions](/api-reference/direct-executions/direct-executions-api/starting-executions/direct-executions-v-1-init-parametrized)

The two ways in — with credentials, or with a token that stands in for credentials you ran once before. Everything else about a run is decided here.

#### [Handling the state](/api-reference/direct-executions/direct-executions-api/handling-the-state/direct-executions-v-1-handler-status)

Following a run: poll it, read it, answer what it asks, stop it, and delete it when you are done. Five endpoints, used in that order.

#### [Tokenization](/api-reference/direct-executions/direct-executions-api/tokenization/direct-executions-v-1-token-exchange)

Exchange the ticket a first execution issued for a reusable token, check what it may do, and revoke it. [The guide](/guides/credential-tokenization) explains the custody model.

#### [Fetching the results](/api-reference/direct-executions/direct-executions-api/fetching-the-results/customer-data/direct-executions-v-1-results-customer-profile)

**Financial Position** and **Public Position** return a whole side in one call, and that is the read to build on; underneath them there is an endpoint per family — identity, financial, public administration, commercial — plus the original documents.

#### [Webhooks](/direct-executions/webhooks)

The four calls we make to YOUR server: started, action required, authentication ended, ended. They carry the state, never the data.

**A results endpoint answers as soon as ITS feature is finished**, not when the whole execution is. A slow source — the credit registry is the usual one — does not hold up the families that already came back: `202` means *this family*, and a family nobody asked for answers `204`.

---

## Two things worth knowing before you build

#### [Webhooks beat polling](/direct-executions/webhooks)

An execution takes as long as an institution takes. Polling asks a question whose answer is *"not yet"* almost every time. Subscribe to `ended` even if you subscribe to nothing else — it is the only event we re-deliver.

#### [Decide who is watching](/direct-executions/challenges)

`customer_interaction_available` says whether anybody can answer a challenge. With `false` the source is never allowed to contact your customer — no SMS at three in the morning — and the run ends instead of waiting.

**Everything that holds for every endpoint** — the `X-APP-SECRET` header, the base URLs, the error shape and the rate limits — is stated once in [Using the API](/api-reference/overview), not repeated on each page.