Skip to main content
POST
/
api
/
calls
/
ingest
Ingest an externally completed call record
curl --request POST \
  --url https://your-instance.example.com/api/calls/ingest \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "direction": "outbound",
  "fromNumber": "+14165550100",
  "toNumber": "+14165550199",
  "duration": 154,
  "status": "completed",
  "transcript": [
    {
      "role": "agent",
      "message": "Hi, this is Alex from Example Corp.",
      "timestamp": 0.5
    },
    {
      "role": "user",
      "message": "Hey Alex.",
      "timestamp": 2.8
    }
  ],
  "summary": "Confirmed appointment for Friday at 2pm.",
  "recording": "https://vendor.example/recordings/abc123.mp3",
  "externalCallId": "vendor-call-abc123",
  "agentName": "Alex (Example Agent)",
  "callStartTime": "2026-05-15T09:10:00.000Z"
}
'
{
  "success": true,
  "deduplicated": true,
  "callId": "64f0a1b2c3d4e5f6a7b8cb00"
}

Documentation Index

Fetch the complete documentation index at: https://docs.tetherai.ca/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Vendor-agnostic completed-call payload. transcript, summary, and recording are required when status === "completed".

direction
enum<string>
required
Available options:
inbound,
outbound
fromNumber
string
required

E.164 (e.g. +14155551234).

toNumber
string
required

E.164.

duration
number
required

Call duration in seconds (non-negative).

status
enum<string>
required
Available options:
completed,
no-answer,
busy,
failed
transcript
object[]

Structured transcript (required when status is "completed"). Plain text is not accepted.

summary
string

Required when status is "completed".

recording
string

Required when status is "completed". Base64-encoded MP3 (optionally with a data:audio/...;base64, prefix) or a publicly downloadable URL.

externalCallId
string

Optional external identifier used for idempotency.

agentName
string

Name of the external AI agent.

metadata
object

Arbitrary vendor metadata (stored on providerMetadata.metadata).

callerName
string

Used to backfill placeholder contact name when the contact was newly created as "Unknown Caller".

callStartTime
string<date-time>

ISO start time; defaults to now.

Response

Duplicate detected via externalCallId — existing record returned

success
enum<boolean>
required
Available options:
true
deduplicated
enum<boolean>
required
Available options:
true
callId
string
required