Hang up a call
Ends an active or ringing call for the authenticated device (works for both outbound and inbound legs).
Ends an active or ringing call for the authenticated device (works for both outbound and inbound legs).
Authorization
bearerAuth Per-user API token (UUID v4) sent as Authorization: Bearer <token>. Identifies the tenant and user.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/calls/terminate" \ -H "Content-Type: application/json" \ -d '{ "call_id": "73EE9BC6A87B1AA5AED857F4DBB73B0E" }'{ "success": true, "call_id": "73EE9BC6A87B1AA5AED857F4DBB73B0E", "status": "ended", "timestamp": "2026-07-16T18:30:37Z"}{ "success": false, "error": "validation failed", "error_code": "VALIDATION_ERROR", "timestamp": "2026-06-15T12:00:00Z"}{ "success": false, "error": "validation failed", "error_code": "VALIDATION_ERROR", "timestamp": "2026-06-15T12:00:00Z"}{ "success": false, "error": "validation failed", "error_code": "VALIDATION_ERROR", "timestamp": "2026-06-15T12:00:00Z"}Start an outbound call POST
Places an outbound WhatsApp **voice** call (1:1) from the authenticated WUTS device to the given number, using the WUTS Voice engine (media relayed via WhatsApp's own SRTP relays). Returns immediately with status `ringing`. To carry live audio, mint a media token (POST /calls/media-token) and open the WSS media socket. NOTE: WhatsApp only allows calling a number you already have a conversation with; a cold contact is rejected with reason `enc`.
Archive or unarchive a chat POST
Archives or unarchives a chat for the connected account via a WhatsApp app-state patch. Because WUTS does not persist messages, no last-message key is sent, so WhatsApp may auto-unarchive the chat when a new inbound message arrives; an optional last_message_timestamp can be supplied as a hint.