V-Gate API reference

V-Gate API.

94 endpoints, 39 of them read-only. Every one is also a command in the orbit CLI, a method in the SDKs and a tool on the MCP server.

01

General

EndpointScopeParametersCLI · MCP tool
GET /vgate/cities
Locations a PBX can be created in, and whether each is accepting new ones
read—orbit vgate cities
vgate_cities
GET /vgate/templates
Starting templates for a new PBX
read—orbit vgate templates
vgate_templates
POST /vgate/pbx/{pbx}/simulate
Test a call flow: the path a call would take at a given time, without making a call
writepbx string
body: kind inbound | internal, to* string, from string, ext string, at string, presses string[], answer object, fail_trunks string[]
orbit vgate simulate <pbx>
vgate_simulate
02

balance

EndpointScopeParametersCLI · MCP tool
GET /vgate/balance
Prepaid balance for platform lines, and its latest movements
read—orbit vgate balance get
vgate_balance_get
POST /vgate/balance/topup
Add to the prepaid balance with Debit, the stored value on credits.yunzheng.space. Owner only; retry with the same idempotency_key is free
write
console only
body: amount_micros* integer, idempotency_key* stringorbit vgate balance topup
vgate_balance_topup
03

numbers

EndpointScopeParametersCLI · MCP tool
GET /vgate/numbers/available
Platform numbers available to buy
read—orbit vgate numbers available
vgate_numbers_available
GET /vgate/pbx/{pbx}/numbers
The PBX's numbers
readpbx stringorbit vgate numbers list <pbx>
vgate_numbers_list
POST /vgate/pbx/{pbx}/numbers
Create a number
writepbx string
body: e164 string, trunk_id string
orbit vgate numbers create <pbx>
vgate_numbers_create
GET /vgate/pbx/{pbx}/numbers/{id}
One number
readpbx string
id string
orbit vgate numbers get <pbx> <id>
vgate_numbers_get
PATCH /vgate/pbx/{pbx}/numbers/{id}
Change a number
writepbx string
id string
body: e164 string, trunk_id string
orbit vgate numbers patch <pbx> <id>
vgate_numbers_patch
DELETE /vgate/pbx/{pbx}/numbers/{id}
Delete a number; refused while anything routes to it
writepbx string
id string
orbit vgate numbers delete <pbx> <id>
vgate_numbers_delete
PUT /vgate/pbx/{pbx}/numbers/{id}/flow
Set what calls to a number do, in the simple editor's terms; the ring groups and business hours it needs are made or updated
writepbx string
id string
body: JSON
orbit vgate numbers flow <pbx> <id>
vgate_numbers_flow
POST /vgate/pbx/{pbx}/numbers/buy
Buy a platform number; the first month is charged to the balance
writepbx string
body: number_id* string
orbit vgate numbers buy <pbx>
vgate_numbers_buy
04

pbx

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx
Your PBXs
read—orbit vgate pbx list
vgate_pbx_list
POST /vgate/pbx
Create a PBX in a location, optionally from a template. Template extensions' SIP passwords are returned once.
writebody: name* string, city string, template small-office | reception | after-hours | contact-centre | conference | personal | blank, timezone string, language en | zhorbit vgate pbx create
vgate_pbx_create
GET /vgate/pbx/{pbx}
One PBX
readpbx stringorbit vgate pbx get <pbx>
vgate_pbx_get
PATCH /vgate/pbx/{pbx}
Rename, change time zone or language, or change outbound calling and spending settings
writepbx string
body: name string, timezone string, language en | zh, settings object
orbit vgate pbx patch <pbx>
vgate_pbx_patch
DELETE /vgate/pbx/{pbx}
Delete a PBX with everything in it; platform numbers are released
writepbx stringorbit vgate pbx delete <pbx>
vgate_pbx_delete
POST /vgate/pbx/{pbx}/resume
Resume outbound calls after a pause
writepbx stringorbit vgate pbx resume <pbx>
vgate_pbx_resume
POST /vgate/pbx/{pbx}/move
Move the PBX to another location; its phones sign in again there by themselves. Refused while a call is up
writepbx string
body: city* string
orbit vgate pbx move <pbx>
vgate_pbx_move
POST /vgate/pbx/{pbx}/reload
Apply the current configuration now
writepbx stringorbit vgate pbx reload <pbx>
vgate_pbx_reload
05

