Voice API

Live

The Bolrach cloud PBX (FreeSWITCH + carrier trunks) behind one key: list the platform's numbers, check PBX health, and place click-to-call bridges. Every dial-out runs through the PBX's own permission model — the extension's owner must be call-enabled.

Base URL https://api.bolrach.ioScopes voice:read, voice:callSpec openapi/voice.json

Endpoints

GET /v1/voice/dids

The platform's phone numbers with their label and assignment state.

curl "https://api.bolrach.io/v1/voice/dids" \
  -H "Authorization: Bearer bt_your_key_here"

Response

{
  "dids": [
    { "number": "5183003592", "label": null, "assigned": false, "state": "active" }
  ]
}
GET /v1/voice/status

Health of the PBX lanes: the FreeSWITCH event socket, the carrier link, and object counts. A dormant: true lane means that integration is currently disabled.

curl "https://api.bolrach.io/v1/voice/status" \
  -H "Authorization: Bearer bt_your_key_here"

Response

{
  "esl": { "dormant": false },
  "voipms": { "dormant": false },
  "counts": { "extensions": 13, "dids": 1, "queues": 3 }
}
POST /v1/voice/click-to-call

Classic click-to-call: the PBX rings fromExtension first, then bridges the answered leg to toNumber. Needs the high-trust voice:call scope, the extension must be assigned, and its owner must hold the PBX's calling permission — the API cannot dial out from unowned lines.

FieldTypeDescription
fromExtensionstring, requiredThe PBX extension that rings first.
toNumberstring, requiredDestination number.
contextstring, optionalFree-form tag stamped on the call log (e.g. a CRM record id).
curl -X POST "https://api.bolrach.io/v1/voice/click-to-call" \
  -H "Authorization: Bearer bt_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"fromExtension": "1001", "toNumber": "+15872001234", "context": "crm-lead-842"}'

Limits and errors

Plan rate limits are shared across the platform (plans table). An unknown or unassigned extension is a 400 with the PBX's reason (unknown_extension, extension_unassigned, or phone_calling_not_enabled when the owner lacks calling rights).

Changelog

DateChange
2026-07-14v1 launch: DIDs, PBX status and click-to-call. Call logs and SIP provisioning are planned.