Which door to use
The two surfaces are twins on purpose. Every REST endpoint has an MCP tool with the same payload, so a customer’s answer never depends on which door they came through. The few tools without a REST endpoint yet, the markets reads, are listed under MCP-only for now and marked MCP-only in the tool reference. A key holder can add a workspace for a new domain withPOST /v1/onboarding/workspace; the person still pays in their own browser. A new person with no account yet starts in the app, or from an assistant over MCP, where signing in comes first.
Both take the same
atn_live_ key, so you do not need a second credential to add the other. The REST API takes a key only; OAuth connections belong to the MCP server.
Base URL
Base URL
/v1. https://api.attensira.com/healthz is unauthenticated and answers without a key, which makes it a useful reachability check when a client is silent about why it failed.
Your first request
Shell
Response
/v1/account first from a fresh integration: it lists every workspace the credential can reach, confirms which one it resolved to, and its platforms array is the authority on which AI answer surfaces were queried at all. A platform missing from that list was never measured — which is not the same as measured at zero.
What the API can do
Webhooks push events to you instead: a session finished, work filed, an article written, a change shipped, a report ready, a scheduled run skipped, a goal updated. They are managed with the same API key at
https://webapp.attensira.com/v1/webhooks.
The full parameter and response reference is on Endpoints.
Conventions
Versioning. The version is in the path./v1 will not change shape under you: fields may be added, never removed or retyped. Write clients that ignore fields they do not recognise.
Content type. Requests with a body send Content-Type: application/json. Every response is JSON, including every error.
Unknown fields are rejected. A POST body containing a field the endpoint does not define is a 400, not a silent drop. A misspelled instructions quietly ignored is an automation that does the wrong thing forever; a 400 at the moment of the typo is cheaper.
Numeric parameters are clamped, not rejected. ?limit=9999 on an endpoint capped at 50 returns 50 rows, because “as many as you can give me” is what was meant. A value that is not a number at all is a mistake rather than an intent, and returns 400.
Paging. GET /v1/search takes limit and offset, and returns total and has_more. Page on has_more — total is a floor, not a grand total, and a full page is not proof there are more. The answer reads under /v1/memory/answers/ and GET /v1/deliverables page with cursor: pass the previous page’s next_cursor, which is null at the end. Every other endpoint is bounded by limit instead.
Request ids. Every response carries X-Request-Id. Send your own and it is reused end to end, so one trace stays one trace. Quote it in a support request.
Naming your client. Send X-Attensira-Client: <your client>, for example n8n, and the work a call starts is marked with it in the app. It is optional and a label only: it never grants or limits anything. A call without it is shown as API use. See Marked via your assistant for the names shown.
The API is rate limited per key. A
429 comes back in the standard error envelope with type: "rate_limited" — back off and retry.Reading what comes back
Every numeric field can benull, and null never means zero. A rate is {value, n}, a delta is {value, real}, and per-platform metrics carry {tracked, readable}. tracked: false means your plan does not include that platform, so it was never queried — rendering it as 0% invents a failure that did not happen.
This matters more through the API than through the dashboard, because your code is what will coerce a null into a 0 on its way into a chart. Reading the numbers covers null against zero, small n, and when a delta is worth acting on.
Next steps
Authentication
Key format, the header, what a 401 means, and how scoping works.
Endpoints
Every endpoint, with request and response examples.
Errors
One envelope, seven types, and what to retry.