---
title: "Request call termination"
method: POST
path: "/v1/telephony/calls/{id}/hangup"
tags: ["Telephony"]
---

# Request call termination

`POST /v1/telephony/calls/{id}/hangup`

## Request

- Base URL: `https://api.pyai.com`
- URL: `https://api.pyai.com/v1/telephony/calls/{id}/hangup`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Idempotent stop for an integration call. Acknowledgment means the stop intent is durable; poll the call for confirmed completion. Requires telephony:manage.

## Path parameters

- `id` string, required

## Response `202`

Stop accepted

- TelephonyCall
  - `version` integer
  - `project_id` string
  - `client_reference` string, nullable
  - `agent_release_id` string, nullable
  - `stop_requested` boolean
  - `object` string
  - `id` string
  - `from_number_id` string
  - `to` string
  - `agent_id` string
  - `use_case` 'transactional' | 'support' | 'sales' | 'collections' | 'survey'
  - `routing_profile` 'quality_first' | 'balanced' | 'cost_optimized'
  - `status` 'queued' | 'dispatching' | 'ringing' | 'in_progress' | 'completed' | 'failed' | 'canceled' | 'dispatch_unknown'
  - `attempt_count` integer
  - `max_attempts` integer
  - `failure_reason` 'network_unavailable' | 'congestion' | 'timeout' | 'no_answer' | 'busy' | 'rejected' | 'invalid_number' | 'identity_blocked' | 'compliance_blocked' | 'unknown' | 'null', nullable
  - `created_at` integer: Unix ms.
  - `updated_at` integer: Unix ms.
  - `answered_at` integer, nullable: Unix ms.
  - `ended_at` integer, nullable: Unix ms.
  - `artifacts` object: Post-call artifact and billing readiness. Included on the single-call detail response; pending until the media edge finalizes the call.
    - `status` 'pending' | 'ready' | 'unavailable'
    - `omni_call_id` string
    - `recording` object
      - `status` string
      - `reason` string, nullable
      - `resource` string, nullable
    - `transcript` object
      - `status` string
      - `text` string, nullable: Speaker-labelled transcript text when available inline.
      - `resource` string, nullable
    - `ai_usage` object: AI usage joined to the gateway ledger for every media session of this call. Pending until all evidence is present.
      - `status` 'pending' | 'recorded'
      - `meter` string
      - `units` number
      - `billable_units` number
    - `usage` object
      - `status` 'pending' | 'recorded'
      - `meter` string
      - `units` number
      - `billable` boolean

## Other responses

- `401`: Missing or invalid API key (`code: unauthorized`)
- `404`: Resource not found (`code: not_found`)
- `409`: Call does not support this operation

## Changes

- **2026-10-21** `4a2ff9167ff7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pyai/apis/pyai-api/changes/v1/telephony/calls/:id/hangup/post.md)

---

[API](https://skmtc.dev/pyai/apis/pyai-api.md) · [All operations](https://skmtc.dev/pyai/apis/pyai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pyai/apis/pyai-api/revisions/4a2ff9167ff7?raw)
