Skip to main content

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/v1

All 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:

Terminal
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

GET/me

Who this key belongs to: user, team, and the phone numbers/locations it can see. Useful as a connection test.

GET/conversations

Conversations 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.

ParameterTypeDescription
channelstringphone_call, chat_widget, sms, or email.
categorystringFilter by extracted category, e.g. membership.
needs_followupbooleanOnly conversations flagged for human follow-up.
contact_idintegerOnly conversations with this contact.
fromdateCreated on or after this date (ISO 8601).
todateCreated on or before this date (ISO 8601).
pageintegerPage number, starting at 1.
per_pageintegerResults per page. Default 25, max 100.
Example response (truncated)
{
  "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, ... }
}
GET/conversations/{id}

One conversation in full, including the transcript and any tasks the AI extracted from it.

GET/tasks

Follow-up tasks created from conversations — callbacks, refunds, escalations.

ParameterTypeDescription
statusstringnew, in_progress, on_hold, completed, cancelled, or archived.
prioritystringlow, medium, or high.
categorystringFilter by task category.
fromdateCreated on or after this date (ISO 8601).
todateCreated on or before this date (ISO 8601).
pageintegerPage number, starting at 1.
per_pageintegerResults per page. Default 25, max 100.
GET/tasks/{id}

One task by id, with its assignee.

GET/contacts

Your team's contact list.

ParameterTypeDescription
searchstringMatches name, email, phone number, or company.
stagestringFilter by lifecycle stage, e.g. customer or lead.
pageintegerPage number, starting at 1.
per_pageintegerResults per page. Default 25, max 100.
GET/contacts/{id}

One contact by id.

GET/stats

Conversation and task counts over a recent window: totals by channel, top categories, follow-up volume, and task statuses.

ParameterTypeDescription
daysintegerLook-back window in days. Default 30, max 365.

Errors

Status codes

ParameterTypeDescription
401statusMissing or invalid API key.
403statusThe token is not an API key, or it cannot see this resource.
404statusResource not found.
422statusInvalid query parameters; details in the body.
429statusRate limit exceeded — back off and retry.