Authentication
All endpoints require a JWT bearer token (from/auth/user-login) OR an API key with ivr.* permissions.
List IVRs
Get a single IVR (with menu options)
menuOptions array.
Create an IVR
Creating an IVR does NOT automatically generate a greeting or publish it. Call
/generate-greeting and /publish separately.
Response (201): the created IVR row.
Update an IVR
/publish when you’re ready.
Delete an IVR
.wav file is also removed. The DID still has routing_type=ivr but the destination UUID is dead — calls will get “number not in service” until you reroute.
Save menu options
For
action_type=ivr, the destination must be another IVR’s UUID (not extension).
For action_type=hangup or callback, destination is null.
Generate a TTS greeting
.wav to the server. Updates greeting_prompt, greeting_text, greeting_language, greeting_voice on the IVR.
text is required. language + voice default to the IVR’s current settings if omitted.
This does NOT publish — call /publish to make the new greeting live.
Preview the generated audio
.wav as audio/wav. Useful for UI playback or QA automation.

