The API reads conversations, transcripts, recordings, tasks, contacts, and reports. It can also change a task’s status or assignee and add a note to a task. To receive new tasks as they happen, use webhooks. To ask about the same data in Claude or ChatGPT without writing code, use the MCP server.
Quickstart
1
Create an API key
Sign in at answeringagent.com as a team owner or admin. Use a login that belongs to only the team you want to read. Go to Settings → API Keys, click New API Token, enter a name, and click Create. Copy the key. The dashboard shows it once.
2
Put the key in an environment variable
Every example in these docs reads the key from
ANSWERING_AGENT_API_KEY. The JavaScript examples use fetch and need Node 18 or later.3
Get your account
Next, follow a guide:
Sync tasks to ClickUp or Zendesk
Create tickets from webhooks and write status changes back.
Export conversations
Archive transcripts and call recordings day by day.
Base URL
Authenticate
Send the key in theX-API-KEY header on every request.
123|AbCdEf0123456789...: a number, a |, and a secret. Send the whole string. Store it on your server, never in browser code. To revoke a key, click Revoke next to it in Settings → API Keys. Requests that use it get 401 from then on.
For hosting, data retention, AI training, and compliance status, see Security and data handling.
Names and IDs
Every endpoint, the MCP server, report filters and rows, and the webhook’sdata object use the same names. A value you read from one endpoint works as an input to another. The examples on these pages follow conversation 184532, a call from Dana Ruiz who wants to cancel her membership.
The webhook’s top-level fields, such as
task.channel with phone_call, are older than these names and keep their original values. See Legacy fields.
Rate limit
Each user can make 120 requests per minute. All keys created by the same person share that limit. Over the limit, the API returns429 with a Retry-After header that gives the seconds to wait.
Errors
Errors return a JSON body with anerror message for people and a code for your code. Branch on code. The message text can change.
invalid_request error also includes issues, one entry for each input that failed validation.
chanel has no effect. A JSON body with a key the API does not know returns 400.
A recording download can also return
416 with invalid_request, or 502 or 503 with internal. Any other 4xx status has invalid_request, and any other 5xx has internal.
Pages and time ranges
List endpoints takelimit (1 to 50, default 10) and page (default 1). Each list response includes total_matching and next_page. next_page is null on the last page.
range, which limits results to records created in that window. For a task, that is when its conversation started or its form was submitted. Every window uses your team’s timezone.
Leave out
range for all time. Search has no custom date window. Reports cover the same dates, but their 7d to 365d start at the current time of day rather than at midnight. Reports also take a month or a custom from and to.
Endpoints
Requests from the playground go to production. With a real key, Try it on
PATCH /tasks/{task_id} changes a live task, and Try it on POST /tasks/{task_id}/notes adds a note to one.
Links in responses, such as url, open the record in the dashboard.
The API and the MCP server
The API and the MCP server share the lookups for the account, conversations, tasks, contacts, and reports. They also share task updates and task notes. The same report returns the same numbers over both. They differ in what else they do:- Only the API downloads call recordings and lists the metric catalog.
- Only the MCP server reads the AI’s settings, your support requests, and the help center.
- Each has its own limit of 120 requests per minute per person.
Partner API
Resellers that provision accounts for their own customers use a different API under the same base URL. See the Partner API. A regular team’s key gets401 on Partner API endpoints.