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).
API key authentication - use your Zernio API key as a Bearer token
In: header
Query Parameters
Destination number, E.164 (leading + optional).
11 <= value <= 120Response 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,
"billableCostUSD": 0,
"totalCostUSD": 0
}
}{
"error": "Unauthorized"
}Mint a browser softphone session POST
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 just the handshake).
Get a call recording GET
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.