List call history for an account
Compact history listing for a single connected account. Results are scoped to the resolved SocialAccount; profile-scoped team members cannot read calls on sibling accounts.
Cursor pagination: pass the returned nextCursor as before to fetch
the next page (same scheme as GET /v1/calls). since/until remain
as absolute range filters and combine with the cursor.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Query Parameters
Value in
- "ringing"
- "answered"
- "ended"
- "failed"
Value in
- "inbound"
- "outbound"
date-timedate-timeReturn calls with startedAt strictly before this instant (use the previous page's nextCursor).
date-time1 <= value <= 200Response Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.whatsappcalling.listWhatsAppCalls({ query: { accountId: 'account_abc123', },});console.log(data);{ "calls": [ { "_id": "string", "direction": "inbound", "from": "string", "to": "string", "status": "ringing", "startedAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "durationSeconds": 0, "endReason": "hangup", "recordingUrl": "string", "billing": { "metaCostUSD": 0, "telnyxCostUSD": 0, "recordingCostUSD": 0, "billableCostUSD": 0, "totalCostUSD": 0, "currency": "string" } } ], "nextCursor": "2019-08-24T14:15:22Z"}Check call permission
Returns the permission state and the list of available actions for a given consumer wa_id (e.g. `start_call`, `send_call_permission_request`). Use this before placing a call to decide whether to prompt for consent first.
Initiate outbound call
Initiates an outbound Business-Initiated Call. The Telnyx-side SIP leg is originated server-side (Option B: SIP-first). Telnyx INVITEs Meta directly over TLS:5061 with the SIP digest credentials we captured at calling-enablement time). No client-side SDP is required; pass only `accountId` and `to`. To send the consumer the call-consent prompt instead of placing a call, pass `action: "send_call_permission_request"` (+ optional `bodyText`). The consumer must tap Allow in WhatsApp before `start_call` is permitted; Meta limits the prompt to 1 per consumer per 24h (2 per 7 days) and requires an open 24h service window. **Idempotency:** send an `Idempotency-Key` header to make retries safe; same key + same body replays the original response instead of dialing (and billing) a second call.