Estimate call cost
Pre-call cost estimate for a PSTN call: the carrier leg plus optional
recording and transcription add-ons. Same billing formula as the
post-call invoice, so the quote and the final charge can't disagree.
The per-minute figure is deliberately conservative (the real cost
comes from the settled carrier record after the call), so estimates
trend slightly over the actual invoice. Parity endpoint of
GET /v1/whatsapp/calls/estimate, minus the Meta line (PSTN calls
have no separate Meta bill, so totalCostUSD equals
billableCostUSD).
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Query Parameters
Destination number, E.164 (leading + optional).
The number the call would dial from, E.164. When it is verified on a Branded Calling identity and to is a US number, the estimate includes the per-call Branded Calling surcharge.
1 <= value <= 1201Response Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.voice.getVoiceCallEstimate({ query: { to: 'string', },});console.log(data);{ "destinationCountry": "string", "minutes": 0, "perMinuteUsd": 0, "breakdown": { "telnyxCostUSD": 0, "recordingCostUSD": 0, "transcriptionCostUSD": 0, "brandedCallUSD": 0, "billableCostUSD": 0, "totalCostUSD": 0 }}Get a call recording
Resolves a fresh, playable MP3 URL for the call's recording (provider-signed URLs expire ~10 minutes after signing, so this endpoint re-signs on demand). Default responds `302 Found` redirecting to the fresh URL; pass `as=json` to receive `{ url }` instead.
Mint a browser softphone session
Step 1 of the two-step browser softphone handshake. Mints a WebRTC session (token + credential) the browser registers with the `@telnyx/webrtc` SDK. Once registered, call `POST /v1/voice/calls/web/dial` with the returned `credentialId` to place the call. The split avoids bridging to a browser that has not finished registering. The token lives ~1 hour (it must outlive the whole call, not only the handshake).