The short version
- The REST paths share the same shape:
/api/v1/Account/{auth_id}/...with PascalCase resource segments (/Account/.../Call/, identical to Plivo). - The SDK methods share names and signatures.
client.calls.create(...)takes the same arguments on both platforms; only the client init and base URL differ. - The make-call response carries the same fields:
request_uuid(equivalent tocall_uuid),api_id, andmessage(Vobiz returns"Call fired"). - Bulk dialing is unchanged: both Plivo and Vobiz accept multiple destinations in a single
to_separated by<(for example,a<b<c).
Resource and method mapping
The table covers the resources most teams use. The Vobiz REST path assumes the basehttps://api.vobiz.ai and your account auth_id. SDK methods are shown in their Python form; the Node SDK uses the same names in camelCase (for example, calls.create).
| Plivo resource / method | Vobiz REST path | Vobiz SDK method |
|---|---|---|
| Calls | ||
Make a call (POST /Call/) | POST /api/v1/Account/{auth_id}/Call/ | client.calls.create(from_, to_, answer_url, ...) |
| Get a live call | GET /api/v1/Account/{auth_id}/Call/{call_uuid}/ | client.calls.get(call_uuid) |
| List calls | GET /api/v1/Account/{auth_id}/Call/ | client.calls.list(...) |
| Hang up a call | DELETE /api/v1/Account/{auth_id}/Call/{call_uuid}/ | client.calls.hangup(call_uuid) |
| Transfer a call | POST /api/v1/Account/{auth_id}/Call/{call_uuid}/ | client.calls.transfer(call_uuid, ...) |
| Play / speak / send digits | POST /api/v1/Account/{auth_id}/Call/{call_uuid}/Play/ (etc.) | client.calls.play_music(...), client.calls.speak_text(...), client.calls.send_digits(...) |
| Applications | ||
| Create / list / get / update / delete | POST|GET|DELETE /api/v1/Account/{auth_id}/Application/ | client.applications.create(...), .list(...), .get(app_id), .update(app_id, ...), .delete(app_id) |
| Attach / detach a number | POST /api/v1/Account/{auth_id}/Number/{number}/ | client.numbers.update(number, app_id=...) |
| Numbers | ||
| Search inventory | GET /api/v1/Account/{auth_id}/PhoneNumber/ | client.phone_numbers.search(...) |
| Buy a number | POST /api/v1/Account/{auth_id}/PhoneNumber/{e164}/ | client.phone_numbers.purchase_from_inventory(e164, currency) |
| List owned numbers | GET /api/v1/Account/{auth_id}/Number/ | client.numbers.list(...) |
| Release a number | DELETE /api/v1/Account/{auth_id}/Number/{number}/ | client.numbers.release(number) |
| Recordings | ||
| List / get / delete | GET|DELETE /api/v1/Account/{auth_id}/Recording/ | client.recordings.list(...), .get(recording_id), .delete(recording_id) |
| Conferences | ||
| Get / list / member ops | GET /api/v1/Account/{auth_id}/Conference/{name}/ | client.conferences.get(name), then .kick_member(...), .mute_member(...), .record(...) |
| Sub-accounts | ||
| Create / list / get / update / delete | POST|GET|DELETE /api/v1/Account/{auth_id}/Subaccount/ | client.subaccounts.create(...), .list(...), .get(sub_auth_id), .update(...), .delete(...) |
Use the canonical reference pages for exact request and response fields. The make-call contract is documented in full at Make an Outbound Call.
Before / after: making a call
The make-call signature is the same on Plivo and Vobiz. You change the import and how you build the client; thecalls.create(...) arguments stay put.
ring_url, hangup_url, fallback_url, machine_detection, sip_headers, and time_limit: pass them exactly as you did on Plivo.
Raw HTTP equivalent
If you call the REST API directly instead of through an SDK, the change is also small: swap the base host tohttps://api.vobiz.ai, send your Vobiz auth_id in the path, and authenticate with the X-Auth-ID and X-Auth-Token headers. The path casing (/Account/.../Call/) is identical to Plivo’s. See Authentication & base URL for the exact credentials and host swap.
Beyond parity
A few Vobiz resources have no direct Plivo counterpart and are worth knowing about as you migrate:- Trunk — Vobiz exposes SIP trunking as a first-class resource, with credentials, IP-ACL, and origination-URI management, rather than folding it into the endpoint model.
- DID cool-off — released numbers enter a 15-day cool-off before they re-enter inventory, so plan number churn accordingly.
- Granular capacity — the account object surfaces per-account concurrency and calls-per-second (CPS) limits you can read and reason about directly.
Next
Migrate your XML
Map Plivo XML verbs to VobizXML and update your answer-URL responses.
Plivo to Vobiz overview
Back to the full migration guide and checklist.