The contract is the documentation
The live OpenAPI document is the source of truth — routes, schemas, parameters, and examples:operationIds, tags, and schemas are maintained there first.
The API Reference section of these docs is generated directly from that document — every endpoint gets a page at /api-reference/{area}/{operation} with its parameters, request and response schemas, code samples, and a playground. Because the pages come from the contract rather than being written by hand, they stay in step with the API.
Browse the API Reference
All endpoints, grouped by area — Projects, Tables, Reports, Schedules, Connectors, and more.
Authentication
All authenticated endpoints take a bearer token:Device login (people)
Device login (people)
An RFC 8628 device-authorization flow: request a device login, approve it in the browser, poll for the credential. This is what the Claude plugin’s
/addison:login does for you — if you’re a person using an agent, use the plugin rather than implementing this yourself.Machine-to-machine (automation)
Machine-to-machine (automation)
Your Summation admin issues a The exchange is form-encoded; all other endpoints use JSON bodies. Access tokens expire (about an hour) — refresh by exchanging again.
client_id and client_secret with scopes. Exchange them for an access token:What’s available
Conventions
- Errors follow a problem-details shape:
type,title,status,detail,code, andrequest_id. Always log therequest_id— it joins your failure to server-side traces, and support will ask for it. - Streaming endpoints (chat, report generation, verification, imports) return server-sent events; send
Accept: text/event-stream. - Pagination fields are documented per-operation in the OpenAPI contract; preserve them rather than assuming page shapes.
- Rate limiting returns
429— retry with jitter and respect any retry headers. - Scopes:
agent:readfor reads andagent:writefor mutations — file imports areagent:write(import_file,create_table_import,create_file_upload,write_file_content).tables:appendis a separate scope for row appends:POST/PUT /v1/tables/{table_id}/rows, the ingestion-batch operations, and SumApp register/deregister. A valid token missing a scope gets403with the missing scope named.
Building an agent instead of an app? The MCP Server wraps this API in curated tools with the safety rails already in place — start there.