# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Infobip OpenAPI Specification Channels API version: 1.0.0 extends: openapi/infobip-channels-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 455 - target: $.paths['/sms/3/messages'].post update: x-apievangelist-phrasing: intent: Send SMS messages effect: write questions: - 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? - Is there a single SMS endpoint that replaces both the older text and binary sending methods? instructions: - text: 'Send these SMS messages with the latest v3 endpoint: {messages}.' slots: messages: requestBody.messages - text: Send SMS {messages} and apply the delivery options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/sms/3/text/query'].get update: x-apievangelist-phrasing: intent: Send an SMS using only query string parameters effect: write questions: - 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? - Is it possible to schedule an SMS sent through URL query parameters? instructions: - text: Send the text {text} to {to} using the v3 query-string SMS endpoint. slots: text: query.text to: query.to - text: Fire off an SMS to {to} from sender {from} saying {text} via a URL GET request. slots: to: query.to from: query.from text: query.text - text: Schedule a query-parameter SMS to {to} reading {text} for {sendAt}. slots: to: query.to text: query.text sendAt: query.sendAt method: generated generated: '2026-09-26' - target: $.paths['/sms/1/text/query'].get update: x-apievangelist-phrasing: intent: Send an SMS by URL with username and password effect: write questions: - 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? - What happens to special characters in credentials when sending an SMS through a GET link? instructions: - text: Send {text} to {to} over the legacy v1 query endpoint logging in as {username} with {password}. slots: text: query.text to: query.to username: query.username password: query.password - text: Use my credentials {username} and {password} in the URL to text {to}. slots: username: query.username password: query.password to: query.to method: generated generated: '2026-09-26' - target: $.paths['/sms/1/preview'].post update: x-apievangelist-phrasing: intent: Preview how an SMS text will be split and encoded effect: read questions: - 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? - What will my text look like with a national language table applied? instructions: - text: Preview the SMS text {text} and tell me how many parts it uses. slots: text: requestBody.text - text: Check how {text} looks with transliteration {transliteration} before sending. slots: text: requestBody.text transliteration: requestBody.transliteration - text: Preview {text} using language code {languageCode}. slots: text: requestBody.text languageCode: requestBody.languageCode method: generated generated: '2026-09-26' - target: $.paths['/sms/2/text/advanced'].post update: x-apievangelist-phrasing: intent: Send advanced SMS messages (v2) effect: write questions: - 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? - Which SMS method counts how many message parts were used in the response on v2? instructions: - text: Send SMS {messages} through the v2 text/advanced endpoint. slots: messages: requestBody.messages - text: Send SMS batch {messages} under bulk ID {bulkId} with speed limit {sendingSpeedLimit} using the v2 advanced method. slots: messages: requestBody.messages bulkId: requestBody.bulkId sendingSpeedLimit: requestBody.sendingSpeedLimit method: generated generated: '2026-09-26' - target: $.paths['/sms/2/binary/advanced'].post update: x-apievangelist-phrasing: intent: Send binary SMS messages effect: write questions: - 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? instructions: - text: Send binary SMS {messages}. slots: messages: requestBody.messages - text: Send binary SMS {messages} under bulk ID {bulkId}. slots: messages: requestBody.messages bulkId: requestBody.bulkId method: generated generated: '2026-09-26' - target: $.paths['/sms/1/bulks'].get update: x-apievangelist-phrasing: intent: View the send time of a scheduled SMS bulk effect: read questions: - 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? instructions: - text: Show the scheduled send time for SMS bulk {bulkId}. slots: bulkId: query.bulkId - text: Tell me when SMS batch {bulkId} is scheduled to be sent. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/sms/1/bulks'].put update: x-apievangelist-phrasing: intent: Reschedule a scheduled SMS bulk effect: write questions: - 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? instructions: - text: Reschedule SMS bulk {bulkId} to send at {sendAt}. slots: bulkId: query.bulkId sendAt: requestBody.sendAt - text: Move the scheduled SMS batch {bulkId} to {sendAt}. slots: bulkId: query.bulkId sendAt: requestBody.sendAt method: generated generated: '2026-09-26' - target: $.paths['/sms/1/bulks/status'].get update: x-apievangelist-phrasing: intent: Check the status of a scheduled SMS bulk effect: read questions: - Is my scheduled SMS bulk paused, pending or already processing? - What status is a batch of scheduled text messages in right now? instructions: - text: Check the status of scheduled SMS bulk {bulkId}. slots: bulkId: query.bulkId - text: Tell me whether SMS batch {bulkId} is paused or still pending. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/sms/1/bulks/status'].put update: x-apievangelist-phrasing: intent: Pause, resume or cancel a scheduled SMS bulk effect: write questions: - Can I pause a scheduled SMS bulk and resume it later? - How do I cancel scheduled SMS messages before they go out? instructions: - text: Set scheduled SMS bulk {bulkId} to status {status}. slots: bulkId: query.bulkId status: requestBody.status - text: Cancel the scheduled SMS batch {bulkId} by changing its status to {status}. slots: bulkId: query.bulkId status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/ct/1/log/end/{messageId}'].post update: x-apievangelist-phrasing: intent: Confirm an SMS conversion effect: write questions: - How do I tell Infobip that a customer converted after receiving my SMS? - Can I report a successful conversion for a tracked text message? instructions: - text: Mark message {messageId} as converted. slots: messageId: path.messageId - text: Log a successful conversion for SMS {messageId}. slots: messageId: path.messageId method: generated generated: '2026-09-26' - target: $.paths['/sms/1/inbox/reports'].get update: x-apievangelist-phrasing: intent: Fetch received inbound SMS messages effect: read questions: - 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? - Is there a limit on how many inbound SMS I can fetch per request? instructions: - text: Fetch up to {limit} inbound SMS messages I haven't retrieved yet. slots: limit: query.limit - text: Get received SMS for application {applicationId}. slots: applicationId: query.applicationId - text: Pull the incoming text messages waiting for me. method: generated generated: '2026-09-26' - target: $.paths['/sms/3/reports'].get update: x-apievangelist-phrasing: intent: Fetch SMS delivery reports (v3) effect: read questions: - 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? - Which endpoint gives delivery reports for SMS sent with the newest v3 method? instructions: - text: Get v3 delivery reports for SMS bulk {bulkId}. slots: bulkId: query.bulkId - text: Check whether SMS message {messageId} was delivered using the v3 reports endpoint. slots: messageId: query.messageId - text: Fetch the next {limit} SMS delivery reports from v3. slots: limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/sms/3/logs'].get update: x-apievangelist-phrasing: intent: Search outbound SMS logs (v3) effect: read questions: - Can I search sent SMS logs from the last 48 hours by destination number? - Does the v3 SMS log endpoint support cursor pagination? - What's the max number of SMS logs I can get back in one v3 call? instructions: - text: Show v3 SMS logs sent to {destination} since {sentSince}. slots: destination: query.destination sentSince: query.sentSince - text: List v3 outbound SMS logs from sender {sender} with status {generalStatus}. slots: sender: query.sender generalStatus: query.generalStatus - text: Get the v3 SMS log entries for bulk {bulkId}. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/sms/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch SMS delivery reports (legacy v1) effect: read questions: - 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? instructions: - text: Get legacy v1 delivery reports for SMS bulk {bulkId}. slots: bulkId: query.bulkId - text: Check through the older reports endpoint if SMS {messageId} was delivered. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/sms/1/logs'].get update: x-apievangelist-phrasing: intent: Search outbound SMS logs (legacy v1) effect: read questions: - 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? instructions: - text: Show legacy v1 SMS logs sent to {to} until {sentUntil}. slots: to: query.to sentUntil: query.sentUntil - text: List old-style SMS logs from sender {from} for message {messageId}. slots: from: query.from messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/mms/2/messages'].post update: x-apievangelist-phrasing: intent: Send MMS messages effect: write questions: - How do I send a picture message to several recipients at once? - What's the current MMS sending endpoint that supports delivery options? instructions: - text: Send MMS messages {messages} with the v2 endpoint. slots: messages: requestBody.messages - text: Send MMS {messages} using options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/mms/1/advanced'].post update: x-apievangelist-phrasing: intent: Send MMS messages (legacy v1) effect: write questions: - Does the older v1 advanced MMS endpoint still support bulk sending? - Can I group a legacy MMS send under my own bulk ID? instructions: - text: Send MMS {messages} via the legacy v1 advanced endpoint. slots: messages: requestBody.messages - text: Send legacy MMS batch {messages} under bulk ID {bulkId}. slots: messages: requestBody.messages bulkId: requestBody.bulkId method: generated generated: '2026-09-26' - target: $.paths['/mms/1/content'].post update: x-apievangelist-phrasing: intent: Upload media content for MMS effect: write questions: - Can I upload an image once and reference it in several MMS messages? - How long does uploaded MMS media stay available? instructions: - text: Upload MMS media with content ID {contentId} and media type {mediaType}. slots: contentId: header.X-Content-Id mediaType: header.X-Media-Type - text: Upload this file for MMS as {contentId} of type {mediaType}, valid for {validity} minutes. slots: contentId: header.X-Content-Id mediaType: header.X-Media-Type validity: header.X-Validity-Period-Minutes method: generated generated: '2026-09-26' - target: $.paths['/mms/1/inbox/reports'].get update: x-apievangelist-phrasing: intent: Fetch received inbound MMS messages effect: read questions: - Where can I pull picture messages customers sent me if I missed the webhook? - Can I fetch incoming MMS for one application only? instructions: - text: Fetch up to {limit} inbound MMS messages. slots: limit: query.limit - text: Get received MMS for entity {entityId}. slots: entityId: query.entityId method: generated generated: '2026-09-26' - target: $.paths['/mms/2/reports'].get update: x-apievangelist-phrasing: intent: Fetch MMS delivery reports effect: read questions: - Did my MMS messages get delivered? - Can I pull delivery reports for MMS by campaign reference? instructions: - text: Get v2 MMS delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Check whether MMS {messageId} was delivered. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/mms/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch MMS delivery reports (deprecated v1) effect: read questions: - Is the old v1 MMS delivery report endpoint deprecated? - Where do I get reports for MMS sent through the legacy v1 method? instructions: - text: Get deprecated v1 MMS delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Look up legacy MMS report for message {messageId} on the v1 endpoint. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/mms/2/logs'].get update: x-apievangelist-phrasing: intent: Search outbound MMS logs effect: read questions: - 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? instructions: - text: Show MMS logs sent to {destination}. slots: destination: query.destination - text: List MMS logs from sender {sender} sent since {sentSince}. slots: sender: query.sender sentSince: query.sentSince method: generated generated: '2026-09-26' - target: $.paths['/mms/1/logs'].get update: x-apievangelist-phrasing: intent: Search outbound MMS logs (deprecated v1) effect: read questions: - Is there a legacy v1 endpoint for MMS logs filtered by recipient? - Which MMS log endpoint is deprecated in favor of the v2 version? instructions: - text: Show deprecated v1 MMS logs for recipient {to}. slots: to: query.to - text: List old v1 MMS logs from {from} with status {generalStatus}. slots: from: query.from generalStatus: query.generalStatus method: generated generated: '2026-09-26' - target: $.paths['/calls/1/configurations'].get update: x-apievangelist-phrasing: intent: List calls configurations effect: read questions: - Which calls configurations do I have set up for voice? - Can I page through all my Calls API configurations? instructions: - text: List my calls configurations. - text: Show page {page} of calls configurations, {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/calls/1/configurations'].post update: x-apievangelist-phrasing: intent: Create a calls configuration effect: write questions: - How do I set up a new calls configuration for my voice app? - Can I choose my own ID when creating a calls configuration? instructions: - text: Create a calls configuration named {name}. slots: name: requestBody.name - text: Create a calls configuration with ID {id} and name {name}. slots: id: requestBody.id name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/calls/1/configurations/{callsConfigurationId}'].get update: x-apievangelist-phrasing: intent: Get a calls configuration effect: read questions: - What are the details of one specific calls configuration? - Can I look up a calls configuration by its ID? instructions: - text: Show calls configuration {callsConfigurationId}. slots: callsConfigurationId: path.callsConfigurationId - text: Get the details of calls configuration {callsConfigurationId}. slots: callsConfigurationId: path.callsConfigurationId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/configurations/{callsConfigurationId}'].put update: x-apievangelist-phrasing: intent: Rename a calls configuration effect: write questions: - Can I change the name of an existing calls configuration? - What can be edited on a calls configuration after it's created? instructions: - text: Rename calls configuration {callsConfigurationId} to {name}. slots: callsConfigurationId: path.callsConfigurationId name: requestBody.name - text: Update calls configuration {callsConfigurationId}. slots: callsConfigurationId: path.callsConfigurationId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/configurations/{callsConfigurationId}'].delete update: x-apievangelist-phrasing: intent: Delete a calls configuration effect: destructive questions: - How do I remove a calls configuration I no longer use? - Can a calls configuration be deleted permanently? instructions: - text: Delete calls configuration {callsConfigurationId}. slots: callsConfigurationId: path.callsConfigurationId - text: Remove the calls configuration {callsConfigurationId}. slots: callsConfigurationId: path.callsConfigurationId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls'].get update: x-apievangelist-phrasing: intent: List active calls effect: read questions: - Which voice calls are currently live on my account? - Can I filter current calls by direction or status? - What calls are in progress in a given conference right now? instructions: - text: List active calls with status {status}. slots: status: query.status - text: Show live calls in conference {conferenceId}. slots: conferenceId: query.conferenceId - text: List current {direction} calls for configuration {callsConfigurationId}. slots: direction: query.direction callsConfigurationId: query.callsConfigurationId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls'].post update: x-apievangelist-phrasing: intent: Place an outbound call effect: write questions: - How do I start an outbound voice call to a phone number? - Can I turn on recording and machine detection when placing a call? - Is there a maximum call duration I can set for an outbound call? instructions: - text: Call {endpoint} using calls configuration {callsConfigurationId}. slots: endpoint: requestBody.endpoint callsConfigurationId: requestBody.callsConfigurationId - text: Place a call to {endpoint} from {from} under configuration {callsConfigurationId} with recording {recording}. slots: endpoint: requestBody.endpoint from: requestBody.from callsConfigurationId: requestBody.callsConfigurationId recording: requestBody.recording method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}'].get update: x-apievangelist-phrasing: intent: Get an active call effect: read questions: - What's the current state of a specific live call? - Can I look up an ongoing call by its call ID? instructions: - text: Show call {callId}. slots: callId: path.callId - text: Get the current status of live call {callId}. slots: callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/history'].get update: x-apievangelist-phrasing: intent: List finished calls from history effect: read questions: - Can I see calls that already ended in the last few days? - How long is ended call history retained? - Can I filter past calls by who they were from? instructions: - text: List historical calls from {from}. slots: from: query.from - text: Show call history for bulk {bulkId}. slots: bulkId: query.bulkId - text: List the calls that ended in the past five days. method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/history'].get update: x-apievangelist-phrasing: intent: Get a finished call's history effect: read questions: - What happened on a call that already ended? - Can I get the history record of a single completed call? instructions: - text: Show the history of ended call {callId}. slots: callId: path.callId - text: Get the history record for completed call {callId}. slots: callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/connect'].post update: x-apievangelist-phrasing: intent: Connect existing calls into a conference effect: write questions: - Can I join two existing calls together in a conference? - How do I bridge several ongoing calls into one conversation? instructions: - text: Connect calls {callIds} in a conference. slots: callIds: requestBody.callIds - text: Bridge calls {callIds} using conference settings {conferenceRequest}. slots: callIds: requestBody.callIds conferenceRequest: requestBody.conferenceRequest method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/connect'].post update: x-apievangelist-phrasing: intent: Connect a call with a new outbound call effect: write questions: - 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? instructions: - text: Connect call {callId} with a new call {callRequest}. slots: callId: path.callId callRequest: requestBody.callRequest - text: Dial {callRequest} and join it to call {callId} with ringback {ringbackGeneration}. slots: callRequest: requestBody.callRequest callId: path.callId ringbackGeneration: requestBody.ringbackGeneration method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/send-ringing'].post update: x-apievangelist-phrasing: intent: Send a ringing signal to an inbound call effect: write questions: - How do I make an unanswered inbound caller hear ringing? - Can I send a SIP ringtone before answering a call? instructions: - text: Send ringing to inbound call {callId}. slots: callId: path.callId - text: Play the SIP ringtone to unanswered call {callId}. slots: callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/pre-answer'].post update: x-apievangelist-phrasing: intent: Pre-answer a call for early media effect: write questions: - Can I pre-answer an inbound call to play early media before answering? - What does pre-answering a call do? instructions: - text: Pre-answer call {callId}. slots: callId: path.callId - text: Pre-answer call {callId} with ringing set to {ringing}. slots: callId: path.callId ringing: requestBody.ringing method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/answer'].post update: x-apievangelist-phrasing: intent: Answer an inbound call effect: write questions: - How do I answer an incoming voice call through the API? - Can I start recording at the moment I answer a call? instructions: - text: Answer call {callId}. slots: callId: path.callId - text: Answer call {callId} and record it with {recording}. slots: callId: path.callId recording: requestBody.recording method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/hangup'].post update: x-apievangelist-phrasing: intent: Hang up a call effect: destructive questions: - How do I end a single call in progress? - Can I hang up a call with a specific error code? instructions: - text: Hang up call {callId}. slots: callId: path.callId - text: End call {callId} with error code {errorCode}. slots: callId: path.callId errorCode: requestBody.errorCode method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/play'].post update: x-apievangelist-phrasing: intent: Play audio on a call effect: write questions: - 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? instructions: - text: Play audio {content} on call {callId}. slots: content: requestBody.content callId: path.callId - text: Play {content} on call {callId} {loopCount} times. slots: content: requestBody.content callId: path.callId loopCount: requestBody.loopCount method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/stop-play'].post update: x-apievangelist-phrasing: intent: Stop audio playing on a call effect: write questions: - How do I stop an audio file that is playing on a call? - Can I interrupt playback on one call leg? instructions: - text: Stop playing audio on call {callId}. slots: callId: path.callId - text: Cut the playback on call {callId}. slots: callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/say'].post update: x-apievangelist-phrasing: intent: Speak text on a call with text-to-speech effect: write questions: - 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? instructions: - text: Say {text} in {language} on call {callId}. slots: text: requestBody.text language: requestBody.language callId: path.callId - text: Read {text} aloud in {language} on call {callId} at speech rate {speechRate}. slots: text: requestBody.text language: requestBody.language callId: path.callId speechRate: requestBody.speechRate method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/send-dtmf'].post update: x-apievangelist-phrasing: intent: Send DTMF tones on a call effect: write questions: - 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? instructions: - text: Send DTMF {dtmf} on call {callId}. slots: dtmf: requestBody.dtmf callId: path.callId - text: Press keys {dtmf} on call {callId}. slots: dtmf: requestBody.dtmf callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/capture/dtmf'].post update: x-apievangelist-phrasing: intent: Collect keypad input from a caller effect: write questions: - 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? instructions: - text: Capture up to {maxLength} digits on call {callId} with a {timeout} second timeout. slots: maxLength: requestBody.maxLength callId: path.callId timeout: requestBody.timeout - text: Collect keypad input on call {callId}, max {maxLength} digits, timeout {timeout}, ending with {terminator}. slots: callId: path.callId maxLength: requestBody.maxLength timeout: requestBody.timeout terminator: requestBody.terminator method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/capture/speech'].post update: x-apievangelist-phrasing: intent: Capture caller speech as text effect: write questions: - 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? instructions: - text: Capture speech in {language} on call {callId} with a {timeout} second timeout. slots: language: requestBody.language callId: path.callId timeout: requestBody.timeout - text: Listen for key phrases {keyPhrases} in {language} on call {callId} for {timeout} seconds. slots: keyPhrases: requestBody.keyPhrases language: requestBody.language callId: path.callId timeout: requestBody.timeout method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/start-transcription'].post update: x-apievangelist-phrasing: intent: Start transcribing a call effect: write questions: - Can I get a live transcription of an ongoing call? - How do I turn on transcription for one call? instructions: - text: Start transcribing call {callId}. slots: callId: path.callId - text: Start transcription on call {callId} with settings {transcription}. slots: callId: path.callId transcription: requestBody.transcription method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/stop-transcription'].post update: x-apievangelist-phrasing: intent: Stop transcribing a call effect: write questions: - How do I turn off transcription on a call? - Can I stop a running call transcription before the call ends? instructions: - text: Stop transcribing call {callId}. slots: callId: path.callId - text: End the transcription on call {callId}. slots: callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/start-recording'].post update: x-apievangelist-phrasing: intent: Start recording a call effect: write questions: - Can I start recording a single call that's already in progress? - What recording options can I pass when recording one call leg? instructions: - text: Start recording call {callId}. slots: callId: path.callId - text: Record call {callId} using {recording}. slots: callId: path.callId recording: requestBody.recording method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/stop-recording'].post update: x-apievangelist-phrasing: intent: Stop recording a call effect: write questions: - How do I stop recording one call without hanging up? - Can recording be switched off mid-call? instructions: - text: Stop recording call {callId}. slots: callId: path.callId - text: Turn off the recording on call {callId}. slots: callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/start-media-stream'].post update: x-apievangelist-phrasing: intent: Start streaming call audio effect: write questions: - Can I stream a call's live audio to my own server? - How do I start media streaming on a call? instructions: - text: Start streaming media for call {callId} with {mediaStream}. slots: callId: path.callId mediaStream: requestBody.mediaStream - text: Stream audio from call {callId} using media stream settings {mediaStream}. slots: callId: path.callId mediaStream: requestBody.mediaStream method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/stop-media-stream'].post update: x-apievangelist-phrasing: intent: Stop streaming call audio effect: write questions: - How do I stop sending a call's audio stream to my server? - Can I end media streaming but keep the call going? instructions: - text: Stop streaming media on call {callId}. slots: callId: path.callId - text: End the audio stream for call {callId}. slots: callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/send-message'].post update: x-apievangelist-phrasing: intent: Send a message to a WebRTC call leg effect: write questions: - 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? instructions: - text: Send message {message} to WebRTC call {callId}. slots: message: requestBody.message callId: path.callId - text: Push {message} to the WebRTC leg of call {callId}. slots: message: requestBody.message callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/application-transfer'].post update: x-apievangelist-phrasing: intent: Transfer a call to another application effect: write questions: - Can I hand a call over to another calls configuration or application? - Is there a timeout when requesting a call transfer between applications? instructions: - text: Transfer call {callId} to calls configuration {destinationCallsConfigurationId}. slots: callId: path.callId destinationCallsConfigurationId: requestBody.destinationCallsConfigurationId - text: Request an application transfer of call {callId} to {destinationCallsConfigurationId} with timeout {timeout}. slots: callId: path.callId destinationCallsConfigurationId: requestBody.destinationCallsConfigurationId timeout: requestBody.timeout method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/application-transfer/{transferId}/accept'].post update: x-apievangelist-phrasing: intent: Accept an incoming application transfer effect: write questions: - How does my application accept a call transferred to it? - Can I accept a pending application transfer for a call? instructions: - text: Accept transfer {transferId} for call {callId}. slots: transferId: path.transferId callId: path.callId - text: Take over call {callId} by accepting application transfer {transferId}. slots: callId: path.callId transferId: path.transferId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/calls/{callId}/application-transfer/{transferId}/reject'].post update: x-apievangelist-phrasing: intent: Reject an incoming application transfer effect: write questions: - Can my application decline a call being transferred to it? - What if I don't want to accept an application transfer request? instructions: - text: Reject transfer {transferId} for call {callId}. slots: transferId: path.transferId callId: path.callId - text: Decline application transfer {transferId} on call {callId}. slots: transferId: path.transferId callId: path.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences'].get update: x-apievangelist-phrasing: intent: List active conferences effect: read questions: - Which conferences are running right now? - Can I find an active conference by its name? instructions: - text: List my active conferences. - text: Find live conferences named {name}. slots: name: query.name - text: Show the active conference that includes call {callId}. slots: callId: query.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences'].post update: x-apievangelist-phrasing: intent: Create a conference effect: write questions: - How do I create a new conference room for voice calls? - Can I set a max duration and recording when creating a conference? instructions: - text: Create a conference named {name} under configuration {callsConfigurationId}. slots: name: requestBody.name callsConfigurationId: requestBody.callsConfigurationId - text: Create a recorded conference for configuration {callsConfigurationId} lasting at most {maxDuration} seconds. slots: callsConfigurationId: requestBody.callsConfigurationId maxDuration: requestBody.maxDuration method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}'].get update: x-apievangelist-phrasing: intent: Get an active conference effect: read questions: - Who is currently in a particular conference? - Can I look up a running conference by ID? instructions: - text: Show conference {conferenceId}. slots: conferenceId: path.conferenceId - text: Get details of live conference {conferenceId}. slots: conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}'].patch update: x-apievangelist-phrasing: intent: Mute or deafen everyone in a conference effect: write questions: - Can I mute all participants in a conference at once? - Is there a way to deafen every call in a conference together? instructions: - text: Mute all calls in conference {conferenceId}. slots: conferenceId: path.conferenceId - text: Set muted to {muted} for everyone in conference {conferenceId}. slots: muted: requestBody.muted conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/history'].get update: x-apievangelist-phrasing: intent: List finished conferences from history effect: read questions: - Can I see conferences that ended over the past few days? - How far back does conference history go? instructions: - text: List conferences that have ended. - text: Show conference history named {name} ended before {endTimeBefore}. slots: name: query.name endTimeBefore: query.endTimeBefore method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/history'].get update: x-apievangelist-phrasing: intent: Get a finished conference's history effect: read questions: - What happened in a conference that has already ended? - Can I get the history record of one past conference? instructions: - text: Show the history of ended conference {conferenceId}. slots: conferenceId: path.conferenceId - text: Get the past record of conference {conferenceId}. slots: conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/call'].post update: x-apievangelist-phrasing: intent: Dial a new participant into a conference effect: write questions: - 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? instructions: - text: Dial {callRequest} into conference {conferenceId}. slots: callRequest: requestBody.callRequest conferenceId: path.conferenceId - text: Add a new outbound call {callRequest} to conference {conferenceId} with role {role}. slots: callRequest: requestBody.callRequest conferenceId: path.conferenceId role: requestBody.role method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/call/{callId}'].put update: x-apievangelist-phrasing: intent: Add an existing call to a conference effect: write questions: - Can I move a call that's already connected into a conference? - How do I put an ongoing call into a conference room? instructions: - text: Add call {callId} to conference {conferenceId}. slots: callId: path.callId conferenceId: path.conferenceId - text: Move existing call {callId} into conference {conferenceId} as {role}. slots: callId: path.callId conferenceId: path.conferenceId role: requestBody.role method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/call/{callId}'].delete update: x-apievangelist-phrasing: intent: Remove a call from a conference effect: destructive questions: - Can I take someone out of a conference without hanging up on them? - Does removing a call from a conference end the call? instructions: - text: Remove call {callId} from conference {conferenceId}. slots: callId: path.callId conferenceId: path.conferenceId - text: Pull call {callId} out of conference {conferenceId} but keep it active. slots: callId: path.callId conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/call/{callId}'].patch update: x-apievangelist-phrasing: intent: Mute or change one participant in a conference effect: write questions: - Can I mute just one participant in a conference? - How do I change a single caller's role inside a conference? instructions: - text: Mute call {callId} in conference {conferenceId}. slots: callId: path.callId conferenceId: path.conferenceId - text: Set role {role} for call {callId} in conference {conferenceId}. slots: role: requestBody.role callId: path.callId conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/hangup'].post update: x-apievangelist-phrasing: intent: End a conference and all its calls effect: destructive questions: - How do I end a whole conference for everyone? - Does hanging up a conference disconnect every participant? instructions: - text: Hang up conference {conferenceId}. slots: conferenceId: path.conferenceId - text: End conference {conferenceId} and disconnect all its calls. slots: conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/play'].post update: x-apievangelist-phrasing: intent: Play audio to a conference effect: write questions: - Can I play hold music or an announcement to everyone in a conference? - How many times can an audio file loop in a conference? instructions: - text: Play {content} to conference {conferenceId}. slots: content: requestBody.content conferenceId: path.conferenceId - text: Loop {content} {loopCount} times in conference {conferenceId}. slots: content: requestBody.content loopCount: requestBody.loopCount conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/stop-play'].post update: x-apievangelist-phrasing: intent: Stop audio playing in a conference effect: write questions: - How do I stop an announcement playing in a conference? - Can I end conference playback early? instructions: - text: Stop playing audio in conference {conferenceId}. slots: conferenceId: path.conferenceId - text: Stop the conference {conferenceId} playback. slots: conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/say'].post update: x-apievangelist-phrasing: intent: Speak text to a conference effect: write questions: - Can I have a text-to-speech announcement read to all conference participants? - Which languages can I use to speak text into a conference? instructions: - text: Say {text} in {language} to conference {conferenceId}. slots: text: requestBody.text language: requestBody.language conferenceId: path.conferenceId - text: Announce {text} in {language} to everyone in conference {conferenceId}. slots: text: requestBody.text language: requestBody.language conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/start-recording'].post update: x-apievangelist-phrasing: intent: Start recording a conference effect: write questions: - How do I record a whole conference call? - Can I record a conference as a composed single file with a file prefix? instructions: - text: Start recording conference {conferenceId} as {recordingType}. slots: conferenceId: path.conferenceId recordingType: requestBody.recordingType - text: Record conference {conferenceId} as {recordingType} with file prefix {filePrefix}. slots: conferenceId: path.conferenceId recordingType: requestBody.recordingType filePrefix: requestBody.filePrefix method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/stop-recording'].post update: x-apievangelist-phrasing: intent: Stop recording a conference effect: write questions: - How do I stop recording a conference? - Can conference recording be stopped while the conference continues? instructions: - text: Stop recording conference {conferenceId}. slots: conferenceId: path.conferenceId - text: Turn off recording for conference {conferenceId}. slots: conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/broadcast-webrtc-text'].post update: x-apievangelist-phrasing: intent: Broadcast text to WebRTC conference participants effect: write questions: - 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? instructions: - text: Broadcast {text} to WebRTC participants in conference {conferenceId}. slots: text: requestBody.text conferenceId: path.conferenceId - text: Broadcast a data-channel text to conference {conferenceId}. slots: conferenceId: path.conferenceId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/conferences/{conferenceId}/send-message'].post update: x-apievangelist-phrasing: intent: Send a message to all WebRTC conference participants effect: write questions: - Can I send one message to every WebRTC participant in a conference? - What's the way to message all WebRTC attendees of a conference? instructions: - text: Send message {message} to all WebRTC participants in conference {conferenceId}. slots: message: requestBody.message conferenceId: path.conferenceId - text: 'Message every WebRTC attendee of conference {conferenceId}: {message}.' slots: conferenceId: path.conferenceId message: requestBody.message method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs'].get update: x-apievangelist-phrasing: intent: List active dialogs effect: read questions: - Which two-party dialogs are active right now? - Can I filter active dialogs by state or parent call? instructions: - text: List my active dialogs. - text: Show active dialogs in state {state}. slots: state: query.state - text: Find the live dialog whose parent call is {parentCallId}. slots: parentCallId: query.parentCallId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs'].post update: x-apievangelist-phrasing: intent: Create a dialog from a call and a new call effect: write questions: - 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? instructions: - text: Create a dialog from parent call {parentCallId}. slots: parentCallId: requestBody.parentCallId - text: Create a dialog connecting call {parentCallId} to new call {childCallRequest}. slots: parentCallId: requestBody.parentCallId childCallRequest: requestBody.childCallRequest method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/parent-call/{parentCallId}/child-call/{childCallId}'].post update: x-apievangelist-phrasing: intent: Create a dialog between two existing calls effect: write questions: - 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? instructions: - text: Create a dialog between existing calls {parentCallId} and {childCallId}. slots: parentCallId: path.parentCallId childCallId: path.childCallId - text: Join already-connected calls {parentCallId} and {childCallId} into a dialog capped at {maxDuration} seconds. slots: parentCallId: path.parentCallId childCallId: path.childCallId maxDuration: requestBody.maxDuration method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}'].get update: x-apievangelist-phrasing: intent: Get an active dialog effect: read questions: - What's the state of a specific active dialog? - Can I look up a live dialog by its ID? instructions: - text: Show dialog {dialogId}. slots: dialogId: path.dialogId - text: Get the current state of dialog {dialogId}. slots: dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/history'].get update: x-apievangelist-phrasing: intent: List finished dialogs from history effect: read questions: - Can I see dialogs that ended in the last few days? - Where do I find past dialogs for one parent call? instructions: - text: List dialogs that have ended. - text: Show dialog history for parent call {parentCallId}. slots: parentCallId: query.parentCallId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/history'].get update: x-apievangelist-phrasing: intent: Get a finished dialog's history effect: read questions: - What happened in a dialog that already ended? - Can I get the history record of one past dialog? instructions: - text: Show the history of ended dialog {dialogId}. slots: dialogId: path.dialogId - text: Get the past record of dialog {dialogId}. slots: dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/hangup'].post update: x-apievangelist-phrasing: intent: End a dialog and both its calls effect: destructive questions: - How do I end a dialog and disconnect both parties? - Does hanging up a dialog also hang up its calls? instructions: - text: Hang up dialog {dialogId}. slots: dialogId: path.dialogId - text: End dialog {dialogId} and both of its calls. slots: dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/play'].post update: x-apievangelist-phrasing: intent: Play audio in a dialog effect: write questions: - Can I play an audio file to both parties of a dialog? - Is it possible to loop audio in a dialog? instructions: - text: Play {content} in dialog {dialogId}. slots: content: requestBody.content dialogId: path.dialogId - text: Loop {content} {loopCount} times in dialog {dialogId}. slots: content: requestBody.content loopCount: requestBody.loopCount dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/say'].post update: x-apievangelist-phrasing: intent: Speak text in a dialog effect: write questions: - 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? instructions: - text: Say {text} in {language} in dialog {dialogId}. slots: text: requestBody.text language: requestBody.language dialogId: path.dialogId - text: Announce {text} in {language} to both parties of dialog {dialogId}. slots: text: requestBody.text language: requestBody.language dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/stop-play'].post update: x-apievangelist-phrasing: intent: Stop audio playing in a dialog effect: write questions: - How do I stop audio that's playing in a dialog? - Can I interrupt dialog playback? instructions: - text: Stop playing audio in dialog {dialogId}. slots: dialogId: path.dialogId - text: Stop the dialog {dialogId} playback. slots: dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/start-recording'].post update: x-apievangelist-phrasing: intent: Start recording a dialog effect: write questions: - How do I record a two-party dialog? - Can I choose audio or video recording type for a dialog? instructions: - text: Start recording dialog {dialogId} as {recordingType}. slots: dialogId: path.dialogId recordingType: requestBody.recordingType - text: Record dialog {dialogId} as {recordingType} with file prefix {filePrefix}. slots: dialogId: path.dialogId recordingType: requestBody.recordingType filePrefix: requestBody.filePrefix method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/stop-recording'].post update: x-apievangelist-phrasing: intent: Stop recording a dialog effect: write questions: - How do I stop recording a dialog? - Can recording end while the dialog continues? instructions: - text: Stop recording dialog {dialogId}. slots: dialogId: path.dialogId - text: Turn off recording for dialog {dialogId}. slots: dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/broadcast-webrtc-text'].post update: x-apievangelist-phrasing: intent: Broadcast text to WebRTC legs in a dialog effect: write questions: - 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? instructions: - text: Broadcast {text} to WebRTC legs in dialog {dialogId}. slots: text: requestBody.text dialogId: path.dialogId - text: Broadcast a data-channel text to dialog {dialogId}. slots: dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/send-message'].post update: x-apievangelist-phrasing: intent: Send a message to WebRTC legs in a dialog effect: write questions: - 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? instructions: - text: Send message {message} to the WebRTC legs of dialog {dialogId}. slots: message: requestBody.message dialogId: path.dialogId - text: 'Message both WebRTC parties in dialog {dialogId}: {message}.' slots: dialogId: path.dialogId message: requestBody.message method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/transfer/accept'].post update: x-apievangelist-phrasing: intent: Accept a dialog transfer effect: write questions: - How do I accept a transfer request on a dialog? - Where do I specify the target call when accepting a dialog transfer? instructions: - text: Accept the transfer on dialog {dialogId} to target {targetCallRequest}. slots: dialogId: path.dialogId targetCallRequest: requestBody.targetCallRequest - text: Approve dialog {dialogId} transfer and call {targetCallRequest}. slots: dialogId: path.dialogId targetCallRequest: requestBody.targetCallRequest method: generated generated: '2026-09-26' - target: $.paths['/calls/1/dialogs/{dialogId}/transfer/reject'].post update: x-apievangelist-phrasing: intent: Reject a dialog transfer effect: write questions: - Can I decline a transfer request on a dialog? - What happens if I reject a dialog transfer? instructions: - text: Reject the transfer on dialog {dialogId}. slots: dialogId: path.dialogId - text: Decline the transfer request for dialog {dialogId}. slots: dialogId: path.dialogId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks'].get update: x-apievangelist-phrasing: intent: List SIP trunks effect: read questions: - Which SIP trunks are configured on my account? - Can I search SIP trunks by name? instructions: - text: List my SIP trunks. - text: Find SIP trunks named {name}. slots: name: query.name method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks'].post update: x-apievangelist-phrasing: intent: Create a SIP trunk effect: write questions: - 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? - Can I allow international calls on a new SIP trunk? instructions: - text: Create SIP trunk {name} with {channelLimit} channels on billing package {billingPackage}. slots: name: requestBody.name channelLimit: requestBody.channelLimit billingPackage: requestBody.billingPackage - text: Create a {type} SIP trunk named {name} with channel limit {channelLimit} and billing package {billingPackage}. slots: type: requestBody.type name: requestBody.name channelLimit: requestBody.channelLimit billingPackage: requestBody.billingPackage method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/{sipTrunkId}'].get update: x-apievangelist-phrasing: intent: Get a SIP trunk effect: read questions: - What are the settings of one SIP trunk? - Can I look up a SIP trunk by ID? instructions: - text: Show SIP trunk {sipTrunkId}. slots: sipTrunkId: path.sipTrunkId - text: Get the configuration of SIP trunk {sipTrunkId}. slots: sipTrunkId: path.sipTrunkId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/{sipTrunkId}'].put update: x-apievangelist-phrasing: intent: Update a SIP trunk effect: write questions: - Can I change a SIP trunk's name or channel limit? - Do fields I leave out reset to defaults when updating a SIP trunk? instructions: - text: Update SIP trunk {sipTrunkId} and name it {name}. slots: sipTrunkId: path.sipTrunkId name: requestBody.name - text: Rename SIP trunk {sipTrunkId} to {name} and set channel limit {channelLimit}. slots: sipTrunkId: path.sipTrunkId name: requestBody.name channelLimit: requestBody.channelLimit method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/{sipTrunkId}'].delete update: x-apievangelist-phrasing: intent: Delete a SIP trunk effect: destructive questions: - How do I delete a SIP trunk I no longer need? - Is SIP trunk deletion processed asynchronously? instructions: - text: Delete SIP trunk {sipTrunkId}. slots: sipTrunkId: path.sipTrunkId - text: Remove SIP trunk {sipTrunkId} from my account. slots: sipTrunkId: path.sipTrunkId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/{sipTrunkId}/reset-password'].post update: x-apievangelist-phrasing: intent: Reset SIP trunk credentials effect: destructive questions: - Can I reset the registration password for a registered SIP trunk? - How do I rotate the credentials of an authenticated SIP trunk? instructions: - text: Reset the credentials of SIP trunk {sipTrunkId}. slots: sipTrunkId: path.sipTrunkId - text: Rotate the password for SIP trunk {sipTrunkId}. slots: sipTrunkId: path.sipTrunkId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/{sipTrunkId}/status'].get update: x-apievangelist-phrasing: intent: Check a SIP trunk's status effect: read questions: - Is my SIP trunk enabled and registered? - Why doesn't a deleted SIP trunk return a status? instructions: - text: Check the status of SIP trunk {sipTrunkId}. slots: sipTrunkId: path.sipTrunkId - text: Tell me whether SIP trunk {sipTrunkId} is up. slots: sipTrunkId: path.sipTrunkId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/{sipTrunkId}/status'].post update: x-apievangelist-phrasing: intent: Enable or disable a SIP trunk effect: write questions: - Can I temporarily disable a SIP trunk without deleting it? - How do I change a SIP trunk's admin status? instructions: - text: Set SIP trunk {sipTrunkId} admin status to {adminStatus}. slots: sipTrunkId: path.sipTrunkId adminStatus: requestBody.adminStatus - text: Disable SIP trunk {sipTrunkId} by setting admin status {adminStatus}. slots: sipTrunkId: path.sipTrunkId adminStatus: requestBody.adminStatus method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/service-addresses'].get update: x-apievangelist-phrasing: intent: List SIP trunk service addresses effect: read questions: - Which service addresses have I registered for SIP trunks? - Can I page through my SIP trunk addresses? instructions: - text: List my SIP trunk service addresses. - text: Show page {page} of SIP trunk service addresses. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/service-addresses'].post update: x-apievangelist-phrasing: intent: Add a SIP trunk service address effect: write questions: - How do I register a physical service address for a SIP trunk? - Which fields are required for a SIP trunk service address? instructions: - text: Create SIP trunk service address {name} at {street}, {city} {postCode}, country {countryCode}. slots: name: requestBody.name street: requestBody.street city: requestBody.city postCode: requestBody.postCode countryCode: requestBody.countryCode - text: Add service address {name} on {street} in {city}, {postCode}, {countryCode} region {countryRegionCode}. slots: name: requestBody.name street: requestBody.street city: requestBody.city postCode: requestBody.postCode countryCode: requestBody.countryCode countryRegionCode: requestBody.countryRegionCode method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/service-addresses/{sipTrunkServiceAddressId}'].get update: x-apievangelist-phrasing: intent: Get a SIP trunk service address effect: read questions: - What address is stored for one SIP trunk service address record? - Can I look up a SIP trunk service address by ID? instructions: - text: Show SIP trunk service address {sipTrunkServiceAddressId}. slots: sipTrunkServiceAddressId: path.sipTrunkServiceAddressId - text: Get service address record {sipTrunkServiceAddressId}. slots: sipTrunkServiceAddressId: path.sipTrunkServiceAddressId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/service-addresses/{sipTrunkServiceAddressId}'].put update: x-apievangelist-phrasing: intent: Update a SIP trunk service address effect: write questions: - Can I correct the street or postcode on a SIP trunk service address? - How do I change an existing SIP trunk address? instructions: - text: Update service address {sipTrunkServiceAddressId} to {name}, {street}, {city} {postCode}, {countryCode}. slots: sipTrunkServiceAddressId: path.sipTrunkServiceAddressId name: requestBody.name street: requestBody.street city: requestBody.city postCode: requestBody.postCode countryCode: requestBody.countryCode - text: Change the street of SIP trunk address {sipTrunkServiceAddressId} to {street} keeping name {name}, city {city}, postcode {postCode}, country {countryCode}. slots: sipTrunkServiceAddressId: path.sipTrunkServiceAddressId street: requestBody.street name: requestBody.name city: requestBody.city postCode: requestBody.postCode countryCode: requestBody.countryCode method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/service-addresses/{sipTrunkServiceAddressId}'].delete update: x-apievangelist-phrasing: intent: Delete a SIP trunk service address effect: destructive questions: - How do I remove a SIP trunk service address? - Can an unused SIP trunk address be deleted? instructions: - text: Delete SIP trunk service address {sipTrunkServiceAddressId}. slots: sipTrunkServiceAddressId: path.sipTrunkServiceAddressId - text: Remove service address record {sipTrunkServiceAddressId}. slots: sipTrunkServiceAddressId: path.sipTrunkServiceAddressId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/service-addresses/countries'].get update: x-apievangelist-phrasing: intent: List countries for SIP trunk addresses effect: read questions: - Which country codes can I use in a SIP trunk service address? - Where do I get the country shortcodes for SIP trunk addresses? instructions: - text: List the countries available for SIP trunk service addresses. - text: Show the country shortcodes I need for a SIP trunk address. method: generated generated: '2026-09-26' - target: $.paths['/calls/1/sip-trunks/service-addresses/countries/regions'].get update: x-apievangelist-phrasing: intent: List regions of a country for SIP trunk addresses effect: read questions: - 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? instructions: - text: List SIP trunk address regions for country {countryCode}. slots: countryCode: query.countryCode - text: Show region shortcodes in {countryCode} for a service address. slots: countryCode: query.countryCode method: generated generated: '2026-09-26' - target: $.paths['/calls/1/files'].get update: x-apievangelist-phrasing: intent: List uploaded call audio files effect: read questions: - Which audio files have I uploaded for playing on calls? - Is there a page limit when listing call audio files? instructions: - text: List my uploaded call audio files. - text: Show page {page} of my call audio files. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/calls/1/files'].post update: x-apievangelist-phrasing: intent: Upload an audio file for calls effect: write questions: - Can I upload an audio file to play on calls, dialogs or conferences? - Do uploaded call audio files expire if not used? instructions: - text: Upload audio file {file} for playing on calls. slots: file: requestBody.file - text: Add {file} to my call audio library. slots: file: requestBody.file method: generated generated: '2026-09-26' - target: $.paths['/calls/1/files/{fileId}'].get update: x-apievangelist-phrasing: intent: Get an uploaded call audio file effect: read questions: - What are the details of one uploaded call audio file? - Can I look up a call audio file by ID? instructions: - text: Show call audio file {fileId}. slots: fileId: path.fileId - text: Get details for uploaded audio {fileId}. slots: fileId: path.fileId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/files/{fileId}'].delete update: x-apievangelist-phrasing: intent: Delete an uploaded call audio file effect: destructive questions: - How do I delete an audio file I uploaded for calls? - Can I remove a call prompt audio file I no longer play? instructions: - text: Delete call audio file {fileId}. slots: fileId: path.fileId - text: Remove uploaded audio {fileId} from my call files. slots: fileId: path.fileId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/calls'].get update: x-apievangelist-phrasing: intent: List call recordings effect: read questions: - Where can I find recordings of my calls? - Can I filter call recordings by time range or endpoint? instructions: - text: List my call recordings. - text: Show call recordings for endpoint {endpointIdentifier} after {startTimeAfter}. slots: endpointIdentifier: query.endpointIdentifier startTimeAfter: query.startTimeAfter method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/calls/{callId}'].get update: x-apievangelist-phrasing: intent: Get recordings for one call effect: read questions: - Are there recordings for a specific call? - Can I get all recording files of a single call? instructions: - text: Get the recordings of call {callId}. slots: callId: path.callId - text: Show recordings for call {callId} stored in {location}. slots: callId: path.callId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/calls/{callId}'].delete update: x-apievangelist-phrasing: intent: Delete recordings for one call effect: destructive questions: - How do I delete all recordings of a specific call? - Can call recordings be removed for privacy reasons? instructions: - text: Delete all recordings of call {callId}. slots: callId: path.callId - text: Erase call {callId} recordings stored in {location}. slots: callId: path.callId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/conferences'].get update: x-apievangelist-phrasing: intent: List conference recordings effect: read questions: - Where can I find recordings of past conferences? - Can I search conference recordings by conference name? instructions: - text: List my conference recordings. - text: Find recordings for conferences named {conferenceName}. slots: conferenceName: query.conferenceName method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/conferences/{conferenceId}'].get update: x-apievangelist-phrasing: intent: Get recordings for one conference effect: read questions: - Is there a recording of a particular conference? - Can I get the recording files for one conference by ID? instructions: - text: Get the recordings of conference {conferenceId}. slots: conferenceId: path.conferenceId - text: Show recordings for conference {conferenceId} in {location}. slots: conferenceId: path.conferenceId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/conferences/{conferenceId}'].delete update: x-apievangelist-phrasing: intent: Delete recordings for one conference effect: destructive questions: - How do I delete a conference's recordings? - Can I wipe all recordings of one conference? instructions: - text: Delete all recordings of conference {conferenceId}. slots: conferenceId: path.conferenceId - text: Erase conference {conferenceId} recordings stored in {location}. slots: conferenceId: path.conferenceId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/conferences/{conferenceId}/compose'].post update: x-apievangelist-phrasing: intent: Merge a conference's call recordings into one file effect: write questions: - 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? instructions: - text: Compose the recording of conference {conferenceId} into a single file. slots: conferenceId: path.conferenceId - text: Merge conference {conferenceId} recordings with multi-channel {multiChannel}. slots: conferenceId: path.conferenceId multiChannel: requestBody.multiChannel method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/dialogs'].get update: x-apievangelist-phrasing: intent: List dialog recordings effect: read questions: - Where can I find recordings of dialogs? - Can I filter dialog recordings by composition? instructions: - text: List my dialog recordings. - text: Show dialog recordings for call {callId}. slots: callId: query.callId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/dialogs/{dialogId}'].get update: x-apievangelist-phrasing: intent: Get recordings for one dialog effect: read questions: - Is there a recording of a particular dialog? - Can I get recording files for a single dialog by ID? instructions: - text: Get the recordings of dialog {dialogId}. slots: dialogId: path.dialogId - text: Show recordings for dialog {dialogId} in {location}. slots: dialogId: path.dialogId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/dialogs/{dialogId}'].delete update: x-apievangelist-phrasing: intent: Delete recordings for one dialog effect: destructive questions: - How do I delete a dialog's recordings? - Can I erase every recording of one dialog? instructions: - text: Delete all recordings of dialog {dialogId}. slots: dialogId: path.dialogId - text: Erase dialog {dialogId} recordings stored in {location}. slots: dialogId: path.dialogId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/dialogs/{dialogId}/compose'].post update: x-apievangelist-phrasing: intent: Merge a dialog's two call recordings into one file effect: write questions: - Can I combine both sides of a dialog recording into one audio file? - Does composing a dialog recording support multi-channel output? instructions: - text: Compose the recording of dialog {dialogId} into a single file. slots: dialogId: path.dialogId - text: 'Merge dialog {dialogId} recordings and delete the call recordings: {deleteCallRecordings}.' slots: dialogId: path.dialogId deleteCallRecordings: requestBody.deleteCallRecordings method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/files/{fileId}'].get update: x-apievangelist-phrasing: intent: Download a recording file effect: read questions: - How do I download the audio of a recording? - Can I download just part of a recording file with a byte range? instructions: - text: Download recording file {fileId}. slots: fileId: path.fileId - text: Download bytes {range} of recording file {fileId}. slots: range: header.Range fileId: path.fileId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/recordings/files/{fileId}'].delete update: x-apievangelist-phrasing: intent: Delete a single recording file effect: destructive questions: - 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? instructions: - text: Delete recording file {fileId}. slots: fileId: path.fileId - text: Remove recording file {fileId} from {location}. slots: fileId: path.fileId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/calls/1/media-stream-configs'].get update: x-apievangelist-phrasing: intent: List media-stream configurations effect: read questions: - Which media-stream configurations do I have? - Can I page through my audio streaming configs? instructions: - text: List my media-stream configurations. - text: Show page {page} of media-stream configs. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/calls/1/media-stream-configs'].post update: x-apievangelist-phrasing: intent: Create a media-stream configuration effect: write questions: - How do I configure where call audio is streamed to? - What's needed to set up a media-stream config with a websocket URL? instructions: - text: Create a {type} media-stream config named {name} pointing at {url}. slots: type: requestBody.type name: requestBody.name url: requestBody.url - text: Set up media streaming {name} of type {type} to {url}. slots: name: requestBody.name type: requestBody.type url: requestBody.url method: generated generated: '2026-09-26' - target: $.paths['/calls/1/media-stream-configs/{mediaStreamConfigId}'].get update: x-apievangelist-phrasing: intent: Get a media-stream configuration effect: read questions: - What URL is a specific media-stream configuration using? - Can I look up one media-stream config by ID? instructions: - text: Show media-stream configuration {mediaStreamConfigId}. slots: mediaStreamConfigId: path.mediaStreamConfigId - text: Get the settings of media-stream config {mediaStreamConfigId}. slots: mediaStreamConfigId: path.mediaStreamConfigId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/media-stream-configs/{mediaStreamConfigId}'].put update: x-apievangelist-phrasing: intent: Update a media-stream configuration effect: write questions: - Can I change the streaming URL of an existing media-stream config? - How do I edit a media-stream configuration? instructions: - text: Update media-stream config {mediaStreamConfigId} to {type} {name} at {url}. slots: mediaStreamConfigId: path.mediaStreamConfigId type: requestBody.type name: requestBody.name url: requestBody.url - text: Point media-stream config {mediaStreamConfigId} at {url}, keeping name {name} and type {type}. slots: mediaStreamConfigId: path.mediaStreamConfigId url: requestBody.url name: requestBody.name type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/calls/1/media-stream-configs/{mediaStreamConfigId}'].delete update: x-apievangelist-phrasing: intent: Delete a media-stream configuration effect: destructive questions: - How do I delete a media-stream configuration? - Can I remove an audio streaming config I no longer use? instructions: - text: Delete media-stream config {mediaStreamConfigId}. slots: mediaStreamConfigId: path.mediaStreamConfigId - text: Remove media-stream configuration {mediaStreamConfigId}. slots: mediaStreamConfigId: path.mediaStreamConfigId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/bulks'].post update: x-apievangelist-phrasing: intent: Create a bulk of outbound calls effect: write questions: - Can I place many outbound phone calls in one request? - Do bulk calls support scheduling and retries? instructions: - text: Create a bulk of calls {items} under configuration {callsConfigurationId}. slots: items: requestBody.items callsConfigurationId: requestBody.callsConfigurationId - text: Launch call bulk {bulkId} with items {items} using configuration {callsConfigurationId}. slots: bulkId: requestBody.bulkId items: requestBody.items callsConfigurationId: requestBody.callsConfigurationId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/bulks/{bulkId}'].get update: x-apievangelist-phrasing: intent: Check the status of a call bulk effect: read questions: - What's the status of my scheduled bulk of outbound calls? - Why doesn't my call bulk have a status? instructions: - text: Check the status of call bulk {bulkId}. slots: bulkId: path.bulkId - text: Tell me how call bulk {bulkId} is progressing. slots: bulkId: path.bulkId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/bulks/{bulkId}/reschedule'].post update: x-apievangelist-phrasing: intent: Reschedule a call bulk effect: write questions: - Can I change the start time of a scheduled call bulk? - Is it possible to reschedule a call bulk that has already started? instructions: - text: Reschedule call bulk {bulkId} to start at {startTime}. slots: bulkId: path.bulkId startTime: requestBody.startTime - text: Move the start of call bulk {bulkId} to {startTime}. slots: bulkId: path.bulkId startTime: requestBody.startTime method: generated generated: '2026-09-26' - target: $.paths['/calls/1/bulks/{bulkId}/pause'].post update: x-apievangelist-phrasing: intent: Pause a call bulk effect: write questions: - Can I pause a bulk of outbound calls that's in progress? - What must be true for a call bulk to be paused? instructions: - text: Pause call bulk {bulkId}. slots: bulkId: path.bulkId - text: Hold the outbound call bulk {bulkId}. slots: bulkId: path.bulkId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/bulks/{bulkId}/resume'].post update: x-apievangelist-phrasing: intent: Resume a paused call bulk effect: write questions: - How do I resume a call bulk I paused? - Can a paused bulk of calls continue where it left off? instructions: - text: Resume call bulk {bulkId}. slots: bulkId: path.bulkId - text: Restart the paused call bulk {bulkId}. slots: bulkId: path.bulkId method: generated generated: '2026-09-26' - target: $.paths['/calls/1/bulks/{bulkId}/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a call bulk effect: destructive questions: - How do I cancel a scheduled bulk of outbound calls? - Can a call bulk be cancelled after it finishes? instructions: - text: Cancel call bulk {bulkId}. slots: bulkId: path.bulkId - text: Stop and cancel outbound call bulk {bulkId}. slots: bulkId: path.bulkId method: generated generated: '2026-09-26' - target: $.paths['/markuplanguage/1/create'].post update: x-apievangelist-phrasing: intent: Place a call driven by markup instructions effect: write questions: - 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? instructions: - text: Create a markup language call to {endpoint} from {from} using callback {callback}. slots: endpoint: requestBody.endpoint from: requestBody.from callback: requestBody.callback - text: Start a markup-driven call from {from} to {endpoint} with callback {callback} and notify URL {notifyUrl}. slots: from: requestBody.from endpoint: requestBody.endpoint callback: requestBody.callback notifyUrl: requestBody.notifyUrl method: generated generated: '2026-09-26' - target: $.paths['/markuplanguage/1/config'].get update: x-apievangelist-phrasing: intent: List markup language configurations effect: read questions: - Which markup language configurations exist on my account? - Can I page through my voice markup configs? instructions: - text: List my markup language configurations. - text: Show page {page} of markup language configs. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/markuplanguage/1/config'].post update: x-apievangelist-phrasing: intent: Create a markup language configuration effect: write questions: - How do I register the URL that serves my voice markup? - Can I set an error URL and HTTP method on a markup configuration? instructions: - text: Create markup config {name} fetching {markupUrl} with {httpMethod}. slots: name: requestBody.name markupUrl: requestBody.markupUrl httpMethod: requestBody.httpMethod - text: Set up markup language config {name} at {markupUrl} using {httpMethod} and error URL {errorUrl}. slots: name: requestBody.name markupUrl: requestBody.markupUrl httpMethod: requestBody.httpMethod errorUrl: requestBody.errorUrl method: generated generated: '2026-09-26' - target: $.paths['/markuplanguage/1/config/{configId}'].get update: x-apievangelist-phrasing: intent: Get a markup language configuration effect: read questions: - What markup URL does one configuration point to? - Can I look up a markup language config by ID? instructions: - text: Show markup language config {configId}. slots: configId: path.configId - text: Get the details of markup config {configId}. slots: configId: path.configId method: generated generated: '2026-09-26' - target: $.paths['/markuplanguage/1/config/{configId}'].put update: x-apievangelist-phrasing: intent: Update a markup language configuration effect: write questions: - Can I change the markup URL of an existing configuration? - Do omitted fields reset to defaults when updating a markup config? instructions: - text: Update markup config {configId} to {name} at {markupUrl} via {httpMethod}. slots: configId: path.configId name: requestBody.name markupUrl: requestBody.markupUrl httpMethod: requestBody.httpMethod - text: Point markup config {configId} to {markupUrl}, name {name}, method {httpMethod}. slots: configId: path.configId markupUrl: requestBody.markupUrl name: requestBody.name httpMethod: requestBody.httpMethod method: generated generated: '2026-09-26' - target: $.paths['/markuplanguage/1/config/{configId}'].delete update: x-apievangelist-phrasing: intent: Delete a markup language configuration effect: destructive questions: - How do I delete a markup language configuration? - Can I remove an old voice markup config? instructions: - text: Delete markup language config {configId}. slots: configId: path.configId - text: Remove markup configuration {configId}. slots: configId: path.configId method: generated generated: '2026-09-26' - target: $.paths['/tts/3/single'].post update: x-apievangelist-phrasing: intent: Send one voice message to recipients effect: write questions: - 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? - Which voice and language can I pick for a simple voice message? instructions: - text: Send a voice message from {from} to {to} saying {text}. slots: from: requestBody.from to: requestBody.to text: requestBody.text - text: Call {to} from {from} and play {audioFileUrl}. slots: to: requestBody.to from: requestBody.from audioFileUrl: requestBody.audioFileUrl - text: Send a single voice message to {to} from {from} reading {text} in {language}. slots: to: requestBody.to from: requestBody.from text: requestBody.text language: requestBody.language method: generated generated: '2026-09-26' - target: $.paths['/tts/3/multi'].post update: x-apievangelist-phrasing: intent: Send several different voice messages effect: write questions: - 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? instructions: - text: 'Send these multiple voice messages: {messages}.' slots: messages: requestBody.messages - text: Batch-send distinct voice messages {messages} in one request. slots: messages: requestBody.messages method: generated generated: '2026-09-26' - target: $.paths['/tts/3/advanced'].post update: x-apievangelist-phrasing: intent: Send advanced voice messages effect: write questions: - Can advanced voice messages be scheduled or throttled under a bulk ID? - Which voice messaging endpoint supports the most options? instructions: - text: Send advanced voice messages {messages}. slots: messages: requestBody.messages - text: Send advanced voice batch {messages} under bulk ID {bulkId}. slots: messages: requestBody.messages bulkId: requestBody.bulkId method: generated generated: '2026-09-26' - target: $.paths['/tts/3/voices/{language}'].get update: x-apievangelist-phrasing: intent: List text-to-speech voices for a language effect: read questions: - Which text-to-speech voices are available for a language? - Are neural voices available for voice messages? instructions: - text: List TTS voices for language {language}. slots: language: path.language - text: 'Show voices for {language} including neural voices: {includeNeural}.' slots: language: path.language includeNeural: query.includeNeural method: generated generated: '2026-09-26' - target: $.paths['/tts/3/bulks'].get update: x-apievangelist-phrasing: intent: View the schedule of a voice message bulk effect: read questions: - When is my scheduled voice message bulk going out? - Can I see the scheduled time for a text-to-speech bulk? instructions: - text: Show the scheduled time of voice bulk {bulkId}. slots: bulkId: query.bulkId - text: Tell me when TTS bulk {bulkId} is scheduled. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/tts/3/bulks'].put update: x-apievangelist-phrasing: intent: Reschedule a paused voice message bulk effect: write questions: - Can I reschedule a voice message bulk? - Does a TTS bulk need to be paused before I can reschedule it? instructions: - text: Reschedule voice bulk {bulkId} to {sendAt}. slots: bulkId: query.bulkId sendAt: requestBody.sendAt - text: Move paused TTS bulk {bulkId} to send at {sendAt}. slots: bulkId: query.bulkId sendAt: requestBody.sendAt method: generated generated: '2026-09-26' - target: $.paths['/tts/3/bulks/status'].get update: x-apievangelist-phrasing: intent: Check the status of a voice message bulk effect: read questions: - Is my scheduled voice message bulk paused or pending? - What status is a text-to-speech bulk in? instructions: - text: Check the status of voice bulk {bulkId}. slots: bulkId: query.bulkId - text: Tell me if TTS bulk {bulkId} is paused. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/tts/3/bulks/status'].put update: x-apievangelist-phrasing: intent: Pause, resume or cancel a voice message bulk effect: write questions: - Can I pause or cancel voice messages scheduled for later? - Which voice messages can still be cancelled in a bulk? instructions: - text: Set voice bulk {bulkId} to status {status}. slots: bulkId: query.bulkId status: requestBody.status - text: Pause TTS bulk {bulkId} by changing its status to {status}. slots: bulkId: query.bulkId status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/scenarios'].get update: x-apievangelist-phrasing: intent: Search voice IVR scenarios effect: read questions: - Which IVR scenarios have I built for voice calls? - Can I search IVR scenarios by name or label? - Can I find IVR scenarios that haven't been used recently? instructions: - text: List all my voice IVR scenarios. - text: Search IVR scenarios named {name}. slots: name: query.name - text: Find IVR scenarios labelled {label} last used before {lastUsageDateUntil}. slots: label: query.label lastUsageDateUntil: query.lastUsageDateUntil method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/scenarios'].post update: x-apievangelist-phrasing: intent: Create a voice IVR scenario effect: write questions: - How do I build a new interactive voice response flow? - Will an unused IVR scenario be removed eventually? instructions: - text: Create IVR scenario {name} with script {script}. slots: name: requestBody.name script: requestBody.script - text: Build IVR scenario {name} using script {script} and record {record}. slots: name: requestBody.name script: requestBody.script record: requestBody.record method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/scenarios/{id}'].get update: x-apievangelist-phrasing: intent: Get a voice IVR scenario effect: read questions: - What script does one IVR scenario run? - Can I look up a voice IVR scenario by ID? instructions: - text: Show IVR scenario {id}. slots: id: path.id - text: Get the script of IVR scenario {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/scenarios/{id}'].put update: x-apievangelist-phrasing: intent: Update a voice IVR scenario effect: write questions: - Can I change the script of an existing IVR scenario? - How long do IVR scenario updates take to apply? instructions: - text: Update IVR scenario {id} with name {name} and script {script}. slots: id: path.id name: requestBody.name script: requestBody.script - text: Replace the script of IVR scenario {id} with {script}, keeping name {name}. slots: id: path.id script: requestBody.script name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/scenarios/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a voice IVR scenario effect: destructive questions: - How do I delete an IVR scenario I no longer use? - Can a voice IVR flow be removed permanently? instructions: - text: Delete IVR scenario {id}. slots: id: path.id - text: Remove voice IVR scenario {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/messages'].post update: x-apievangelist-phrasing: intent: Launch an outbound IVR scenario to many numbers effect: write questions: - 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? instructions: - text: Launch the IVR scenario described in {messages} as outbound calls. slots: messages: requestBody.messages - text: Start outbound IVR calls from {messages} and tag the batch with bulk ID {bulkId}. slots: messages: requestBody.messages bulkId: requestBody.bulkId method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/files'].get update: x-apievangelist-phrasing: intent: Search audio recorded during IVR calls effect: read questions: - 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? instructions: - text: Search IVR recorded audio files for message {messageId}. slots: messageId: query.messageId - text: Find the IVR call recordings captured for number {number}. slots: number: query.number method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/files/{id}'].get update: x-apievangelist-phrasing: intent: Download one IVR recorded audio file effect: read questions: - What audio format does a downloaded IVR recording come back in? - How long do IVR recorded audio files stay available for download? instructions: - text: Download the IVR recorded audio file {id} as WAVE audio. slots: id: path.id - text: Fetch the recording captured in IVR file {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/uploads'].get update: x-apievangelist-phrasing: intent: List audio files uploaded for IVR playback effect: read questions: - Which audio files have I uploaded to play in IVR calls? - Is there a page limit when listing my uploaded IVR audio files? instructions: - text: List the audio files I uploaded for IVR playback. - text: Show page {page} of my IVR uploads, {size} files per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/voice/ivr/1/uploads'].post update: x-apievangelist-phrasing: intent: Upload an audio file to play in IVR calls effect: write questions: - 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? instructions: - text: Upload {file} as an audio prompt for my IVR scenarios. slots: file: requestBody.file - text: Add the recording {file} to my IVR audio uploads. slots: file: requestBody.file method: generated generated: '2026-09-26' - target: $.paths['/voice/ctc/1/send'].post update: x-apievangelist-phrasing: intent: Send a click-to-call voice message effect: write questions: - 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? instructions: - text: Send the click-to-call messages in {messages}. slots: messages: requestBody.messages - text: Place click-to-call voice messages {messages} under bulk ID {bulkId}. slots: messages: requestBody.messages bulkId: requestBody.bulkId method: generated generated: '2026-09-26' - target: $.paths['/voice/1/reports'].get update: x-apievangelist-phrasing: intent: Get delivery reports for voice, IVR and click-to-call effect: read questions: - 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? instructions: - text: Get the current voice delivery report for message {messageId}. slots: messageId: query.messageId - text: Fetch up to {limit} voice delivery reports for bulk {bulkId}. slots: limit: query.limit bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/tts/3/reports'].get update: x-apievangelist-phrasing: intent: Get voice delivery reports (deprecated TTS v3) effect: read questions: - 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? instructions: - text: Use the deprecated TTS v3 endpoint to get voice delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Pull the legacy TTS v3 delivery report for voice message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/tts/3/logs'].get update: x-apievangelist-phrasing: intent: Get logs of voice messages sent in the last 48 hours effect: read questions: - 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? instructions: - text: Show voice message logs sent to {to} since {sentSince}. slots: to: query.to sentSince: query.sentSince - text: List voice logs for bulk {bulkId} with general status {generalStatus}. slots: bulkId: query.bulkId generalStatus: query.generalStatus method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/config'].get update: x-apievangelist-phrasing: intent: List voice number masking configurations effect: read questions: - Which number masking configurations do I have set up for voice? - Can I see all my masked-calling setups in one list? instructions: - text: List all my voice number masking configurations. - text: Show every number masking config on the account. method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/config'].post update: x-apievangelist-phrasing: intent: Create a voice number masking configuration effect: write questions: - 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? instructions: - text: Create a number masking configuration named {name} that calls back {callbackUrl}. slots: name: requestBody.name callbackUrl: requestBody.callbackUrl - text: Set up masking config {name} with callback {callbackUrl} and status URL {statusUrl}. slots: name: requestBody.name callbackUrl: requestBody.callbackUrl statusUrl: requestBody.statusUrl method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/config/{key}'].get update: x-apievangelist-phrasing: intent: Get one number masking configuration effect: read questions: - What callback and status URLs does a specific masking configuration use? - Can I look up a single number masking configuration by its key? instructions: - text: Show the number masking configuration with key {key}. slots: key: path.key - text: Get details of masking config {key}. slots: key: path.key method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/config/{key}'].put update: x-apievangelist-phrasing: intent: Update a number masking configuration effect: write questions: - Can I change the callback URL on a masking configuration I already created? - How do I rename an existing number masking setup? instructions: - text: Update masking config {key} to name {name} with callback {callbackUrl}. slots: key: path.key name: requestBody.name callbackUrl: requestBody.callbackUrl - text: Point existing masking configuration {key} at backup callback {backupCallbackUrl}, keeping name {name} and callback {callbackUrl}. slots: key: path.key backupCallbackUrl: requestBody.backupCallbackUrl name: requestBody.name callbackUrl: requestBody.callbackUrl method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/config/{key}'].delete update: x-apievangelist-phrasing: intent: Delete a number masking configuration effect: destructive questions: - How do I remove a number masking configuration I no longer use? - Is deleting a masking configuration done by its key? instructions: - text: Delete the number masking configuration {key}. slots: key: path.key - text: Remove masking config {key} from my voice setup. slots: key: path.key method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/1/upload'].post update: x-apievangelist-phrasing: intent: Upload an mp3 for number masking calls effect: write questions: - 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? instructions: - text: Upload the mp3 at {url} for use in masked voice calls. slots: url: requestBody.url - text: Upload this Base64-encoded mp3 {content} to the number masking audio store. slots: content: requestBody.content method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/credentials'].get update: x-apievangelist-phrasing: intent: Get number masking API credentials effect: read questions: - Which API ID and key are set for my number masking callbacks? - Can I check what number masking credentials are currently configured? instructions: - text: Show my current number masking credentials. - text: Get the masking API ID and key on file. method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/credentials'].put update: x-apievangelist-phrasing: intent: Update number masking credentials effect: write questions: - How do I rotate the key on my existing number masking credentials? - Can I replace the API ID used by number masking? instructions: - text: Update my existing number masking credentials to API ID {apiId} and key {key}. slots: apiId: requestBody.apiId key: requestBody.key - text: Rotate the masking credential key to {key} for API ID {apiId}. slots: key: requestBody.key apiId: requestBody.apiId method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/credentials'].post update: x-apievangelist-phrasing: intent: Create number masking credentials effect: write questions: - What do I need to create number masking credentials for the first time? - Can I register an API ID and key for masked calling? instructions: - text: Create new number masking credentials with API ID {apiId} and key {key}. slots: apiId: requestBody.apiId key: requestBody.key - text: Register first-time masking credentials {apiId} / {key}. slots: apiId: requestBody.apiId key: requestBody.key method: generated generated: '2026-09-26' - target: $.paths['/voice/masking/2/credentials'].delete update: x-apievangelist-phrasing: intent: Delete number masking credentials effect: destructive questions: - How do I delete the credentials used for number masking? - Can I wipe my masking API ID and key entirely? instructions: - text: Delete my number masking credentials. - text: Remove the masking API ID and key from the account. method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes'].get update: x-apievangelist-phrasing: intent: List call routes effect: read questions: - Which call routes are configured on my account? - Can I find call routes whose name contains a certain word? instructions: - text: List my call routes. - text: Find call routes with names containing {nameContains}. slots: nameContains: query.nameContains method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes'].post update: x-apievangelist-phrasing: intent: Create a call route effect: write questions: - How do I create a route that sends inbound calls to specific destinations? - Can a new call route be limited to transfers only? instructions: - text: Create a call route named {name} that sends calls to {destinations}. slots: name: requestBody.name destinations: requestBody.destinations - text: Add route {name} matching {criteria} with destinations {destinations}. slots: name: requestBody.name criteria: requestBody.criteria destinations: requestBody.destinations method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes/{routeId}'].get update: x-apievangelist-phrasing: intent: Get a call route effect: read questions: - What criteria and destinations does a particular call route use? - Can I look up one call route by its ID? instructions: - text: Show call route {routeId}. slots: routeId: path.routeId - text: Get the destinations and criteria of route {routeId}. slots: routeId: path.routeId method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes/{routeId}'].put update: x-apievangelist-phrasing: intent: Replace a call route's settings effect: write questions: - 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? instructions: - text: Update call route {routeId} with name {name} and destinations {destinations}. slots: routeId: path.routeId name: requestBody.name destinations: requestBody.destinations - text: 'Overwrite route {routeId}: name {name}, destinations {destinations}, criteria {criteria}.' slots: routeId: path.routeId name: requestBody.name destinations: requestBody.destinations criteria: requestBody.criteria method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes/{routeId}'].delete update: x-apievangelist-phrasing: intent: Delete a call route effect: destructive questions: - How do I get rid of a call route I don't need? - Is removing a call route permanent? instructions: - text: Delete call route {routeId}. slots: routeId: path.routeId - text: Remove route {routeId} from call routing. slots: routeId: path.routeId method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes/{routeId}'].patch update: x-apievangelist-phrasing: intent: Change a call route's evaluation order effect: write questions: - Can I change which call route is evaluated first? - How is the priority order of call routes set? instructions: - text: Move call route {routeId} to position {order}. slots: routeId: path.routeId order: requestBody.order - text: Set the order of route {routeId} to {order}. slots: routeId: path.routeId order: requestBody.order method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/recordings'].get update: x-apievangelist-phrasing: intent: Search call routing recordings effect: read questions: - 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? instructions: - text: Find call routing recordings for route {routeId} started after {startTimeAfter}. slots: routeId: query.routeId startTimeAfter: query.startTimeAfter - text: Search routed-call recordings for phone number {phoneNumber}. slots: phoneNumber: query.phoneNumber method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/recordings'].delete update: x-apievangelist-phrasing: intent: Delete call routing recordings by correlation ID effect: destructive questions: - How do I delete all call routing recordings tied to one correlation ID? - Can I remove routed-call recordings stored in a specific location? instructions: - text: Delete call routing recordings with correlation ID {correlationId}. slots: correlationId: query.correlationId - text: Remove routed-call recordings for correlation {correlationId} stored in {location}. slots: correlationId: query.correlationId location: query.location method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/recordings/files/{fileId}'].get update: x-apievangelist-phrasing: intent: Download a call routing recording file effect: read questions: - How can I download the audio of a routed call recording? - Can I request just a byte range of a call routing recording file? instructions: - text: Download call routing recording file {fileId}. slots: fileId: path.fileId - text: Fetch bytes {Range} of routed-call recording file {fileId}. slots: Range: header.Range fileId: path.fileId method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes/{routeId}/status'].post update: x-apievangelist-phrasing: intent: Enable or disable a call route effect: write questions: - Can I temporarily disable a call route without deleting it? - What status values can a call route be switched to? instructions: - text: Set the status of call route {routeId} to {routeStatus}. slots: routeId: path.routeId routeStatus: requestBody.routeStatus - text: Disable route {routeId} by setting its status to {routeStatus}. slots: routeId: path.routeId routeStatus: requestBody.routeStatus method: generated generated: '2026-09-26' - target: $.paths['/callrouting/1/routes/simulate'].post update: x-apievangelist-phrasing: intent: Simulate which call route a call would take effect: read questions: - Which call route would be picked for a call to a given destination? - Can I test route selection including routes that are currently disabled? instructions: - text: Simulate route selection for a call to {to} from endpoint {endpoint}. slots: to: requestBody.to endpoint: requestBody.endpoint - text: 'Dry-run call routing to {to} from {endpoint}, counting disabled routes: {useDisabledRoutes}.' slots: to: requestBody.to endpoint: requestBody.endpoint useDisabledRoutes: requestBody.useDisabledRoutes method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/token'].post update: x-apievangelist-phrasing: intent: Generate a WebRTC access token effect: write questions: - How does my web or mobile app get a token to join WebRTC calls? - Can I control how long a WebRTC token stays valid? instructions: - text: Generate a WebRTC token for identity {identity}. slots: identity: requestBody.identity - text: Issue a WebRTC token for {identity} shown as {displayName}, valid for {timeToLive} seconds. slots: identity: requestBody.identity displayName: requestBody.displayName timeToLive: requestBody.timeToLive method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/webrtc-push-config'].get update: x-apievangelist-phrasing: intent: List WebRTC push configurations effect: read questions: - Which WebRTC push notification configurations exist on my account? - Can I page through my WebRTC push setups? instructions: - text: List WebRTC push configurations, page {page} with {size} per page. slots: page: query.page size: query.size - text: Show the first {size} WebRTC push configs on page {page}. slots: size: query.size page: query.page method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/webrtc-push-config'].post update: x-apievangelist-phrasing: intent: Create a WebRTC push configuration effect: write questions: - 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? instructions: - text: Create a WebRTC push configuration named {name} with iOS settings {ios} and Android settings {android}. slots: name: requestBody.name ios: requestBody.ios android: requestBody.android - text: Add a new WebRTC push config {name}. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/webrtc-push-config/{id}'].get update: x-apievangelist-phrasing: intent: Get a WebRTC push configuration effect: read questions: - What iOS and Android settings does one WebRTC push configuration hold? - Can I view a single WebRTC push config by ID? instructions: - text: Show WebRTC push configuration {id}. slots: id: path.id - text: Get the details of push config {id} for WebRTC. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/webrtc-push-config/{id}'].put update: x-apievangelist-phrasing: intent: Replace a WebRTC push configuration effect: write questions: - 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? instructions: - text: Replace WebRTC push configuration {id} with name {name}, iOS {ios} and Android {android}. slots: id: path.id name: requestBody.name ios: requestBody.ios android: requestBody.android - text: Fully update push config {id} to be named {name}. slots: id: path.id name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/webrtc-push-config/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a WebRTC push configuration effect: destructive questions: - How do I remove a WebRTC push configuration? - Is a WebRTC push config deleted by its ID? instructions: - text: Delete WebRTC push configuration {id}. slots: id: path.id - text: Remove push config {id} from WebRTC. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/webrtc-push-config/{id}'].patch update: x-apievangelist-phrasing: intent: Change specific fields of a WebRTC push config effect: write questions: - 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? instructions: - text: Patch WebRTC push configuration {id} with just the Android settings {android}. slots: id: path.id android: requestBody.android - text: Only rename push config {id} to {name}, keeping its other fields. slots: id: path.id name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/files'].get update: x-apievangelist-phrasing: intent: List WebRTC files effect: read questions: - What files are stored for my WebRTC application? - Can I page through WebRTC files? instructions: - text: List my WebRTC files. - text: Show page {page} of WebRTC files with {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/files/{id}'].get update: x-apievangelist-phrasing: intent: Get a WebRTC file's details effect: read questions: - What metadata is available for a single WebRTC file? - Can I look up one WebRTC file by its ID without downloading it? instructions: - text: Get the details of WebRTC file {id}. slots: id: path.id - text: Show metadata for WebRTC file {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/files/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a WebRTC file effect: destructive questions: - How do I delete a stored WebRTC file? - Is removing a WebRTC file permanent? instructions: - text: Delete WebRTC file {id}. slots: id: path.id - text: Remove file {id} from WebRTC storage. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/files/{id}/download'].get update: x-apievangelist-phrasing: intent: Download a WebRTC file effect: read questions: - How can I download the contents of a WebRTC file? - Can I get the actual bytes of a WebRTC file by ID? instructions: - text: Download WebRTC file {id}. slots: id: path.id - text: Save the contents of WebRTC file {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/user-activity'].get update: x-apievangelist-phrasing: intent: Get a WebRTC user's activity effect: read questions: - What has a particular WebRTC identity been doing on my app? - Can I filter WebRTC user activity by session or time window? instructions: - text: Show WebRTC activity for identity {identity}. slots: identity: query.identity - text: Get WebRTC activity for {identity} between {startTime} and {endTime}. slots: identity: query.identity startTime: query.startTime endTime: query.endTime method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/recordings'].get update: x-apievangelist-phrasing: intent: Search WebRTC call recordings effect: read questions: - Where can I find recordings of WebRTC calls and rooms? - Can I filter WebRTC recordings by room name or call type? instructions: - text: Find WebRTC recordings for room {roomName}. slots: roomName: query.roomName - text: Search WebRTC recordings of identity {identity} started after {startTimeAfter}. slots: identity: query.identity startTimeAfter: query.startTimeAfter method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/recordings/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a WebRTC recording effect: destructive questions: - How do I delete a single WebRTC call recording? - Can I delete a WebRTC recording stored in a particular location? instructions: - text: Delete WebRTC recording {id}. slots: id: path.id - text: Remove WebRTC recording {id} stored in {location}. slots: id: path.id location: query.location method: generated generated: '2026-09-26' - target: $.paths['/webrtc/1/recordings/{id}/download'].get update: x-apievangelist-phrasing: intent: Download a WebRTC recording file effect: read questions: - How do I download the file of a WebRTC call recording? - Can I fetch part of a WebRTC recording with a byte range? instructions: - text: Download WebRTC recording {id}. slots: id: path.id - text: Fetch bytes {Range} of WebRTC recording {id}. slots: Range: header.Range id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/links'].get update: x-apievangelist-phrasing: intent: List call links effect: read questions: - Which call links have I created so far? - Can I page through all my call links? instructions: - text: List my call links. - text: Show page {page} of call links, {size} at a time. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/links'].post update: x-apievangelist-phrasing: intent: Create a link someone can use to start a call effect: write questions: - How do I send someone a link they can click to call me? - Can a call link expire after a validity window? instructions: - text: Create a call link that connects to {destination}. slots: destination: requestBody.destination - text: Make a call link to {destination} using configuration {callLinkConfigId}, valid for {validityWindow}. slots: destination: requestBody.destination callLinkConfigId: requestBody.callLinkConfigId validityWindow: requestBody.validityWindow method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/links/{id}'].get update: x-apievangelist-phrasing: intent: Get a call link effect: read questions: - What destination and settings does a specific call link have? - Can I look up a call link by its ID? instructions: - text: Show call link {id}. slots: id: path.id - text: Get details of the call link with ID {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/links/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a call link effect: destructive questions: - How do I revoke a call link I sent out? - Does deleting a call link stop people from using it? instructions: - text: Delete call link {id}. slots: id: path.id - text: Revoke the call link {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/configs'].get update: x-apievangelist-phrasing: intent: List call link configurations effect: read questions: - Which call link configurations do I have? - Can I page through my call link themes and options? instructions: - text: List my call link configurations. - text: Show page {page} of call link configs, {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/configs'].post update: x-apievangelist-phrasing: intent: Create a call link configuration effect: write questions: - 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? instructions: - text: Create a call link configuration named {name}. slots: name: requestBody.name - text: 'Add call link config {name} with theme {theme}, set as default: {isDefault}.' slots: name: requestBody.name theme: requestBody.theme isDefault: requestBody.isDefault method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/configs/{id}'].get update: x-apievangelist-phrasing: intent: Get a call link configuration effect: read questions: - What theme and call options does one call link configuration use? - Can I retrieve a call link configuration by its ID? instructions: - text: Show call link configuration {id}. slots: id: path.id - text: Get the settings of call link config {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/configs/{id}'].put update: x-apievangelist-phrasing: intent: Overwrite a call link configuration effect: write questions: - 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? instructions: - text: Overwrite call link configuration {id} with name {name}, resetting anything I leave out. slots: id: path.id name: requestBody.name - text: 'Replace all settings of call link config {id}: name {name}, call options {callOptions}.' slots: id: path.id name: requestBody.name callOptions: requestBody.callOptions method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/configs/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a call link configuration effect: destructive questions: - How do I delete a call link configuration? - Is a call link configuration removed by its ID? instructions: - text: Delete call link configuration {id}. slots: id: path.id - text: Remove the call link config {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/configs/{id}'].patch update: x-apievangelist-phrasing: intent: Partially update a call link configuration effect: write questions: - 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? instructions: - text: 'Patch call link configuration {id}: set name {name} and theme {theme}, keep other values.' slots: id: path.id name: requestBody.name theme: requestBody.theme - text: Only change the webhook of call link config {id} to {webhook}, name stays {name}. slots: id: path.id webhook: requestBody.webhook name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/images'].get update: x-apievangelist-phrasing: intent: List call link images effect: read questions: - Which logo and background images have I uploaded for call links? - Can I page through call link images? instructions: - text: List my call link images. - text: Show page {page} of call link images, {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/images/upload/{type}'].post update: x-apievangelist-phrasing: intent: Upload a logo or background for call links effect: write questions: - How do I add my logo to the call link page? - What size limits apply to call link logo and background images? instructions: - text: Upload {file} as a call link image of type {type}. slots: file: requestBody.file type: path.type - text: Add a {type} image {file} for my call link configurations. slots: type: path.type file: requestBody.file method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/images/{id}'].get update: x-apievangelist-phrasing: intent: Get a call link image effect: read questions: - Can I fetch one call link image by its ID? - What does a stored call link logo or background look like? instructions: - text: Get call link image {id}. slots: id: path.id - text: Show the call link image with ID {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/images/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a call link image effect: destructive questions: - How do I remove a logo or background image from call link configurations? - Is a call link image deleted by ID? instructions: - text: Delete call link image {id}. slots: id: path.id - text: Remove the call link configuration image {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/subdomains'].get update: x-apievangelist-phrasing: intent: List call link subdomains effect: read questions: - Which subdomains are set up for my call links? - Can I see all call link subdomains on the account? instructions: - text: List my call link subdomains. - text: Show every subdomain used for call links. method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/subdomains'].post update: x-apievangelist-phrasing: intent: Create a call link subdomain effect: write questions: - How many call link subdomains can I create? - Can a call link subdomain name contain a dot? instructions: - text: Create a call link subdomain named {name}. slots: name: requestBody.name - text: Add {name} as a new subdomain for call links. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/subdomains/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a call link subdomain effect: destructive questions: - How do I delete a call link subdomain to free up a slot? - Is a call link subdomain removed by its ID? instructions: - text: Delete call link subdomain {id}. slots: id: path.id - text: Remove subdomain {id} from call links. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/recordings'].get update: x-apievangelist-phrasing: intent: Search call link recordings effect: read questions: - Where are the recordings of calls started from my call links? - Can I filter call link recordings by link, configuration or start time? instructions: - text: Find recordings of calls made through call link {callLinkId}. slots: callLinkId: query.callLinkId - text: List call link recordings for configuration {callLinkConfigId} started before {startTimeBefore}. slots: callLinkConfigId: query.callLinkConfigId startTimeBefore: query.startTimeBefore method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/recordings/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a call link recording effect: destructive questions: - How do I delete a recording of a call made via a call link? - Can I delete a call link recording from a specific storage location? instructions: - text: Delete call link recording {id}. slots: id: path.id - text: Remove call link recording {id} stored in {location}. slots: id: path.id location: query.location method: generated generated: '2026-09-26' - target: $.paths['/call-link/1/recordings/files/{fileId}'].get update: x-apievangelist-phrasing: intent: Download a call link recording file effect: read questions: - How can I download the audio of a call made through a call link? - Can I download a byte range of a call link recording file? instructions: - text: Download call link recording file {fileId}. slots: fileId: path.fileId - text: Fetch bytes {Range} of call link recording file {fileId}. slots: Range: header.Range fileId: path.fileId method: generated generated: '2026-09-26' - target: $.paths['/email/4/messages'].post update: x-apievangelist-phrasing: intent: Send personalized email messages in bulk effect: write questions: - Can I send personalized emails to thousands of recipients in one API request? - Which email send method supports scheduling and batch personalization together? instructions: - text: Send the email messages in {messages} using the v4 messages endpoint. slots: messages: requestBody.messages - text: Send batch email {messages} with sending options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/email/1/content'].post update: x-apievangelist-phrasing: intent: Upload binary content to reference in emails effect: write questions: - 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? instructions: - text: Upload binary content with content ID {X-Content-Id} and media type {X-Media-Type}. slots: X-Content-Id: header.X-Content-Id X-Media-Type: header.X-Media-Type - text: Store email content {X-Content-Id} as {X-Media-Type}, valid for {X-Validity-Period-Minutes} minutes. slots: X-Content-Id: header.X-Content-Id X-Media-Type: header.X-Media-Type X-Validity-Period-Minutes: header.X-Validity-Period-Minutes method: generated generated: '2026-09-26' - target: $.paths['/email/3/send'].post update: x-apievangelist-phrasing: intent: Send an email with CC, BCC and attachments effect: write questions: - Can I send an email with CC and BCC recipients and an attachment? - Is it possible to turn on open and click tracking for a single email send? instructions: - text: Email {to} from {from} with subject {subject} and body {text}. slots: to: requestBody.to from: requestBody.from subject: requestBody.subject text: requestBody.text - text: Send the HTML email {html} to {to}, CC {cc}, BCC {bcc}. slots: html: requestBody.html to: requestBody.to cc: requestBody.cc bcc: requestBody.bcc - text: Schedule an email to {to} using template {templateId} for {sendAt}. slots: to: requestBody.to templateId: requestBody.templateId sendAt: requestBody.sendAt method: generated generated: '2026-09-26' - target: $.paths['/email/4/mime'].post update: x-apievangelist-phrasing: intent: Send an email built as a raw MIME message effect: write questions: - 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? instructions: - text: Send the raw MIME message {mimeMessage}. slots: mimeMessage: requestBody.mimeMessage - text: Send MIME email {mimeMessage} from {from} to {destinations}. slots: mimeMessage: requestBody.mimeMessage from: requestBody.from destinations: requestBody.destinations method: generated generated: '2026-09-26' - target: $.paths['/email/1/bulks'].get update: x-apievangelist-phrasing: intent: See when a scheduled email bulk will send effect: read questions: - When is my scheduled email batch set to go out? - Can I check the send time of a scheduled email bulk? instructions: - text: Show the scheduled send time for email bulk {bulkId}. slots: bulkId: query.bulkId - text: Tell me when scheduled email bulk {bulkId} will be sent. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/email/1/bulks'].put update: x-apievangelist-phrasing: intent: Reschedule a scheduled email bulk effect: write questions: - 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? instructions: - text: Reschedule email bulk {bulkId} to send at {sendAt}. slots: bulkId: query.bulkId sendAt: requestBody.sendAt - text: Move the send time of scheduled emails in {bulkId} to {sendAt}. slots: bulkId: query.bulkId sendAt: requestBody.sendAt method: generated generated: '2026-09-26' - target: $.paths['/email/1/bulks/status'].get update: x-apievangelist-phrasing: intent: Get the status of a scheduled email bulk effect: read questions: - Is my scheduled email batch still pending, paused or canceled? - What status is a scheduled email bulk in right now? instructions: - text: Get the status of scheduled email bulk {bulkId}. slots: bulkId: query.bulkId - text: Check whether scheduled emails in {bulkId} are paused or pending. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/email/1/bulks/status'].put update: x-apievangelist-phrasing: intent: Pause, resume or cancel scheduled emails effect: destructive questions: - Can I cancel a scheduled email batch before it sends? - How do I pause scheduled emails and resume them later? instructions: - text: Set scheduled email bulk {bulkId} to status {status}. slots: bulkId: query.bulkId status: requestBody.status - text: Cancel sending of scheduled emails in bulk {bulkId} by setting status {status}. slots: bulkId: query.bulkId status: requestBody.status method: generated generated: '2026-09-26' - target: $.paths['/email/4/logs'].get update: x-apievangelist-phrasing: intent: Get email logs with cursor paging (v4) effect: read questions: - 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? instructions: - text: Show v4 email logs from sender {sender} to {destination}. slots: sender: query.sender destination: query.destination - text: Get the next page of email logs from cursor {cursor}. slots: cursor: query.cursor method: generated generated: '2026-09-26' - target: $.paths['/email/4/reports'].get update: x-apievangelist-phrasing: intent: Get email delivery reports (v4) effect: read questions: - 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? instructions: - text: Get v4 email delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Fetch v4 delivery reports for campaign reference {campaignReferenceId}. slots: campaignReferenceId: query.campaignReferenceId method: generated generated: '2026-09-26' - target: $.paths['/email/1/logs'].get update: x-apievangelist-phrasing: intent: Get email logs by message ID (v1) effect: read questions: - 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? instructions: - text: Get the v1 email log for message {messageId}. slots: messageId: query.messageId - text: Show v1 email logs from {from} with general status {generalStatus}. slots: from: query.from generalStatus: query.generalStatus method: generated generated: '2026-09-26' - target: $.paths['/email/1/reports'].get update: x-apievangelist-phrasing: intent: Get email delivery reports (v1) effect: read questions: - 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? instructions: - text: Get v1 email delivery reports for message {messageId}. slots: messageId: query.messageId - text: Fetch up to {limit} v1 email delivery reports for bulk {bulkId}. slots: limit: query.limit bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/email/2/validation'].post update: x-apievangelist-phrasing: intent: Validate a single email address in real time effect: read questions: - 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? instructions: - text: Validate the email address {to}. slots: to: requestBody.to - text: Check in real time whether {to} is a deliverable address. slots: to: requestBody.to method: generated generated: '2026-09-26' - target: $.paths['/email/2/validations'].get update: x-apievangelist-phrasing: intent: Review bulk email validation results effect: read questions: - What were the results of my bulk email address validation? - Can I filter validation results to disposable or role-based addresses? instructions: - text: Show results of email validation request {validationRequestId}. slots: validationRequestId: query.validationRequestId - text: List validated addresses with risk level {risk}. slots: risk: query.risk method: generated generated: '2026-09-26' - target: $.paths['/email/2/validations'].post update: x-apievangelist-phrasing: intent: Request bulk email address validation effect: write questions: - 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? instructions: - text: Request bulk validation of the addresses {destinations}. slots: destinations: requestBody.destinations - text: Validate {destinations} in bulk under request ID {validationRequestId}. slots: destinations: requestBody.destinations validationRequestId: requestBody.validationRequestId method: generated generated: '2026-09-26' - target: $.paths['/email/1/domains'].get update: x-apievangelist-phrasing: intent: List email sending domains effect: read questions: - Which email domains are associated with my account? - Can I see DNS records and blocked status for all my email domains? instructions: - text: List all my email sending domains. - text: Show page {page} of email domains, {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/email/1/domains'].post update: x-apievangelist-phrasing: intent: Add an email sending domain effect: write questions: - How do I add a new domain to send email from? - How many email domains can I create in a single day? instructions: - text: Add email domain {domainName} with targeted daily traffic {targetedDailyTraffic}. slots: domainName: requestBody.domainName targetedDailyTraffic: requestBody.targetedDailyTraffic - text: Register sending domain {domainName} with a {dkimKeyLength}-bit DKIM key and daily traffic {targetedDailyTraffic}. slots: domainName: requestBody.domainName dkimKeyLength: requestBody.dkimKeyLength targetedDailyTraffic: requestBody.targetedDailyTraffic method: generated generated: '2026-09-26' - target: $.paths['/email/1/domains/{domainName}'].get update: x-apievangelist-phrasing: intent: Get an email domain's DNS and tracking details effect: read questions: - What DNS records do I need to set for my email domain? - Is my email domain active or blocked? instructions: - text: Show details of email domain {domainName}. slots: domainName: path.domainName - text: Get the DNS records and status for {domainName}. slots: domainName: path.domainName method: generated generated: '2026-09-26' - target: $.paths['/email/1/domains/{domainName}'].delete update: x-apievangelist-phrasing: intent: Delete an email sending domain effect: destructive questions: - How do I delete an email domain I no longer send from? - Can I remove a sending domain from my email account? instructions: - text: Delete email domain {domainName}. slots: domainName: path.domainName - text: Remove {domainName} from my sending domains. slots: domainName: path.domainName method: generated generated: '2026-09-26' - target: $.paths['/email/1/domains/{domainName}/tracking'].put update: x-apievangelist-phrasing: intent: Turn email open, click and unsubscribe tracking on or off effect: write questions: - Can I disable click tracking for one email domain? - Which tracking events can be toggled on a sending domain? instructions: - text: 'Set tracking on {domainName}: opens {open}, clicks {clicks}, unsubscribes {unsubscribe}.' slots: domainName: path.domainName open: requestBody.open clicks: requestBody.clicks unsubscribe: requestBody.unsubscribe - text: Turn click tracking for domain {domainName} to {clicks}. slots: domainName: path.domainName clicks: requestBody.clicks method: generated generated: '2026-09-26' - target: $.paths['/email/1/domains/{domainName}/verify'].post update: x-apievangelist-phrasing: intent: Verify an email domain's DNS records effect: write questions: - How do I verify the TXT, MX and DKIM records on my sending domain? - Can I re-run DNS verification after updating my domain records? instructions: - text: Verify the DNS records for email domain {domainName}. slots: domainName: path.domainName - text: Run TXT, MX and DKIM verification on {domainName}. slots: domainName: path.domainName method: generated generated: '2026-09-26' - target: $.paths['/email/1/suppressions'].get update: x-apievangelist-phrasing: intent: List suppressed email addresses for a domain effect: read questions: - Which addresses are on the suppression list for my domain? - Can I filter suppressions by type and creation date? instructions: - text: List {type} suppressions for domain {domainName}. slots: type: query.type domainName: query.domainName - text: Check whether {emailAddress} is suppressed as {type} on {domainName}. slots: emailAddress: query.emailAddress type: query.type domainName: query.domainName method: generated generated: '2026-09-26' - target: $.paths['/email/1/suppressions'].post update: x-apievangelist-phrasing: intent: Add addresses to the email suppression list effect: write questions: - How do I stop sending email to certain addresses by suppressing them? - Are suppression additions processed asynchronously? instructions: - text: 'Add these addresses to the suppression list: {suppressions}.' slots: suppressions: requestBody.suppressions - text: Suppress future email to {suppressions}. slots: suppressions: requestBody.suppressions method: generated generated: '2026-09-26' - target: $.paths['/email/1/suppressions'].delete update: x-apievangelist-phrasing: intent: Remove addresses from the email suppression list effect: destructive questions: - Can I take an address off the suppression list so it gets email again? - How do I delete entries from my email suppressions? instructions: - text: Remove {suppressions} from the suppression list. slots: suppressions: requestBody.suppressions - text: 'Unsuppress these addresses: {suppressions}.' slots: suppressions: requestBody.suppressions method: generated generated: '2026-09-26' - target: $.paths['/email/1/suppressions/domains'].get update: x-apievangelist-phrasing: intent: List domains whose suppressions I can manage effect: read questions: - Which domains am I allowed to manage suppressions for? - Does the suppression domain list include domains I've been granted access to? instructions: - text: List the domains I can manage suppressions for. - text: Show page {page} of suppression-manageable domains. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/ips'].get update: x-apievangelist-phrasing: intent: List all dedicated email IPs effect: read questions: - What dedicated IP addresses do I own for email sending? - Can I get every dedicated email IP in one unpaginated list? instructions: - text: List all my dedicated email IPs. - text: Show every dedicated sending IP on the account at once. method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/ips/commission'].post update: x-apievangelist-phrasing: intent: Commission a new dedicated email IP effect: write questions: - How do I get a new dedicated IP for sending email? - Does commissioning a dedicated IP start billing right away? instructions: - text: Commission a new dedicated email IP. - text: Order another dedicated IP for email traffic. method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/ips/{ipId}'].get update: x-apievangelist-phrasing: intent: Get a dedicated email IP's details effect: read questions: - What details are available about one of my dedicated email IPs? - Can I look up a dedicated IP by its ID? instructions: - text: Show details of dedicated IP {ipId}. slots: ipId: path.ipId - text: Get information about email IP {ipId}. slots: ipId: path.ipId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/ips/{ipId}'].delete update: x-apievangelist-phrasing: intent: Decommission a dedicated email IP effect: destructive questions: - When does billing stop after I decommission a dedicated IP? - How do I retire a dedicated email IP I no longer need? instructions: - text: Decommission dedicated IP {ipId}. slots: ipId: path.ipId - text: Retire email IP {ipId} and stop its billing. slots: ipId: path.ipId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/pools'].get update: x-apievangelist-phrasing: intent: List all email IP pools effect: read questions: - Which IP pools have I created for email sending? - Can I find an IP pool by name? instructions: - text: List all my email IP pools. - text: Find IP pools named {name}. slots: name: query.name method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/pools'].post update: x-apievangelist-phrasing: intent: Create an email IP pool effect: write questions: - How do I group dedicated IPs into a new pool? - What does it take to create an IP pool? instructions: - text: Create an IP pool named {name}. slots: name: requestBody.name - text: Set up a new email IP pool {name}. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/pools/{poolId}'].get update: x-apievangelist-phrasing: intent: Get an email IP pool effect: read questions: - Which IPs belong to a particular IP pool? - Can I view one IP pool's details by ID? instructions: - text: Show IP pool {poolId}. slots: poolId: path.poolId - text: Get the IPs in pool {poolId}. slots: poolId: path.poolId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/pools/{poolId}'].put update: x-apievangelist-phrasing: intent: Rename an email IP pool effect: write questions: - Can I rename an existing IP pool? - How do I update an IP pool's details? instructions: - text: Rename IP pool {poolId} to {name}. slots: poolId: path.poolId name: requestBody.name - text: Update pool {poolId} with the name {name}. slots: poolId: path.poolId name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/pools/{poolId}'].delete update: x-apievangelist-phrasing: intent: Delete an email IP pool effect: destructive questions: - What happens to assigned IPs and domains when I delete an IP pool? - How do I remove an IP pool? instructions: - text: Delete IP pool {poolId}. slots: poolId: path.poolId - text: Remove pool {poolId} along with its IP and domain assignments. slots: poolId: path.poolId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/pools/{poolId}/ips'].post update: x-apievangelist-phrasing: intent: Add a dedicated IP to an IP pool effect: write questions: - How do I put a dedicated IP into an IP pool? - Can one dedicated IP be assigned to a pool I choose? instructions: - text: Assign dedicated IP {ipId} to pool {poolId}. slots: ipId: requestBody.ipId poolId: path.poolId - text: Add IP {ipId} into IP pool {poolId}. slots: ipId: requestBody.ipId poolId: path.poolId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/pools/{poolId}/ips/{ipId}'].delete update: x-apievangelist-phrasing: intent: Remove a dedicated IP from an IP pool effect: destructive questions: - How do I take a dedicated IP out of a pool without decommissioning it? - Can I unassign one IP from a specific pool? instructions: - text: Unassign IP {ipId} from pool {poolId}. slots: ipId: path.ipId poolId: path.poolId - text: Take dedicated IP {ipId} out of IP pool {poolId}. slots: ipId: path.ipId poolId: path.poolId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/paginated/ips'].get update: x-apievangelist-phrasing: intent: List dedicated email IPs page by page effect: read questions: - Can I page through my dedicated IPs instead of getting them all at once? - Is there a paginated list of dedicated email IPs? instructions: - text: Show page {page} of dedicated IPs, {size} per page. slots: page: query.page size: query.size - text: Page through my dedicated email IPs starting at page {page}. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/paginated/pools'].get update: x-apievangelist-phrasing: intent: List email IP pools page by page effect: read questions: - Can I get my IP pools in pages? - Is there a paginated version of the IP pool list? instructions: - text: Show page {page} of IP pools, {size} per page. slots: page: query.page size: query.size - text: Page through my email IP pools from page {page}. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/domains/{domainId}'].get update: x-apievangelist-phrasing: intent: See a domain's assigned IP pools and IPs effect: read questions: - Which IP pools and IPs is my sending domain using? - Can I check IP pool assignments for one domain? instructions: - text: Show the IP pools and IPs assigned to domain {domainId}. slots: domainId: path.domainId - text: Get IP management details for domain {domainId}. slots: domainId: path.domainId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/domains/{domainId}/pools'].post update: x-apievangelist-phrasing: intent: Assign an IP pool to a sending domain effect: write questions: - How do I make a domain send from a specific IP pool? - Can I set a sending priority when attaching an IP pool to a domain? instructions: - text: Assign IP pool {poolId} to domain {domainId} with priority {priority}. slots: poolId: requestBody.poolId domainId: path.domainId priority: requestBody.priority - text: Attach pool {poolId} to sending domain {domainId} at priority {priority}. slots: poolId: requestBody.poolId domainId: path.domainId priority: requestBody.priority method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/domains/{domainId}/pools/{poolId}'].put update: x-apievangelist-phrasing: intent: Change an IP pool's sending priority for a domain effect: write questions: - Can I change which IP pool a domain prefers when sending? - How do I reprioritize a pool already assigned to a domain? instructions: - text: Set the priority of pool {poolId} on domain {domainId} to {priority}. slots: poolId: path.poolId domainId: path.domainId priority: requestBody.priority - text: Change sending priority to {priority} for already-assigned pool {poolId} on {domainId}. slots: priority: requestBody.priority poolId: path.poolId domainId: path.domainId method: generated generated: '2026-09-26' - target: $.paths['/email/1/ip-management/domains/{domainId}/pools/{poolId}'].delete update: x-apievangelist-phrasing: intent: Unassign an IP pool from a sending domain effect: destructive questions: - How do I stop a domain from sending through a certain IP pool? - Can I detach one IP pool from a domain? instructions: - text: Unassign pool {poolId} from domain {domainId}. slots: poolId: path.poolId domainId: path.domainId - text: Detach IP pool {poolId} from sending domain {domainId}. slots: poolId: path.poolId domainId: path.domainId method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates'].get update: x-apievangelist-phrasing: intent: List email templates effect: read questions: - Which email templates are available on my account? - Can I page through my email templates? instructions: - text: List my email templates. - text: Show page {page} of email templates, {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates'].post update: x-apievangelist-phrasing: intent: Create an email template effect: write questions: - How do I save reusable HTML as an email template? - Can a new email template include a subject, preheader and reply-to address? instructions: - text: Create an email template named {name} with HTML {html}. slots: name: requestBody.name html: requestBody.html - text: Make a new email template with subject {subject}, preheader {preheader} and HTML {html}. slots: subject: requestBody.subject preheader: requestBody.preheader html: requestBody.html method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}'].get update: x-apievangelist-phrasing: intent: Get an email template effect: read questions: - What does a specific email template contain? - Can I fetch an email template by its ID? instructions: - text: Show email template {templateId}. slots: templateId: path.templateId - text: Get the HTML and subject of template {templateId}. slots: templateId: path.templateId method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}'].put update: x-apievangelist-phrasing: intent: Replace an email template's content effect: write questions: - Can I replace the full content of an existing email template? - How do I overwrite an email template with new HTML and subject? instructions: - text: Update email template {templateId} with new HTML {html}. slots: templateId: path.templateId html: requestBody.html - text: 'Replace template {templateId}: subject {subject}, HTML {html}.' slots: templateId: path.templateId subject: requestBody.subject html: requestBody.html method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}'].delete update: x-apievangelist-phrasing: intent: Delete an email template effect: destructive questions: - How do I delete an email template I don't use? - Is an email template removed by its ID? instructions: - text: Delete email template {templateId}. slots: templateId: path.templateId - text: Remove template {templateId} from my email templates. slots: templateId: path.templateId method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}'].patch update: x-apievangelist-phrasing: intent: Partially update an email template effect: write questions: - Can I change just the subject line of an email template? - Is there a partial update for email templates? instructions: - text: Patch email template {templateId} with subject {subject}, HTML {html}. slots: templateId: path.templateId subject: requestBody.subject html: requestBody.html - text: 'Partially update template {templateId}: preheader {preheader}, HTML {html}.' slots: templateId: path.templateId preheader: requestBody.preheader html: requestBody.html method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}/preview'].post update: x-apievangelist-phrasing: intent: Preview an email template with placeholder data effect: read questions: - Can I see how an email template renders with real placeholder values? - What does a template look like once placeholders are filled in? instructions: - text: Preview email template {templateId}. slots: templateId: path.templateId - text: Render template {templateId} with placeholders {placeholders}. slots: templateId: path.templateId placeholders: requestBody.placeholders method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}/attachments'].get update: x-apievangelist-phrasing: intent: List an email template's attachments effect: read questions: - Which attachments are on a given email template? - Can I see what files are attached to an email template? instructions: - text: List attachments of email template {templateId}. slots: templateId: path.templateId - text: Show the files attached to template {templateId}. slots: templateId: path.templateId method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}/attachments'].post update: x-apievangelist-phrasing: intent: Attach a file to an email template effect: write questions: - How do I add an attachment to an email template? - What details are needed to upload a template attachment? instructions: - text: Attach {fileName} ({contentType}) with data {data} to template {templateId}. slots: fileName: requestBody.fileName contentType: requestBody.contentType data: requestBody.data templateId: path.templateId - text: Upload attachment {fileName} of type {contentType} to email template {templateId} using {data}. slots: fileName: requestBody.fileName contentType: requestBody.contentType templateId: path.templateId data: requestBody.data method: generated generated: '2026-09-26' - target: $.paths['/email/1/templates/{templateId}/attachments/{attachmentId}'].delete update: x-apievangelist-phrasing: intent: Remove an attachment from an email template effect: destructive questions: - Can I remove one attachment from an email template? - How do I delete a template attachment by ID? instructions: - text: Delete attachment {attachmentId} from template {templateId}. slots: attachmentId: path.attachmentId templateId: path.templateId - text: Remove file {attachmentId} attached to email template {templateId}. slots: attachmentId: path.attachmentId templateId: path.templateId method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/template'].post update: x-apievangelist-phrasing: intent: Send WhatsApp template messages effect: write questions: - How do I message a WhatsApp user who hasn't contacted my business recently? - Can I send approved WhatsApp templates to many recipients in one request? instructions: - text: Send the WhatsApp template messages in {messages}. slots: messages: requestBody.messages - text: Send WhatsApp templates {messages} under bulk ID {bulkId}. slots: messages: requestBody.messages bulkId: requestBody.bulkId method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/text'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp text message effect: write questions: - Can I send a plain free-form text reply to a customer on WhatsApp? - Why would a WhatsApp text message fail if the customer hasn't written to me lately? instructions: - text: Send WhatsApp text {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Reply on WhatsApp to {to} with the text {content} from sender {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/document'].post update: x-apievangelist-phrasing: intent: Send a document over WhatsApp effect: write questions: - Can I send a PDF or other document to a customer on WhatsApp? - What stops a WhatsApp document message from being delivered? instructions: - text: Send the document {content} on WhatsApp from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Share a WhatsApp file attachment {content} with {to} from sender {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/image'].post update: x-apievangelist-phrasing: intent: Send an image over WhatsApp effect: write questions: - How do I send a photo to a customer on WhatsApp? - Can a WhatsApp image message carry a caption? instructions: - text: Send the image {content} on WhatsApp from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Send a WhatsApp picture to {to} from {from} using {content}. slots: to: requestBody.to from: requestBody.from content: requestBody.content method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/audio'].post update: x-apievangelist-phrasing: intent: Send an audio clip over WhatsApp effect: write questions: - Can I send a voice note or audio file to someone on WhatsApp? - Does a WhatsApp audio message need the customer to have messaged me first? instructions: - text: Send the audio {content} on WhatsApp from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Send {to} a WhatsApp audio clip {content} from sender {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/video'].post update: x-apievangelist-phrasing: intent: Send a video over WhatsApp effect: write questions: - How can I send a short video to a customer on WhatsApp? - Is a WhatsApp video message only deliverable inside the customer service window? instructions: - text: Send the video {content} on WhatsApp from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Share WhatsApp video {content} with {to} from {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/sticker'].post update: x-apievangelist-phrasing: intent: Send a sticker over WhatsApp effect: write questions: - Can my business send a WhatsApp sticker to a customer? - What sticker content does a WhatsApp sticker message take? instructions: - text: Send the sticker {content} on WhatsApp from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Send {to} a WhatsApp sticker {content} from sender {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/location'].post update: x-apievangelist-phrasing: intent: Send a map location over WhatsApp effect: write questions: - How do I share my store's location as a pin on WhatsApp? - Can I send coordinates to a customer on WhatsApp? instructions: - text: Send the location {content} on WhatsApp from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Share a WhatsApp map pin {content} with {to} from {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/contact'].post update: x-apievangelist-phrasing: intent: Send a contact card over WhatsApp effect: write questions: - Can I send someone a contact card on WhatsApp? - What's needed to share a contact's details in a WhatsApp message? instructions: - text: Send the contact card {content} on WhatsApp from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Share WhatsApp contact details {content} with {to} from sender {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/buttons'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp message with reply buttons effect: write questions: - How do I send a WhatsApp message with quick reply buttons? - Can a customer answer a WhatsApp message by tapping a button? instructions: - text: Send a WhatsApp reply-buttons message {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Ask {to} on WhatsApp to choose a button from {content}, sent by {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/list'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp list menu message effect: write questions: - Can I send a WhatsApp menu where the customer picks from a list of options? - What's the way to offer sections of choices in a WhatsApp message? instructions: - text: Send a WhatsApp list menu {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Let {to} pick from the WhatsApp option list {content}, sent from {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/media-carousel'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp media carousel effect: write questions: - Can I send a swipeable carousel of media cards on WhatsApp? - How do I show several images as cards in one WhatsApp message? instructions: - text: Send a WhatsApp media carousel {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Show {to} the WhatsApp carousel cards {content} from sender {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/location-request'].post update: x-apievangelist-phrasing: intent: Ask a WhatsApp user to share their location effect: write questions: - How do I ask a customer to send me their location on WhatsApp? - Can I prompt a WhatsApp user with a share-location button? instructions: - text: Ask {to} on WhatsApp to share their location with the prompt {content}, from {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from - text: Send a WhatsApp location request {content} to {to} from sender {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/product'].post update: x-apievangelist-phrasing: intent: Send a single catalog product on WhatsApp effect: write questions: - Can I send one product from my catalog to a customer on WhatsApp? - What's needed to showcase a single catalog item in a WhatsApp chat? instructions: - text: Send the single WhatsApp catalog product {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: 'Show {to} one product from my WhatsApp catalog: {content}, sent by {from}.' slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/multi-product'].post update: x-apievangelist-phrasing: intent: Send several catalog products on WhatsApp effect: write questions: - How do I send a selection of multiple catalog products in one WhatsApp message? - Can a WhatsApp message group several products into sections? instructions: - text: Send the WhatsApp multi-product message {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Show {to} several catalog products {content} on WhatsApp from {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/order-details'].post update: x-apievangelist-phrasing: intent: Send WhatsApp order details for payment effect: write questions: - Can I send a customer an itemized order with a total on WhatsApp so they can pay? - What goes into a WhatsApp order-details message? instructions: - text: Send WhatsApp order details {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Ask {to} to review and pay for the order {content} on WhatsApp, sent by {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/order-status'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp order status update effect: write questions: - How do I tell a customer on WhatsApp that their order status changed? - Can I send order status updates as structured WhatsApp messages? instructions: - text: Send WhatsApp order status update {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Notify {to} on WhatsApp that their order is now {content}, from {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/flow'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp Flow message effect: write questions: - Can I launch a WhatsApp Flow form inside a chat? - How do I send a customer a multi-screen WhatsApp Flow? instructions: - text: Send the WhatsApp Flow message {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Open WhatsApp Flow {content} for {to}, sent from {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/url-button'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp message with a link button effect: write questions: - Can I send a WhatsApp message with a button that opens a web link? - How do I add a call-to-action URL button to a WhatsApp chat message? instructions: - text: Send a WhatsApp URL button message {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Give {to} a WhatsApp link button {content} from sender {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/call-permission-request'].post update: x-apievangelist-phrasing: intent: Ask a WhatsApp user for permission to call effect: write questions: - How do I ask a customer for permission to call them on WhatsApp? - Is there a WhatsApp message that requests consent before a business call? instructions: - text: Ask {to} on WhatsApp for permission to call them, from sender {from}. slots: to: requestBody.to from: requestBody.from - text: Send a WhatsApp call permission request to {to} from {from}. slots: to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/voice-button'].post update: x-apievangelist-phrasing: intent: Send a WhatsApp message with a voice call button effect: write questions: - Can I send a WhatsApp message with a button the customer taps to call my business? - What does a WhatsApp voice button message contain? instructions: - text: Send a WhatsApp voice call button message {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Give {to} a tap-to-call WhatsApp button {content}, sent by {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/in-thread-authentication-request'].post update: x-apievangelist-phrasing: intent: Send an in-thread WhatsApp authentication request effect: write questions: - Can I ask a customer to authenticate right inside the WhatsApp conversation? - How does an in-thread WhatsApp authentication request get sent? instructions: - text: Send an in-thread authentication request to {to} on WhatsApp from {from}. slots: to: requestBody.to from: requestBody.from - text: Ask WhatsApp user {to} to verify themselves in the chat, sent from {from}. slots: to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/message/interactive/request-contact-info'].post update: x-apievangelist-phrasing: intent: Ask a WhatsApp user to share contact info effect: write questions: - How do I ask a customer to share their contact info on WhatsApp? - Can a WhatsApp message request the user's phone and name details? instructions: - text: Ask {to} on WhatsApp to share their contact info with the prompt {content}, from {from}. slots: to: requestBody.to content: requestBody.content from: requestBody.from - text: Send a WhatsApp request-contact-info message {content} to {to} from {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/events'].post update: x-apievangelist-phrasing: intent: Send WhatsApp events to multiple recipients effect: write questions: - Can I send WhatsApp events such as typing indicators to several recipients? - Is there a bulk way to send WhatsApp events? instructions: - text: Send the WhatsApp events {events}. slots: events: requestBody.events - text: Push WhatsApp events {events} with options {options}. slots: events: requestBody.events options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/media/{mediaId}'].get update: x-apievangelist-phrasing: intent: Download media a WhatsApp user sent me effect: read questions: - How do I download a photo or file a customer sent me on WhatsApp? - Can I retrieve inbound WhatsApp media by its media ID? instructions: - text: Download inbound WhatsApp media {mediaId} received on sender {sender}. slots: mediaId: path.mediaId sender: path.sender - text: Save the file {mediaId} a customer sent to my WhatsApp number {sender}. slots: mediaId: path.mediaId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/media/{mediaId}'].head update: x-apievangelist-phrasing: intent: Check inbound WhatsApp media type and size effect: read questions: - Can I check the size and type of inbound WhatsApp media before downloading it? - What metadata comes back for a file a WhatsApp user sent? instructions: - text: Get the type and size of inbound media {mediaId} on sender {sender} without downloading it. slots: mediaId: path.mediaId sender: path.sender - text: Check metadata for WhatsApp media {mediaId} received by {sender}. slots: mediaId: path.mediaId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/message/{messageId}/read'].post update: x-apievangelist-phrasing: intent: Mark an inbound WhatsApp message as read effect: write questions: - How do I show blue ticks on a customer's WhatsApp message? - Can I mark a message a user sent me on WhatsApp as read? instructions: - text: Mark WhatsApp message {messageId} on sender {sender} as read. slots: messageId: path.messageId sender: path.sender - text: Send a read receipt for inbound message {messageId} to my number {sender}. slots: messageId: path.messageId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/payments/upi/payu/{paymentId}'].get update: x-apievangelist-phrasing: intent: Get an India UPI PayU payment status effect: read questions: - Did a customer's UPI payment through PayU on WhatsApp go through? - Which endpoint is only for PayU UPI payment status on WhatsApp? instructions: - text: Get the PayU-only UPI payment status for {paymentId} on sender {sender}. slots: paymentId: path.paymentId sender: path.sender - text: Check the PayU transaction status of WhatsApp UPI payment {paymentId} for {sender}. slots: paymentId: path.paymentId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/payments/br/{paymentId}'].get update: x-apievangelist-phrasing: intent: Get a Brazil WhatsApp payment status effect: read questions: - Was a customer's payment in Brazil through WhatsApp completed? - Can I see the transaction status of a Brazilian WhatsApp payment? instructions: - text: Get the Brazil payment status for {paymentId} on sender {sender}. slots: paymentId: path.paymentId sender: path.sender - text: Check the Brazilian WhatsApp payment {paymentId} for my number {sender}. slots: paymentId: path.paymentId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/payments/upi/{paymentId}'].get update: x-apievangelist-phrasing: intent: Get an India UPI payment status (PayU or Razorpay) effect: read questions: - Can I check a UPI payment status on WhatsApp whether it went through PayU or Razorpay? - Where do I look up Razorpay UPI transaction status for WhatsApp? instructions: - text: Get the UPI payment status for {paymentId} on sender {sender}, PayU or Razorpay. slots: paymentId: path.paymentId sender: path.sender - text: Check the Razorpay UPI payment {paymentId} made via WhatsApp number {sender}. slots: paymentId: path.paymentId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/2/senders/{sender}/templates'].get update: x-apievangelist-phrasing: intent: List a sender's WhatsApp templates effect: read questions: - Which WhatsApp templates does my sender have and are they approved? - Can I see the review status of all templates for one WhatsApp number? instructions: - text: List WhatsApp templates and their statuses for sender {sender}. slots: sender: path.sender - text: Show all message templates registered to WhatsApp number {sender}. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/2/senders/{sender}/templates'].post update: x-apievangelist-phrasing: intent: Create a WhatsApp message template effect: write questions: - How do I submit a new WhatsApp template for approval? - What category and language does a new WhatsApp template need? instructions: - text: Create WhatsApp template {name} in {language}, category {category}, with structure {structure} for sender {sender}. slots: name: requestBody.name language: requestBody.language category: requestBody.category structure: requestBody.structure sender: path.sender - text: Submit a new {category} template {name} ({language}) with body {structure} on {sender} for review. slots: category: requestBody.category name: requestBody.name language: requestBody.language structure: requestBody.structure sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/2/senders/{sender}/templates/{templateName}'].delete update: x-apievangelist-phrasing: intent: Delete a WhatsApp message template effect: destructive questions: - Does deleting a WhatsApp template remove all of its languages? - How long before I can reuse the name of a deleted WhatsApp template? instructions: - text: Delete WhatsApp template {templateName} from sender {sender}. slots: templateName: path.templateName sender: path.sender - text: Remove the {templateName} template in every language for {sender}. slots: templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/2/senders/{sender}/templates/{id}'].get update: x-apievangelist-phrasing: intent: Get one WhatsApp template and its status effect: read questions: - Has my WhatsApp template been approved yet? - Can I look up one WhatsApp template by its ID? instructions: - text: Show WhatsApp template {id} for sender {sender}. slots: id: path.id sender: path.sender - text: Check the approval status of template {id} on {sender}. slots: id: path.id sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/2/senders/{sender}/templates/{id}'].patch update: x-apievangelist-phrasing: intent: Edit a WhatsApp template and resubmit it effect: write questions: - Can I edit a WhatsApp template after it's been created? - Does editing a WhatsApp template send it back for review? instructions: - text: Edit WhatsApp template {id} on {sender} with new structure {structure}. slots: id: path.id sender: path.sender structure: requestBody.structure - text: Change the category of template {id} for {sender} to {category}. slots: id: path.id sender: path.sender category: requestBody.category method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/templates'].get update: x-apievangelist-phrasing: intent: List a sender's WhatsApp templates (deprecated v1) effect: read questions: - Where does the older per-sender WhatsApp templates endpoint list template approval statuses? - Is the deprecated sender-scoped WhatsApp template list still usable, and what replaced it? instructions: - text: Use the deprecated v1 endpoint to list WhatsApp templates and statuses for sender {sender}. slots: sender: path.sender - text: Pull the legacy per-sender WhatsApp template list for {sender}. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/templates'].post update: x-apievangelist-phrasing: intent: Create a WhatsApp template (deprecated v1) effect: write questions: - Can I still submit a WhatsApp template for review through the old v1 sender endpoint? - What fields does the deprecated WhatsApp template creation call require? instructions: - text: With the deprecated v1 endpoint, create WhatsApp template {name} in {language} under category {category} for sender {sender}. slots: name: requestBody.name language: requestBody.language category: requestBody.category sender: path.sender - text: Submit legacy WhatsApp template {name} with structure {structure} for sender {sender} for approval. slots: name: requestBody.name structure: requestBody.structure sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/templates'].get update: x-apievangelist-phrasing: intent: Search WhatsApp templates across the account effect: read questions: - How can I find every WhatsApp template on my account filtered by status or language? - Which of my account's WhatsApp templates are still pending approval? - Can I page through all account WhatsApp templates sorted by name? instructions: - text: List all account WhatsApp templates with status {status}. slots: status: query.status - text: Find account WhatsApp templates named {name} in language {language}. slots: name: query.name language: query.language - text: Show every WhatsApp template in my account for sender {sender} in category {category}. slots: sender: query.sender category: query.category method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows'].get update: x-apievangelist-phrasing: intent: List a sender's WhatsApp Flows effect: read questions: - What WhatsApp Flows have been built for my sender number? - Can I see all the Flows attached to one WhatsApp sender? instructions: - text: List all WhatsApp Flows for sender {sender}. slots: sender: path.sender - text: Show me the WhatsApp Flows set up on {sender}. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows'].post update: x-apievangelist-phrasing: intent: Create a WhatsApp Flow effect: write questions: - How do I start a new WhatsApp Flow in draft status? - Can I clone an existing WhatsApp Flow when creating a new one? instructions: - text: Create a WhatsApp Flow named {name} with categories {categories} for sender {sender}. slots: name: requestBody.name categories: requestBody.categories sender: path.sender - text: Create WhatsApp Flow {name} on {sender} by cloning flow {cloneFlowId}. slots: name: requestBody.name sender: path.sender cloneFlowId: requestBody.cloneFlowId method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/{flowId}'].delete update: x-apievangelist-phrasing: intent: Delete a draft WhatsApp Flow effect: destructive questions: - Can I delete a WhatsApp Flow that is still in draft? - Why can't a published WhatsApp Flow be removed? instructions: - text: Delete draft WhatsApp Flow {flowId} from sender {sender}. slots: flowId: path.flowId sender: path.sender - text: Remove the unpublished Flow {flowId} on {sender}. slots: flowId: path.flowId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/{flowId}'].patch update: x-apievangelist-phrasing: intent: Rename or recategorize a draft WhatsApp Flow effect: write questions: - Can I change the name or categories of a WhatsApp Flow before publishing it? - Which WhatsApp Flow fields are editable while it is still a draft? instructions: - text: Rename draft WhatsApp Flow {flowId} on sender {sender} to {name}. slots: flowId: path.flowId sender: path.sender name: requestBody.name - text: Change the categories of draft Flow {flowId} on {sender} to {categories}. slots: flowId: path.flowId sender: path.sender categories: requestBody.categories method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/{flowId}/publish'].post update: x-apievangelist-phrasing: intent: Publish a WhatsApp Flow effect: write questions: - How do I make a draft WhatsApp Flow live so it can be sent? - Once a WhatsApp Flow is published, can it still be edited? instructions: - text: Publish WhatsApp Flow {flowId} on sender {sender}. slots: flowId: path.flowId sender: path.sender - text: Move Flow {flowId} for {sender} from draft to PUBLISHED. slots: flowId: path.flowId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/{flowId}/json'].get update: x-apievangelist-phrasing: intent: Get a WhatsApp Flow's JSON definition effect: read questions: - Where can I read the Flow JSON that defines a WhatsApp Flow's screens? - Can I download the current flow.json for one of my WhatsApp Flows? instructions: - text: Get the Flow JSON for WhatsApp Flow {flowId} on sender {sender}. slots: flowId: path.flowId sender: path.sender - text: Show me the screen definition JSON of Flow {flowId} for {sender}. slots: flowId: path.flowId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/{flowId}/json'].put update: x-apievangelist-phrasing: intent: Upload JSON to a WhatsApp Flow effect: write questions: - How do I attach my own Flow JSON to a WhatsApp Flow and see validation errors? - What is the size limit for a WhatsApp Flow JSON upload? instructions: - text: Upload new Flow JSON to WhatsApp Flow {flowId} on sender {sender}. slots: flowId: path.flowId sender: path.sender - text: Replace the flow.json on Flow {flowId} for {sender} and report validation errors. slots: flowId: path.flowId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/{flowId}/deprecate'].post update: x-apievangelist-phrasing: intent: Deprecate a published WhatsApp Flow effect: destructive questions: - How do I retire a WhatsApp Flow so it can no longer be sent? - What happens to a WhatsApp Flow after I deprecate it? instructions: - text: Deprecate WhatsApp Flow {flowId} on sender {sender}. slots: flowId: path.flowId sender: path.sender - text: Stop Flow {flowId} for {sender} from being sent by marking it DEPRECATED. slots: flowId: path.flowId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/{flowId}/preview'].get update: x-apievangelist-phrasing: intent: Get a preview link for a WhatsApp Flow effect: read questions: - Can I get a shareable preview URL for a WhatsApp Flow without logging in? - How long does a WhatsApp Flow preview link stay valid? instructions: - text: Get a preview link for WhatsApp Flow {flowId} on sender {sender}. slots: flowId: path.flowId sender: path.sender - text: Generate a 30-day preview URL for Flow {flowId} of {sender}. slots: flowId: path.flowId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/flows/generate'].post update: x-apievangelist-phrasing: intent: Generate a WhatsApp Flow with AI from a prompt effect: write questions: - Can AI draft a WhatsApp Flow for me from a plain-language description? - Is it possible to refine an AI-generated WhatsApp Flow with a follow-up prompt? instructions: - text: Generate a WhatsApp Flow for sender {sender} from the prompt {prompt}. slots: sender: path.sender prompt: requestBody.prompt - text: Refine AI Flow response {responseId} for {sender} with the prompt {prompt}. slots: responseId: requestBody.responseId sender: path.sender prompt: requestBody.prompt method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/media'].delete update: x-apievangelist-phrasing: intent: Delete WhatsApp media effect: destructive questions: - How can I remove an image or file I sent or received over WhatsApp? - Can inbound WhatsApp media be deleted as well as outbound? instructions: - text: Delete the WhatsApp media at {url} for sender {sender}. slots: url: requestBody.url sender: path.sender - text: Remove media file {url} from WhatsApp sender {sender}. slots: url: requestBody.url sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/quality'].get update: x-apievangelist-phrasing: intent: Check quality rating of WhatsApp senders effect: read questions: - What is the quality rating and messaging limit of my WhatsApp numbers? - Is any of my WhatsApp senders flagged or restricted right now? instructions: - text: Check the quality rating, status and limit for WhatsApp senders {senders}. slots: senders: query.senders - text: Get WhatsApp quality info for numbers {senders}. slots: senders: query.senders method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/business-info'].get update: x-apievangelist-phrasing: intent: Get a WhatsApp sender's business profile effect: read questions: - What business profile details (about, address, websites) are shown on my WhatsApp number? - Can I see the display name and vertical on a WhatsApp sender's profile? instructions: - text: Get the WhatsApp business profile for sender {sender}. slots: sender: path.sender - text: Show the about text, address and websites configured on {sender}. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/business-info'].patch update: x-apievangelist-phrasing: intent: Update a WhatsApp sender's business profile effect: write questions: - How do I change the about text or address on my WhatsApp business profile? - Can I set a new profile logo for a WhatsApp sender from a URL? instructions: - text: Set the about text of WhatsApp sender {sender} to {about}. slots: sender: path.sender about: requestBody.about - text: Update the business email of {sender} to {email} and websites to {websites}. slots: sender: path.sender email: requestBody.email websites: requestBody.websites - text: Change the WhatsApp profile logo of {sender} to the image at {logoUrl}. slots: sender: path.sender logoUrl: requestBody.logoUrl method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/business-info/logo'].get update: x-apievangelist-phrasing: intent: Download a WhatsApp sender's business logo effect: read questions: - Where can I download the logo shown on my WhatsApp business profile? - Is there a way to fetch the current profile picture file of a WhatsApp sender? instructions: - text: Download the business logo of WhatsApp sender {sender}. slots: sender: path.sender - text: Fetch the profile logo image for {sender}. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/calls/{userNumber}/permissions'].get update: x-apievangelist-phrasing: intent: Check WhatsApp calling permission for a user effect: read questions: - Am I allowed to place a WhatsApp call to a specific customer? - What calling actions and limits apply between my WhatsApp sender and an end user? instructions: - text: Check WhatsApp calling permission from sender {sender} to user {userNumber}. slots: sender: path.sender userNumber: path.userNumber - text: Show whether {sender} may call {userNumber} on WhatsApp and any limits. slots: sender: path.sender userNumber: path.userNumber method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/public-key'].get update: x-apievangelist-phrasing: intent: Get a WhatsApp sender's encryption public key effect: read questions: - Which public key is my WhatsApp sender using for encrypted Flow data? - Can I check the WhatsApp encryption key currently uploaded for a number? instructions: - text: Get the WhatsApp encryption public key for sender {sender}. slots: sender: path.sender - text: Show the current Flows encryption key uploaded on {sender}. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/senders/{sender}/public-key'].post update: x-apievangelist-phrasing: intent: Upload a WhatsApp encryption public key effect: write questions: - How do I upload a public key so WhatsApp Flows can exchange encrypted data? - Does uploading a new WhatsApp public key replace the old one? instructions: - text: Upload public key file {file} for WhatsApp sender {sender}. slots: file: requestBody.file sender: path.sender - text: Replace the WhatsApp encryption key on {sender} with {file}. slots: sender: path.sender file: requestBody.file method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/embedded-signup/registrations/business-account/{businessAccountId}/senders'].post update: x-apievangelist-phrasing: intent: Add a WhatsApp sender to a business account effect: write questions: - How do I register a new phone number as a WhatsApp sender under my business account? - Can a number that is already verified be registered automatically when I add it? instructions: - text: Add WhatsApp sender {phoneNumber} with country code {countryCode} and display name {displayName} to business account {businessAccountId}. slots: phoneNumber: requestBody.phoneNumber countryCode: requestBody.countryCode displayName: requestBody.displayName businessAccountId: path.businessAccountId - text: Register {phoneNumber} on WABA {businessAccountId} and send the verification code by {type} in {locale}. slots: phoneNumber: requestBody.phoneNumber businessAccountId: path.businessAccountId type: requestBody.type locale: requestBody.locale method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/embedded-signup/registrations/senders/{sender}/verification'].put update: x-apievangelist-phrasing: intent: Resend a WhatsApp sender verification code effect: write questions: - My WhatsApp verification code never arrived — can I request it again? - Can I switch the WhatsApp verification code delivery to a voice call on retry? instructions: - text: Resend the WhatsApp verification code for sender {sender} by {type} in {locale}. slots: sender: path.sender type: requestBody.type locale: requestBody.locale - text: Retry verification of {sender} using delivery method {type} and language {locale}. slots: sender: path.sender type: requestBody.type locale: requestBody.locale method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/embedded-signup/registrations/senders/{sender}/verification'].post update: x-apievangelist-phrasing: intent: Verify a WhatsApp sender with its code effect: write questions: - How do I enter the WhatsApp verification code to finish registering my number? - What happens after a WhatsApp sender is verified? instructions: - text: Verify WhatsApp sender {sender} with code {code}. slots: sender: path.sender code: requestBody.code - text: Submit verification code {code} to register {sender}. slots: code: requestBody.code sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/{sender}/contacts/{userNumber}/identity'].get update: x-apievangelist-phrasing: intent: Get a WhatsApp user's identity info effect: read questions: - Has a WhatsApp contact's identity key changed since we last confirmed it? - Can I look up the identity hash of a WhatsApp end user? instructions: - text: Get identity info for WhatsApp user {userNumber} on sender {sender}. slots: userNumber: path.userNumber sender: path.sender - text: Check the identity status of {userNumber} for {sender}. slots: userNumber: path.userNumber sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/{sender}/contacts/{userNumber}/identity'].put update: x-apievangelist-phrasing: intent: Confirm a WhatsApp user's identity effect: write questions: - How do I acknowledge a WhatsApp user's new identity so messages can flow again? - Which hash is needed to confirm a WhatsApp end user's identity? instructions: - text: Confirm the identity of WhatsApp user {userNumber} on {sender} with hash {hash}. slots: userNumber: path.userNumber sender: path.sender hash: requestBody.hash - text: Accept identity hash {hash} for contact {userNumber} of sender {sender}. slots: hash: requestBody.hash userNumber: path.userNumber sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/{sender}/contacts/{userNumber}/identity'].delete update: x-apievangelist-phrasing: intent: Delete a WhatsApp user's identity record effect: destructive questions: - Can I clear the stored identity for a WhatsApp contact? - Is removing a WhatsApp end user's identity confirmation possible? instructions: - text: Delete the stored identity of WhatsApp user {userNumber} on sender {sender}. slots: userNumber: path.userNumber sender: path.sender - text: Remove the identity confirmation for {userNumber} from {sender}. slots: userNumber: path.userNumber sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/conversions'].post update: x-apievangelist-phrasing: intent: Submit WhatsApp conversion events effect: write questions: - How can I report WhatsApp conversions back for attribution? - If one WhatsApp conversion event is invalid, are the rest still accepted? instructions: - text: Submit WhatsApp conversion events {conversions}. slots: conversions: requestBody.conversions - text: Report conversions {conversions} for source {sourceId}. slots: conversions: requestBody.conversions sourceId: requestBody.sourceId method: generated generated: '2026-09-26' - target: $.paths['/whatsapp/1/conversions/waba'].post update: x-apievangelist-phrasing: intent: Submit click-to-WhatsApp ad conversions via WABA effect: write questions: - Can I tie purchases back to click-to-WhatsApp ads using my WABA phone number? - How far back can a WABA conversion timestamp be, and how many events per batch? instructions: - text: Submit WABA conversions {conversions} using WhatsApp business number {sourceId}. slots: conversions: requestBody.conversions sourceId: requestBody.sourceId - text: Send ctwaClickId-linked conversion events {conversions} with WABA source {sourceId}. slots: conversions: requestBody.conversions sourceId: requestBody.sourceId method: generated generated: '2026-09-26' - target: $.paths['/viber/2/messages'].post update: x-apievangelist-phrasing: intent: Send Viber business messages in bulk effect: write questions: - How can I send text, image, video or file messages to many Viber users in one request? - Which Viber endpoint handles mixed message types to several recipients? instructions: - text: 'Send these Viber business messages: {messages}.' slots: messages: requestBody.messages - text: Send Viber messages {messages} with shared options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/viber/1/message/text'].post update: x-apievangelist-phrasing: intent: Send Viber text messages (v1) effect: write questions: - Can I send plain Viber text messages to multiple people through the v1 text endpoint? - Is there a text-only Viber send that accepts a bulk ID? instructions: - text: Send Viber text messages {messages} via the v1 text endpoint. slots: messages: requestBody.messages - text: Send v1 Viber text messages {messages} under bulk ID {bulkId}. slots: messages: requestBody.messages bulkId: requestBody.bulkId method: generated generated: '2026-09-26' - target: $.paths['/viber/1/message/image'].post update: x-apievangelist-phrasing: intent: Send a Viber image to one recipient effect: write questions: - How do I send a single Viber image message to one person? - Can a Viber image message fall back to SMS if it isn't delivered? instructions: - text: Send Viber image {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Send an image over Viber to {to} from sender {from} with SMS failover {smsFailover}. slots: to: requestBody.to from: requestBody.from smsFailover: requestBody.smsFailover method: generated generated: '2026-09-26' - target: $.paths['/viber/1/message/file'].post update: x-apievangelist-phrasing: intent: Send a Viber file to one recipient effect: write questions: - Can I send a document file to a single customer on Viber? - What content do I need to attach a file in a Viber message? instructions: - text: Send Viber file {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Deliver a file attachment over Viber to {to}, notifying {notifyUrl} with the delivery report. slots: to: requestBody.to notifyUrl: requestBody.notifyUrl method: generated generated: '2026-09-26' - target: $.paths['/viber/1/message/video'].post update: x-apievangelist-phrasing: intent: Send a Viber video to one recipient effect: write questions: - How can I send a video clip to one person on Viber? - Does the single-recipient Viber video message support a delivery report webhook? instructions: - text: Send Viber video {content} from {from} to {to}. slots: content: requestBody.content from: requestBody.from to: requestBody.to - text: Send a video over Viber to {to} with custom message ID {messageId}. slots: to: requestBody.to messageId: requestBody.messageId method: generated generated: '2026-09-26' - target: $.paths['/viber/2/reports'].get update: x-apievangelist-phrasing: intent: Fetch Viber delivery reports effect: read questions: - Were my Viber business messages actually delivered? - Can I pull Viber delivery reports if my webhook missed them? instructions: - text: Fetch Viber delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the Viber delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/viber/2/logs'].get update: x-apievangelist-phrasing: intent: Get Viber message logs effect: read questions: - What Viber business messages did I send in the last 48 hours? - Can I filter Viber message logs by recipient and status? instructions: - text: Show Viber message logs sent to {destination} since {sentSince}. slots: destination: query.destination sentSince: query.sentSince - text: List Viber logs with general status {generalStatus}. slots: generalStatus: query.generalStatus method: generated generated: '2026-09-26' - target: $.paths['/viber/1/senders/{sender}/templates'].get update: x-apievangelist-phrasing: intent: List a Viber sender's templates effect: read questions: - Which Viber templates are available for my sender? - Can I page through Viber templates for one sender? instructions: - text: List Viber templates for sender {sender}. slots: sender: path.sender - text: Show page {page} of Viber templates for {sender}. slots: page: query.page sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/viber/1/senders/{sender}/templates'].post update: x-apievangelist-phrasing: intent: Create a Viber template effect: write questions: - How do I submit a new Viber template for approval? - Can a Viber template include parameters in its body? instructions: - text: Create a Viber template for sender {sender} in category {category} with body {body}. slots: sender: path.sender category: requestBody.category body: requestBody.body - text: Add Viber template {body} with parameters {params} for {sender} under category {category}. slots: body: requestBody.body params: requestBody.params sender: path.sender category: requestBody.category method: generated generated: '2026-09-26' - target: $.paths['/viber/1/senders/{sender}/templates/{templateId}'].get update: x-apievangelist-phrasing: intent: Get a Viber template effect: read questions: - What's the content and approval status of one specific Viber template? - Can I look up a Viber template by its ID? instructions: - text: Get Viber template {templateId} for sender {sender}. slots: templateId: path.templateId sender: path.sender - text: Show details of template {templateId} on Viber sender {sender}. slots: templateId: path.templateId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/viber/1/senders/{sender}/templates/{templateId}'].delete update: x-apievangelist-phrasing: intent: Delete a Viber template effect: destructive questions: - Can I delete a Viber template I no longer use? - What happens to sends that reference a deleted Viber template? instructions: - text: Delete Viber template {templateId} from sender {sender}. slots: templateId: path.templateId sender: path.sender - text: Remove template {templateId} on Viber sender {sender}. slots: templateId: path.templateId sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/viber-bot/1/messages'].post update: x-apievangelist-phrasing: intent: Send Viber Bot messages effect: write questions: - How do I send messages from my Viber Bot to several users? - Can a Viber Bot reply to multiple recipients in one call? instructions: - text: 'Send these Viber Bot messages: {messages}.' slots: messages: requestBody.messages - text: Send Viber Bot messages {messages} using options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/viber-bot/1/logs'].get update: x-apievangelist-phrasing: intent: Get Viber Bot message logs effect: read questions: - What did my Viber Bot send in the past two days? - Can I filter Viber Bot logs by sender and time window? instructions: - text: Show Viber Bot logs from sender {sender} sent until {sentUntil}. slots: sender: query.sender sentUntil: query.sentUntil - text: List Viber Bot message logs for bulk {bulkId}. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/viber-bot/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch Viber Bot delivery reports effect: read questions: - Did my Viber Bot messages reach users? - Where can I pull undelivered Viber Bot delivery reports? instructions: - text: Pull bot-channel Viber delivery status for bot bulk {bulkId}. slots: bulkId: query.bulkId - text: Get up to {limit} Viber Bot delivery reports. slots: limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/line/1/messages'].post update: x-apievangelist-phrasing: intent: Send LINE Official Notification messages effect: write questions: - How can I send LINE Official Notifications to my customers? - Can one request deliver LINE notification messages to several recipients? instructions: - text: 'Send these LINE Official Notification messages: {messages}.' slots: messages: requestBody.messages - text: Send LINE notifications {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/line/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch LINE notification delivery reports effect: read questions: - Were my LINE Official Notifications delivered? - Can I retrieve LON delivery reports for a specific bulk? instructions: - text: Fetch LINE notification delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the LON delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/zalo/2/messages'].post update: x-apievangelist-phrasing: intent: Send Zalo template messages effect: write questions: - How do I send Zalo notification messages to customers? - Can I send free-form Zalo messages or only registered templates? instructions: - text: 'Send these Zalo template messages: {messages}.' slots: messages: requestBody.messages - text: Send Zalo messages {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/zalo/1/logs'].get update: x-apievangelist-phrasing: intent: Get Zalo message logs effect: read questions: - What Zalo messages have I sent recently and what's their status? - Can I filter Zalo logs by the recipient's number? instructions: - text: Show Zalo logs for messages sent to {to}. slots: to: query.to - text: List Zalo message logs from {from} sent since {sentSince}. slots: from: query.from sentSince: query.sentSince method: generated generated: '2026-09-26' - target: $.paths['/zalo/1/sender/{sender}/templates'].get update: x-apievangelist-phrasing: intent: List a Zalo sender's templates effect: read questions: - Which Zalo templates does my sender have, and which are approved? - Can I filter Zalo templates by review status? instructions: - text: List Zalo templates for sender {sender}. slots: sender: path.sender - text: Show Zalo templates for {sender} with status {status}. slots: sender: path.sender status: query.status method: generated generated: '2026-09-26' - target: $.paths['/zalo/1/sender/{sender}/templates/{templateName}'].get update: x-apievangelist-phrasing: intent: Get a Zalo template by name effect: read questions: - What's in a particular Zalo template? - Can I look up a Zalo template's info by its name? instructions: - text: Get Zalo template {templateName} for sender {sender}. slots: templateName: path.templateName sender: path.sender - text: Show details of Zalo template {templateName} on {sender}. slots: templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/zalo/2/sender/{sender}/templates'].put update: x-apievangelist-phrasing: intent: Edit and resubmit a rejected Zalo template effect: write questions: - How do I fix a rejected Zalo template and send it back for review? - Can I edit a Zalo template that's already approved? instructions: - text: Edit rejected Zalo template {templateId} on {sender} with new content {templateContent}. slots: templateId: requestBody.templateId sender: path.sender templateContent: requestBody.templateContent - text: Resubmit Zalo template {templateId} named {templateName} for {sender} with reviewer note {note}. slots: templateId: requestBody.templateId templateName: requestBody.templateName sender: path.sender note: requestBody.note method: generated generated: '2026-09-26' - target: $.paths['/zalo/2/sender/{sender}/templates'].post update: x-apievangelist-phrasing: intent: Create a Zalo template effect: write questions: - How can I register a new Zalo notification template? - What does a new Zalo template need before it's submitted for review? instructions: - text: Create Zalo template {templateName} for sender {sender} with content {templateContent}. slots: templateName: requestBody.templateName sender: path.sender templateContent: requestBody.templateContent - text: Submit new Zalo template {templateName} on {sender} with note {note} and tracking ID {trackingId}. slots: templateName: requestBody.templateName sender: path.sender note: requestBody.note trackingId: requestBody.trackingId method: generated generated: '2026-09-26' - target: $.paths['/zalo/1/sender/{sender}/media'].post update: x-apievangelist-phrasing: intent: Upload an image for Zalo templates effect: write questions: - How do I get a media ID for an image to use in a Zalo template? - Can I upload images to Zalo through the API? instructions: - text: Upload image {file} to Zalo for sender {sender}. slots: file: requestBody.file sender: path.sender - text: Upload {file} as Zalo template media for {sender} and return its media ID. slots: file: requestBody.file sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/zalo/1/sender/{sender}/quota'].get update: x-apievangelist-phrasing: intent: Get a Zalo sender's daily quota effect: read questions: - How many Zalo notifications can my sender send per day? - What's the daily Zalo notification quota for one sender? instructions: - text: Get the daily Zalo quota for sender {sender}. slots: sender: path.sender - text: Show how many Zalo notifications {sender} may send per day. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/zalo/1/sender/{sender}/public-key'].get update: x-apievangelist-phrasing: intent: Get a Zalo sender's RSA public key effect: read questions: - Where do I find the RSA public key I already generated for Zalo? - Is the Zalo public key returned Base64 encoded? instructions: - text: Get the existing Zalo RSA public key for sender {sender}. slots: sender: path.sender - text: Retrieve the previously generated Zalo public key of {sender}. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/zalo/1/sender/{sender}/public-key'].post update: x-apievangelist-phrasing: intent: Generate a Zalo RSA key pair effect: write questions: - How do I generate an RSA key pair for encrypting Zalo content? - Who keeps the private key when a Zalo key pair is generated? instructions: - text: Generate a new Zalo RSA key pair for sender {sender}. slots: sender: path.sender - text: Create a Zalo encryption key for {sender} and return the public half. slots: sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/push/2/message/single'].post update: x-apievangelist-phrasing: intent: Send one Push notification (v2) effect: write questions: - How do I send a single mobile push notification to a user? - Can I schedule a push notification or add a custom JSON payload? instructions: - text: Send push text {text} from app {from} to {to}. slots: text: requestBody.text from: requestBody.from to: requestBody.to - text: Schedule push notification {text} from app {from} to {to} at {sendAt}. slots: text: requestBody.text from: requestBody.from to: requestBody.to sendAt: requestBody.sendAt method: generated generated: '2026-09-26' - target: $.paths['/push/2/message/multi'].post update: x-apievangelist-phrasing: intent: Send many different Push notifications (v2) effect: write questions: - What's the efficient way to send different push messages to different segments? - Can the v2 multi endpoint send a large batch of push notifications? instructions: - text: 'Send this batch of distinct push notifications via the v2 multi endpoint: {messages}.' slots: messages: requestBody.messages - text: Push multiple segment-specific notifications {messages}. slots: messages: requestBody.messages method: generated generated: '2026-09-26' - target: $.paths['/push/3/messages'].post update: x-apievangelist-phrasing: intent: Send Push notifications (v3) effect: write questions: - Which is the current endpoint for sending push notifications to several recipients? - Can I send push messages with shared options using the v3 API? instructions: - text: Send push notifications {messages} with the v3 messages API. slots: messages: requestBody.messages - text: Send v3 push messages {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications'].get update: x-apievangelist-phrasing: intent: List push application profiles effect: read questions: - What push application profiles are set up on my account? - Can I list all mobile apps configured for push? instructions: - text: List all push application profiles on my account. - text: Show every mobile app configured for push notifications. method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}'].get update: x-apievangelist-phrasing: intent: Get a push application profile effect: read questions: - What settings does one of my push application profiles have? - Can I look up a push app using its application ID instead of code? instructions: - text: Get push application {applicationCode}. slots: applicationCode: path.applicationCode - text: Fetch push application {applicationCode} treating the code as an app ID {useAppCodeAsAppId}. slots: applicationCode: path.applicationCode useAppCodeAsAppId: query.useAppCodeAsAppId method: generated generated: '2026-09-26' - target: $.paths['/push/1/statistics'].get update: x-apievangelist-phrasing: intent: Get statistics for a push bulk effect: read questions: - How did a particular push campaign bulk perform? - Can I get sent and delivered counts for a push bulk ID? instructions: - text: Get push statistics for bulk {bulkId}. slots: bulkId: query.bulkId - text: Show delivery stats of push send {bulkId}. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/push/1/reports'].get update: x-apievangelist-phrasing: intent: Get one-time Push reports (v1) effect: read questions: - Can I fetch one-time delivery reports for push messages from the last 48 hours? - Where are v1 push delivery reports for a single message? instructions: - text: Get v1 push reports for message {messageId}. slots: messageId: query.messageId - text: Fetch one-time push delivery reports for bulk {bulkId} from the v1 endpoint. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/push/1/inbox/reports'].get update: x-apievangelist-phrasing: intent: Fetch incoming (MO) Push messages effect: read questions: - How can I read messages that users' devices sent back to my app? - Are mobile-originated push messages available to pull? instructions: - text: Fetch up to {limit} incoming push messages from devices. slots: limit: query.limit - text: Pull the latest mobile-originated push messages sent to my app. method: generated generated: '2026-09-26' - target: $.paths['/push/3/reports'].get update: x-apievangelist-phrasing: intent: Fetch Push delivery reports (v3) effect: read questions: - Can I pull push delivery reports in batches when my webhook is down? - Where are v3 push delivery reports for a campaign reference? instructions: - text: Fetch v3 push delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get push delivery reports for campaign reference {campaignReferenceId}. slots: campaignReferenceId: query.campaignReferenceId method: generated generated: '2026-09-26' - target: $.paths['/push/3/logs'].get update: x-apievangelist-phrasing: intent: Get Push message logs effect: read questions: - What push notifications went out in the last 48 hours? - Can I filter push logs by destination and status? instructions: - text: Show push message logs sent to {destination}. slots: destination: query.destination - text: List push logs with status {generalStatus} sent since {sentSince}. slots: generalStatus: query.generalStatus sentSince: query.sentSince method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}/configurations'].get update: x-apievangelist-phrasing: intent: List a push app's MO message configurations effect: read questions: - What mobile-originated message configurations does my push app have? - Can I see all MO configs for an application? instructions: - text: List MO message configurations for push application {applicationCode}. slots: applicationCode: path.applicationCode - text: Show every inbound message config on app {applicationCode}. slots: applicationCode: path.applicationCode method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}/configurations'].post update: x-apievangelist-phrasing: intent: Create an MO message configuration effect: write questions: - How do I set up handling for mobile-originated messages on a push app? - Can I add another MO configuration to an application? instructions: - text: Create a new MO message configuration for push application {applicationCode}. slots: applicationCode: path.applicationCode - text: Add an inbound message config to app {applicationCode}. slots: applicationCode: path.applicationCode method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}/configurations/{configurationKey}'].get update: x-apievangelist-phrasing: intent: Get an MO message configuration effect: read questions: - What does one MO message configuration look like? - Can I look up an MO configuration by its key? instructions: - text: Get MO configuration {configurationKey} of push application {applicationCode}. slots: configurationKey: path.configurationKey applicationCode: path.applicationCode - text: Look up the single MO config keyed {configurationKey} in app {applicationCode}. slots: configurationKey: path.configurationKey applicationCode: path.applicationCode method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}/configurations/{configurationKey}'].delete update: x-apievangelist-phrasing: intent: Delete an MO message configuration effect: destructive questions: - Can I remove an MO message configuration I no longer need? - Is deleting an inbound message config on a push app possible? instructions: - text: Delete MO configuration {configurationKey} from push application {applicationCode}. slots: configurationKey: path.configurationKey applicationCode: path.applicationCode - text: Remove inbound config {configurationKey} on app {applicationCode}. slots: configurationKey: path.configurationKey applicationCode: path.applicationCode method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}/configurations/{configurationKey}/actions'].get update: x-apievangelist-phrasing: intent: List actions on an MO configuration effect: read questions: - What actions run when an MO message hits a configuration? - Can I see forward and pull actions set on an MO config? instructions: - text: List actions on MO configuration {configurationKey} of app {applicationCode}. slots: configurationKey: path.configurationKey applicationCode: path.applicationCode - text: Show what happens to inbound messages under config {configurationKey} for {applicationCode}. slots: configurationKey: path.configurationKey applicationCode: path.applicationCode method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}/configurations/{configurationKey}/actions'].post update: x-apievangelist-phrasing: intent: Add an action to an MO configuration effect: write questions: - How do I forward mobile-originated messages to my own URL? - Which action types can an MO configuration use? instructions: - text: Add an HTTP_FORWARD action to MO config {configurationKey} of {applicationCode} forwarding to {forwardUrl}. slots: configurationKey: path.configurationKey applicationCode: path.applicationCode forwardUrl: requestBody.forwardUrl - text: Create a {type} action on MO configuration {configurationKey} for app {applicationCode}. slots: type: requestBody.type configurationKey: path.configurationKey applicationCode: path.applicationCode method: generated generated: '2026-09-26' - target: $.paths['/push/1/applications/{applicationCode}/configurations/{configurationKey}/actions/{actionKey}'].delete update: x-apievangelist-phrasing: intent: Delete an action from an MO configuration effect: destructive questions: - Can I stop forwarding inbound messages by removing an action? - How is a single action deleted from an MO config? instructions: - text: Delete action {actionKey} from MO config {configurationKey} of app {applicationCode}. slots: actionKey: path.actionKey configurationKey: path.configurationKey applicationCode: path.applicationCode - text: Remove action {actionKey} on configuration {configurationKey} for {applicationCode}. slots: actionKey: path.actionKey configurationKey: path.configurationKey applicationCode: path.applicationCode method: generated generated: '2026-09-26' - target: $.paths['/push/1/inbox/messages'].delete update: x-apievangelist-phrasing: intent: Delete Push Inbox messages from all devices effect: destructive questions: - How do I pull back Push Inbox messages from every user's device? - Is deleting Push Inbox messages by campaign reversible? instructions: - text: Delete all Push Inbox messages from campaign {campaignId}. slots: campaignId: query.campaignId - text: Remove Push Inbox messages of bulk {bulkId} from every device. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/push/1/user/{externalUserId}/inbox/messages'].delete update: x-apievangelist-phrasing: intent: Delete a Push Inbox message for one user effect: destructive questions: - Can I remove a Push Inbox message from just one user's inbox? - What identifier do I need to delete one user's Push Inbox message? instructions: - text: Delete the Push Inbox message from campaign {campaignId} for user {externalUserId}. slots: campaignId: query.campaignId externalUserId: path.externalUserId - text: Remove message {messageId} of bulk {bulkId} from {externalUserId}'s Push Inbox. slots: messageId: query.messageId bulkId: query.bulkId externalUserId: path.externalUserId method: generated generated: '2026-09-26' - target: $.paths['/rcs/2/messages'].post update: x-apievangelist-phrasing: intent: Send RCS messages (v2) effect: write questions: - How do I send RCS rich messages or RCS templates to many recipients? - Which RCS fields change how a message is billed? instructions: - text: 'Send these RCS messages through the v2 API: {messages}.' slots: messages: requestBody.messages - text: Send RCS messages {messages} with shared options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/ott/rcs/1/message'].post update: x-apievangelist-phrasing: intent: Send a single RCS message (legacy) effect: write questions: - Can I send one RCS message to a single number through the older OTT endpoint? - Does the legacy single RCS send support SMS failover? instructions: - text: Send one RCS message {content} to {to} using the legacy OTT endpoint. slots: content: requestBody.content to: requestBody.to - text: Send legacy RCS message {content} to {to} from {from} with SMS failover {smsFailover}. slots: content: requestBody.content to: requestBody.to from: requestBody.from smsFailover: requestBody.smsFailover method: generated generated: '2026-09-26' - target: $.paths['/ott/rcs/1/message/bulk'].post update: x-apievangelist-phrasing: intent: Send bulk RCS messages (legacy) effect: write questions: - Is there a legacy OTT endpoint for sending RCS messages in bulk? - Can I batch several non-template RCS messages through the older API? instructions: - text: 'Send this batch of RCS messages through the legacy OTT bulk endpoint: {messages}.' slots: messages: requestBody.messages - text: Bulk-send legacy RCS messages. method: generated generated: '2026-09-26' - target: $.paths['/ott/rcs/1/message/template'].post update: x-apievangelist-phrasing: intent: Send a single RCS template message (Vodafone Idea) effect: write questions: - How do I send one RCS template message to a Vodafone Idea subscriber in India? - Which carrier supports the single RCS template send endpoint? instructions: - text: Send RCS template content {content} to Vodafone Idea number {to}. slots: content: requestBody.content to: requestBody.to - text: Send a single India RCS template message {content} to {to} from {from}. slots: content: requestBody.content to: requestBody.to from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/ott/rcs/1/message/template/bulk'].post update: x-apievangelist-phrasing: intent: Send bulk RCS template messages (Vodafone Idea) effect: write questions: - Can I send RCS template messages in bulk to Vodafone Idea users in India? - What does the bulk RCS template endpoint expect? instructions: - text: 'Bulk-send these Vodafone Idea RCS template messages: {messages}.' slots: messages: requestBody.messages - text: Send the India RCS template batch {messages}. slots: messages: requestBody.messages method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/events'].post update: x-apievangelist-phrasing: intent: Send RCS events such as typing indicators effect: write questions: - How do I send RCS events like read receipts or typing to users? - What's the maximum payload size for sending RCS events? instructions: - text: 'Send these RCS events: {events}.' slots: events: requestBody.events - text: Push RCS events {events} to recipients. slots: events: requestBody.events method: generated generated: '2026-09-26' - target: $.paths['/rcs/2/reports'].get update: x-apievangelist-phrasing: intent: Fetch RCS delivery reports effect: read questions: - Were my RCS messages delivered? - Can I pull RCS delivery reports when my callback didn't receive them? instructions: - text: Fetch RCS delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the RCS delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/rcs/2/logs'].get update: x-apievangelist-phrasing: intent: Get RCS message logs effect: read questions: - What RCS messages went out in the last 48 hours? - Can I filter RCS logs by recipient number and time range? instructions: - text: Show RCS message logs sent to {destination} between {sentSince} and {sentUntil}. slots: destination: query.destination sentSince: query.sentSince sentUntil: query.sentUntil - text: List RCS logs from sender {sender}. slots: sender: query.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/2/capability-check/query'].post update: x-apievangelist-phrasing: intent: Check which numbers can receive RCS effect: read questions: - Can these phone numbers receive RCS from my sender? - How many numbers can I check for RCS support in one synchronous request? instructions: - text: Check whether {phoneNumbers} can receive RCS from sender {sender}. slots: phoneNumbers: requestBody.phoneNumbers sender: requestBody.sender - text: Run a synchronous RCS capability check on {phoneNumbers} for {sender}. slots: phoneNumbers: requestBody.phoneNumbers sender: requestBody.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/2/capability-check/notify'].post update: x-apievangelist-phrasing: intent: Check RCS capability asynchronously effect: read questions: - How do I check RCS support for thousands of numbers and get results by webhook? - What's the limit on numbers for an asynchronous RCS capability check? instructions: - text: Asynchronously check RCS capability of {phoneNumbers} for {sender} and post results to {notifyUrl}. slots: phoneNumbers: requestBody.phoneNumbers sender: requestBody.sender notifyUrl: requestBody.notifyUrl - text: Queue a bulk RCS reachability check for {phoneNumbers} from {sender}. slots: phoneNumbers: requestBody.phoneNumbers sender: requestBody.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders'].get update: x-apievangelist-phrasing: intent: List RCS senders effect: read questions: - Which RCS senders (agents) do I have? - Can I page and sort my list of RCS senders? instructions: - text: List my RCS senders. - text: Show page {page} of RCS senders sorted by {sort}. slots: page: query.page sort: query.sort method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders'].post update: x-apievangelist-phrasing: intent: Create an RCS sender effect: write questions: - How do I set up a new RCS sender with branding and a use case? - Can a new RCS sender send test messages right away? instructions: - text: Create RCS sender {senderName} for brand {brand} with display name {displayName}. slots: senderName: requestBody.senderName brand: requestBody.brand displayName: requestBody.displayName - text: Create RCS sender {senderName} with use case {useCase}, billing category {billingCategory} hosted in {hostingRegion}. slots: senderName: requestBody.senderName useCase: requestBody.useCase billingCategory: requestBody.billingCategory hostingRegion: requestBody.hostingRegion method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}'].get update: x-apievangelist-phrasing: intent: Get an RCS sender effect: read questions: - What branding and settings are configured on one RCS sender? - Can I look up an RCS sender by its name? instructions: - text: Get RCS sender {senderName}. slots: senderName: path.senderName - text: Show the configuration of RCS agent {senderName}. slots: senderName: path.senderName method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}'].put update: x-apievangelist-phrasing: intent: Update an RCS sender's profile effect: write questions: - How do I change the description or colors of my RCS sender? - Why can't I edit an RCS sender after it's locked? instructions: - text: Update RCS sender {senderName} display name to {displayName} and description to {description}. slots: senderName: path.senderName displayName: requestBody.displayName description: requestBody.description - text: Change the brand color of RCS sender {senderName} to {color}. slots: senderName: path.senderName color: requestBody.color method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}/platform-parameters'].patch update: x-apievangelist-phrasing: intent: Update an RCS sender's platform parameters effect: write questions: - Can I change RCS sender platform parameters even after it's locked? - Which RCS sender settings can be edited at any time? instructions: - text: Update platform parameters of RCS sender {senderName} to {platform}. slots: senderName: path.senderName platform: requestBody.platform - text: Set platform settings {platform} on RCS agent {senderName}. slots: platform: requestBody.platform senderName: path.senderName method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}/launch-status'].get update: x-apievangelist-phrasing: intent: Get an RCS sender's launch status effect: read questions: - In which countries and carriers has my RCS sender launched? - What's the launch progress of an RCS agent by carrier? instructions: - text: Get the launch status of RCS sender {senderName}. slots: senderName: path.senderName - text: Show carrier-by-country launch coverage for {senderName}. slots: senderName: path.senderName method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/providers'].get update: x-apievangelist-phrasing: intent: List available RCS providers by country effect: read questions: - Which carriers can I launch an RCS sender with in a given country? - Can I list RCS providers filtered by country code? instructions: - text: List RCS providers available in country {countryCode}. slots: countryCode: query.countryCode - text: Show all available RCS launch providers. method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}/test-numbers'].get update: x-apievangelist-phrasing: intent: List an RCS sender's test numbers effect: read questions: - Which test numbers are registered for my RCS sender? - Is the status shown in the RCS test number list always up to date? instructions: - text: List test numbers for RCS sender {senderName}. slots: senderName: path.senderName - text: Show page {page} of RCS testers on {senderName}. slots: page: query.page senderName: path.senderName method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}/test-numbers'].post update: x-apievangelist-phrasing: intent: Add an RCS test number effect: write questions: - How do I invite a phone number to test my RCS sender? - Can I mark a new RCS tester as the primary test number? instructions: - text: Add test number {testNumber} to RCS sender {senderName}. slots: testNumber: requestBody.testNumber senderName: path.senderName - text: Invite {testNumber} as primary {primary} tester for {senderName}. slots: testNumber: requestBody.testNumber primary: requestBody.primary senderName: path.senderName method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}/test-numbers/{testNumber}'].get update: x-apievangelist-phrasing: intent: Check an RCS test number's current status effect: read questions: - Has my RCS tester accepted the invitation yet? - Can I get the live status of one RCS test number? instructions: - text: Check the current status of test number {testNumber} on RCS sender {senderName}. slots: testNumber: path.testNumber senderName: path.senderName - text: Get RCS tester {testNumber} for {senderName}. slots: testNumber: path.testNumber senderName: path.senderName method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}/test-numbers/{testNumber}'].patch update: x-apievangelist-phrasing: intent: Set or unset the primary RCS test number effect: write questions: - How do I make a different test number primary on my RCS sender? - Can I remove the primary flag from an RCS tester? instructions: - text: Set primary to {primary} for test number {testNumber} on RCS sender {senderName}. slots: primary: requestBody.primary testNumber: path.testNumber senderName: path.senderName - text: Make {testNumber} the primary tester on {senderName} with primary {primary}. slots: testNumber: path.testNumber senderName: path.senderName primary: requestBody.primary method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{senderName}/test-numbers/{testNumber}/refresh'].put update: x-apievangelist-phrasing: intent: Restart invitation checks for an RCS test number effect: write questions: - My RCS test number expired before the tester accepted — can I restart it? - How long does the system keep checking whether an RCS tester accepted? instructions: - text: Refresh RCS test number {testNumber} on sender {senderName}. slots: testNumber: path.testNumber senderName: path.senderName - text: Start a new 24-hour acceptance check for tester {testNumber} of {senderName}. slots: testNumber: path.testNumber senderName: path.senderName method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates'].get update: x-apievangelist-phrasing: intent: List a sender's RCS templates effect: read questions: - Which RCS templates exist for my sender and what are their statuses? - Can I filter RCS templates to only approved ones? instructions: - text: List RCS templates for sender {sender}. slots: sender: path.sender - text: Show RCS templates on {sender} with status {status}. slots: sender: path.sender status: query.status method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates'].post update: x-apievangelist-phrasing: intent: Create an RCS template with providers effect: write questions: - How do I create an RCS template and register it with specific carriers? - What's the current way to submit an RCS template for approval? instructions: - text: Create RCS template {templateName} for sender {sender} with providers {providers} and content {content}. slots: templateName: requestBody.templateName sender: path.sender providers: requestBody.providers content: requestBody.content - text: Submit RCS template {templateName} on {sender} for review with {providers}. slots: templateName: requestBody.templateName sender: path.sender providers: requestBody.providers method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates/{templateName}'].get update: x-apievangelist-phrasing: intent: Get an RCS template effect: read questions: - What does one of my RCS templates contain? - Can I look up a single RCS template by name? instructions: - text: Get RCS template {templateName} for sender {sender}. slots: templateName: path.templateName sender: path.sender - text: Show content and status of RCS template {templateName} on {sender}. slots: templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates/{templateName}'].put update: x-apievangelist-phrasing: intent: Edit an RCS template effect: write questions: - Can I edit an RCS template that was rejected or suspended? - Why can't an approved RCS template be modified? instructions: - text: Edit RCS template {templateName} on sender {sender} with content type {type}. slots: templateName: path.templateName sender: path.sender type: requestBody.type - text: Update the rejected RCS template {templateName} for {sender}. slots: templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates/{templateName}'].post update: x-apievangelist-phrasing: intent: Create an RCS template by name (deprecated) effect: write questions: - Is the old path-named RCS template creation endpoint still supported? - Can I still create an RCS template by putting its name in the URL? instructions: - text: Use the deprecated endpoint to create RCS template {templateName} of type {type} for {sender}. slots: templateName: path.templateName type: requestBody.type sender: path.sender - text: Create legacy RCS template {templateName} on sender {sender}. slots: templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates/{templateName}'].delete update: x-apievangelist-phrasing: intent: Delete an RCS template effect: destructive questions: - What happens to messages that use an RCS template after I delete it? - Can I remove an RCS template I no longer need? instructions: - text: Delete RCS template {templateName} from sender {sender}. slots: templateName: path.templateName sender: path.sender - text: Remove RCS template {templateName} on {sender}. slots: templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates/{templateName}/status'].get update: x-apievangelist-phrasing: intent: Get an RCS template's detailed status effect: read questions: - Why was my RCS template rejected by a carrier? - Can I see per-provider approval status for an RCS template? instructions: - text: Get the detailed approval status of RCS template {templateName} for {sender}. slots: templateName: path.templateName sender: path.sender - text: Show per-carrier review status of template {templateName} on {sender}. slots: templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/senders/{sender}/templates/{templateName}/register'].patch update: x-apievangelist-phrasing: intent: Register an RCS template with more providers effect: write questions: - How do I extend an existing RCS template to more carriers? - Can an RCS template be registered with additional providers later? instructions: - text: Register RCS template {templateName} of {sender} with providers {providers}. slots: templateName: path.templateName sender: path.sender providers: requestBody.providers - text: Add carriers {providers} to template {templateName} on {sender}. slots: providers: requestBody.providers templateName: path.templateName sender: path.sender method: generated generated: '2026-09-26' - target: $.paths['/rcs/1/templates/template-providers'].get update: x-apievangelist-phrasing: intent: List RCS template providers effect: read questions: - Which carriers accept RCS templates for my sender? - Can I list RCS template providers by country? instructions: - text: List RCS template providers for sender {sender}. slots: sender: query.sender - text: Show RCS template providers in country {countryCode}. slots: countryCode: query.countryCode method: generated generated: '2026-09-26' - target: $.paths['/omni/1/scenarios'].get update: x-apievangelist-phrasing: intent: List OMNI failover scenarios effect: read questions: - What failover scenarios have I defined? - Which OMNI scenario is set as my default? instructions: - text: List all my OMNI failover scenarios. - text: Show OMNI scenarios where default is {isDefault}. slots: isDefault: query.isDefault method: generated generated: '2026-09-26' - target: $.paths['/omni/1/scenarios'].post update: x-apievangelist-phrasing: intent: Create an OMNI failover scenario effect: write questions: - How do I define a channel order so a failed WhatsApp message falls back to SMS? - Can I make a new failover scenario the default one? instructions: - text: Create OMNI failover scenario {name} with channel flow {flow}. slots: name: requestBody.name flow: requestBody.flow - text: Create failover flow {flow} and set it as default {default}. slots: flow: requestBody.flow default: requestBody.default method: generated generated: '2026-09-26' - target: $.paths['/omni/1/scenarios/{scenarioKey}'].get update: x-apievangelist-phrasing: intent: Get an OMNI failover scenario effect: read questions: - What channel order does one failover scenario use? - Can I view the configuration of a scenario by key? instructions: - text: Get OMNI failover scenario {scenarioKey}. slots: scenarioKey: path.scenarioKey - text: Show the channel sequence of scenario {scenarioKey}. slots: scenarioKey: path.scenarioKey method: generated generated: '2026-09-26' - target: $.paths['/omni/1/scenarios/{scenarioKey}'].put update: x-apievangelist-phrasing: intent: Update an OMNI failover scenario effect: write questions: - How do I change the channel order in an existing failover scenario? - Can I rename a failover scenario? instructions: - text: Update OMNI scenario {scenarioKey} to use channel flow {flow}. slots: scenarioKey: path.scenarioKey flow: requestBody.flow - text: Rename failover scenario {scenarioKey} to {name} keeping flow {flow}. slots: scenarioKey: path.scenarioKey name: requestBody.name flow: requestBody.flow method: generated generated: '2026-09-26' - target: $.paths['/omni/1/advanced'].post update: x-apievangelist-phrasing: intent: Send a message with channel failover effect: write questions: - Can I send one message that automatically retries over SMS if WhatsApp or Viber fails? - Which channels can an OMNI failover message use? instructions: - text: Send an OMNI failover message to {destinations} using scenario {scenarioKey}. slots: destinations: requestBody.destinations scenarioKey: requestBody.scenarioKey - text: Send failover message with WhatsApp content {whatsApp} and SMS fallback {sms} to {destinations}. slots: whatsApp: requestBody.whatsApp sms: requestBody.sms destinations: requestBody.destinations - text: Schedule an OMNI failover send to {destinations} at {sendAt}. slots: destinations: requestBody.destinations sendAt: requestBody.sendAt method: generated generated: '2026-09-26' - target: $.paths['/omni/1/reports'].get update: x-apievangelist-phrasing: intent: Get OMNI failover delivery reports effect: read questions: - Which channel ended up delivering my failover message? - Can I filter failover delivery reports by channel? instructions: - text: Get OMNI failover delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Show failover reports delivered over channel {channel}. slots: channel: query.channel method: generated generated: '2026-09-26' - target: $.paths['/omni/1/logs'].get update: x-apievangelist-phrasing: intent: Get OMNI failover message logs effect: read questions: - Can I see logs of failover messages filtered by mobile network? - What failover messages did I send to one recipient? instructions: - text: Show OMNI failover logs for recipient {to}. slots: to: query.to - text: List failover message logs with network codes MCC {mcc} and MNC {mnc}. slots: mcc: query.mcc mnc: query.mnc method: generated generated: '2026-09-26' - target: $.paths['/livechat/1/widgets/{widgetId}/sessions/{sessionId}'].delete update: x-apievangelist-phrasing: intent: End an authenticated Live Chat session effect: destructive questions: - How do I log a customer out of an authenticated Live Chat widget session? - Can I terminate a Live Chat session for security reasons? instructions: - text: Invalidate Live Chat session {sessionId} on widget {widgetId}. slots: sessionId: path.sessionId widgetId: path.widgetId - text: End authenticated chat session {sessionId} for widget {widgetId}. slots: sessionId: path.sessionId widgetId: path.widgetId method: generated generated: '2026-09-26' - target: $.paths['/apple-mfb/1/messages'].post update: x-apievangelist-phrasing: intent: Send Apple Messages for Business messages effect: write questions: - How can I message customers through Apple Messages for Business? - Can one request send Apple Messages for Business to several recipients? instructions: - text: 'Send these Apple Messages for Business messages: {messages}.' slots: messages: requestBody.messages - text: Send Apple business chat messages {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/apple-mfb/1/events'].post update: x-apievangelist-phrasing: intent: Send Apple Messages for Business events effect: write questions: - Can I send typing or read events in Apple Messages for Business? - What's the endpoint for Apple business chat events rather than messages? instructions: - text: 'Emit Apple chat events such as typing indicators: {events}.' slots: events: requestBody.events - text: Send Apple chat events {events} with options {options}. slots: events: requestBody.events options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/apple-mfb/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch Apple Messages for Business delivery reports effect: read questions: - Were my Apple Messages for Business delivered? - Can I pull Apple business chat delivery reports in batches? instructions: - text: Fetch Apple Messages for Business delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the Apple business chat delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/apple-mfb/1/logs'].get update: x-apievangelist-phrasing: intent: Get Apple Messages for Business logs effect: read questions: - What Apple Messages for Business did I send in the last 48 hours? - Can Apple business chat logs be filtered by status? instructions: - text: Show Apple Messages for Business logs sent to {destination}. slots: destination: query.destination - text: List Apple business chat logs with status {generalStatus}. slots: generalStatus: query.generalStatus method: generated generated: '2026-09-26' - target: $.paths['/instagram/1/messages'].post update: x-apievangelist-phrasing: intent: Send Instagram direct messages effect: write questions: - How do I send Instagram DMs from my business account? - Can I send Instagram messages to several users at once? instructions: - text: 'Send these Instagram messages: {messages}.' slots: messages: requestBody.messages - text: Send Instagram DMs {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/instagram/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch Instagram delivery reports effect: read questions: - Were my Instagram DMs delivered? - Can I retrieve Instagram delivery reports by message ID? instructions: - text: Fetch Instagram delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the Instagram delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/instagram/1/logs'].get update: x-apievangelist-phrasing: intent: Get Instagram message logs effect: read questions: - What Instagram messages went out in the last two days? - Can I filter Instagram logs by recipient? instructions: - text: Show Instagram message logs sent to {destination}. slots: destination: query.destination - text: List Instagram logs sent since {sentSince}. slots: sentSince: query.sentSince method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/messages'].post update: x-apievangelist-phrasing: intent: Send Facebook Messenger messages effect: write questions: - How do I send Messenger messages to customers on my Facebook page? - Are Messenger marketing messages still supported? instructions: - text: 'Send these Messenger messages: {messages}.' slots: messages: requestBody.messages - text: Send Messenger messages {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch Messenger delivery reports effect: read questions: - Were my Messenger messages delivered? - Can I pull Messenger delivery reports for a campaign reference? instructions: - text: Fetch Messenger delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get Messenger delivery reports for campaign reference {campaignReferenceId}. slots: campaignReferenceId: query.campaignReferenceId method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/logs'].get update: x-apievangelist-phrasing: intent: Get Messenger message logs effect: read questions: - What Messenger messages did I send recently? - Can Messenger logs be filtered by status and time window? instructions: - text: Show Messenger logs with status {generalStatus}. slots: generalStatus: query.generalStatus - text: List Messenger message logs sent to {destination} until {sentUntil}. slots: destination: query.destination sentUntil: query.sentUntil method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/pages/{pageId}/subscriptions'].get update: x-apievangelist-phrasing: intent: List a page's Messenger marketing subscriptions effect: read questions: - Who has opted in to marketing messages on my Facebook page? - Can I still collect Messenger subscription tokens? instructions: - text: List Messenger marketing subscriptions for page {pageId}. slots: pageId: path.pageId - text: Show opted-in marketing subscribers of Facebook page {pageId}. slots: pageId: path.pageId method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/campaigns'].get update: x-apievangelist-phrasing: intent: List Messenger marketing campaigns effect: read questions: - What Messenger marketing campaigns does my account have? - Can I see all my Facebook Messenger campaigns? instructions: - text: List my Messenger marketing campaigns. - text: Show all Facebook Messenger campaigns on this account. method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/campaigns'].post update: x-apievangelist-phrasing: intent: Create a Messenger marketing campaign effect: write questions: - How do I create a Messenger marketing campaign tied to my ad account and page? - Can I set a daily or lifetime budget on a Messenger campaign? instructions: - text: Create Messenger campaign {name} for ad account {adAccountId} and page {pageId}. slots: name: requestBody.name adAccountId: requestBody.adAccountId pageId: requestBody.pageId - text: Create Messenger campaign {name} on page {pageId} using ad account {adAccountId} with daily budget {dailyBudget}. slots: name: requestBody.name pageId: requestBody.pageId adAccountId: requestBody.adAccountId dailyBudget: requestBody.dailyBudget method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/campaigns/{campaignId}'].delete update: x-apievangelist-phrasing: intent: Delete a Messenger marketing campaign effect: destructive questions: - Can I delete a Messenger campaign I no longer run? - Is removing a Facebook Messenger campaign permanent? instructions: - text: Delete Messenger campaign {campaignId}. slots: campaignId: path.campaignId - text: Remove Facebook Messenger marketing campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/ad-accounts'].get update: x-apievangelist-phrasing: intent: List Facebook ad accounts for Messenger marketing effect: read questions: - Which Facebook ad accounts are linked to my marketing account? - Where do I find the ad account ID needed for a Messenger campaign? instructions: - text: List Facebook ad accounts linked for Messenger marketing. - text: Show my available ad accounts. method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/audiences'].get update: x-apievangelist-phrasing: intent: List custom audiences for an ad account effect: read questions: - What custom audiences exist on my Facebook ad account? - Can I list Messenger marketing audiences by ad account? instructions: - text: List custom audiences for ad account {adAccountId}. slots: adAccountId: query.adAccountId - text: Show Messenger marketing audiences under {adAccountId}. slots: adAccountId: query.adAccountId method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/audiences'].post update: x-apievangelist-phrasing: intent: Create a Messenger custom audience effect: write questions: - How do I create a custom audience to grow my Messenger marketing subscribers? - Which page and ad account does a new custom audience need? instructions: - text: Create custom audience {name} for ad account {adAccountId} and page {pageId}. slots: name: requestBody.name adAccountId: requestBody.adAccountId pageId: requestBody.pageId - text: Create audience {name} described as {description} on ad account {adAccountId} for page {pageId}. slots: name: requestBody.name description: requestBody.description adAccountId: requestBody.adAccountId pageId: requestBody.pageId method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/audiences/{audienceId}'].delete update: x-apievangelist-phrasing: intent: Delete a Messenger custom audience effect: destructive questions: - What happens to campaigns using a custom audience if I delete it? - Can I permanently remove a Messenger custom audience? instructions: - text: Delete custom audience {audienceId}. slots: audienceId: path.audienceId - text: Permanently remove Messenger audience {audienceId}. slots: audienceId: path.audienceId method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/audiences/{audienceId}/users'].post update: x-apievangelist-phrasing: intent: Upload hashed users to a custom audience effect: write questions: - How do I add customers to a Messenger custom audience? - What hashing and batch limit apply when uploading audience users? instructions: - text: Upload SHA-256 hashed users {data} to audience {audienceId}. slots: data: requestBody.data audienceId: path.audienceId - text: Add hashed customer records {data} to custom audience {audienceId}. slots: data: requestBody.data audienceId: path.audienceId method: generated generated: '2026-09-26' - target: $.paths['/messenger/1/audiences/{audienceId}/users/{hashedPhoneNumber}'].delete update: x-apievangelist-phrasing: intent: Remove a user from a custom audience effect: destructive questions: - Can I remove one person from a Messenger custom audience? - Which identifier removes a single member from a custom audience? instructions: - text: Remove hashed phone number {hashedPhoneNumber} from audience {audienceId}. slots: hashedPhoneNumber: path.hashedPhoneNumber audienceId: path.audienceId - text: Drop user {hashedPhoneNumber} from custom audience {audienceId}. slots: hashedPhoneNumber: path.hashedPhoneNumber audienceId: path.audienceId method: generated generated: '2026-09-26' - target: $.paths['/kakao-alim/1/messages'].post update: x-apievangelist-phrasing: intent: Send Kakao AlimTalk messages effect: write questions: - How do I send Kakao Alim notification messages? - Can one request send KakaoTalk Alim messages to several recipients? instructions: - text: 'Send these Kakao Alim messages: {messages}.' slots: messages: requestBody.messages - text: Send Kakao Alim notifications {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/kakao-alim/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch Kakao Alim delivery reports effect: read questions: - Were my Kakao Alim notifications delivered? - Can I pull Kakao Alim delivery reports by bulk ID? instructions: - text: Fetch Kakao Alim delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the Kakao Alim delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/kakao-alim/1/logs'].get update: x-apievangelist-phrasing: intent: Get Kakao Alim message logs effect: read questions: - What Kakao Alim messages did I send in the last 48 hours? - Can Kakao Alim logs be filtered by recipient? instructions: - text: Show Kakao Alim logs sent to {destination}. slots: destination: query.destination - text: List Kakao Alim message logs for bulk {bulkId}. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/kakao-sangdam/1/messages'].post update: x-apievangelist-phrasing: intent: Send Kakao Sangdam consultation messages effect: write questions: - How do I send Kakao Sangdam customer-consultation messages? - Can I reply to several KakaoTalk Sangdam users in one call? instructions: - text: 'Send these Kakao Sangdam messages: {messages}.' slots: messages: requestBody.messages - text: Send Kakao Sangdam messages {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/kakao-sangdam/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch Kakao Sangdam delivery reports effect: read questions: - Were my Kakao Sangdam messages delivered? - Can I retrieve Kakao Sangdam delivery reports in batches? instructions: - text: Fetch Kakao Sangdam delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the Kakao Sangdam delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/kakao-sangdam/1/logs'].get update: x-apievangelist-phrasing: intent: Get Kakao Sangdam message logs effect: read questions: - What Kakao Sangdam messages went out recently? - Can Kakao Sangdam logs be filtered by status? instructions: - text: Show Kakao Sangdam logs with status {generalStatus}. slots: generalStatus: query.generalStatus - text: List Kakao Sangdam message logs sent since {sentSince}. slots: sentSince: query.sentSince method: generated generated: '2026-09-26' - target: $.paths['/kakao-chingu/1/messages'].post update: x-apievangelist-phrasing: intent: Send Kakao brand messages (Chingu) effect: write questions: - How do I send Kakao brand messages now that Chingu is being replaced? - Which content types should Kakao brand messages use after the Chingu deprecation? instructions: - text: 'Send these Kakao brand messages: {messages}.' slots: messages: requestBody.messages - text: Send Kakao Chingu brand messages {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/kakao-chingu/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch Kakao brand message delivery reports effect: read questions: - Were my Kakao brand messages delivered? - Can I pull Kakao Chingu brand message delivery reports? instructions: - text: Fetch Kakao brand message delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the Kakao Chingu delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/kakao-chingu/1/logs'].get update: x-apievangelist-phrasing: intent: Get Kakao brand message logs effect: read questions: - What Kakao brand messages have I sent in the last 48 hours? - Can Kakao Chingu brand message logs be filtered by sender? instructions: - text: Show Kakao brand message logs from sender {sender}. slots: sender: query.sender - text: List Kakao Chingu logs sent to {destination}. slots: destination: query.destination method: generated generated: '2026-09-26' - target: $.paths['/kakao-brand-messages/1/templates'].get update: x-apievangelist-phrasing: intent: List Kakao Brand Message templates effect: read questions: - Which Kakao Brand Message templates were changed recently? - Can I list Brand Message templates by sender key or sender group? instructions: - text: List Kakao Brand Message templates for sender key {senderKey}. slots: senderKey: query.senderKey - text: Show Brand Message templates modified since {since}. slots: since: query.since - text: List Brand Message templates for sender group {senderGroupKey}. slots: senderGroupKey: query.senderGroupKey method: generated generated: '2026-09-26' - target: $.paths['/kakao-brand-messages/1/templates'].post update: x-apievangelist-phrasing: intent: Create a Kakao Brand Message template effect: write questions: - How do I create a Kakao Brand Message template? - Can a Brand Message template be flagged as adult content? instructions: - text: Create Kakao Brand Message template {name} with content {templateContent}. slots: name: requestBody.name templateContent: requestBody.templateContent - text: Create Brand Message template {name} for sender {sender} marked adult {isAdult}. slots: name: requestBody.name sender: requestBody.sender isAdult: requestBody.isAdult method: generated generated: '2026-09-26' - target: $.paths['/kakao-brand-messages/1/templates/single'].get update: x-apievangelist-phrasing: intent: Get a Kakao Brand Message template effect: read questions: - What's in a specific Kakao Brand Message template? - Can I look up a Brand Message template by its template code? instructions: - text: Get Kakao Brand Message template {templateCode}. slots: templateCode: query.templateCode - text: Show Brand Message template {templateCode} for sender {sender}. slots: templateCode: query.templateCode sender: query.sender method: generated generated: '2026-09-26' - target: $.paths['/kakao-brand-messages/1/templates/{templateCode}'].put update: x-apievangelist-phrasing: intent: Update a Kakao Brand Message template effect: write questions: - How do I change the content of an existing Kakao Brand Message template? - Can I rename a Brand Message template by its code? instructions: - text: Update Kakao Brand Message template {templateCode} with name {name} and content {templateContent}. slots: templateCode: path.templateCode name: requestBody.name templateContent: requestBody.templateContent - text: Edit Brand Message template {templateCode} to set adult flag {isAdult}, name {name} and content {templateContent}. slots: templateCode: path.templateCode isAdult: requestBody.isAdult name: requestBody.name templateContent: requestBody.templateContent method: generated generated: '2026-09-26' - target: $.paths['/open-channel/1/messages/inbound'].post update: x-apievangelist-phrasing: intent: Send an inbound message to an Open Channel effect: write questions: - How do I push a customer's message from my own channel into an Open Channel destination? - Can I attach metadata or a response webhook to an Open Channel inbound message? instructions: - text: Send Open Channel inbound message {content} from end user {sender} to destination {destination}. slots: content: requestBody.content sender: requestBody.sender destination: requestBody.destination - text: Deliver inbound content {content} from {sender} to Open Channel {destination} with response webhook {responseWebhook}. slots: content: requestBody.content sender: requestBody.sender destination: requestBody.destination responseWebhook: requestBody.responseWebhook method: generated generated: '2026-09-26' - target: $.paths['/tiktok/1/messages'].post update: x-apievangelist-phrasing: intent: Send TikTok business messages effect: write questions: - How do I reply to TikTok users who messaged my Business Account? - Can I send images or shared posts in TikTok messages? instructions: - text: 'Send these TikTok messages: {messages}.' slots: messages: requestBody.messages - text: Send TikTok business messages {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/tiktok/1/events'].post update: x-apievangelist-phrasing: intent: Send TikTok typing or read events effect: write questions: - Can I show a typing indicator to a TikTok user? - How do I mark a TikTok conversation as read? instructions: - text: 'Send these TikTok events: {events}.' slots: events: requestBody.events - text: Send TikTok typing or mark-as-read events {events}. slots: events: requestBody.events method: generated generated: '2026-09-26' - target: $.paths['/tiktok/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch TikTok delivery reports effect: read questions: - Were my TikTok messages delivered? - Can I pull TikTok delivery reports from the last 48 hours? instructions: - text: Fetch TikTok delivery reports for bulk {bulkId}. slots: bulkId: query.bulkId - text: Get the TikTok delivery report for message {messageId}. slots: messageId: query.messageId method: generated generated: '2026-09-26' - target: $.paths['/tiktok/1/logs'].get update: x-apievangelist-phrasing: intent: Get TikTok message logs effect: read questions: - What TikTok messages did I send in the last two days? - Can TikTok message logs be filtered by recipient and status? instructions: - text: Show TikTok message logs sent to {destination}. slots: destination: query.destination - text: List TikTok logs with status {generalStatus}. slots: generalStatus: query.generalStatus method: generated generated: '2026-09-26'