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.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Query Parameters
json returns { url } instead of a 302 redirect.
Value in
- "json"
Response 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.getVoiceCallRecording({ path: { id: 'abc123', },});console.log(data);{ "url": "string"}Blind-transfer a live call
Moves the call's current leg to a new destination (a phone number or a SIP endpoint). This is a BLIND transfer: control of the leg is handed off and the call ends normally when the transferred leg hangs up. The caller ID presented on the transfer leg is always your own number.
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`).