Manage Aircall phone numbers and update IVR greeting/prompt audio via the API
domain: developer.aircall.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Authenticate to the Aircall Public API (Basic Auth with API ID/API Token, or OAuth for technology partners) and call GET https://api.aircall.io/v1/numbers to list all phone numbers in the account, including each number's id, name, digits, and is_ivr flag
Call GET https://api.aircall.io/v1/numbers/{id} to retrieve full detail on a single number, including its current "messages" object (e.g. welcome, waiting, ivr, voicemail, closed, callback_later prompt files)
To change the audio played to callers — e.g. the welcome greeting or the IVR prompt — send PUT https://api.aircall.io/v1/numbers/{id} with a JSON body containing a messages object, for example {"messages": {"welcome": "https://.../welcome.mp3"}}
For call-level routing logic beyond editing prompts (e.g. forwarding a specific in-progress call), subscribe to Call webhooks such as call.created and use POST /v1/calls/{call_id}/transfers with a user_id to transfer that call to a specific agent
The IVR menu itself — which keypad digits map to which department/team, and business-hours behavior — is configured as a Smartflow/call distribution tree in the Aircall Dashboard under Numbers > select number > Call Distribution, not through the public API
Known gotchas
There is no public API endpoint to create or edit the IVR menu structure (keypress options and their routing destinations) — that configuration is dashboard-only; the API only supports reading number data and swapping the associated greeting/prompt audio files
is_ivr is a read-only attribute reflecting how the number was set up in the dashboard; you cannot convert a Classic number into an IVR number, or vice versa, via this API
Aircall's documentation for the 'Update Music and Messages' endpoint is unclear on whether omitted message slots are preserved or cleared when you PUT a partial messages object — fetch and verify the number's current state on a test number before relying on partial updates in production
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?