DocsAI assistants and API
The API
Every action in Adea is an API call, with the same checks as a click. The OpenAPI file lists them all.
On this page
Everything you can click in Adea is an action, and you can call every action over the API. The same checks apply as for a click: your role, your plan, Guardian and credits.
The address
Each company has its own address, and the API lives under it:
https://your-company.adea.app/api/v1
The list of actions
The OpenAPI file describes every action: its name, what it needs, what it returns, whether it only reads or also changes something, and what it costs.
curl https://adea.app/api/v1/openapi.json
Call an action
Send a POST to /api/v1/actions/{name} with the input as JSON. For example, to read the rows of a list:
curl -X POST https://your-company.adea.app/api/v1/actions/lists.rows \
-H "Authorization: Bearer $ADEA_KEY" \
-H "Content-Type: application/json" \
-d '{ "listId": "..." }'
A call that works returns ok: true and the result in data:
{ "ok": true, "data": { "listId": "...", "name": "...", "statuses": [], "rows": [] }, "changed": [] }
A call that doesn’t work returns ok: false and an error with a code and a message in plain words. The codes you will meet most often:
| Code | Meaning |
|---|---|
invalid_input |
Some of the details aren’t valid. The error says which. |
unauthenticated |
You aren’t signed in, or the key is not valid. |
forbidden |
Your role doesn’t allow this. |
plan_required |
The action isn’t part of your plan. |
credit_limit |
The month’s Deep credits are used. |
cost_approval_required |
The work needs a deeper look and uses credits. Go ahead only if you accept the cost. |
confirmation_required |
A person has to confirm this first. See below. |
guardian_held |
An administrator has to approve this first. |
rate_limited |
Too many calls at once. Wait a minute. |
Actions that need a confirmation
Some actions need a person to confirm them: anything that sends data out of Adea, for example. A call to one of these returns confirmation_required with a preview of what would happen. The API can’t confirm on a person’s behalf. A person confirms in Adea, or you send them the link.
Keys and sign-in
Calls from the signed-in app use your session. A script uses a key, sent as Authorization: Bearer adea_.... A key belongs to one company and works only on that company’s address. It acts as the person who made it, with at most the role you give it, and every call is logged.
To make a key, open Settings, then Developers, and choose a name, a role and when it should expire. The key is shown once, so copy it when it appears. Only administrators and developers can make keys, a key can’t have more than your own role, and an administrator sees everyone’s keys and can switch any of them off. A key stops working when its person is removed from the team.
Webhooks
To have Adea call your service when something happens, see Webhooks.
Limits
Calls are limited per person and per key. When you go over, the answer is rate_limited.
Other ways in
- Use Adea from your AI assistant: the same actions as tools in Claude, ChatGPT, Grok and Cursor.
- Markdown for every page: all of these docs in one file, for an agent to read.
Still stuck? Write to hello@adea.app. A person answers.