Infobip Channels API

Create a perfect customer experience by using the channels your customer already use and love.

Operations 476

Showing the first 250 of 476. The full set is in the contract, and via get_provider_operations.

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /sms/3/messages Send SMS messages · Send SMS message #
Ask an LLM
“What's the current way to send an SMS to one person or thousands of recipients with Infobip?”
“Can one SMS request include scheduling, transliteration and conversion tracking together?”
Tell an agent
Send these SMS messages with the latest v3 endpoint: {messages}.
Send SMS {messages} and apply the delivery options {options}.
GET /sms/3/text/query Send an SMS using only query string parameters · Send SMS message over query parameters #
Ask an LLM
“Can I send a text message with a single GET request where everything is in the URL?”
“Which query-string SMS method should I use now that there is a newer v3 version?”
Tell an agent
Send the text {text} to {to} using the v3 query-string SMS endpoint.
Fire off an SMS to {to} from sender {from} saying {text} via a URL GET request.
GET /sms/1/text/query Send an SMS by URL with username and password · Send SMS message over query parameters #
Ask an LLM
“Can I send an SMS by passing my username and password in the query string?”
“Does the old v1 query-string SMS method still work with basic credentials in the URL?”
Tell an agent
Send {text} to {to} over the legacy v1 query endpoint logging in as {username} with {password}.
Use my credentials {username} and {password} in the URL to text {to}.
POST /sms/1/preview Preview how an SMS text will be split and encoded · Preview SMS message #
Ask an LLM
“How many SMS parts will my message text be split into before I send it?”
“Can I check how transliteration changes my SMS character count?”
Tell an agent
Preview the SMS text {text} and tell me how many parts it uses.
Check how {text} looks with transliteration {transliteration} before sending.
POST /sms/2/text/advanced Send advanced SMS messages (v2) · Send SMS message #
Ask an LLM
“Can the older v2 advanced SMS endpoint throttle sending speed for a big batch?”
“Where can I shorten and track URLs in SMS sent through the v2 text endpoint?”
Tell an agent
Send SMS {messages} through the v2 text/advanced endpoint.
Send SMS batch {messages} under bulk ID {bulkId} with speed limit {sendingSpeedLimit} using the v2 advanced method.
POST /sms/2/binary/advanced Send binary SMS messages · Send binary SMS message #
Ask an LLM
“How can I send a binary-encoded SMS payload instead of plain text?”
“Is the binary SMS endpoint still supported or has it been superseded?”
Tell an agent
Send binary SMS {messages}.
Send binary SMS {messages} under bulk ID {bulkId}.
GET /sms/1/bulks View the send time of a scheduled SMS bulk · Get scheduled SMS messages #
Ask an LLM
“When is my scheduled SMS bulk set to go out?”
“Where can I see the scheduled date and time for a batch of SMS messages?”
Tell an agent
Show the scheduled send time for SMS bulk {bulkId}.
Tell me when SMS batch {bulkId} is scheduled to be sent.
PUT /sms/1/bulks Reschedule a scheduled SMS bulk · Reschedule SMS messages #
Ask an LLM
“Can I move a scheduled SMS campaign to a different date and time?”
“How do I push back the send time of SMS messages I already scheduled?”
Tell an agent
Reschedule SMS bulk {bulkId} to send at {sendAt}.
Move the scheduled SMS batch {bulkId} to {sendAt}.
GET /sms/1/bulks/status Check the status of a scheduled SMS bulk · Get scheduled SMS messages status #
Ask an LLM
“Is my scheduled SMS bulk paused, pending or already processing?”
“What status is a batch of scheduled text messages in right now?”
Tell an agent
Check the status of scheduled SMS bulk {bulkId}.
Tell me whether SMS batch {bulkId} is paused or still pending.
PUT /sms/1/bulks/status Pause, resume or cancel a scheduled SMS bulk · Update scheduled SMS messages status #
Ask an LLM
“Can I pause a scheduled SMS bulk and resume it later?”
“How do I cancel scheduled SMS messages before they go out?”
Tell an agent
Set scheduled SMS bulk {bulkId} to status {status}.
Cancel the scheduled SMS batch {bulkId} by changing its status to {status}.
POST /ct/1/log/end/{messageId} Confirm an SMS conversion · Confirm conversion #
Ask an LLM
“How do I tell Infobip that a customer converted after receiving my SMS?”
“Can I report a successful conversion for a tracked text message?”
Tell an agent
Mark message {messageId} as converted.
Log a successful conversion for SMS {messageId}.
GET /sms/1/inbox/reports Fetch received inbound SMS messages · Get inbound SMS messages #
Ask an LLM
“Can I pull incoming text messages if I can't receive them on a webhook in real time?”
“Where do I fetch SMS replies that customers sent to my number?”
Tell an agent
Fetch up to {limit} inbound SMS messages I haven't retrieved yet.
Get received SMS for application {applicationId}.
GET /sms/3/reports Fetch SMS delivery reports (v3) · Get outbound SMS message delivery reports #
Ask an LLM
“Were my SMS messages delivered, if my webhook for delivery reports isn't working?”
“Can I fetch v3 delivery reports for a specific SMS bulk?”
Tell an agent
Get v3 delivery reports for SMS bulk {bulkId}.
Check whether SMS message {messageId} was delivered using the v3 reports endpoint.
GET /sms/3/logs Search outbound SMS logs (v3) · Get outbound SMS message logs #
Ask an LLM
“Can I search sent SMS logs from the last 48 hours by destination number?”
“Does the v3 SMS log endpoint support cursor pagination?”
Tell an agent
Show v3 SMS logs sent to {destination} since {sentSince}.
List v3 outbound SMS logs from sender {sender} with status {generalStatus}.
GET /sms/1/reports Fetch SMS delivery reports (legacy v1) · Get outbound SMS message delivery reports #
Ask an LLM
“Where do I get delivery reports for SMS sent via the older v1 or v2 methods?”
“Can the legacy SMS reports endpoint filter by campaign reference?”
Tell an agent
Get legacy v1 delivery reports for SMS bulk {bulkId}.
Check through the older reports endpoint if SMS {messageId} was delivered.
GET /sms/1/logs Search outbound SMS logs (legacy v1) · Get outbound SMS message logs #
Ask an LLM
“Can the older v1 SMS log endpoint filter by recipient number and time window?”
“Which legacy endpoint shows sent SMS logs for display in my own UI?”
Tell an agent
Show legacy v1 SMS logs sent to {to} until {sentUntil}.
List old-style SMS logs from sender {from} for message {messageId}.
POST /mms/2/messages Send MMS messages · Send MMS messages #
Ask an LLM
“How do I send a picture message to several recipients at once?”
“What's the current MMS sending endpoint that supports delivery options?”
Tell an agent
Send MMS messages {messages} with the v2 endpoint.
Send MMS {messages} using options {options}.
POST /mms/1/advanced Send MMS messages (legacy v1) · Send MMS message #
Ask an LLM
“Does the older v1 advanced MMS endpoint still support bulk sending?”
“Can I group a legacy MMS send under my own bulk ID?”
Tell an agent
Send MMS {messages} via the legacy v1 advanced endpoint.
Send legacy MMS batch {messages} under bulk ID {bulkId}.
POST /mms/1/content Upload media content for MMS · Upload binary content #
Ask an LLM
“Can I upload an image once and reference it in several MMS messages?”
“How long does uploaded MMS media stay available?”
Tell an agent
Upload MMS media with content ID {contentId} and media type {mediaType}.
Upload this file for MMS as {contentId} of type {mediaType}, valid for {validity} minutes.
GET /mms/1/inbox/reports Fetch received inbound MMS messages · Get inbound MMS messages #
Ask an LLM
“Where can I pull picture messages customers sent me if I missed the webhook?”
“Can I fetch incoming MMS for one application only?”
Tell an agent
Fetch up to {limit} inbound MMS messages.
Get received MMS for entity {entityId}.
GET /mms/2/reports Fetch MMS delivery reports · Get MMS delivery reports #
Ask an LLM
“Did my MMS messages get delivered?”
“Can I pull delivery reports for MMS by campaign reference?”
Tell an agent
Get v2 MMS delivery reports for bulk {bulkId}.
Check whether MMS {messageId} was delivered.
GET /mms/2/logs Search outbound MMS logs · Get MMS message logs #
Ask an LLM
“Can I see logs of MMS messages I sent in the last 48 hours?”
“Does MMS log search support filtering by destination and cursor paging?”
Tell an agent
Show MMS logs sent to {destination}.
List MMS logs from sender {sender} sent since {sentSince}.
GET /calls/1/configurations List calls configurations · Get calls configurations #
Ask an LLM
“Which calls configurations do I have set up for voice?”
“Can I page through all my Calls API configurations?”
Tell an agent
List my calls configurations.
Show page {page} of calls configurations, {size} per page.
POST /calls/1/configurations Create a calls configuration · Create calls configuration #
Ask an LLM
“How do I set up a new calls configuration for my voice app?”
“Can I choose my own ID when creating a calls configuration?”
Tell an agent
Create a calls configuration named {name}.
Create a calls configuration with ID {id} and name {name}.
GET /calls/1/configurations/{callsConfigurationId} Get a calls configuration · Get calls configuration #
Ask an LLM
“What are the details of one specific calls configuration?”
“Can I look up a calls configuration by its ID?”
Tell an agent
Show calls configuration {callsConfigurationId}.
Get the details of calls configuration {callsConfigurationId}.
PUT /calls/1/configurations/{callsConfigurationId} Rename a calls configuration · Update calls configuration #
Ask an LLM
“Can I change the name of an existing calls configuration?”
“What can be edited on a calls configuration after it's created?”
Tell an agent
Rename calls configuration {callsConfigurationId} to {name}.
Update calls configuration {callsConfigurationId}.
DELETE /calls/1/configurations/{callsConfigurationId} Delete a calls configuration · Delete calls configuration #
Ask an LLM
“How do I remove a calls configuration I no longer use?”
“Can a calls configuration be deleted permanently?”
Tell an agent destructive · confirm first
Delete calls configuration {callsConfigurationId}.
Remove the calls configuration {callsConfigurationId}.
GET /calls/1/calls List active calls · Get calls #
Ask an LLM
“Which voice calls are currently live on my account?”
“Can I filter current calls by direction or status?”
Tell an agent
List active calls with status {status}.
Show live calls in conference {conferenceId}.
POST /calls/1/calls Place an outbound call · Create call #
Ask an LLM
“How do I start an outbound voice call to a phone number?”
“Can I turn on recording and machine detection when placing a call?”
Tell an agent
Call {endpoint} using calls configuration {callsConfigurationId}.
Place a call to {endpoint} from {from} under configuration {callsConfigurationId} with recording {recording}.
GET /calls/1/calls/{callId} Get an active call · Get call #
Ask an LLM
“What's the current state of a specific live call?”
“Can I look up an ongoing call by its call ID?”
Tell an agent
Show call {callId}.
Get the current status of live call {callId}.
GET /calls/1/calls/history List finished calls from history · Get calls history #
Ask an LLM
“Can I see calls that already ended in the last few days?”
“How long is ended call history retained?”
Tell an agent
List historical calls from {from}.
Show call history for bulk {bulkId}.
GET /calls/1/calls/{callId}/history Get a finished call's history · Get call history #
Ask an LLM
“What happened on a call that already ended?”
“Can I get the history record of a single completed call?”
Tell an agent
Show the history of ended call {callId}.
Get the history record for completed call {callId}.
POST /calls/1/connect Connect existing calls into a conference · Connect calls #
Ask an LLM
“Can I join two existing calls together in a conference?”
“How do I bridge several ongoing calls into one conversation?”
Tell an agent
Connect calls {callIds} in a conference.
Bridge calls {callIds} using conference settings {conferenceRequest}.
POST /calls/1/calls/{callId}/connect Connect a call with a new outbound call · Connect with new call #
Ask an LLM
“Can I dial someone new and connect them to a call already in progress?”
“Is ringback played to the caller while a new leg is being connected?”
Tell an agent
Connect call {callId} with a new call {callRequest}.
Dial {callRequest} and join it to call {callId} with ringback {ringbackGeneration}.
POST /calls/1/calls/{callId}/send-ringing Send a ringing signal to an inbound call · Send ringing #
Ask an LLM
“How do I make an unanswered inbound caller hear ringing?”
“Can I send a SIP ringtone before answering a call?”
Tell an agent
Send ringing to inbound call {callId}.
Play the SIP ringtone to unanswered call {callId}.
POST /calls/1/calls/{callId}/pre-answer Pre-answer a call for early media · Pre-answer #
Ask an LLM
“Can I pre-answer an inbound call to play early media before answering?”
“What does pre-answering a call do?”
Tell an agent
Pre-answer call {callId}.
Pre-answer call {callId} with ringing set to {ringing}.
POST /calls/1/calls/{callId}/answer Answer an inbound call · Answer #
Ask an LLM
“How do I answer an incoming voice call through the API?”
“Can I start recording at the moment I answer a call?”
Tell an agent
Answer call {callId}.
Answer call {callId} and record it with {recording}.
POST /calls/1/calls/{callId}/hangup Hang up a call · Hangup #
Ask an LLM
“How do I end a single call in progress?”
“Can I hang up a call with a specific error code?”
Tell an agent destructive · confirm first
Hang up call {callId}.
End call {callId} with error code {errorCode}.
POST /calls/1/calls/{callId}/play Play audio on a call · Play file #
Ask an LLM
“Can I play an audio file to a caller during a call?”
“Is it possible to loop a recording on a single call leg and stop it when they press a key?”
Tell an agent
Play audio {content} on call {callId}.
Play {content} on call {callId} {loopCount} times.
POST /calls/1/calls/{callId}/stop-play Stop audio playing on a call · Stop playing file #
Ask an LLM
“How do I stop an audio file that is playing on a call?”
“Can I interrupt playback on one call leg?”
Tell an agent
Stop playing audio on call {callId}.
Cut the playback on call {callId}.
POST /calls/1/calls/{callId}/say Speak text on a call with text-to-speech · Say text #
Ask an LLM
“Can I have text read aloud to a caller in a particular language?”
“Can I control the speech rate of text spoken on a call?”
Tell an agent
Say {text} in {language} on call {callId}.
Read {text} aloud in {language} on call {callId} at speech rate {speechRate}.
POST /calls/1/calls/{callId}/send-dtmf Send DTMF tones on a call · Send DTMF #
Ask an LLM
“How do I send keypad tones on a call, for example to navigate a phone menu?”
“Can I press digits on behalf of the caller?”
Tell an agent
Send DTMF {dtmf} on call {callId}.
Press keys {dtmf} on call {callId}.
POST /calls/1/calls/{callId}/capture/dtmf Collect keypad input from a caller · Capture DTMF #
Ask an LLM
“Can I collect digits a caller types on their keypad?”
“What's the way to set a terminator key and timeout when gathering DTMF input?”
Tell an agent
Capture up to {maxLength} digits on call {callId} with a {timeout} second timeout.
Collect keypad input on call {callId}, max {maxLength} digits, timeout {timeout}, ending with {terminator}.
POST /calls/1/calls/{callId}/capture/speech Capture caller speech as text · Capture Speech #
Ask an LLM
“Can I recognize what a caller says and get it back as text?”
“Is it possible to stop speech capture when a key phrase is spoken?”
Tell an agent
Capture speech in {language} on call {callId} with a {timeout} second timeout.
Listen for key phrases {keyPhrases} in {language} on call {callId} for {timeout} seconds.
POST /calls/1/calls/{callId}/start-transcription Start transcribing a call · Start transcription #
Ask an LLM
“Can I get a live transcription of an ongoing call?”
“How do I turn on transcription for one call?”
Tell an agent
Start transcribing call {callId}.
Start transcription on call {callId} with settings {transcription}.
POST /calls/1/calls/{callId}/stop-transcription Stop transcribing a call · Stop transcription #
Ask an LLM
“How do I turn off transcription on a call?”
“Can I stop a running call transcription before the call ends?”
Tell an agent
Stop transcribing call {callId}.
End the transcription on call {callId}.
POST /calls/1/calls/{callId}/start-recording Start recording a call · Start recording #
Ask an LLM
“Can I start recording a single call that's already in progress?”
“What recording options can I pass when recording one call leg?”
Tell an agent
Start recording call {callId}.
Record call {callId} using {recording}.
POST /calls/1/calls/{callId}/stop-recording Stop recording a call · Stop recording #
Ask an LLM
“How do I stop recording one call without hanging up?”
“Can recording be switched off mid-call?”
Tell an agent
Stop recording call {callId}.
Turn off the recording on call {callId}.
POST /calls/1/calls/{callId}/start-media-stream Start streaming call audio · Start streaming media #
Ask an LLM
“Can I stream a call's live audio to my own server?”
“How do I start media streaming on a call?”
Tell an agent
Start streaming media for call {callId} with {mediaStream}.
Stream audio from call {callId} using media stream settings {mediaStream}.
POST /calls/1/calls/{callId}/stop-media-stream Stop streaming call audio · Stop streaming media #
Ask an LLM
“How do I stop sending a call's audio stream to my server?”
“Can I end media streaming but keep the call going?”
Tell an agent
Stop streaming media on call {callId}.
End the audio stream for call {callId}.
POST /calls/1/calls/{callId}/send-message Send a message to a WebRTC call leg · Send message #
Ask an LLM
“Can I send a data message to one WebRTC participant on a call?”
“How do I push a text message to a single WebRTC call leg?”
Tell an agent
Send message {message} to WebRTC call {callId}.
Push {message} to the WebRTC leg of call {callId}.
POST /calls/1/calls/{callId}/application-transfer Transfer a call to another application · Request application transfer #
Ask an LLM
“Can I hand a call over to another calls configuration or application?”
“Is there a timeout when requesting a call transfer between applications?”
Tell an agent
Transfer call {callId} to calls configuration {destinationCallsConfigurationId}.
Request an application transfer of call {callId} to {destinationCallsConfigurationId} with timeout {timeout}.
POST /calls/1/calls/{callId}/application-transfer/{transferId}/accept Accept an incoming application transfer · Accept application transfer #
Ask an LLM
“How does my application accept a call transferred to it?”
“Can I accept a pending application transfer for a call?”
Tell an agent
Accept transfer {transferId} for call {callId}.
Take over call {callId} by accepting application transfer {transferId}.
POST /calls/1/calls/{callId}/application-transfer/{transferId}/reject Reject an incoming application transfer · Reject application transfer #
Ask an LLM
“Can my application decline a call being transferred to it?”
“What if I don't want to accept an application transfer request?”
Tell an agent
Reject transfer {transferId} for call {callId}.
Decline application transfer {transferId} on call {callId}.
GET /calls/1/conferences List active conferences · Get conferences #
Ask an LLM
“Which conferences are running right now?”
“Can I find an active conference by its name?”
Tell an agent
List my active conferences.
Find live conferences named {name}.
POST /calls/1/conferences Create a conference · Create conference #
Ask an LLM
“How do I create a new conference room for voice calls?”
“Can I set a max duration and recording when creating a conference?”
Tell an agent
Create a conference named {name} under configuration {callsConfigurationId}.
Create a recorded conference for configuration {callsConfigurationId} lasting at most {maxDuration} seconds.
GET /calls/1/conferences/{conferenceId} Get an active conference · Get conference #
Ask an LLM
“Who is currently in a particular conference?”
“Can I look up a running conference by ID?”
Tell an agent
Show conference {conferenceId}.
Get details of live conference {conferenceId}.
PATCH /calls/1/conferences/{conferenceId} Mute or deafen everyone in a conference · Update all calls #
Ask an LLM
“Can I mute all participants in a conference at once?”
“Is there a way to deafen every call in a conference together?”
Tell an agent
Mute all calls in conference {conferenceId}.
Set muted to {muted} for everyone in conference {conferenceId}.
GET /calls/1/conferences/history List finished conferences from history · Get conferences history #
Ask an LLM
“Can I see conferences that ended over the past few days?”
“How far back does conference history go?”
Tell an agent
List conferences that have ended.
Show conference history named {name} ended before {endTimeBefore}.
GET /calls/1/conferences/{conferenceId}/history Get a finished conference's history · Get conference history #
Ask an LLM
“What happened in a conference that has already ended?”
“Can I get the history record of one past conference?”
Tell an agent
Show the history of ended conference {conferenceId}.
Get the past record of conference {conferenceId}.
POST /calls/1/conferences/{conferenceId}/call Dial a new participant into a conference · Add new call #
Ask an LLM
“Can I dial out to someone and add them straight into a conference?”
“How do I invite a new phone participant into a running conference?”
Tell an agent
Dial {callRequest} into conference {conferenceId}.
Add a new outbound call {callRequest} to conference {conferenceId} with role {role}.
PUT /calls/1/conferences/{conferenceId}/call/{callId} Add an existing call to a conference · Add existing call #
Ask an LLM
“Can I move a call that's already connected into a conference?”
“How do I put an ongoing call into a conference room?”
Tell an agent
Add call {callId} to conference {conferenceId}.
Move existing call {callId} into conference {conferenceId} as {role}.
DELETE /calls/1/conferences/{conferenceId}/call/{callId} Remove a call from a conference · Remove call #
Ask an LLM
“Can I take someone out of a conference without hanging up on them?”
“Does removing a call from a conference end the call?”
Tell an agent destructive · confirm first
Remove call {callId} from conference {conferenceId}.
Pull call {callId} out of conference {conferenceId} but keep it active.
PATCH /calls/1/conferences/{conferenceId}/call/{callId} Mute or change one participant in a conference · Update call #
Ask an LLM
“Can I mute just one participant in a conference?”
“How do I change a single caller's role inside a conference?”
Tell an agent
Mute call {callId} in conference {conferenceId}.
Set role {role} for call {callId} in conference {conferenceId}.
POST /calls/1/conferences/{conferenceId}/hangup End a conference and all its calls · Hangup conference #
Ask an LLM
“How do I end a whole conference for everyone?”
“Does hanging up a conference disconnect every participant?”
Tell an agent destructive · confirm first
Hang up conference {conferenceId}.
End conference {conferenceId} and disconnect all its calls.
POST /calls/1/conferences/{conferenceId}/play Play audio to a conference · Play file #
Ask an LLM
“Can I play hold music or an announcement to everyone in a conference?”
“How many times can an audio file loop in a conference?”
Tell an agent
Play {content} to conference {conferenceId}.
Loop {content} {loopCount} times in conference {conferenceId}.
POST /calls/1/conferences/{conferenceId}/stop-play Stop audio playing in a conference · Stop playing file #
Ask an LLM
“How do I stop an announcement playing in a conference?”
“Can I end conference playback early?”
Tell an agent
Stop playing audio in conference {conferenceId}.
Stop the conference {conferenceId} playback.
POST /calls/1/conferences/{conferenceId}/say Speak text to a conference · Say text #
Ask an LLM
“Can I have a text-to-speech announcement read to all conference participants?”
“Which languages can I use to speak text into a conference?”
Tell an agent
Say {text} in {language} to conference {conferenceId}.
Announce {text} in {language} to everyone in conference {conferenceId}.
POST /calls/1/conferences/{conferenceId}/start-recording Start recording a conference · Start recording #
Ask an LLM
“How do I record a whole conference call?”
“Can I record a conference as a composed single file with a file prefix?”
Tell an agent
Start recording conference {conferenceId} as {recordingType}.
Record conference {conferenceId} as {recordingType} with file prefix {filePrefix}.
POST /calls/1/conferences/{conferenceId}/stop-recording Stop recording a conference · Stop recording #
Ask an LLM
“How do I stop recording a conference?”
“Can conference recording be stopped while the conference continues?”
Tell an agent
Stop recording conference {conferenceId}.
Turn off recording for conference {conferenceId}.
POST /calls/1/conferences/{conferenceId}/broadcast-webrtc-text Broadcast text to WebRTC conference participants · Broadcast text #
Ask an LLM
“Can I broadcast a text to WebRTC participants in a conference over the data channel?”
“How do I show a text notice to everyone on WebRTC in a conference?”
Tell an agent
Broadcast {text} to WebRTC participants in conference {conferenceId}.
Broadcast a data-channel text to conference {conferenceId}.
POST /calls/1/conferences/{conferenceId}/send-message Send a message to all WebRTC conference participants · Send message #
Ask an LLM
“Can I send one message to every WebRTC participant in a conference?”
“What's the way to message all WebRTC attendees of a conference?”
Tell an agent
Send message {message} to all WebRTC participants in conference {conferenceId}.
Message every WebRTC attendee of conference {conferenceId}: {message}.
GET /calls/1/dialogs List active dialogs · Get dialogs #
Ask an LLM
“Which two-party dialogs are active right now?”
“Can I filter active dialogs by state or parent call?”
Tell an agent
List my active dialogs.
Show active dialogs in state {state}.
POST /calls/1/dialogs Create a dialog from a call and a new call · Create dialog #
Ask an LLM
“How do I connect an existing call to a new outbound call as a dialog?”
“Can I record a dialog and cap its duration when creating it?”
Tell an agent
Create a dialog from parent call {parentCallId}.
Create a dialog connecting call {parentCallId} to new call {childCallRequest}.
POST /calls/1/dialogs/parent-call/{parentCallId}/child-call/{childCallId} Create a dialog between two existing calls · Create dialog with existing calls #
Ask an LLM
“Can I link two calls that are both already connected into a dialog?”
“How do I pair an existing parent call with an existing child call?”
Tell an agent
Create a dialog between existing calls {parentCallId} and {childCallId}.
Join already-connected calls {parentCallId} and {childCallId} into a dialog capped at {maxDuration} seconds.
GET /calls/1/dialogs/{dialogId} Get an active dialog · Get dialog #
Ask an LLM
“What's the state of a specific active dialog?”
“Can I look up a live dialog by its ID?”
Tell an agent
Show dialog {dialogId}.
Get the current state of dialog {dialogId}.
GET /calls/1/dialogs/history List finished dialogs from history · Get dialogs history #
Ask an LLM
“Can I see dialogs that ended in the last few days?”
“Where do I find past dialogs for one parent call?”
Tell an agent
List dialogs that have ended.
Show dialog history for parent call {parentCallId}.
GET /calls/1/dialogs/{dialogId}/history Get a finished dialog's history · Get dialog history #
Ask an LLM
“What happened in a dialog that already ended?”
“Can I get the history record of one past dialog?”
Tell an agent
Show the history of ended dialog {dialogId}.
Get the past record of dialog {dialogId}.
POST /calls/1/dialogs/{dialogId}/hangup End a dialog and both its calls · Hangup dialog #
Ask an LLM
“How do I end a dialog and disconnect both parties?”
“Does hanging up a dialog also hang up its calls?”
Tell an agent destructive · confirm first
Hang up dialog {dialogId}.
End dialog {dialogId} and both of its calls.
POST /calls/1/dialogs/{dialogId}/play Play audio in a dialog · Play file #
Ask an LLM
“Can I play an audio file to both parties of a dialog?”
“Is it possible to loop audio in a dialog?”
Tell an agent
Play {content} in dialog {dialogId}.
Loop {content} {loopCount} times in dialog {dialogId}.
POST /calls/1/dialogs/{dialogId}/say Speak text in a dialog · Say text #
Ask an LLM
“Can I read a text-to-speech message to both sides of a dialog?”
“What speech rate options exist for text spoken in a dialog?”
Tell an agent
Say {text} in {language} in dialog {dialogId}.
Announce {text} in {language} to both parties of dialog {dialogId}.
POST /calls/1/dialogs/{dialogId}/stop-play Stop audio playing in a dialog · Stop playing file #
Ask an LLM
“How do I stop audio that's playing in a dialog?”
“Can I interrupt dialog playback?”
Tell an agent
Stop playing audio in dialog {dialogId}.
Stop the dialog {dialogId} playback.
POST /calls/1/dialogs/{dialogId}/start-recording Start recording a dialog · Start recording #
Ask an LLM
“How do I record a two-party dialog?”
“Can I choose audio or video recording type for a dialog?”
Tell an agent
Start recording dialog {dialogId} as {recordingType}.
Record dialog {dialogId} as {recordingType} with file prefix {filePrefix}.
POST /calls/1/dialogs/{dialogId}/stop-recording Stop recording a dialog · Stop recording #
Ask an LLM
“How do I stop recording a dialog?”
“Can recording end while the dialog continues?”
Tell an agent
Stop recording dialog {dialogId}.
Turn off recording for dialog {dialogId}.
POST /calls/1/dialogs/{dialogId}/broadcast-webrtc-text Broadcast text to WebRTC legs in a dialog · Broadcast text #
Ask an LLM
“Can I broadcast text to WebRTC legs of a dialog over the data channel?”
“How do I show a text notice to WebRTC users in a dialog?”
Tell an agent
Broadcast {text} to WebRTC legs in dialog {dialogId}.
Broadcast a data-channel text to dialog {dialogId}.
POST /calls/1/dialogs/{dialogId}/send-message Send a message to WebRTC legs in a dialog · Send message #
Ask an LLM
“Can I send a message to all WebRTC call legs in a dialog?”
“What's the way to message both WebRTC sides of a dialog?”
Tell an agent
Send message {message} to the WebRTC legs of dialog {dialogId}.
Message both WebRTC parties in dialog {dialogId}: {message}.
POST /calls/1/dialogs/{dialogId}/transfer/accept Accept a dialog transfer · Dialog transfer accept #
Ask an LLM
“How do I accept a transfer request on a dialog?”
“Where do I specify the target call when accepting a dialog transfer?”
Tell an agent
Accept the transfer on dialog {dialogId} to target {targetCallRequest}.
Approve dialog {dialogId} transfer and call {targetCallRequest}.
POST /calls/1/dialogs/{dialogId}/transfer/reject Reject a dialog transfer · Dialog transfer reject #
Ask an LLM
“Can I decline a transfer request on a dialog?”
“What happens if I reject a dialog transfer?”
Tell an agent
Reject the transfer on dialog {dialogId}.
Decline the transfer request for dialog {dialogId}.
GET /calls/1/sip-trunks List SIP trunks · Get SIP trunks #
Ask an LLM
“Which SIP trunks are configured on my account?”
“Can I search SIP trunks by name?”
Tell an agent
List my SIP trunks.
Find SIP trunks named {name}.
POST /calls/1/sip-trunks Create a SIP trunk · Create SIP trunk #
Ask an LLM
“How do I set up a new SIP trunk with a channel limit?”
“Is SIP trunk creation instant or does it happen in the background?”
Tell an agent
Create SIP trunk {name} with {channelLimit} channels on billing package {billingPackage}.
Create a {type} SIP trunk named {name} with channel limit {channelLimit} and billing package {billingPackage}.
GET /calls/1/sip-trunks/{sipTrunkId} Get a SIP trunk · Get SIP trunk #
Ask an LLM
“What are the settings of one SIP trunk?”
“Can I look up a SIP trunk by ID?”
Tell an agent
Show SIP trunk {sipTrunkId}.
Get the configuration of SIP trunk {sipTrunkId}.
PUT /calls/1/sip-trunks/{sipTrunkId} Update a SIP trunk · Update SIP trunk #
Ask an LLM
“Can I change a SIP trunk's name or channel limit?”
“Do fields I leave out reset to defaults when updating a SIP trunk?”
Tell an agent
Update SIP trunk {sipTrunkId} and name it {name}.
Rename SIP trunk {sipTrunkId} to {name} and set channel limit {channelLimit}.
DELETE /calls/1/sip-trunks/{sipTrunkId} Delete a SIP trunk · Delete SIP trunk #
Ask an LLM
“How do I delete a SIP trunk I no longer need?”
“Is SIP trunk deletion processed asynchronously?”
Tell an agent destructive · confirm first
Delete SIP trunk {sipTrunkId}.
Remove SIP trunk {sipTrunkId} from my account.
POST /calls/1/sip-trunks/{sipTrunkId}/reset-password Reset SIP trunk credentials · Reset SIP trunk credentials #
Ask an LLM
“Can I reset the registration password for a registered SIP trunk?”
“How do I rotate the credentials of an authenticated SIP trunk?”
Tell an agent destructive · confirm first
Reset the credentials of SIP trunk {sipTrunkId}.
Rotate the password for SIP trunk {sipTrunkId}.
GET /calls/1/sip-trunks/{sipTrunkId}/status Check a SIP trunk's status · Get SIP trunk status #
Ask an LLM
“Is my SIP trunk enabled and registered?”
“Why doesn't a deleted SIP trunk return a status?”
Tell an agent
Check the status of SIP trunk {sipTrunkId}.
Tell me whether SIP trunk {sipTrunkId} is up.
POST /calls/1/sip-trunks/{sipTrunkId}/status Enable or disable a SIP trunk · Set SIP trunk status #
Ask an LLM
“Can I temporarily disable a SIP trunk without deleting it?”
“How do I change a SIP trunk's admin status?”
Tell an agent
Set SIP trunk {sipTrunkId} admin status to {adminStatus}.
Disable SIP trunk {sipTrunkId} by setting admin status {adminStatus}.
GET /calls/1/sip-trunks/service-addresses List SIP trunk service addresses · Get SIP trunk service addresses #
Ask an LLM
“Which service addresses have I registered for SIP trunks?”
“Can I page through my SIP trunk addresses?”
Tell an agent
List my SIP trunk service addresses.
Show page {page} of SIP trunk service addresses.
POST /calls/1/sip-trunks/service-addresses Add a SIP trunk service address · Create SIP trunk service address #
Ask an LLM
“How do I register a physical service address for a SIP trunk?”
“Which fields are required for a SIP trunk service address?”
Tell an agent
Create SIP trunk service address {name} at {street}, {city} {postCode}, country {countryCode}.
Add service address {name} on {street} in {city}, {postCode}, {countryCode} region {countryRegionCode}.
GET /calls/1/sip-trunks/service-addresses/{sipTrunkServiceAddressId} Get a SIP trunk service address · Get SIP trunk service address #
Ask an LLM
“What address is stored for one SIP trunk service address record?”
“Can I look up a SIP trunk service address by ID?”
Tell an agent
Show SIP trunk service address {sipTrunkServiceAddressId}.
Get service address record {sipTrunkServiceAddressId}.
PUT /calls/1/sip-trunks/service-addresses/{sipTrunkServiceAddressId} Update a SIP trunk service address · Update SIP trunk service address #
Ask an LLM
“Can I correct the street or postcode on a SIP trunk service address?”
“How do I change an existing SIP trunk address?”
Tell an agent
Update service address {sipTrunkServiceAddressId} to {name}, {street}, {city} {postCode}, {countryCode}.
Change the street of SIP trunk address {sipTrunkServiceAddressId} to {street} keeping name {name}, city {city}, postcode {postCode}, country {countryCode}.
DELETE /calls/1/sip-trunks/service-addresses/{sipTrunkServiceAddressId} Delete a SIP trunk service address · Delete SIP trunk service address #
Ask an LLM
“How do I remove a SIP trunk service address?”
“Can an unused SIP trunk address be deleted?”
Tell an agent destructive · confirm first
Delete SIP trunk service address {sipTrunkServiceAddressId}.
Remove service address record {sipTrunkServiceAddressId}.
GET /calls/1/sip-trunks/service-addresses/countries List countries for SIP trunk addresses · Get countries #
Ask an LLM
“Which country codes can I use in a SIP trunk service address?”
“Where do I get the country shortcodes for SIP trunk addresses?”
Tell an agent
List the countries available for SIP trunk service addresses.
Show the country shortcodes I need for a SIP trunk address.
GET /calls/1/sip-trunks/service-addresses/countries/regions List regions of a country for SIP trunk addresses · Get regions #
Ask an LLM
“What region codes exist for a country when entering a SIP trunk address?”
“Can I get the states or provinces for a SIP trunk address country?”
Tell an agent
List SIP trunk address regions for country {countryCode}.
Show region shortcodes in {countryCode} for a service address.
GET /calls/1/sip-trunks/{sipTrunkId}/txt-records Get verified domains #
PUT /calls/1/sip-trunks/{sipTrunkId}/txt-records Update domain verification #
POST /calls/1/sip-trunks/{sipTrunkId}/txt-records Create domain verification #
DELETE /calls/1/sip-trunks/{sipTrunkId}/txt-records Delete domain verification #
GET /calls/1/recordings/calls List call recordings · Get calls recordings #
Ask an LLM
“Where can I find recordings of my calls?”
“Can I filter call recordings by time range or endpoint?”
Tell an agent
List my call recordings.
Show call recordings for endpoint {endpointIdentifier} after {startTimeAfter}.
GET /calls/1/recordings/calls/{callId} Get recordings for one call · Get call recordings #
Ask an LLM
“Are there recordings for a specific call?”
“Can I get all recording files of a single call?”
Tell an agent
Get the recordings of call {callId}.
Show recordings for call {callId} stored in {location}.
DELETE /calls/1/recordings/calls/{callId} Delete recordings for one call · Delete call recordings #
Ask an LLM
“How do I delete all recordings of a specific call?”
“Can call recordings be removed for privacy reasons?”
Tell an agent destructive · confirm first
Delete all recordings of call {callId}.
Erase call {callId} recordings stored in {location}.
GET /calls/1/recordings/conferences List conference recordings · Get conferences recordings #
Ask an LLM
“Where can I find recordings of past conferences?”
“Can I search conference recordings by conference name?”
Tell an agent
List my conference recordings.
Find recordings for conferences named {conferenceName}.
GET /calls/1/recordings/conferences/{conferenceId} Get recordings for one conference · Get conference recordings #
Ask an LLM
“Is there a recording of a particular conference?”
“Can I get the recording files for one conference by ID?”
Tell an agent
Get the recordings of conference {conferenceId}.
Show recordings for conference {conferenceId} in {location}.
DELETE /calls/1/recordings/conferences/{conferenceId} Delete recordings for one conference · Delete conference recordings #
Ask an LLM
“How do I delete a conference's recordings?”
“Can I wipe all recordings of one conference?”
Tell an agent destructive · confirm first
Delete all recordings of conference {conferenceId}.
Erase conference {conferenceId} recordings stored in {location}.
POST /calls/1/recordings/conferences/{conferenceId}/compose Merge a conference's call recordings into one file · Compose conference recording on calls #
Ask an LLM
“Can I merge all participants' recordings of a conference into one file?”
“Is it possible to delete the individual call recordings after composing a conference?”
Tell an agent
Compose the recording of conference {conferenceId} into a single file.
Merge conference {conferenceId} recordings with multi-channel {multiChannel}.
GET /calls/1/recordings/dialogs List dialog recordings · Get dialogs recordings #
Ask an LLM
“Where can I find recordings of dialogs?”
“Can I filter dialog recordings by composition?”
Tell an agent
List my dialog recordings.
Show dialog recordings for call {callId}.
GET /calls/1/recordings/dialogs/{dialogId} Get recordings for one dialog · Get dialog recordings #
Ask an LLM
“Is there a recording of a particular dialog?”
“Can I get recording files for a single dialog by ID?”
Tell an agent
Get the recordings of dialog {dialogId}.
Show recordings for dialog {dialogId} in {location}.
DELETE /calls/1/recordings/dialogs/{dialogId} Delete recordings for one dialog · Delete dialog recordings #
Ask an LLM
“How do I delete a dialog's recordings?”
“Can I erase every recording of one dialog?”
Tell an agent destructive · confirm first
Delete all recordings of dialog {dialogId}.
Erase dialog {dialogId} recordings stored in {location}.
POST /calls/1/recordings/dialogs/{dialogId}/compose Merge a dialog's two call recordings into one file · Compose dialog recording on calls #
Ask an LLM
“Can I combine both sides of a dialog recording into one audio file?”
“Does composing a dialog recording support multi-channel output?”
Tell an agent
Compose the recording of dialog {dialogId} into a single file.
Merge dialog {dialogId} recordings and delete the call recordings: {deleteCallRecordings}.
GET /calls/1/recordings/files/{fileId} Download a recording file · Download recording file #
Ask an LLM
“How do I download the audio of a recording?”
“Can I download just part of a recording file with a byte range?”
Tell an agent
Download recording file {fileId}.
Download bytes {range} of recording file {fileId}.
DELETE /calls/1/recordings/files/{fileId} Delete a single recording file · Delete recording file #
Ask an LLM
“Can I delete one recording file but keep the recording's metadata?”
“How do I remove a single file from a call or conference recording?”
Tell an agent destructive · confirm first
Delete recording file {fileId}.
Remove recording file {fileId} from {location}.
GET /calls/1/media-stream-configs List media-stream configurations · Get media-stream configs #
Ask an LLM
“Which media-stream configurations do I have?”
“Can I page through my audio streaming configs?”
Tell an agent
List my media-stream configurations.
Show page {page} of media-stream configs.
POST /calls/1/media-stream-configs Create a media-stream configuration · Create a media-stream configuration #
Ask an LLM
“How do I configure where call audio is streamed to?”
“What's needed to set up a media-stream config with a websocket URL?”
Tell an agent
Create a {type} media-stream config named {name} pointing at {url}.
Set up media streaming {name} of type {type} to {url}.
GET /calls/1/media-stream-configs/{mediaStreamConfigId} Get a media-stream configuration · Get media-stream configuration #
Ask an LLM
“What URL is a specific media-stream configuration using?”
“Can I look up one media-stream config by ID?”
Tell an agent
Show media-stream configuration {mediaStreamConfigId}.
Get the settings of media-stream config {mediaStreamConfigId}.
PUT /calls/1/media-stream-configs/{mediaStreamConfigId} Update a media-stream configuration · Update a media-stream configuration #
Ask an LLM
“Can I change the streaming URL of an existing media-stream config?”
“How do I edit a media-stream configuration?”
Tell an agent
Update media-stream config {mediaStreamConfigId} to {type} {name} at {url}.
Point media-stream config {mediaStreamConfigId} at {url}, keeping name {name} and type {type}.
DELETE /calls/1/media-stream-configs/{mediaStreamConfigId} Delete a media-stream configuration · Delete a media-stream configuration #
Ask an LLM
“How do I delete a media-stream configuration?”
“Can I remove an audio streaming config I no longer use?”
Tell an agent destructive · confirm first
Delete media-stream config {mediaStreamConfigId}.
Remove media-stream configuration {mediaStreamConfigId}.
POST /calls/1/bulks Create a bulk of outbound calls · Create bulk of calls #
Ask an LLM
“Can I place many outbound phone calls in one request?”
“Do bulk calls support scheduling and retries?”
Tell an agent
Create a bulk of calls {items} under configuration {callsConfigurationId}.
Launch call bulk {bulkId} with items {items} using configuration {callsConfigurationId}.
GET /calls/1/bulks/{bulkId} Check the status of a call bulk · Get bulk status #
Ask an LLM
“What's the status of my scheduled bulk of outbound calls?”
“Why doesn't my call bulk have a status?”
Tell an agent
Check the status of call bulk {bulkId}.
Tell me how call bulk {bulkId} is progressing.
POST /calls/1/bulks/{bulkId}/reschedule Reschedule a call bulk · Reschedule #
Ask an LLM
“Can I change the start time of a scheduled call bulk?”
“Is it possible to reschedule a call bulk that has already started?”
Tell an agent
Reschedule call bulk {bulkId} to start at {startTime}.
Move the start of call bulk {bulkId} to {startTime}.
POST /calls/1/bulks/{bulkId}/pause Pause a call bulk · Pause #
Ask an LLM
“Can I pause a bulk of outbound calls that's in progress?”
“What must be true for a call bulk to be paused?”
Tell an agent
Pause call bulk {bulkId}.
Hold the outbound call bulk {bulkId}.
POST /calls/1/bulks/{bulkId}/resume Resume a paused call bulk · Resume #
Ask an LLM
“How do I resume a call bulk I paused?”
“Can a paused bulk of calls continue where it left off?”
Tell an agent
Resume call bulk {bulkId}.
Restart the paused call bulk {bulkId}.
POST /calls/1/bulks/{bulkId}/cancel Cancel a call bulk · Cancel #
Ask an LLM
“How do I cancel a scheduled bulk of outbound calls?”
“Can a call bulk be cancelled after it finishes?”
Tell an agent destructive · confirm first
Cancel call bulk {bulkId}.
Stop and cancel outbound call bulk {bulkId}.
POST /markuplanguage/1/create Place a call driven by markup instructions · Create markup language call #
Ask an LLM
“Can I start a voice call whose flow is controlled by markup instructions from my server?”
“Is answering machine detection available on markup language calls?”
Tell an agent
Create a markup language call to {endpoint} from {from} using callback {callback}.
Start a markup-driven call from {from} to {endpoint} with callback {callback} and notify URL {notifyUrl}.
GET /markuplanguage/1/config List markup language configurations · Get markup language configurations #
Ask an LLM
“Which markup language configurations exist on my account?”
“Can I page through my voice markup configs?”
Tell an agent
List my markup language configurations.
Show page {page} of markup language configs.
POST /markuplanguage/1/config Create a markup language configuration · Create a markup language configuration #
Ask an LLM
“How do I register the URL that serves my voice markup?”
“Can I set an error URL and HTTP method on a markup configuration?”
Tell an agent
Create markup config {name} fetching {markupUrl} with {httpMethod}.
Set up markup language config {name} at {markupUrl} using {httpMethod} and error URL {errorUrl}.
GET /markuplanguage/1/config/{configId} Get a markup language configuration · Get a markup language configuration #
Ask an LLM
“What markup URL does one configuration point to?”
“Can I look up a markup language config by ID?”
Tell an agent
Show markup language config {configId}.
Get the details of markup config {configId}.
PUT /markuplanguage/1/config/{configId} Update a markup language configuration · Update a markup language configuration #
Ask an LLM
“Can I change the markup URL of an existing configuration?”
“Do omitted fields reset to defaults when updating a markup config?”
Tell an agent
Update markup config {configId} to {name} at {markupUrl} via {httpMethod}.
Point markup config {configId} to {markupUrl}, name {name}, method {httpMethod}.
DELETE /markuplanguage/1/config/{configId} Delete a markup language configuration · Delete a markup language configuration #
Ask an LLM
“How do I delete a markup language configuration?”
“Can I remove an old voice markup config?”
Tell an agent destructive · confirm first
Delete markup language config {configId}.
Remove markup configuration {configId}.
POST /tts/3/single Send one voice message to recipients · Send single voice message #
Ask an LLM
“How do I send a text-to-speech voice call to one or more phone numbers?”
“Can a voice message play an audio file URL instead of spoken text?”
Tell an agent
Send a voice message from {from} to {to} saying {text}.
Call {to} from {from} and play {audioFileUrl}.
POST /tts/3/multi Send several different voice messages · Send multiple voice messages #
Ask an LLM
“Can I send different voice messages to different recipients in one request?”
“Is there a way to batch several distinct text-to-speech calls together?”
Tell an agent
Send these multiple voice messages: {messages}.
Batch-send distinct voice messages {messages} in one request.
POST /tts/3/advanced Send advanced voice messages · Send advanced voice message #
Ask an LLM
“Can advanced voice messages be scheduled or throttled under a bulk ID?”
“Which voice messaging endpoint supports the most options?”
Tell an agent
Send advanced voice messages {messages}.
Send advanced voice batch {messages} under bulk ID {bulkId}.
GET /tts/3/voices/{language} List text-to-speech voices for a language · Get Voices #
Ask an LLM
“Which text-to-speech voices are available for a language?”
“Are neural voices available for voice messages?”
Tell an agent
List TTS voices for language {language}.
Show voices for {language} including neural voices: {includeNeural}.
GET /tts/3/bulks View the schedule of a voice message bulk · Get sent bulks #
Ask an LLM
“When is my scheduled voice message bulk going out?”
“Can I see the scheduled time for a text-to-speech bulk?”
Tell an agent
Show the scheduled time of voice bulk {bulkId}.
Tell me when TTS bulk {bulkId} is scheduled.
PUT /tts/3/bulks Reschedule a paused voice message bulk · Reschedule sent bulk #
Ask an LLM
“Can I reschedule a voice message bulk?”
“Does a TTS bulk need to be paused before I can reschedule it?”
Tell an agent
Reschedule voice bulk {bulkId} to {sendAt}.
Move paused TTS bulk {bulkId} to send at {sendAt}.
GET /tts/3/bulks/status Check the status of a voice message bulk · Get sent bulk's status #
Ask an LLM
“Is my scheduled voice message bulk paused or pending?”
“What status is a text-to-speech bulk in?”
Tell an agent
Check the status of voice bulk {bulkId}.
Tell me if TTS bulk {bulkId} is paused.
PUT /tts/3/bulks/status Pause, resume or cancel a voice message bulk · Manage sent bulk's status #
Ask an LLM
“Can I pause or cancel voice messages scheduled for later?”
“Which voice messages can still be cancelled in a bulk?”
Tell an agent
Set voice bulk {bulkId} to status {status}.
Pause TTS bulk {bulkId} by changing its status to {status}.
GET /voice/ivr/1/scenarios Search voice IVR scenarios · Search Voice IVR Scenarios #
Ask an LLM
“Which IVR scenarios have I built for voice calls?”
“Can I search IVR scenarios by name or label?”
Tell an agent
List all my voice IVR scenarios.
Search IVR scenarios named {name}.
POST /voice/ivr/1/scenarios Create a voice IVR scenario · Create Voice IVR Scenarios #
Ask an LLM
“How do I build a new interactive voice response flow?”
“Will an unused IVR scenario be removed eventually?”
Tell an agent
Create IVR scenario {name} with script {script}.
Build IVR scenario {name} using script {script} and record {record}.
GET /voice/ivr/1/scenarios/{id} Get a voice IVR scenario · Get a Voice IVR Scenario #
Ask an LLM
“What script does one IVR scenario run?”
“Can I look up a voice IVR scenario by ID?”
Tell an agent
Show IVR scenario {id}.
Get the script of IVR scenario {id}.
PUT /voice/ivr/1/scenarios/{id} Update a voice IVR scenario · Update Voice IVR Scenarios #
Ask an LLM
“Can I change the script of an existing IVR scenario?”
“How long do IVR scenario updates take to apply?”
Tell an agent
Update IVR scenario {id} with name {name} and script {script}.
Replace the script of IVR scenario {id} with {script}, keeping name {name}.
DELETE /voice/ivr/1/scenarios/{id} Delete a voice IVR scenario · Delete Voice IVR Scenarios #
Ask an LLM
“How do I delete an IVR scenario I no longer use?”
“Can a voice IVR flow be removed permanently?”
Tell an agent destructive · confirm first
Delete IVR scenario {id}.
Remove voice IVR scenario {id}.
POST /voice/ivr/1/messages Launch an outbound IVR scenario to many numbers · Launch IVR Scenario #
Ask an LLM
“How do I start an outbound IVR call flow toward a list of phone numbers?”
“Can one request launch the same IVR scenario to multiple destinations at once?”
Tell an agent
Launch the IVR scenario described in {messages} as outbound calls.
Start outbound IVR calls from {messages} and tag the batch with bulk ID {bulkId}.
GET /voice/ivr/1/files Search audio recorded during IVR calls · Search Voice IVR Recorded Files #
Ask an LLM
“Where can I find the audio callers recorded during my IVR scenarios?”
“Can I look up IVR recordings by the phone number that was called?”
Tell an agent
Search IVR recorded audio files for message {messageId}.
Find the IVR call recordings captured for number {number}.
GET /voice/ivr/1/files/{id} Download one IVR recorded audio file · Download Voice IVR Recorded File #
Ask an LLM
“What audio format does a downloaded IVR recording come back in?”
“How long do IVR recorded audio files stay available for download?”
Tell an agent
Download the IVR recorded audio file {id} as WAVE audio.
Fetch the recording captured in IVR file {id}.
GET /voice/ivr/1/uploads List audio files uploaded for IVR playback · Get files #
Ask an LLM
“Which audio files have I uploaded to play in IVR calls?”
“Is there a page limit when listing my uploaded IVR audio files?”
Tell an agent
List the audio files I uploaded for IVR playback.
Show page {page} of my IVR uploads, {size} files per page.
POST /voice/ivr/1/uploads Upload an audio file to play in IVR calls · Upload file #
Ask an LLM
“Can I upload my own .wav or .mp3 prompt to play during IVR calls?”
“What happens to an uploaded IVR audio file that goes unused for 90 days?”
Tell an agent
Upload {file} as an audio prompt for my IVR scenarios.
Add the recording {file} to my IVR audio uploads.
POST /voice/ctc/1/send Send a click-to-call voice message · Send click-to-call message #
Ask an LLM
“How do I connect two parties with a click-to-call voice message?”
“Can I send several click-to-call messages in a single request?”
Tell an agent
Send the click-to-call messages in {messages}.
Place click-to-call voice messages {messages} under bulk ID {bulkId}.
GET /voice/1/reports Get delivery reports for voice, IVR and click-to-call · Get Voice Delivery Reports #
Ask an LLM
“Were my voice, outbound IVR and click-to-call messages delivered?”
“Can I pull voice delivery reports when I didn't set a notify URL?”
Tell an agent
Get the current voice delivery report for message {messageId}.
Fetch up to {limit} voice delivery reports for bulk {bulkId}.
GET /tts/3/reports Get voice delivery reports (deprecated TTS v3) · Get Voice Delivery Reports #
Ask an LLM
“Is the old TTS version 3 voice delivery report endpoint still supported?”
“What did the deprecated /tts/3 reports call return for my voice messages?”
Tell an agent
Use the deprecated TTS v3 endpoint to get voice delivery reports for bulk {bulkId}.
Pull the legacy TTS v3 delivery report for voice message {messageId}.
GET /tts/3/logs Get logs of voice messages sent in the last 48 hours · Get sent Voice logs #
Ask an LLM
“How far back can I see logs of the voice messages I sent?”
“Can I filter voice message logs by status, sender or mobile network code?”
Tell an agent
Show voice message logs sent to {to} since {sentSince}.
List voice logs for bulk {bulkId} with general status {generalStatus}.
GET /voice/masking/2/config List voice number masking configurations · Get number masking configurations #
Ask an LLM
“Which number masking configurations do I have set up for voice?”
“Can I see all my masked-calling setups in one list?”
Tell an agent
List all my voice number masking configurations.
Show every number masking config on the account.
POST /voice/masking/2/config Create a voice number masking configuration · Create number masking configuration #
Ask an LLM
“How do I set up number masking so callers never see each other's real numbers?”
“Can a masking configuration have a backup callback URL in case the main one fails?”
Tell an agent
Create a number masking configuration named {name} that calls back {callbackUrl}.
Set up masking config {name} with callback {callbackUrl} and status URL {statusUrl}.
GET /voice/masking/2/config/{key} Get one number masking configuration · Get number masking configuration #
Ask an LLM
“What callback and status URLs does a specific masking configuration use?”
“Can I look up a single number masking configuration by its key?”
Tell an agent
Show the number masking configuration with key {key}.
Get details of masking config {key}.
PUT /voice/masking/2/config/{key} Update a number masking configuration · Update number masking configuration #
Ask an LLM
“Can I change the callback URL on a masking configuration I already created?”
“How do I rename an existing number masking setup?”
Tell an agent
Update masking config {key} to name {name} with callback {callbackUrl}.
Point existing masking configuration {key} at backup callback {backupCallbackUrl}, keeping name {name} and callback {callbackUrl}.
DELETE /voice/masking/2/config/{key} Delete a number masking configuration · Delete number masking configuration #
Ask an LLM
“How do I remove a number masking configuration I no longer use?”
“Is deleting a masking configuration done by its key?”
Tell an agent destructive · confirm first
Delete the number masking configuration {key}.
Remove masking config {key} from my voice setup.
POST /voice/masking/1/upload Upload an mp3 for number masking calls · Upload audio files #
Ask an LLM
“Can I give the number masking service an mp3 by URL instead of uploading the file?”
“What's the size limit for audio uploaded to the masking platform?”
Tell an agent
Upload the mp3 at {url} for use in masked voice calls.
Upload this Base64-encoded mp3 {content} to the number masking audio store.
GET /voice/masking/2/credentials Get number masking API credentials · Get number masking credentials #
Ask an LLM
“Which API ID and key are set for my number masking callbacks?”
“Can I check what number masking credentials are currently configured?”
Tell an agent
Show my current number masking credentials.
Get the masking API ID and key on file.
PUT /voice/masking/2/credentials Update number masking credentials · Update number masking credentials #
Ask an LLM
“How do I rotate the key on my existing number masking credentials?”
“Can I replace the API ID used by number masking?”
Tell an agent
Update my existing number masking credentials to API ID {apiId} and key {key}.
Rotate the masking credential key to {key} for API ID {apiId}.
POST /voice/masking/2/credentials Create number masking credentials · Create number masking credentials #
Ask an LLM
“What do I need to create number masking credentials for the first time?”
“Can I register an API ID and key for masked calling?”
Tell an agent
Create new number masking credentials with API ID {apiId} and key {key}.
Register first-time masking credentials {apiId} / {key}.
DELETE /voice/masking/2/credentials Delete number masking credentials · Delete number masking credentials #
Ask an LLM
“How do I delete the credentials used for number masking?”
“Can I wipe my masking API ID and key entirely?”
Tell an agent destructive · confirm first
Delete my number masking credentials.
Remove the masking API ID and key from the account.
GET /callrouting/1/routes List call routes · Get call routes #
Ask an LLM
“Which call routes are configured on my account?”
“Can I find call routes whose name contains a certain word?”
Tell an agent
List my call routes.
Find call routes with names containing {nameContains}.
POST /callrouting/1/routes Create a call route · Create a call route #
Ask an LLM
“How do I create a route that sends inbound calls to specific destinations?”
“Can a new call route be limited to transfers only?”
Tell an agent
Create a call route named {name} that sends calls to {destinations}.
Add route {name} matching {criteria} with destinations {destinations}.
GET /callrouting/1/routes/{routeId} Get a call route · Get a call route #
Ask an LLM
“What criteria and destinations does a particular call route use?”
“Can I look up one call route by its ID?”
Tell an agent
Show call route {routeId}.
Get the destinations and criteria of route {routeId}.
PUT /callrouting/1/routes/{routeId} Replace a call route's settings · Update a call route #
Ask an LLM
“If I update a call route, do fields I leave out get reset to defaults?”
“Can I change the destinations on an existing call route?”
Tell an agent
Update call route {routeId} with name {name} and destinations {destinations}.
Overwrite route {routeId}: name {name}, destinations {destinations}, criteria {criteria}.
DELETE /callrouting/1/routes/{routeId} Delete a call route · Delete a call route #
Ask an LLM
“How do I get rid of a call route I don't need?”
“Is removing a call route permanent?”
Tell an agent destructive · confirm first
Delete call route {routeId}.
Remove route {routeId} from call routing.
PATCH /callrouting/1/routes/{routeId} Change a call route's evaluation order · Set order on call route #
Ask an LLM
“Can I change which call route is evaluated first?”
“How is the priority order of call routes set?”
Tell an agent
Move call route {routeId} to position {order}.
Set the order of route {routeId} to {order}.
GET /callrouting/1/recordings Search call routing recordings · Get recordings #
Ask an LLM
“Where do I find recordings of calls that went through my call routes?”
“Can I filter call routing recordings by route, SIP trunk or start time?”
Tell an agent
Find call routing recordings for route {routeId} started after {startTimeAfter}.
Search routed-call recordings for phone number {phoneNumber}.
DELETE /callrouting/1/recordings Delete call routing recordings by correlation ID · Delete by correlation ID #
Ask an LLM
“How do I delete all call routing recordings tied to one correlation ID?”
“Can I remove routed-call recordings stored in a specific location?”
Tell an agent destructive · confirm first
Delete call routing recordings with correlation ID {correlationId}.
Remove routed-call recordings for correlation {correlationId} stored in {location}.
GET /callrouting/1/recordings/files/{fileId} Download a call routing recording file · Download recording file #
Ask an LLM
“How can I download the audio of a routed call recording?”
“Can I request just a byte range of a call routing recording file?”
Tell an agent
Download call routing recording file {fileId}.
Fetch bytes {Range} of routed-call recording file {fileId}.
POST /callrouting/1/routes/{routeId}/status Enable or disable a call route · Update route status #
Ask an LLM
“Can I temporarily disable a call route without deleting it?”
“What status values can a call route be switched to?”
Tell an agent
Set the status of call route {routeId} to {routeStatus}.
Disable route {routeId} by setting its status to {routeStatus}.
POST /callrouting/1/routes/simulate Simulate which call route a call would take · Simulate route selection #
Ask an LLM
“Which call route would be picked for a call to a given destination?”
“Can I test route selection including routes that are currently disabled?”
Tell an agent
Simulate route selection for a call to {to} from endpoint {endpoint}.
Dry-run call routing to {to} from {endpoint}, counting disabled routes: {useDisabledRoutes}.
GET /number-reputation/1/businesses Get businesses #
POST /number-reputation/1/businesses Register a new business #
GET /number-reputation/1/businesses/{businessId} Get business #
PUT /number-reputation/1/businesses/{businessId} Update business registration info #
DELETE /number-reputation/1/businesses/{businessId} Remove access to a business #
GET /number-reputation/1/businesses/{businessId}/numbers Get business phone numbers #
POST /number-reputation/1/businesses/{businessId}/numbers Register phone numbers #
DELETE /number-reputation/1/businesses/{businessId}/numbers Remove phone numbers #
GET /number-reputation/1/numbers Get phone numbers (cross-business) #
GET /number-reputation/1/businesses/{businessId}/numbers/jobs Get phone number registration jobs #
POST /number-reputation/1/reputation Check reputation for phone numbers #
GET /calls/1/files List uploaded call audio files · Get files #
Ask an LLM
“Which audio files have I uploaded for playing on calls?”
“Is there a page limit when listing call audio files?”
Tell an agent
List my uploaded call audio files.
Show page {page} of my call audio files.
POST /calls/1/files Upload an audio file for calls · Upload audio file #
Ask an LLM
“Can I upload an audio file to play on calls, dialogs or conferences?”
“Do uploaded call audio files expire if not used?”
Tell an agent
Upload audio file {file} for playing on calls.
Add {file} to my call audio library.
GET /calls/1/files/{fileId} Get an uploaded call audio file · Get file #
Ask an LLM
“What are the details of one uploaded call audio file?”
“Can I look up a call audio file by ID?”
Tell an agent
Show call audio file {fileId}.
Get details for uploaded audio {fileId}.
DELETE /calls/1/files/{fileId} Delete an uploaded call audio file · Delete file #
Ask an LLM
“How do I delete an audio file I uploaded for calls?”
“Can I remove a call prompt audio file I no longer play?”
Tell an agent destructive · confirm first
Delete call audio file {fileId}.
Remove uploaded audio {fileId} from my call files.
POST /webrtc/1/token Generate a WebRTC access token · Generate WebRTC Token #
Ask an LLM
“How does my web or mobile app get a token to join WebRTC calls?”
“Can I control how long a WebRTC token stays valid?”
Tell an agent
Generate a WebRTC token for identity {identity}.
Issue a WebRTC token for {identity} shown as {displayName}, valid for {timeToLive} seconds.
GET /webrtc/1/webrtc-push-config List WebRTC push configurations · Get WebRTC push configurations #
Ask an LLM
“Which WebRTC push notification configurations exist on my account?”
“Can I page through my WebRTC push setups?”
Tell an agent
List WebRTC push configurations, page {page} with {size} per page.
Show the first {size} WebRTC push configs on page {page}.
POST /webrtc/1/webrtc-push-config Create a WebRTC push configuration · Create WebRTC push configuration #
Ask an LLM
“How do I set up push notifications for incoming WebRTC calls on iOS and Android?”
“What do I need to create a new WebRTC push configuration?”
Tell an agent
Create a WebRTC push configuration named {name} with iOS settings {ios} and Android settings {android}.
Add a new WebRTC push config {name}.
GET /webrtc/1/webrtc-push-config/{id} Get a WebRTC push configuration · Get WebRTC push configuration #
Ask an LLM
“What iOS and Android settings does one WebRTC push configuration hold?”
“Can I view a single WebRTC push config by ID?”
Tell an agent
Show WebRTC push configuration {id}.
Get the details of push config {id} for WebRTC.
PUT /webrtc/1/webrtc-push-config/{id} Replace a WebRTC push configuration · Update WebRTC push configuration #
Ask an LLM
“Can I replace all the details of an existing WebRTC push configuration?”
“How do I overwrite the iOS and Android settings on a WebRTC push config?”
Tell an agent
Replace WebRTC push configuration {id} with name {name}, iOS {ios} and Android {android}.
Fully update push config {id} to be named {name}.
DELETE /webrtc/1/webrtc-push-config/{id} Delete a WebRTC push configuration · Delete WebRTC push configuration #
Ask an LLM
“How do I remove a WebRTC push configuration?”
“Is a WebRTC push config deleted by its ID?”
Tell an agent destructive · confirm first
Delete WebRTC push configuration {id}.
Remove push config {id} from WebRTC.
PATCH /webrtc/1/webrtc-push-config/{id} Change specific fields of a WebRTC push config · Patch WebRTC push configuration #
Ask an LLM
“Can I change only the Android settings of a WebRTC push config and leave the rest alone?”
“Which fields stay unchanged when I partially update a WebRTC push configuration?”
Tell an agent
Patch WebRTC push configuration {id} with just the Android settings {android}.
Only rename push config {id} to {name}, keeping its other fields.
GET /webrtc/1/files List WebRTC files · Get files #
Ask an LLM
“What files are stored for my WebRTC application?”
“Can I page through WebRTC files?”
Tell an agent
List my WebRTC files.
Show page {page} of WebRTC files with {size} per page.
GET /webrtc/1/files/{id} Get a WebRTC file's details · Get file #
Ask an LLM
“What metadata is available for a single WebRTC file?”
“Can I look up one WebRTC file by its ID without downloading it?”
Tell an agent
Get the details of WebRTC file {id}.
Show metadata for WebRTC file {id}.
DELETE /webrtc/1/files/{id} Delete a WebRTC file · Delete file #
Ask an LLM
“How do I delete a stored WebRTC file?”
“Is removing a WebRTC file permanent?”
Tell an agent destructive · confirm first
Delete WebRTC file {id}.
Remove file {id} from WebRTC storage.
GET /webrtc/1/files/{id}/download Download a WebRTC file · Download file #
Ask an LLM
“How can I download the contents of a WebRTC file?”
“Can I get the actual bytes of a WebRTC file by ID?”
Tell an agent
Download WebRTC file {id}.
Save the contents of WebRTC file {id}.
GET /webrtc/1/user-activity Get a WebRTC user's activity · Get WebRTC user activity #
Ask an LLM
“What has a particular WebRTC identity been doing on my app?”
“Can I filter WebRTC user activity by session or time window?”
Tell an agent
Show WebRTC activity for identity {identity}.
Get WebRTC activity for {identity} between {startTime} and {endTime}.
GET /webrtc/1/recordings Search WebRTC call recordings · Get WebRTC recordings #
Ask an LLM
“Where can I find recordings of WebRTC calls and rooms?”
“Can I filter WebRTC recordings by room name or call type?”
Tell an agent
Find WebRTC recordings for room {roomName}.
Search WebRTC recordings of identity {identity} started after {startTimeAfter}.
DELETE /webrtc/1/recordings/{id} Delete a WebRTC recording · Delete WebRTC recording by ID #
Ask an LLM
“How do I delete a single WebRTC call recording?”
“Can I delete a WebRTC recording stored in a particular location?”
Tell an agent destructive · confirm first
Delete WebRTC recording {id}.
Remove WebRTC recording {id} stored in {location}.
GET /webrtc/1/recordings/{id}/download Download a WebRTC recording file · Download WebRTC recording file #
Ask an LLM
“How do I download the file of a WebRTC call recording?”
“Can I fetch part of a WebRTC recording with a byte range?”
Tell an agent
Download WebRTC recording {id}.
Fetch bytes {Range} of WebRTC recording {id}.
GET /call-link/1/configs List call link configurations · Get configurations #
Ask an LLM
“Which call link configurations do I have?”
“Can I page through my call link themes and options?”
Tell an agent
List my call link configurations.
Show page {page} of call link configs, {size} per page.
POST /call-link/1/configs Create a call link configuration · Create configuration #
Ask an LLM
“How do I define the theme and call options that my call links use?”
“Can I make a new call link configuration the default one?”
Tell an agent
Create a call link configuration named {name}.
Add call link config {name} with theme {theme}, set as default: {isDefault}.
GET /call-link/1/configs/{id} Get a call link configuration · Get configuration #
Ask an LLM
“What theme and call options does one call link configuration use?”
“Can I retrieve a call link configuration by its ID?”
Tell an agent
Show call link configuration {id}.
Get the settings of call link config {id}.
PUT /call-link/1/configs/{id} Overwrite a call link configuration · Update a configuration #
Ask an LLM
“If I overwrite a call link configuration, what happens to attributes I don't send?”
“Can I fully replace the settings of an existing call link configuration?”
Tell an agent
Overwrite call link configuration {id} with name {name}, resetting anything I leave out.
Replace all settings of call link config {id}: name {name}, call options {callOptions}.
DELETE /call-link/1/configs/{id} Delete a call link configuration · Delete configuration #
Ask an LLM
“How do I delete a call link configuration?”
“Is a call link configuration removed by its ID?”
Tell an agent destructive · confirm first
Delete call link configuration {id}.
Remove the call link config {id}.
PATCH /call-link/1/configs/{id} Partially update a call link configuration · Partial configuration update #
Ask an LLM
“Can I change just the theme of a call link configuration and keep everything else?”
“Do attributes I omit keep their values when I partially update a call link config?”
Tell an agent
Patch call link configuration {id}: set name {name} and theme {theme}, keep other values.
Only change the webhook of call link config {id} to {webhook}, name stays {name}.
GET /call-link/1/images List call link images · Get images #
Ask an LLM
“Which logo and background images have I uploaded for call links?”
“Can I page through call link images?”
Tell an agent
List my call link images.
Show page {page} of call link images, {size} per page.
POST /call-link/1/images/upload/{type} Upload a logo or background for call links · Upload image #
Ask an LLM
“How do I add my logo to the call link page?”
“What size limits apply to call link logo and background images?”
Tell an agent
Upload {file} as a call link image of type {type}.
Add a {type} image {file} for my call link configurations.
GET /call-link/1/images/{id} Get a call link image · Get image #
Ask an LLM
“Can I fetch one call link image by its ID?”
“What does a stored call link logo or background look like?”
Tell an agent
Get call link image {id}.
Show the call link image with ID {id}.
DELETE /call-link/1/images/{id} Delete a call link image · Delete image #
Ask an LLM
“How do I remove a logo or background image from call link configurations?”
“Is a call link image deleted by ID?”
Tell an agent destructive · confirm first
Delete call link image {id}.
Remove the call link configuration image {id}.
GET /call-link/1/subdomains List call link subdomains · Get subdomains #
Ask an LLM
“Which subdomains are set up for my call links?”
“Can I see all call link subdomains on the account?”
Tell an agent
List my call link subdomains.
Show every subdomain used for call links.
POST /call-link/1/subdomains Create a call link subdomain · Create subdomain #
Ask an LLM
“How many call link subdomains can I create?”
“Can a call link subdomain name contain a dot?”
Tell an agent
Create a call link subdomain named {name}.
Add {name} as a new subdomain for call links.
DELETE /call-link/1/subdomains/{id} Delete a call link subdomain · Delete subdomain #
Ask an LLM
“How do I delete a call link subdomain to free up a slot?”
“Is a call link subdomain removed by its ID?”
Tell an agent destructive · confirm first
Delete call link subdomain {id}.
Remove subdomain {id} from call links.
POST /email/4/messages Send personalized email messages in bulk · Send email messages #
Ask an LLM
“Can I send personalized emails to thousands of recipients in one API request?”
“Which email send method supports scheduling and batch personalization together?”
Tell an agent
Send the email messages in {messages} using the v4 messages endpoint.
Send batch email {messages} with sending options {options}.
POST /email/1/content Upload binary content to reference in emails · Upload binary content #
Ask an LLM
“How do I upload a file once and reference it in later emails?”
“Can uploaded email binary content expire after a set number of minutes?”
Tell an agent
Upload binary content with content ID {X-Content-Id} and media type {X-Media-Type}.
Store email content {X-Content-Id} as {X-Media-Type}, valid for {X-Validity-Period-Minutes} minutes.
POST /email/4/mime Send an email built as a raw MIME message · Send MIME email #
Ask an LLM
“Can I send an email where I provide the full MIME message myself?”
“What's the way to send a pre-built MIME email to specific destinations?”
Tell an agent
Send the raw MIME message {mimeMessage}.
Send MIME email {mimeMessage} from {from} to {destinations}.
GET /email/1/bulks See when a scheduled email bulk will send · Get scheduled bulks #
Ask an LLM
“When is my scheduled email batch set to go out?”
“Can I check the send time of a scheduled email bulk?”
Tell an agent
Show the scheduled send time for email bulk {bulkId}.
Tell me when scheduled email bulk {bulkId} will be sent.
PUT /email/1/bulks Reschedule a scheduled email bulk · Reschedule messages #
Ask an LLM
“Can I move a scheduled email batch to a different date and time?”
“How do I push back scheduled emails that haven't gone out yet?”
Tell an agent
Reschedule email bulk {bulkId} to send at {sendAt}.
Move the send time of scheduled emails in {bulkId} to {sendAt}.
GET /email/1/bulks/status Get the status of a scheduled email bulk · Get scheduled bulk statuses #
Ask an LLM
“Is my scheduled email batch still pending, paused or canceled?”
“What status is a scheduled email bulk in right now?”
Tell an agent
Get the status of scheduled email bulk {bulkId}.
Check whether scheduled emails in {bulkId} are paused or pending.
PUT /email/1/bulks/status Pause, resume or cancel scheduled emails · Update scheduled message statuses #
Ask an LLM
“Can I cancel a scheduled email batch before it sends?”
“How do I pause scheduled emails and resume them later?”
Tell an agent destructive · confirm first
Set scheduled email bulk {bulkId} to status {status}.
Cancel sending of scheduled emails in bulk {bulkId} by setting status {status}.
GET /email/4/logs Get email logs with cursor paging (v4) · Get email message logs #
Ask an LLM
“Can I page through the last 48 hours of email logs with a cursor?”
“Which email logs endpoint lets me filter by sender, destination and campaign?”
Tell an agent
Show v4 email logs from sender {sender} to {destination}.
Get the next page of email logs from cursor {cursor}.
GET /email/4/reports Get email delivery reports (v4) · Get email delivery reports #
Ask an LLM
“Where do I pull one-time delivery reports for emails sent through the v4 API?”
“Can I fetch v4 email delivery reports for a campaign reference?”
Tell an agent
Get v4 email delivery reports for bulk {bulkId}.
Fetch v4 delivery reports for campaign reference {campaignReferenceId}.
GET /email/1/logs Get email logs by message ID (v1) · Get email message logs #
Ask an LLM
“Can I look up the log of one sent email by its message ID on the v1 endpoint?”
“What filters does the older v1 email logs call accept?”
Tell an agent
Get the v1 email log for message {messageId}.
Show v1 email logs from {from} with general status {generalStatus}.
GET /email/1/reports Get email delivery reports (v1) · Get email delivery reports #
Ask an LLM
“Where are the one-time delivery reports on the older v1 email API?”
“Can the v1 email reports call limit how many reports come back?”
Tell an agent
Get v1 email delivery reports for message {messageId}.
Fetch up to {limit} v1 email delivery reports for bulk {bulkId}.
POST /email/2/validation Validate a single email address in real time · Validate email address #
Ask an LLM
“Can I check whether one email address is valid before I send to it?”
“Is there a real-time check for a single bad email address?”
Tell an agent
Validate the email address {to}.
Check in real time whether {to} is a deliverable address.
GET /email/2/validations Review bulk email validation results · Get email validations #
Ask an LLM
“What were the results of my bulk email address validation?”
“Can I filter validation results to disposable or role-based addresses?”
Tell an agent
Show results of email validation request {validationRequestId}.
List validated addresses with risk level {risk}.
POST /email/2/validations Request bulk email address validation · Validate email addresses #
Ask an LLM
“How can I clean up a whole recipient list by validating it in bulk?”
“Can I submit many email addresses for validation in one request?”
Tell an agent
Request bulk validation of the addresses {destinations}.
Validate {destinations} in bulk under request ID {validationRequestId}.
GET /email/1/domains List email sending domains · Get domains #
Ask an LLM
“Which email domains are associated with my account?”
“Can I see DNS records and blocked status for all my email domains?”
Tell an agent
List all my email sending domains.
Show page {page} of email domains, {size} per page.
POST /email/1/domains Add an email sending domain · Add domain #
Ask an LLM
“How do I add a new domain to send email from?”
“How many email domains can I create in a single day?”
Tell an agent
Add email domain {domainName} with targeted daily traffic {targetedDailyTraffic}.
Register sending domain {domainName} with a {dkimKeyLength}-bit DKIM key and daily traffic {targetedDailyTraffic}.
GET /email/1/domains/{domainName} Get an email domain's DNS and tracking details · Get domain details #
Ask an LLM
“What DNS records do I need to set for my email domain?”
“Is my email domain active or blocked?”
Tell an agent
Show details of email domain {domainName}.
Get the DNS records and status for {domainName}.
DELETE /email/1/domains/{domainName} Delete an email sending domain · Delete domain #
Ask an LLM
“How do I delete an email domain I no longer send from?”
“Can I remove a sending domain from my email account?”
Tell an agent destructive · confirm first
Delete email domain {domainName}.
Remove {domainName} from my sending domains.
PUT /email/1/domains/{domainName}/tracking Turn email open, click and unsubscribe tracking on or off · Update domain tracking events #
Ask an LLM
“Can I disable click tracking for one email domain?”
“Which tracking events can be toggled on a sending domain?”
Tell an agent
Set tracking on {domainName}: opens {open}, clicks {clicks}, unsubscribes {unsubscribe}.
Turn click tracking for domain {domainName} to {clicks}.

