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 through the LiveKit voice engine. The call is created and queued asynchronously; use the returned id to poll GET /v1/calls/{id}.

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
llmModelstringNoOverride the agent's LLM (LiveKit Inference id, e.g. google/gemini-3-flash)
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"
  },
  "requestId": "req-abc123"
}

When scheduledAt is set, status is scheduled.

Errors ​

CodeCause
validation_errorMissing agentId, toNumber, or fromNumber; or unsupported llmModel
not_foundAgent doesn't exist or doesn't belong to your org
forbiddenfromNumber doesn't belong to your org
internal_error (503)Voice engine unavailable — no call is created

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