extensions

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/extensions
The PBX's extensions
readpbx stringorbit vgate extensions list <pbx>
vgate_extensions_list
POST /vgate/pbx/{pbx}/extensions
Create an extension
writepbx string
body: number string, name string, user_email string, caller_id_name string, caller_id_number string, voicemail object, dnd boolean, forward object, ring_timeout integer, outbound_class string, record string, max_calls integer
orbit vgate extensions create <pbx>
vgate_extensions_create
GET /vgate/pbx/{pbx}/extensions/{id}
One extension
readpbx string
id string
orbit vgate extensions get <pbx> <id>
vgate_extensions_get
PATCH /vgate/pbx/{pbx}/extensions/{id}
Change an extension
writepbx string
id string
body: number string, name string, user_email string, caller_id_name string, caller_id_number string, voicemail object, dnd boolean, forward object, ring_timeout integer, outbound_class string, record string, max_calls integer
orbit vgate extensions patch <pbx> <id>
vgate_extensions_patch
DELETE /vgate/pbx/{pbx}/extensions/{id}
Delete an extension; refused while anything routes to it
writepbx string
id string
orbit vgate extensions delete <pbx> <id>
vgate_extensions_delete
POST /vgate/pbx/{pbx}/extensions/{id}/password
Issue a new SIP password (shown once); the old one stops working
writepbx string
id string
orbit vgate extensions password <pbx> <id>
vgate_extensions_password
POST /vgate/pbx/{pbx}/extensions/import
Create extensions from CSV; each row succeeds or is reported by line
writepbx string
body: csv* string
orbit vgate extensions import <pbx>
vgate_extensions_import
06

trunks

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/trunks
The PBX's trunks
readpbx stringorbit vgate trunks list <pbx>
vgate_trunks_list
POST /vgate/pbx/{pbx}/trunks
Create a trunk
writepbx string
body: name string, mode string, host string, port integer, transport string, username string, password string, from_domain string, auth_ips string[], codecs string[], caller_id string, max_channels integer
orbit vgate trunks create <pbx>
vgate_trunks_create
GET /vgate/pbx/{pbx}/trunks/{id}
One trunk
readpbx string
id string
orbit vgate trunks get <pbx> <id>
vgate_trunks_get
PATCH /vgate/pbx/{pbx}/trunks/{id}
Change a trunk
writepbx string
id string
body: name string, mode string, host string, port integer, transport string, username string, password string, from_domain string, auth_ips string[], codecs string[], caller_id string, max_channels integer
orbit vgate trunks patch <pbx> <id>
vgate_trunks_patch
DELETE /vgate/pbx/{pbx}/trunks/{id}
Delete a trunk; refused while anything routes to it
writepbx string
id string
orbit vgate trunks delete <pbx> <id>
vgate_trunks_delete
POST /vgate/pbx/{pbx}/trunks/{id}/test
Re-register now; returns the last reported state
writepbx string
id string
orbit vgate trunks test <pbx> <id>
vgate_trunks_test
07

inbound

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/inbound
The PBX's inbound routes
readpbx stringorbit vgate inbound list <pbx>
vgate_inbound_list
POST /vgate/pbx/{pbx}/inbound
Create an inbound route
writepbx string
body: name string, number_id string, did string, cid_pattern string, destination string
orbit vgate inbound create <pbx>
vgate_inbound_create
GET /vgate/pbx/{pbx}/inbound/{id}
One inbound route
readpbx string
id string
orbit vgate inbound get <pbx> <id>
vgate_inbound_get
PATCH /vgate/pbx/{pbx}/inbound/{id}
Change an inbound route
writepbx string
id string
body: name string, number_id string, did string, cid_pattern string, destination string
orbit vgate inbound patch <pbx> <id>
vgate_inbound_patch
DELETE /vgate/pbx/{pbx}/inbound/{id}
Delete an inbound route; refused while anything routes to it
writepbx string
id string
orbit vgate inbound delete <pbx> <id>
vgate_inbound_delete
08

