Calls

Start an outbound call

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`.

POST
/calls

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.

Authorization

bearerAuth
AuthorizationBearer <token>

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

application/json

curl -X POST "https://example.com/calls" \  -H "Content-Type: application/json" \  -d '{    "to": "5511999999999"  }'
{  "success": true,  "call_id": "73EE9BC6A87B1AA5AED857F4DBB73B0E",  "to": "5511999999999@s.whatsapp.net",  "status": "ringing",  "timestamp": "2026-07-16T18:19:47Z"}
{  "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"}
{  "success": false,  "error": "validation failed",  "error_code": "VALIDATION_ERROR",  "timestamp": "2026-06-15T12:00:00Z"}