Add a participant to a call

Dials one of your app users or a phone number into a call that is in a conference room, and answers with the participant's own call record. The participant is a call of their own: it has its own id, can be looked up and hung up, and is billed and reported through call.completed and call.failed like any other call. Every participant needs a positive balance. A phone participant is called from caller_id, which must be one of your numbers, or from the call's owning number when omitted, and needs a destination you may call. Only a call your answer connected to a conference can take participants: a call connected to a user or a number answers 409.

POST
/v3/calls/{id}/participants

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v3/calls/call_9f2ab000-0000-4000-8000-000000000001/participants" \  -H "Idempotency-Key: req_abc123_retry1" \  -H "Content-Type: application/json" \  -d '{    "to": {      "kind": "number",      "value": "+14155551234"    },    "caller_id": "+12025550123",    "sandbox": false  }'
{
  "success": true,
  "data": {
    "id": "call_9f2ab000-0000-4000-8000-000000000002",
    "direction": "outbound",
    "from": {
      "kind": "conference",
      "value": "daily-standup"
    },
    "to": {
      "kind": "number",
      "value": "+14155551234"
    },
    "number": "+12025550123",
    "status": "INITIATED",
    "failure_reason": null,
    "started_at": "2026-07-22T12:00:00+00:00",
    "answered_at": null,
    "ended_at": null,
    "duration_seconds": null,
    "price": null,
    "recording_available": false,
    "timeline": null
  },
  "error": null,
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-10-06T09:10:22.701633+00:00",
    "version": "v3"
  }
}
{
  "success": false,
  "data": null,
  "error": {
    "code": "BUSINESS_022",
    "message": "Phone number is not owned by this account",
    "details": null,
    "doc_url": "https://docs.sent.dm/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-10-06T09:10:22.7016353+00:00",
    "version": "v3"
  }
}
Empty
{
  "success": false,
  "data": null,
  "error": {
    "code": "BUSINESS_003",
    "message": "Insufficient balance",
    "details": null,
    "doc_url": "https://docs.sent.dm/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-10-06T09:10:22.7016357+00:00",
    "version": "v3"
  }
}
Empty
{
  "success": false,
  "data": null,
  "error": {
    "code": "RESOURCE_015",
    "message": "Call not found",
    "details": null,
    "doc_url": "https://docs.sent.dm/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-10-06T09:10:22.7016361+00:00",
    "version": "v3"
  }
}
{
  "success": false,
  "data": null,
  "error": {
    "code": "CONFLICT_009",
    "message": "Call is not in a conference",
    "details": null,
    "doc_url": "https://docs.sent.dm/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-10-06T09:10:22.7016373+00:00",
    "version": "v3"
  }
}
{
  "success": false,
  "data": null,
  "error": {
    "code": "INTERNAL_001",
    "message": "An unexpected error occurred while adding the participant",
    "details": null,
    "doc_url": "https://docs.sent.dm/reference/api/error-catalog"
  },
  "meta": {
    "request_id": "req_7X9zKp2jDw",
    "timestamp": "2026-10-06T09:10:22.7016377+00:00",
    "version": "v3"
  }
}