outbound

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/outbound
The PBX's outbound routes
readpbx stringorbit vgate outbound list <pbx>
vgate_outbound_list
POST /vgate/pbx/{pbx}/outbound
Create an outbound route
writepbx string
body: name string, priority integer, patterns object[], trunks string[], caller_id_override string, emergency boolean
orbit vgate outbound create <pbx>
vgate_outbound_create
GET /vgate/pbx/{pbx}/outbound/{id}
One outbound route
readpbx string
id string
orbit vgate outbound get <pbx> <id>
vgate_outbound_get
PATCH /vgate/pbx/{pbx}/outbound/{id}
Change an outbound route
writepbx string
id string
body: name string, priority integer, patterns object[], trunks string[], caller_id_override string, emergency boolean
orbit vgate outbound patch <pbx> <id>
vgate_outbound_patch
DELETE /vgate/pbx/{pbx}/outbound/{id}
Delete an outbound route; refused while anything routes to it
writepbx string
id string
orbit vgate outbound delete <pbx> <id>
vgate_outbound_delete
09

ivrs

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/ivrs
The PBX's IVRs
readpbx stringorbit vgate ivrs list <pbx>
vgate_ivrs_list
POST /vgate/pbx/{pbx}/ivrs
Create an IVR
writepbx string
body: name string, greeting string, options object, direct_dial boolean, timeout_s integer, repeat integer, invalid string, timeout string
orbit vgate ivrs create <pbx>
vgate_ivrs_create
GET /vgate/pbx/{pbx}/ivrs/{id}
One IVR
readpbx string
id string
orbit vgate ivrs get <pbx> <id>
vgate_ivrs_get
PATCH /vgate/pbx/{pbx}/ivrs/{id}
Change an IVR
writepbx string
id string
body: name string, greeting string, options object, direct_dial boolean, timeout_s integer, repeat integer, invalid string, timeout string
orbit vgate ivrs patch <pbx> <id>
vgate_ivrs_patch
DELETE /vgate/pbx/{pbx}/ivrs/{id}
Delete an IVR; refused while anything routes to it
writepbx string
id string
orbit vgate ivrs delete <pbx> <id>
vgate_ivrs_delete
10

groups

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/groups
The PBX's ring groups
readpbx stringorbit vgate groups list <pbx>
vgate_groups_list
POST /vgate/pbx/{pbx}/groups
Create a ring group
writepbx string
body: number string, name string, strategy string, members string[], ring_s integer, noanswer string, moh string
orbit vgate groups create <pbx>
vgate_groups_create
GET /vgate/pbx/{pbx}/groups/{id}
One ring group
readpbx string
id string
orbit vgate groups get <pbx> <id>
vgate_groups_get
PATCH /vgate/pbx/{pbx}/groups/{id}
Change a ring group
writepbx string
id string
body: number string, name string, strategy string, members string[], ring_s integer, noanswer string, moh string
orbit vgate groups patch <pbx> <id>
vgate_groups_patch
DELETE /vgate/pbx/{pbx}/groups/{id}
Delete a ring group; refused while anything routes to it
writepbx string
id string
orbit vgate groups delete <pbx> <id>
vgate_groups_delete
11

queues

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/queues
The PBX's queues
readpbx stringorbit vgate queues list <pbx>
vgate_queues_list
POST /vgate/pbx/{pbx}/queues
Create a queue
writepbx string
body: number string, name string, strategy string, agents string[], moh string, max_wait_s integer, announce_position boolean, announce_every_s integer, announce_wait boolean, timeout string
orbit vgate queues create <pbx>
vgate_queues_create
GET /vgate/pbx/{pbx}/queues/{id}
One queue
readpbx string
id string
orbit vgate queues get <pbx> <id>
vgate_queues_get
PATCH /vgate/pbx/{pbx}/queues/{id}
Change a queue
writepbx string
id string
body: number string, name string, strategy string, agents string[], moh string, max_wait_s integer, announce_position boolean, announce_every_s integer, announce_wait boolean, timeout string
orbit vgate queues patch <pbx> <id>
vgate_queues_patch
DELETE /vgate/pbx/{pbx}/queues/{id}
Delete a queue; refused while anything routes to it
writepbx string
id string
orbit vgate queues delete <pbx> <id>
vgate_queues_delete
12