Documentation

📖
Documentation
https://www.infobip.com/docs/api/platform/2fa
📖
APIReference
https://www.infobip.com/docs/api/platform/2fa
📖
Documentation
https://www.infobip.com/docs/api/platform/account-management
📖
APIReference
https://www.infobip.com/docs/api/platform/account-management
📖
Documentation
https://www.infobip.com/docs/api/ai-hub/ai-assistants
📖
APIReference
https://www.infobip.com/docs/api/ai-hub/ai-assistants
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/answers
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/answers
📖
Documentation
https://www.infobip.com/docs/api/channels/apple-mfb
📖
APIReference
https://www.infobip.com/docs/api/channels/apple-mfb
📖
Documentation
https://www.infobip.com/docs/api/platform/application-entity
📖
APIReference
https://www.infobip.com/docs/api/platform/application-entity
📖
Documentation
https://www.infobip.com/docs/api/platform/billing-usage-api
📖
APIReference
https://www.infobip.com/docs/api/platform/billing-usage-api
📖
Documentation
https://www.infobip.com/docs/api/connectivity/biometrics
📖
APIReference
https://www.infobip.com/docs/api/connectivity/biometrics
📖
Documentation
https://www.infobip.com/docs/api/platform/blocklist
📖
APIReference
https://www.infobip.com/docs/api/platform/blocklist
📖
Documentation
https://www.infobip.com/docs/api/connectivity/camara
📖
APIReference
https://www.infobip.com/docs/api/connectivity/camara
📖
Documentation
https://www.infobip.com/docs/api/platform/catalogs-api
📖
APIReference
https://www.infobip.com/docs/api/platform/catalogs-api
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/common-assets
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/common-assets
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/conversations
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/conversations
📖
Documentation
https://www.infobip.com/docs/api/channels/email
📖
APIReference
https://www.infobip.com/docs/api/channels/email
📖
Documentation
https://www.infobip.com/docs/api/channels/instagram
📖
APIReference
https://www.infobip.com/docs/api/channels/instagram
📖
Documentation
https://www.infobip.com/docs/api/channels/kakao
📖
APIReference
https://www.infobip.com/docs/api/channels/kakao
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/knowledge-base
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/knowledge-base
📖
Documentation
https://www.infobip.com/docs/api/channels/line
📖
APIReference
https://www.infobip.com/docs/api/channels/line
📖
Documentation
https://www.infobip.com/docs/api/channels/live-chat
📖
APIReference
https://www.infobip.com/docs/api/channels/live-chat
📖
Documentation
https://www.infobip.com/docs/api/platform/messages-api
📖
APIReference
https://www.infobip.com/docs/api/platform/messages-api
📖
Documentation
https://www.infobip.com/docs/api/channels/messenger
📖
APIReference
https://www.infobip.com/docs/api/channels/messenger
📖
Documentation
https://www.infobip.com/docs/api/platform/metrics-api
📖
APIReference
https://www.infobip.com/docs/api/platform/metrics-api
📖
Documentation
https://www.infobip.com/docs/api/channels/mms
📖
APIReference
https://www.infobip.com/docs/api/channels/mms
📖
Documentation
https://www.infobip.com/docs/api/channels/mobile-app-messaging
📖
APIReference
https://www.infobip.com/docs/api/channels/mobile-app-messaging
📖
Documentation
https://www.infobip.com/docs/api/connectivity/mobile-identity
📖
APIReference
https://www.infobip.com/docs/api/connectivity/mobile-identity
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/moments
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/moments
📖
Documentation
https://www.infobip.com/docs/api/connectivity/number-activation-state
📖
APIReference
https://www.infobip.com/docs/api/connectivity/number-activation-state
📖
Documentation
https://www.infobip.com/docs/api/connectivity/number-lookup
📖
APIReference
https://www.infobip.com/docs/api/connectivity/number-lookup
📖
Documentation
https://www.infobip.com/docs/api/platform/numbers
📖
APIReference
https://www.infobip.com/docs/api/platform/numbers
📖
Documentation
https://www.infobip.com/docs/api/channels/omni-failover
📖
APIReference
https://www.infobip.com/docs/api/channels/omni-failover
📖
Documentation
https://www.infobip.com/docs/api/channels/open-channel
📖
APIReference
https://www.infobip.com/docs/api/channels/open-channel
📖
Documentation
https://www.infobip.com/docs/api/tools/openapi
📖
APIReference
https://www.infobip.com/docs/api/tools/openapi
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/people
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/people
📖
Documentation
https://www.infobip.com/docs/api/channels/rcs
📖
APIReference
https://www.infobip.com/docs/api/channels/rcs
📖
Documentation
https://www.infobip.com/docs/api/platform/resources
📖
APIReference
https://www.infobip.com/docs/api/platform/resources
📖
Documentation
https://www.infobip.com/docs/api/platform/sending-strategy
📖
APIReference
https://www.infobip.com/docs/api/platform/sending-strategy
📖
Documentation
https://www.infobip.com/docs/api/platform/signals
📖
APIReference
https://www.infobip.com/docs/api/platform/signals
📖
Documentation
https://www.infobip.com/docs/api/channels/sms
📖
APIReference
https://www.infobip.com/docs/api/channels/sms
📖
Documentation
https://www.infobip.com/docs/api/platform/subscriptions-api
📖
APIReference
https://www.infobip.com/docs/api/platform/subscriptions-api
📖
Documentation
https://www.infobip.com/docs/api/channels/tiktok
📖
APIReference
https://www.infobip.com/docs/api/channels/tiktok
📖
Documentation
https://www.infobip.com/docs/api/channels/viber
📖
APIReference
https://www.infobip.com/docs/api/channels/viber
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/vocalize
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/vocalize
📖
Documentation
https://www.infobip.com/docs/api/channels/voice
📖
APIReference
https://www.infobip.com/docs/api/channels/voice
📖
Documentation
https://www.infobip.com/docs/api/channels/webrtc-calls
📖
APIReference
https://www.infobip.com/docs/api/channels/webrtc-calls
📖
Documentation
https://www.infobip.com/docs/api/channels/whatsapp
📖
APIReference
https://www.infobip.com/docs/api/channels/whatsapp
📖
Documentation
https://www.infobip.com/docs/api/channels/zalo
📖
APIReference
https://www.infobip.com/docs/api/channels/zalo
📖
Documentation
https://www.infobip.com/docs/api/channels/line-oa
📖
APIReference
https://www.infobip.com/docs/api/channels/line-oa

Specifications

Schemas & Data

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/infobip:infobip-channels-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

infobip-channels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Infobip Channels API
  contact:
    name: Infobip support
    email: support@infobip.com
  x-refined-note:
  - x-generatedAt differs across the merged source definitions and was not carried
  - x-refined-note differs across the merged source definitions and was not carried
  - x-source-url differs across the merged source definitions and was not carried
  - x-source-version differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged channels across 2 of this provider''s published API definitions: infobip-platform-full-openapi.json, infobip-channels-api-openapi.yml. Each path carries the servers of the definition it was published in.'
tags:


# --- truncated at 32 KB (4578 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/infobip/refs/heads/main/openapi/infobip-channels-api-openapi.yml