Developers / REST API
API reference
Read-only JSON access to your conversations, tasks, contacts, and stats. Team-scoped and authenticated with API keys you control from the dashboard.
Base URL
https://answeringagent.com/api/v1All endpoints are GET and return JSON. Send Accept: application/json with every request. Requests are rate limited to 120 per minute per key.
Authentication
Create an API key in the dashboard under Team Settings → API Keys. The key is shown once — store it somewhere safe. Pass it as a bearer token:
curl https://answeringagent.com/api/v1/me \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"A key sees what its creator sees: the same team and the same phone numbers/locations their dashboard role allows. Keys are read-only and can be revoked at any time from the same settings page.
Pagination
List endpoints return a data array plus links and meta objects with current_page, last_page, per_page, and total.
Endpoints
/meWho this key belongs to: user, team, and the phone numbers/locations it can see. Useful as a connection test.
/conversationsConversations across every channel — phone calls, website chats, texts, and emails — sorted by most recent activity. List rows carry the AI summary; fetch a single conversation for the full transcript.
| Parameter | Type | Description |
|---|---|---|
| channel | string | phone_call, chat_widget, sms, or email. |
| category | string | Filter by extracted category, e.g. membership. |
| needs_followup | boolean | Only conversations flagged for human follow-up. |
| contact_id | integer | Only conversations with this contact. |
| from | date | Created on or after this date (ISO 8601). |
| to | date | Created on or before this date (ISO 8601). |
| page | integer | Page number, starting at 1. |
| per_page | integer | Results per page. Default 25, max 100. |
{
"data": [
{
"id": 32,
"channel": "phone_call",
"status": "completed",
"category": "support",
"summary": "Customer reports wash equipment stopped mid-cycle.",
"duration_seconds": 78,
"needs_followup": true,
"caller": { "name": "Sarah M.", "phone_number": "+17085559001" },
"contact": { "id": 32, "name": "Sarah M.", ... },
"phone_number": { "id": 1, "name": "North Branch", ... },
"created_at": "2026-06-10T14:03:22+00:00",
"last_activity_at": "2026-06-10T14:04:40+00:00"
}
],
"meta": { "current_page": 1, "per_page": 25, "total": 56, ... }
}/conversations/{id}One conversation in full, including the transcript and any tasks the AI extracted from it.
/tasksFollow-up tasks created from conversations — callbacks, refunds, escalations.
| Parameter | Type | Description |
|---|---|---|
| status | string | new, in_progress, on_hold, completed, cancelled, or archived. |
| priority | string | low, medium, or high. |
| category | string | Filter by task category. |
| from | date | Created on or after this date (ISO 8601). |
| to | date | Created on or before this date (ISO 8601). |
| page | integer | Page number, starting at 1. |
| per_page | integer | Results per page. Default 25, max 100. |
/tasks/{id}One task by id, with its assignee.
/contactsYour team's contact list.
| Parameter | Type | Description |
|---|---|---|
| search | string | Matches name, email, phone number, or company. |
| stage | string | Filter by lifecycle stage, e.g. customer or lead. |
| page | integer | Page number, starting at 1. |
| per_page | integer | Results per page. Default 25, max 100. |
/contacts/{id}One contact by id.
/statsConversation and task counts over a recent window: totals by channel, top categories, follow-up volume, and task statuses.
| Parameter | Type | Description |
|---|---|---|
| days | integer | Look-back window in days. Default 30, max 365. |
Errors
Status codes
| Parameter | Type | Description |
|---|---|---|
| 401 | status | Missing or invalid API key. |
| 403 | status | The token is not an API key, or it cannot see this resource. |
| 404 | status | Resource not found. |
| 422 | status | Invalid query parameters; details in the body. |
| 429 | status | Rate limit exceeded — back off and retry. |