timeconds

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/timeconds
The PBX's time conditions
readpbx stringorbit vgate timeconds list <pbx>
vgate_timeconds_list
POST /vgate/pbx/{pbx}/timeconds
Create a time condition
writepbx string
body: name string, schedule object[], holidays string[], match string, nomatch string
orbit vgate timeconds create <pbx>
vgate_timeconds_create
GET /vgate/pbx/{pbx}/timeconds/{id}
One time condition
readpbx string
id string
orbit vgate timeconds get <pbx> <id>
vgate_timeconds_get
PATCH /vgate/pbx/{pbx}/timeconds/{id}
Change a time condition
writepbx string
id string
body: name string, schedule object[], holidays string[], match string, nomatch string
orbit vgate timeconds patch <pbx> <id>
vgate_timeconds_patch
DELETE /vgate/pbx/{pbx}/timeconds/{id}
Delete a time condition; refused while anything routes to it
writepbx string
id string
orbit vgate timeconds delete <pbx> <id>
vgate_timeconds_delete
13

media

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/media
The PBX's media files
readpbx stringorbit vgate media list <pbx>
vgate_media_list
POST /vgate/pbx/{pbx}/media
Create a media file
writepbx string
body: name string, kind string, text string
orbit vgate media create <pbx>
vgate_media_create
GET /vgate/pbx/{pbx}/media/{id}
One media file
readpbx string
id string
orbit vgate media get <pbx> <id>
vgate_media_get
PATCH /vgate/pbx/{pbx}/media/{id}
Change a media file
writepbx string
id string
body: name string, kind string, text string
orbit vgate media patch <pbx> <id>
vgate_media_patch
DELETE /vgate/pbx/{pbx}/media/{id}
Delete a media file; refused while anything routes to it
writepbx string
id string
orbit vgate media delete <pbx> <id>
vgate_media_delete
GET /vgate/pbx/{pbx}/media/{id}/audio
The audio
readpbx string
id string
orbit vgate media audio <pbx> <id>
vgate_media_audio
PUT /vgate/pbx/{pbx}/media/{id}/audio
Upload the audio (MP3 or WAV, up to 20 MB, raw body)
writepbx string
id string
body: raw bytes
orbit vgate media upload <pbx> <id>
vgate_media_upload
POST /vgate/pbx/{pbx}/media/{id}/tts
Generate the audio from the text, in the PBX's language
writepbx string
id string
body: text string
orbit vgate media tts <pbx> <id>
vgate_media_tts
14

conferences

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/conferences
The PBX's conference rooms
readpbx stringorbit vgate conferences list <pbx>
vgate_conferences_list
POST /vgate/pbx/{pbx}/conferences
Create a conference room
writepbx string
body: number string, name string, pin string, mod_pin string, record boolean
orbit vgate conferences create <pbx>
vgate_conferences_create
GET /vgate/pbx/{pbx}/conferences/{id}
One conference room
readpbx string
id string
orbit vgate conferences get <pbx> <id>
vgate_conferences_get
PATCH /vgate/pbx/{pbx}/conferences/{id}
Change a conference room
writepbx string
id string
body: number string, name string, pin string, mod_pin string, record boolean
orbit vgate conferences patch <pbx> <id>
vgate_conferences_patch
DELETE /vgate/pbx/{pbx}/conferences/{id}
Delete a conference room; refused while anything routes to it
writepbx string
id string
orbit vgate conferences delete <pbx> <id>
vgate_conferences_delete
15

