Skip to content

Calls

Launch AI outbound calls, list call history, and retrieve call details including transcripts and recordings.

Create a call

POST /v1/calls

Enqueue an outbound AI call. The call is queued and processed asynchronously.

Required scope: calls:write

Request body

FieldTypeRequiredDescription
agentIdstringYesID of the AI agent to use for the call
toNumberstringYesDestination phone number in E.164 format
fromNumberstringYesCaller ID phone number (must belong to your org)
voiceIdstringNoOverride the agent's default voice
languagestringNoOverride the agent's default language
customerNamestringNoName of the person being called
dynamicVariablesobjectNoKey-value pairs injected into the agent's prompt
metadataobjectNoCustom metadata attached to the call
scheduledAtstringNoISO 8601 timestamp to schedule the call
disableKnowledgeBasesbooleanNoDisable knowledge bases for this call (default: false)

Example

bash
curl -X POST https://api.replicer.ai/v1/calls \
  -H "Authorization: Bearer rpl_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "clx1234567890",
    "toNumber": "+1234567890",
    "fromNumber": "+0987654321",
    "customerName": "John Doe",
    "dynamicVariables": {
      "company": "Acme Corp",
      "purpose": "Follow-up on quote"
    },
    "metadata": {
      "campaign_id": "summer_2026"
    }
  }'

Response 201 Created

json
{
  "data": {
    "id": "call-uuid-here",
    "status": "queued",
    "taskId": "task-xyz-123"
  },
  "requestId": "req-abc123"
}

Errors

CodeCause
validation_errorMissing agentId, toNumber, or fromNumber
not_foundAgent doesn't exist or doesn't belong to your org
forbiddenfromNumber doesn't belong to your org

List calls

GET /v1/calls

Retrieve a paginated list of calls for your organization.

Required scope: calls:read

Query parameters

ParameterTypeDescription
pageintegerPage number (default: 1)
limitintegerResults per page (default: 20, max: 100)
statusstringFilter by call status
directionstringFilter by direction: INBOUND or OUTBOUND
dateFromstringISO 8601 — only calls after this date
dateTostringISO 8601 — only calls before this date

Example

bash
curl "https://api.replicer.ai/v1/calls?status=completed&limit=10" \
  -H "Authorization: Bearer rpl_live_your_key"

Response 200 OK

json
{
  "data": [
    {
      "id": "clx-call-001",
      "customerName": "John Doe",
      "customerPhone": "+1234567890",
      "duration": 240,
      "status": "completed",
      "direction": "OUTBOUND",
      "disconnectionReason": "agent_hangup",
      "sentiment": "positive",
      "summary": "Discussed pricing for enterprise plan...",
      "transcript": "Agent: Hello, this is...",
      "recording": "https://storage.example.com/recordings/...",
      "callSuccessful": true,
      "tokenCost": 12.50,
      "agentId": "clx-agent-001",
      "campaignId": "clx-campaign-001",
      "startedAt": "2026-04-05T14:00:00Z",
      "endedAt": "2026-04-05T14:04:00Z",
      "createdAt": "2026-04-05T13:59:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 150,
    "totalPages": 15
  },
  "requestId": "req-def456"
}

Get a call

GET /v1/calls/{id}

Retrieve details of a specific call.

Required scope: calls:read

Path parameters

ParameterDescription
idThe call ID

Example

bash
curl https://api.replicer.ai/v1/calls/clx-call-001 \
  -H "Authorization: Bearer rpl_live_your_key"

Response 200 OK

json
{
  "data": {
    "id": "clx-call-001",
    "customerName": "John Doe",
    "customerPhone": "+1234567890",
    "duration": 240,
    "status": "completed",
    "direction": "OUTBOUND",
    "disconnectionReason": "agent_hangup",
    "sentiment": "positive",
    "summary": "Discussed pricing...",
    "transcript": "Full transcript here...",
    "recording": "https://storage.example.com/...",
    "callSuccessful": true,
    "tokenCost": 12.50,
    "agentId": "clx-agent-001",
    "campaignId": null,
    "startedAt": "2026-04-05T14:00:00Z",
    "endedAt": "2026-04-05T14:04:00Z",
    "createdAt": "2026-04-05T13:59:00Z"
  },
  "requestId": "req-ghi789"
}

Call status values

StatusDescription
queuedCall is queued for processing
in_progressCall is currently active
completedCall finished normally
failedCall failed to connect
cancelledCall was cancelled before connecting

Replicer API Documentation