Skip to main content
Vobiz models recording the same way Twilio does: a <Record> verb for TwiML-style flows, an imperative API to start and stop recording on a live call, a recordings collection to list / fetch / delete, and transcription delivered to a callback URL. Migration is mostly a base-URL swap to https://api.vobiz.ai/api/v1, an auth-header swap (X-Auth-ID + X-Auth-Token in place of HTTP Basic), and a few renamed SDK methods that each take an explicit auth_id.
Set your credentials once: AUTH_ID is your Vobiz Auth ID (MA_…) and AUTH_TOKEN is your Auth Token. In the Vobiz SDK, api_key is the Auth ID (sent as X-Auth-ID), and every account-scoped method takes that auth_id explicitly as its first argument.

Twilio → Vobiz mapping

Before / after - record a voicemail in XML

Twilio’s <Record> and Vobiz’s <Record> share the verb name and most attributes. The main renames: recordingStatusCallbackcallbackUrl, and transcription is enabled with transcriptionType + transcriptionUrl instead of transcribe + transcribeCallback.
Building the XML in code? The Vobiz SDK ships the vobizxml builder (same ResponseElement + add_* pattern you may know from PlivoXML):

Before / after - start & stop recording on a live call

Twilio starts an in-call recording by POSTing to the call’s Recordings sub-resource and stops it by updating that recording’s Status. Vobiz gives each action a dedicated method keyed by (auth_id, call_uuid), so you never have to track a separate recording SID just to stop it.

Before / after - list, fetch, and delete recordings

The recordings collection maps almost one-to-one. Twilio addresses a recording as recordings(sid); Vobiz passes the id as recording_id and (as everywhere) an explicit auth_id.

Transcription callbacks

Both platforms deliver the transcript to a URL you own rather than blocking the call. Twilio posts transcribeCallback parameters; Vobiz posts to the transcriptionUrl you set on <Record> (or via transcription_type='auto' on start_recording). Point Vobiz at your existing endpoint and remap a few field names:
Vobiz · Flask (transcription webhook)

Key differences

  • Stopping a recording is a single call. Vobiz’s record_calls.stop_recording(auth_id, call_uuid) stops the active recording by call - you address the call, not a separate recording SID, so there’s less state to carry through your app.
  • One <Record> for whole-call capture. Where Twilio recording is split across TwiML attributes and REST resources, Vobiz’s <Record recordSession="true"> captures the entire session (including later Speak/Play and bridged legs), and startOnDialAnswer="true" begins capture the moment the far leg answers.
  • Transcription is a two-tier auto / hybrid choice. transcriptionType="auto" uses the default Vobiz engine; hybrid blends Vobiz for common languages with a third-party provider for the long tail - a single attribute covers broad language coverage.
  • A dedicated callback for file readiness. Vobiz’s callbackUrl fires when the recording file is actually downloadable, so your download/processing job starts on a real signal instead of polling after the action URL returns.
  • Explicit auth_id everywhere. Every recording method takes the account auth_id as its first argument, which makes multi-account and sub-account workloads explicit and easy to route.
  • Auth headers instead of Basic auth. Vobiz authenticates with X-Auth-ID + X-Auth-Token headers against https://api.vobiz.ai/api/v1; the SDK sets these for you from api_key / auth_token.
  • Familiar verb and attribute names. action, method, maxLength, timeout, playBeep, and finishOnKey keep their Twilio meanings on the Vobiz <Record> verb, so most of your recording XML ports with only the callback/transcription attributes renamed.
See the full <Record> reference, pair recording with a menu using <Gather>, or go back to the Twilio → Vobiz overview.