flows

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/flows/inbound
Every number's call flow as the simple editor reads it (null where only the advanced editor can show it)
readpbx stringorbit vgate flows inbound <pbx>
vgate_flows_inbound
GET /vgate/pbx/{pbx}/flows/outbound
Outgoing calls as the simple editor reads them: domestic, international and emergency presets for the PBX's country
readpbx stringorbit vgate flows outbound get <pbx>
vgate_flows_outbound_get
PUT /vgate/pbx/{pbx}/flows/outbound
Set outgoing calls in the simple editor's terms
writepbx string
body: JSON
orbit vgate flows outbound put <pbx>
vgate_flows_outbound_put
16

setup

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/setup
The setup guide: the PBX's dial-plan country and the one its numbers suggest, phone-line presets for a country, and safe first test calls
readpbx string
?country string
orbit vgate setup get <pbx>
vgate_setup_get
POST /vgate/pbx/{pbx}/setup/country
Change the country the PBX dials nationally in: without apply, the changes it would make to the outgoing-call presets; with apply, make them
writepbx string
body: country* string, apply boolean
orbit vgate setup country <pbx>
vgate_setup_country
POST /vgate/pbx/{pbx}/setup/callers
Add what callers hear from a preset (main menu, closed message, language choice, dial by extension, queue with call back). Only adds; a number is connected only if its calls go nowhere yet
writepbx string
body: preset* main-menu | closed | language | directory | queue-callback, exts object, message string, number_id string
orbit vgate setup callers <pbx>
vgate_setup_callers
17

recordings

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/recordings
Recorded calls, newest first
readpbx stringorbit vgate recordings list <pbx>
vgate_recordings_list
GET /vgate/pbx/{pbx}/recordings/{uuid}/audio
A recording's audio (WAV)
readpbx string
uuid string
orbit vgate recordings audio <pbx> <uuid>
vgate_recordings_audio
DELETE /vgate/pbx/{pbx}/recordings/{uuid}
Delete a recording
writepbx string
uuid string
orbit vgate recordings delete <pbx> <uuid>
vgate_recordings_delete
18

voicemails

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/voicemails
Voicemail messages, newest first
readpbx string
?ext string
orbit vgate voicemails list <pbx>
vgate_voicemails_list
GET /vgate/pbx/{pbx}/voicemails/{id}/audio
A message's audio (WAV)
readpbx string
id string
orbit vgate voicemails audio <pbx> <id>
vgate_voicemails_audio
PATCH /vgate/pbx/{pbx}/voicemails/{id}
Mark a message heard or new
writepbx string
id string
body: heard boolean
orbit vgate voicemails patch <pbx> <id>
vgate_voicemails_patch
DELETE /vgate/pbx/{pbx}/voicemails/{id}
Delete a message
writepbx string
id string
orbit vgate voicemails delete <pbx> <id>
vgate_voicemails_delete
19

calls

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/calls
Call records, newest first; format=csv for a CSV file
readpbx string
?direction inbound | outbound | internal
?ext string
?q string
?since string
?until string
?limit integer
?format json | csv
orbit vgate calls list <pbx>
vgate_calls_list
20

live

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/live
Calls in progress
readpbx stringorbit vgate live list <pbx>
vgate_live_list
POST /vgate/pbx/{pbx}/live/{uuid}/hangup
End a call in progress
writepbx string
uuid string
orbit vgate live hangup <pbx> <uuid>
vgate_live_hangup
21

events

EndpointScopeParametersCLI · MCP tool
GET /vgate/pbx/{pbx}/events
Outbound pauses and security events
readpbx stringorbit vgate events list <pbx>
vgate_events_list
Next

Related

Account API reference

Every Account endpoint in the Orbit API (10): method and path, the token scope it needs, its parameters, and the matching CLI command and MCP tool.

Organization API reference

Every Organization endpoint in the Orbit API (10): method and path, the token scope it needs, its parameters, and the matching CLI command and MCP tool.

Services API reference

Every Services endpoint in the Orbit API (15): method and path, the token scope it needs, its parameters, and the matching CLI command and MCP tool.

← All documentation