Skip to main content

Overview and Examples

The MiRTA PBX OpenAPI endpoint exposes configuration and reporting APIs as an OpenAPI 3.0.3 JSON specification. OpenAPI describes the available paths, methods, authentication schemes, request bodies, and response schemas in a machine-readable format.

Using the OpenAPI specification makes integrations easier to test and maintain: developers can generate client code, import the API into tools such as Postman or Swagger UI, validate request shapes, and keep documentation aligned with the endpoint implementation.

Base URL

https://pbx.example.com/pbx/openapi.php
https://pbx.example.com/pbx/openapi.php?spec=1
https://pbx.example.com/pbx/openapi.php/openapi.json
https://pbx.example.com/pbx/openapi.php/swagger.json

Authentication

Send the API key as a key query parameter, an X-API-Key header, or an Authorization: Bearer token. Tenant API keys require a tenant parameter. Global keys can access global administration objects and can list tenant-scoped objects across tenants when no tenant parameter is supplied.

curl -H "X-API-Key: TENANT_API_KEY" \
  "https://pbx.example.com/pbx/openapi.php/extensions?tenant=CANISTRACCI"

curl -H "Authorization: Bearer TENANT_API_KEY" \
  "https://pbx.example.com/pbx/openapi.php/extensions/number/100?tenant=CANISTRACCI"

curl "https://pbx.example.com/pbx/openapi.php/extensions?tenant=CANISTRACCI&key=TENANT_API_KEY"

Endpoint Patterns

ActionPattern
ListGET https://pbx.example.com/pbx/openapi.php/extensions?tenant=CANISTRACCI
Get by IDGET https://pbx.example.com/pbx/openapi.php/extensions/EXTENSION_ID?tenant=CANISTRACCI
Get extension by numberGET https://pbx.example.com/pbx/openapi.php/extensions/number/100?tenant=CANISTRACCI
CreatePOST https://pbx.example.com/pbx/openapi.php/extensions?tenant=CANISTRACCI
ModifyPATCH https://pbx.example.com/pbx/openapi.php/extensions/EXTENSION_ID?tenant=CANISTRACCI
DeleteDELETE https://pbx.example.com/pbx/openapi.php/extensions/EXTENSION_ID?tenant=CANISTRACCI

Supported Objects

Each supported object has its own page in this chapter. Most configuration objects support CRUD operations. CDR and Simple CDR are read-only reporting endpoints. The examples use fictional IDs, numbers, names, and keys; replace them with values from the target PBX.

ObjectPrimary pathAuthentication scopeOperations or required fields
CDR/cdrsTenant API key or global key; GET onlyGET only
Simple CDR/simplecdrsTenant API key or global key; GET onlyGET only
Extension/extensionsTenant API keynumber or ex_number
Tenant/tenantsGlobal API keyte_name, te_code
User/usersGlobal API keyus_username
User Profile/userprofilesGlobal API keyup_name
Routing Profile/routingprofilesGlobal API keyrp_name
Provider/providersGlobal API keypr_name
Voicemail/voicemailsTenant API keymailbox
IVR/ivrsTenant API keyiv_name
Custom Destination/customdestinationsTenant API key or global key with global=1cu_name, cu_ct_id
Condition/conditionsTenant API keyco_type
Hunt List/huntlistsTenant API keyhu_name
DID/didsTenant API keydi_number
Queue/queuesTenant API keyNo required create field listed
Setting/settingsTenant API key or global key with global=1se_code
Media File/mediafilesTenant API key or global key with global=1me_name
Music On Hold/musiconholdsTenant API key or global key with global=1mu_name
Paging Group/paginggroupsTenant API keypa_name, pa_number
Conference Room/conferenceroomsTenant API keycr_name, cr_number
Flow/flowsTenant API keyfl_name
Tenant Variable/tenantvariablesTenant API keytv_al_id
DISA/disasTenant API keyds_name
Caller ID Blacklist/calleridblacklistsTenant API key or global key with global=1bl_callerid
Campaign/campaignsTenant API keyca_name
Campaign Number/campaignnumbersTenant API keycn_ca_id, cn_number
Cron Job/cronjobsTenant API key or global key with global=1cr_name
Feature Code/featurecodesTenant API key or global key with global=1fe_code
Short Number/shortnumbersTenant API key or global key with global=1sn_number
Provisioning Phone/provisioningphonesTenant API keyph_name, ph_mac

Errors

Errors are returned as JSON with an error code and message. Common errors include missing_api_key, invalid_api_key, tenant_not_found, invalid_json, missing_required_field, read_only_api_key, method_not_allowed, and not_found.