> This page is for Voice APIs.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://dev.hume.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://dev.hume.ai/_mcp/server.

# Chat Ended

POST 

Sent when an EVI chat ends.

Reference: https://dev.hume.ai/voice/reference/speech-to-speech-evi/chat-webhooks/chat-ended

## Request

### Payload

- `chat_group_id` (string, required) — Unique ID of the **Chat Group** associated with the **Chat** session.
- `chat_id` (string, required) — Unique ID of the **Chat** session.
- `config_id` (string, required, nullable) — Unique ID of the EVI **Config** used for the session.
- `caller_number` (string, required, nullable) — Phone number of the caller in E.164 format (e.g., `+12223333333`). This field is included only if the Chat was created via the [Twilio phone calling](/docs/empathic-voice-interface-evi/phone-calling) integration.
- `custom_session_id` (string, required, nullable) — User-defined session ID. Relevant only when employing a [custom language model](/docs/empathic-voice-interface-evi/custom-language-model) in the EVI Config.
- `duration_seconds` (integer, required) — Total duration of the session in seconds.
- `end_reason` (enum, required) — Reason for the session's termination.
  - Allowed values: `ACTIVE`, `USER_ENDED`, `USER_TIMEOUT`, `INACTIVITY_TIMEOUT`, `MAX_DURATION_TIMEOUT`, `SILENCE_TIMEOUT`, `ERROR`
- `end_time` (integer, required) — Unix timestamp (in milliseconds) indicating when the session ended.
- `twilio_metadata` (map from string to string, required, nullable) — Twilio metadata associated with the chat. This field is included only if the Chat was created via the [Twilio phone calling](/docs/empathic-voice-interface-evi/phone-calling) integration. Fields may include `call_sid`, `account_sid`, `from_number`, `to_number`, `caller_name`, `caller_number`, `from_city`, `from_state`, `from_zip`, `from_country`, `to_city`, `to_state`, `to_zip`, and `to_country`.If a specific metadata is not available, this field will be set to an empty string.
- `event_name` ("chat_ended", optional, default: chat_ended) — Always `chat_ended`.