For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Reject an inbound phone session before it is answered. The session must currently be ringing or in early media; otherwise the request returns `409 Conflict`.
Use the `reason` field to select the caller-facing outcome, such as busy, rejected, number not found.
A `202 Accepted` response means the rejection request was accepted for processing; it does not mean the session has ended. Wait for the deferred `session.ended` webhook to confirm termination.
**Tip:** Use this endpoint only for an unanswered inbound call. After the call is answered, this endpoint returns `409 Conflict`; use [Delete session](/api/sessions/delete) to disconnect a Session whether or not its call has been answered.
**Triggered webhooks:** `session.ended` (deferred)
Authentication
AuthorizationBearer
Application auth. Send `Authorization: Bearer <app_uuid>:<api_key>` using any active key in the app's collection. See [Authentication](https://voice-platform.docs.buildwithfern.com/api/authentication) for details.
Optional key for safely retrying mutating requests. See [Idempotency](https://voice-platform.docs.buildwithfern.com/idempotency) for details.
Operation-IdstringOptionalformat: "uuid"
optional client-supplied lowercase RFC-4122 v4 UUID returned as operation_uuid; platform generates one when omitted; correlation metadata distinct from Idempotency-Key.
Request
This endpoint expects an object.
reasonenumRequired
Public hangup cause for the resulting session.ended event: number_not_found, invalid_number, timeout, busy, or rejected.
Allowed values:
Response
Command accepted for async execution
operation_uuidstringformat: "uuid"
statusenum
already_endedtrueOptional
Optional. Set to true on idempotent terminal commands when the session was already in a terminal state at the time the request was received. Absent otherwise.
Errors
400
Bad Request Error
401
Unauthorized Error
404
Not Found Error
409
Conflict Error
413
Content Too Large Error
415
Unsupported Media Type Error
422
Unprocessable Entity Error
500
Internal Server Error
503
Service Unavailable Error
Reject an inbound phone session before it is answered. The session must currently be ringing or in early media; otherwise the request returns 409 Conflict.
Use the reason field to select the caller-facing outcome, such as busy, rejected, number not found.
A 202 Accepted response means the rejection request was accepted for processing; it does not mean the session has ended. Wait for the deferred session.ended webhook to confirm termination.
Tip: Use this endpoint only for an unanswered inbound call. After the call is answered, this endpoint returns 409 Conflict; use Delete session to disconnect a Session whether or not its call has been answered.
Triggered webhooks:session.ended (deferred)
Application auth. Send Authorization: Bearer <app_uuid>:<api_key> using any active key in the app’s collection. See Authentication for details.
Optional key for safely retrying mutating requests. See Idempotency for details.