Skip to main content
GET
/
api
/
v1
/
{account_id}
/
{project_id}
/
outbound-call
/
status
/
{call_sid}
Get call status
curl --request GET \
  --url https://api.example.com/api/v1/{account_id}/{project_id}/outbound-call/status/{call_sid} \
  --header 'X-CONNECTOR-ID: <x-connector-id>'
{
  "call_sid": "<string>",
  "account_id": "<string>",
  "project_id": "<string>",
  "client_env": "<string>",
  "connector_id": "<string>",
  "created_at": "<string>",
  "status": "<string>",
  "last_updated": "<string>",
  "event_history": [
    {}
  ]
}
Retrieves the current status and event history for an outbound call. Use this endpoint to monitor call progress after triggering a call.
Call status data is retained for approximately 2 hours after the call ends. After this period, the endpoint will return a 404 Not Found error.

Request

Path parameters

account_id
string
required
Your PolyAI account ID
project_id
string
required
Your PolyAI project ID
call_sid
string
required
The unique call identifier returned from the trigger endpoint (starts with OUT-)

Headers

X-CONNECTOR-ID
string
required
Connector ID for outbound calls

Response

call_sid
string
The call identifier
account_id
string
The account ID
project_id
string
The project ID
client_env
string
The client environment
connector_id
string
The connector ID
created_at
string
ISO 8601 timestamp when the call was created
status
string
Current status of the call. Possible values:
  • CREATED - Call record has been created
  • queued - Call is queued for processing
  • ringing - Call is ringing at the destination
  • in-progress - Call is active and connected
  • completed - Call ended successfully
  • failed - Call failed to connect
  • no-answer - Call was not answered
  • busy - Destination was busy
  • cancelled - Call was cancelled before connection
last_updated
string
ISO 8601 timestamp when the status was last updated
event_history
array
List of status change events, each containing a status and timestamp

Example

curl -X GET "https://api.us-1.platform.polyai.app/api/v1/your-account-id/your-project-id/outbound-call/status/OUT-550e8400-e29b-41d4-a716-446655440000" \
  -H "X-CONNECTOR-ID: YOUR_CONNECTOR_ID"

Response example

{
  "call_sid": "OUT-550e8400-e29b-41d4-a716-446655440000",
  "account_id": "your-account-id",
  "project_id": "your-project-id",
  "client_env": "production",
  "connector_id": "your-connector-id",
  "created_at": "2024-03-15T10:00:00Z",
  "status": "completed",
  "last_updated": "2024-03-15T10:05:30Z",
  "event_history": [
    {"CREATED": "2024-03-15T10:00:00Z"},
    {"queued": "2024-03-15T10:00:01Z"},
    {"ringing": "2024-03-15T10:00:05Z"},
    {"in-progress": "2024-03-15T10:00:12Z"},
    {"completed": "2024-03-15T10:05:30Z"}
  ]
}

Error responses

400 Bad Request
Invalid call SID format.
401 Unauthorized
Invalid or missing connector ID.
404 Not Found
Call SID not found. This may occur if:
  • The call does not exist
  • The call was triggered with a different connector
  • More than 2 hours have passed since the call ended (status data expired)
500 Internal Server Error
Failed to retrieve call status. Retry with exponential backoff.

Polling recommendations

When monitoring call status:
  • Poll every 2-5 seconds during the queued and ringing phases
  • Reduce polling frequency to every 10-30 seconds once in-progress
  • Stop polling once status reaches a terminal state (completed, failed, no-answer, busy, cancelled)
  • Implement exponential backoff if you receive errors
  • Store the final status before the 2-hour retention window expires if you need long-term records

Notes

  • Call status is updated in real-time as the call progresses
  • The event_history field provides a complete audit trail of status changes
  • Terminal statuses (completed, failed, etc.) are final and will not change
  • Status data is retained for approximately 2 hours after the call ends - poll and store data if you need longer retention