# ExoVoIP API > ExoVoIP is the cloud phone system (hosted PBX / centralino VoIP) by Exobyte, Italy. Its REST API exposes everything the control panel does: extensions, trunks, numbers, inbound/outbound routes, business hours, IVR, ring groups, queues, music on hold, prompts, call log (CDR), recordings and transcripts, voicemail, contacts, call control, real-time events (SSE/WebSocket) and signed webhooks. Official SDKs for TypeScript, PHP and Python. - Base URL: https://centralino.exovoip.it/api (versioned paths under /v1, JSON, OpenAPI 3.1) - Authentication: API key created in the control panel (Developers); send it as `X-API-Key: ` or `Authorization: Bearer `. Keys are prefixed `exo_live_` (production) or `exo_test_`, have granular scopes (e.g. `cdr:read`, `extensions:write`, `calls:control`), optional IP allow-list and expiry - Conventions: cursor pagination (`limit`, `cursor` / `nextCursor`), ISO 8601 UTC dates, partial PATCH (`null` clears a field), uniform errors `{ "error": { "code", "message", "details?" } }`, idempotency keys, rate limits with 429 + Retry-After - Real time: Server-Sent Events and WebSocket on /v1/live - Webhooks: HMAC-SHA256 signed (`X-ExoPBX-Signature: t=,v1=`), retries with backoff, delivery log - Language: the guide exists in Italian (https://centralino.exovoip.it/api/manual/) and English (https://centralino.exovoip.it/api/manual/en/) - Product website (Italian): https://exovoip.it/ · Provider: Exobyte (https://exobyte.it), info@exobyte.it - Updated: 2026-11-04 ## Reference - [Interactive API reference (Swagger UI)](https://centralino.exovoip.it/api/docs): try every endpoint with your API key - [OpenAPI 3.1 document](https://centralino.exovoip.it/api/openapi.json): machine-readable specification of all 221 operations - [SDK downloads and usage](https://centralino.exovoip.it/api/manual/en/sdks.html): TypeScript, PHP and Python, version 1.0.0 - [TypeScript SDK (zip)](https://centralino.exovoip.it/api/sdk/typescript.zip) · [PHP SDK (zip)](https://centralino.exovoip.it/api/sdk/php.zip) · [Python SDK (zip)](https://centralino.exovoip.it/api/sdk/python.zip) - [Full guide as plain text](https://centralino.exovoip.it/llms-full.txt): every page of the English guide plus the endpoint tables ## Developer guide (English) ### Getting started - [ExoVoIP API](https://centralino.exovoip.it/api/manual/en/): The ExoVoIP REST API lets you manage the phone system from any application: everything you can do in the control panel can also be done through the… - [Getting started](https://centralino.exovoip.it/api/manual/en/getting-started.html): In a few minutes: an API key, your first request and your first extension. - [Authentication](https://centralino.exovoip.it/api/manual/en/authentication.html): Every request (except GET /health) requires an API key. The control panel uses the same API with the user's session. - [Conventions](https://centralino.exovoip.it/api/manual/en/conventions.html): Rules common to all endpoints. - [SDKs](https://centralino.exovoip.it/api/manual/en/sdks.html): Official SDKs for TypeScript/JavaScript, PHP and Python, generated from the API's OpenAPI document. Every API operation has a matching method, grouped… ### Configuration - [Tenants](https://centralino.exovoip.it/api/manual/en/tenants.html): Management of the companies hosted on the platform. The endpoints on this page are reserved for the platform administrator (global keys with the… - [Extensions](https://centralino.exovoip.it/api/manual/en/extensions.html): An extension is a phone system user: short number, name, SIP credentials for phones and softphones, voicemail, forwarding and recording. Scopes… - [Trunks](https://centralino.exovoip.it/api/manual/en/trunks.html): Trunks (SIP trunks) connect the phone system to telephone carriers. A tenant can use its own trunks as well as shared trunks provided by Exobyte… - [Numbers](https://centralino.exovoip.it/api/manual/en/numbers.html): Phone numbers (DIDs) are assigned to the tenant by Exobyte. The tenant decides where incoming calls are routed. Scopes numbers:read / numbers:write. - [Inbound routes](https://centralino.exovoip.it/api/manual/en/inbound-routes.html): Inbound routes determine the path of an incoming call based on the dialed number, trunk and caller. Each route is a chain of steps: if the first step… - [Outbound routes](https://centralino.exovoip.it/api/manual/en/outbound-routes.html): Outbound routes select the trunk for external calls based on the dialed number, with backup trunks in case of failure. Scopes outboundroutes:read /… - [Business hours](https://centralino.exovoip.it/api/manual/en/calendars.html): Calendars define when the company is open: weekly time slots, holidays, exceptions (special closures or openings) and manual overrides. Numbers… - [IVR menus](https://centralino.exovoip.it/api/manual/en/ivr.html): An IVR menu greets the caller with a prompt and routes the call based on the key pressed. Scopes ivrs:read / ivrs:write. - [Ring groups](https://centralino.exovoip.it/api/manual/en/ring-groups.html): A ring group rings several extensions (and external numbers) at the same time or in sequence. Scopes ringgroups:read / ringgroups:write. - [Queues](https://centralino.exovoip.it/api/manual/en/queues.html): Queues hold callers and distribute them to available agents, with music, position announcements and maximum wait times. Scopes queues:read /… - [Music on hold](https://centralino.exovoip.it/api/manual/en/moh.html): Music on hold classes define what callers hear while queued, on hold or during a transfer: tracks and periodic announcements. Scopes media:read /… - [Voice prompts](https://centralino.exovoip.it/api/manual/en/prompts.html): Voice prompts are the phone system's audio files: welcome, menu, closed and announcement messages, and music on hold tracks. They can be uploaded as… ### Calls and data - [Call log](https://centralino.exovoip.it/api/manual/en/calls.html): The call log (CDR) contains the history of all calls: direction, numbers, extensions involved, outcome, duration, recording. Scope cdr:read. - [Recordings](https://centralino.exovoip.it/api/manual/en/recordings.html): Call recordings with playback, download, transcription and summary. Scope recordings:read (list, playback, transcripts) and recordings:write (settings… - [Voicemail](https://centralino.exovoip.it/api/manual/en/voicemail.html): Extension voicemail boxes, received messages, playback, transcription and email delivery. Scopes voicemail:read / voicemail:write. - [Phonebook](https://centralino.exovoip.it/api/manual/en/contacts.html): Company phonebook and personal phonebooks of extensions. Contacts provide the name shown on phone displays for incoming calls, and can be marked as VIP… - [Mobile forwarding](https://centralino.exovoip.it/api/manual/en/forwarding.html): Calls to an extension can also reach the user's mobile phone. Scopes extensions:read / extensions:write. ### Integrations - [Real-time](https://centralino.exovoip.it/api/manual/en/live.html): Real-time phone system status: active calls, extensions and connected phones, trunks, queues, call parking and service status. Available through REST… - [Webhooks](https://centralino.exovoip.it/api/manual/en/webhooks.html): Webhooks send phone system events to your systems with a signed HTTPS request: no connection to keep open. Scopes webhooks:read / webhooks:write; at… ### Platform - [Security](https://centralino.exovoip.it/api/manual/en/security.html): The security center protects the phone system from unauthorized access attempts: automatic blocking of suspicious addresses, geographic restrictions, a… - [Voice servers](https://centralino.exovoip.it/api/manual/en/voice-nodes.html): Customer calls go through the main server or through one or more additional voice servers managed by the platform. This section is reserved to the… - [System and notifications](https://centralino.exovoip.it/api/manual/en/system.html): Service status, configuration deployment, background jobs and notifications. - [Full reference](https://centralino.exovoip.it/api/manual/en/reference.html): The interactive reference with all endpoints, parameters, request and response schemas and examples is in the API Swagger. The OpenAPI 3.1 document is… ## Endpoints by area - **Stato servizio** (1): `GET /health` - **Accesso** (1): `GET /auth/me` - **Aziende** (12): `GET /v1/tenants`, `POST /v1/tenants`, `GET /v1/tenants/current`, `GET /v1/tenants/{id}`, `PATCH /v1/tenants/{id}`, `DELETE /v1/tenants/{id}`, … - **featureCodes** (2): `GET /v1/feature-codes/settings`, `PUT /v1/feature-codes/settings` - **Interni** (12): `GET /v1/extensions`, `POST /v1/extensions`, `GET /v1/extensions/{id}`, `PATCH /v1/extensions/{id}`, `DELETE /v1/extensions/{id}`, `PUT /v1/extensions/{id}/follow-me`, … - **Linee** (8): `GET /v1/trunks/approvals`, `POST /v1/trunks/{id}/approve`, `POST /v1/trunks/{id}/reject`, `GET /v1/trunks`, `POST /v1/trunks`, `GET /v1/trunks/{id}`, … - **Numeri** (9): `GET /v1/numbers`, `POST /v1/numbers`, `POST /v1/numbers/bulk`, `GET /v1/numbers/{id}`, `PATCH /v1/numbers/{id}`, `DELETE /v1/numbers/{id}`, … - **Regole in entrata** (6): `GET /v1/inbound-routes`, `POST /v1/inbound-routes`, `PUT /v1/inbound-routes/order`, `GET /v1/inbound-routes/{id}`, `PATCH /v1/inbound-routes/{id}`, `DELETE /v1/inbound-routes/{id}` - **Regole di uscita** (9): `GET /v1/outbound-routes`, `POST /v1/outbound-routes`, `PUT /v1/outbound-routes/order`, `GET /v1/outbound-routes/policy`, `PUT /v1/outbound-routes/policy`, `POST /v1/outbound-routes/simulate`, … - **Segreteria** (13): `GET /v1/voicemail/settings`, `PUT /v1/voicemail/settings`, `GET /v1/voicemail/boxes`, `GET /v1/voicemail/boxes/{extensionId}`, `PUT /v1/voicemail/boxes/{extensionId}`, `GET /v1/voicemail/boxes/{extensionId}/messages`, … - **Registro chiamate** (3): `GET /v1/cdr`, `GET /v1/cdr/export.csv`, `GET /v1/cdr/{linkedid}` - **Chiavi API** (8): `GET /v1/api-keys`, `POST /v1/api-keys`, `GET /v1/api-keys/{id}`, `PATCH /v1/api-keys/{id}`, `POST /v1/api-keys/{id}/rotate`, `POST /v1/api-keys/{id}/revoke`, … - **Sicurezza** (15): `GET /v1/security/summary`, `GET /v1/security/status`, `GET /v1/security/bans`, `POST /v1/security/bans`, `POST /v1/security/bans/unban`, `GET /v1/security/jails`, … - **Sistema** (4): `GET /v1/system/status`, `POST /v1/system/reload`, `GET /v1/system/reload-jobs`, `GET /v1/system/reload-jobs/{id}` - **Tempo reale** (9): `GET /v1/live/snapshot`, `GET /v1/live/channels`, `GET /v1/live/extensions`, `GET /v1/live/devices`, `GET /v1/live/trunks`, `GET /v1/live/queues`, … - **Webhook** (10): `GET /v1/webhooks/event-types`, `GET /v1/webhooks`, `POST /v1/webhooks`, `GET /v1/webhooks/{id}`, `PATCH /v1/webhooks/{id}`, `DELETE /v1/webhooks/{id}`, … - **Orari e chiusure** (20): `GET /v1/calendars`, `POST /v1/calendars`, `GET /v1/calendars/holidays`, `GET /v1/calendars/{id}`, `PATCH /v1/calendars/{id}`, `DELETE /v1/calendars/{id}`, … - **Registrazioni** (14): `GET /v1/recordings`, `GET /v1/recordings/settings`, `PUT /v1/recordings/settings`, `GET /v1/recordings/policies`, `GET /v1/recordings/policies/effective`, `PUT /v1/recordings/policies/{scope}/{targetId}`, … - **Inoltro al cellulare** (4): `GET /v1/extensions/{id}/invisible-forwarding`, `PUT /v1/extensions/{id}/invisible-forwarding`, `GET /v1/extensions/{id}/provider-divert`, `PUT /v1/extensions/{id}/provider-divert` - **Notifiche** (4): `GET /v1/notifications/settings`, `PUT /v1/notifications/settings`, `GET /v1/notifications/log`, `POST /v1/notifications/test` - **Lavori in corso** (1): `GET /v1/jobs/{id}` - **Menu vocali** (6): `GET /v1/ivrs`, `POST /v1/ivrs`, `GET /v1/ivrs/{id}`, `PATCH /v1/ivrs/{id}`, `DELETE /v1/ivrs/{id}`, `POST /v1/ivrs/{id}/greeting-text` - **Gruppi di squillo** (5): `GET /v1/ring-groups`, `POST /v1/ring-groups`, `GET /v1/ring-groups/{id}`, `PATCH /v1/ring-groups/{id}`, `DELETE /v1/ring-groups/{id}` - **Code** (8): `GET /v1/queues`, `POST /v1/queues`, `GET /v1/queues/{id}`, `PATCH /v1/queues/{id}`, `DELETE /v1/queues/{id}`, `GET /v1/queues/{id}/live`, … - **Musica d’attesa** (5): `GET /v1/moh`, `POST /v1/moh`, `GET /v1/moh/{id}`, `PATCH /v1/moh/{id}`, `DELETE /v1/moh/{id}` - **Messaggi vocali** (8): `GET /v1/prompts`, `POST /v1/prompts`, `POST /v1/prompts/upload`, `GET /v1/prompts/{id}`, `PATCH /v1/prompts/{id}`, `DELETE /v1/prompts/{id}`, … - **Rubrica** (10): `GET /v1/contacts`, `POST /v1/contacts`, `GET /v1/contacts/lookup`, `POST /v1/contacts/import`, `GET /v1/contacts/export`, `GET /v1/contacts/settings`, … - **Operatività** (1): `GET /v1/ops/status` - **voiceNodes** (7): `GET /v1/voice-nodes`, `POST /v1/voice-nodes`, `GET /v1/voice-nodes/{id}`, `PATCH /v1/voice-nodes/{id}`, `DELETE /v1/voice-nodes/{id}`, `POST /v1/voice-nodes/{id}/enrollment-code`, … - **voices** (6): `GET /v1/voices`, `POST /v1/voices/sync`, `PUT /v1/voices/default`, `PUT /v1/voices/platform-default`, `GET /v1/voices/{voiceId}/preview`, `POST /v1/voices/{voiceId}/sample` ## Optional ### Manuale sviluppatori (italiano) - [API ExoVoIP](https://centralino.exovoip.it/api/manual/) - [Primi passi](https://centralino.exovoip.it/api/manual/getting-started.html) - [Autenticazione](https://centralino.exovoip.it/api/manual/authentication.html) - [Convenzioni](https://centralino.exovoip.it/api/manual/conventions.html) - [SDK](https://centralino.exovoip.it/api/manual/sdks.html) - [Aziende](https://centralino.exovoip.it/api/manual/tenants.html) - [Interni](https://centralino.exovoip.it/api/manual/extensions.html) - [Linee](https://centralino.exovoip.it/api/manual/trunks.html) - [Numeri](https://centralino.exovoip.it/api/manual/numbers.html) - [Regole in entrata](https://centralino.exovoip.it/api/manual/inbound-routes.html) - [Regole di uscita](https://centralino.exovoip.it/api/manual/outbound-routes.html) - [Orari e chiusure](https://centralino.exovoip.it/api/manual/calendars.html) - [Menu vocali](https://centralino.exovoip.it/api/manual/ivr.html) - [Gruppi di squillo](https://centralino.exovoip.it/api/manual/ring-groups.html) - [Code](https://centralino.exovoip.it/api/manual/queues.html) - [Musica d'attesa](https://centralino.exovoip.it/api/manual/moh.html) - [Messaggi vocali](https://centralino.exovoip.it/api/manual/prompts.html) - [Registro chiamate](https://centralino.exovoip.it/api/manual/calls.html) - [Registrazioni](https://centralino.exovoip.it/api/manual/recordings.html) - [Segreteria](https://centralino.exovoip.it/api/manual/voicemail.html) - [Rubrica](https://centralino.exovoip.it/api/manual/contacts.html) - [Inoltro al cellulare](https://centralino.exovoip.it/api/manual/forwarding.html) - [Tempo reale](https://centralino.exovoip.it/api/manual/live.html) - [Webhook](https://centralino.exovoip.it/api/manual/webhooks.html) - [Sicurezza](https://centralino.exovoip.it/api/manual/security.html) - [Server voce](https://centralino.exovoip.it/api/manual/voice-nodes.html) - [Sistema e notifiche](https://centralino.exovoip.it/api/manual/system.html) - [Riferimento completo](https://centralino.exovoip.it/api/manual/reference.html) - [ExoVoIP: sito commerciale e llms.txt del prodotto](https://exovoip.it/llms.txt)