# Using the API from an AI
URL: https://docs.fluenta.io/en/docs/ai

Two ways to give Fluenta to an AI: an agent with an API token and this documentation, or «Conectar con IA» for Claude and ChatGPT.



An AI can use Fluenta in two ways. Both act as you, with your role.

|                     | Agent with an API token         | «Conectar con IA» (Connect with AI)              |
| ------------------- | ------------------------------- | ------------------------------------------------ |
| For                 | Any agent that makes HTTP calls | Claude and ChatGPT                               |
| Credential          | An API token you create         | A connection you approve with «Permitir» (Allow) |
| Organization's plan | Light and Pro                   | Pro                                              |
| Coverage            | The API's 62 operations         | 38 tools                                         |
| How it ends         | «Revocar» (Revoke)              | «Desconectar» (Disconnect)                       |

## An agent that makes HTTP calls [#an-agent-that-makes-http-calls]

1. Create an API token in «Configuración» (Settings) → «Tokens de API» (API
   tokens). See [Authentication](/en/docs/authentication).
2. Keep it in the agent's secret settings, for example in an environment
   variable. Do not paste it into the conversation.
3. Point the agent at the documentation as text:

| Address                                     | What it holds                                                     |
| ------------------------------------------- | ----------------------------------------------------------------- |
| `https://docs.fluenta.io/llms.txt`          | The index: one line per page, to decide what to read              |
| `https://docs.fluenta.io/llms-full.txt`     | Every page, whole, in one document                                |
| `https://docs.fluenta.io/openapi.json`      | The OpenAPI document: routes, parameters, permissions and answers |
| `https://docs.fluenta.io/en/docs/errors.md` | One page as Markdown: add `.md` to its address                    |

The two `llms` files are in Spanish. Each page in Spanish is at
`https://docs.fluenta.io/docs/errors.md`, with the page's name in place of
`errors`.

### Instructions to paste [#instructions-to-paste]

Paste this into the agent's system instructions:

```text
You have access to the Fluenta API over HTTP.

- Base: https://api.fluenta.io/v1/external
- On every request send the header
  Authorization: Bearer $FLUENTA_TOKEN
  The token is in the environment variable FLUENTA_TOKEN. Never write it in
  an answer or in a log.
- Documentation: https://docs.fluenta.io/llms.txt is the index and
  https://docs.fluenta.io/openapi.json has every operation.
- Start with GET /me, then GET /organizations. They answer the token's
  permissions and the organizationId of each organization. Every other route
  carries the organizationId in its path: there is no default organization.
- An id always comes from an earlier answer. Never invent one.
- Days are YYYY-MM-DD on the plant's clock, not UTC. The today field of
  GET /organizations/{organizationId} is the plant's today.
- An error is { statusCode, code, message }. Branch on code and show message
  to the person as it comes; it is in Spanish. Do not repeat a refused call
  unchanged.
- On a 429 RATE_LIMITED wait the seconds of the Retry-After header before
  you retry.
- Quote figures as they come. Do not recompute them.
- Delete nothing without asking for the preview and getting an explicit yes
  from the person. A refused change changed nothing: do not say it went
  through.
```

## «Conectar con IA» [#conectar-con-ia]

Claude and ChatGPT connect over MCP, with no token. The address is:

```text
https://app.fluenta.io/mcp
```

1. Open «Configuración» → «Conectar con IA». It shows the «Dirección del
   conector» (the connector's address) and the steps for each app.
2. Paste the address into the app: in Claude, as a custom connector; in
   ChatGPT, as a custom MCP server with OAuth authentication.
3. The app brings you to Fluenta. Review the request and press «Permitir».

Worth knowing:

* **It comes with the Pro plan.** A trial of Pro and an exempt organization
  have it too. The connection reaches only the organizations that have it.
* **It is OAuth.** You approve the connection in Fluenta with your dashboard
  session and choose its permissions: «Leer» (Read) always, «Gestionar el
  Programa» (Manage the Programa) if you tick it.
* **It offers 38 tools.** 23 only read: your identity and your organizations,
  the plant, the boards, the «Programa» (each module's production queue), the
  reference catalogue, the reports, the «Actividad de conexiones» (the record
  of changes) and the two delete previews. 15 change the «Programa» and the
  catalogue, and need «Gestionar el Programa»; two of those delete, and only
  with the confirmation of their preview.
* **An API token does not work here.** The MCP address accepts only the
  app's own connection: it rejects an API token like an invalid credential.
* The 23 read routes of 2026-11-12 have no MCP tool. An agent reaches them
  with an API token and this documentation. See the
  [changelog](/en/docs/changelog).

«Desconectar», in Configuración, ends the connection at once.

## Safety [#safety]

* **A token acts as you.** It reaches every organization you belong to, with
  the role you have in each, read on every request.
* **Prefer «Leer» only.** Without «Gestionar el Programa», every write
  answers 403 `INSUFFICIENT_SCOPE`. Tick it only if the agent must change the
  «Programa».
* **Give it a «Vencimiento» (expiry).** Pick 30 days, 90 days or 1 year. A
  token set to «Nunca» (Never) works until you revoke it.
* **One token per agent.** You can hold up to 10 live tokens. With one per
  use, you revoke that one and leave the rest alone.
* **Revoke it when you are done.** «Revocar» ends it at once.
* **An AI can follow instructions in the text it reads.** Whatever the token
  can do, that text can ask it to do. One more reason to grant «Leer» only.
* Every change made through the API is in the «Actividad de conexiones», and
  `listActivity` answers it.
