# 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 Platform API version: 1.0.0 extends: openapi/infobip-platform-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: 194 - target: $.paths['/2fa/2/applications'].get update: x-apievangelist-phrasing: intent: List my 2FA applications effect: read questions: - Which 2FA applications have I set up in Infobip? - Where can I see every two-factor authentication app container on my account? instructions: - text: List all my 2FA applications. - text: Show me every two-factor application I've configured so far. method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications'].post update: x-apievangelist-phrasing: intent: Create a 2FA application effect: write questions: - What do I need to set up a new two-factor authentication application? - Can a new 2FA application be created in a disabled state? instructions: - text: Create a new 2FA application named {name}. slots: name: requestBody.name - text: Set up a 2FA app called {name} with configuration {configuration}. slots: name: requestBody.name configuration: requestBody.configuration method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}'].get update: x-apievangelist-phrasing: intent: Get a 2FA application's configuration effect: read questions: - How is a specific 2FA application of mine configured? - Can I look up the PIN attempt and TTL settings of one 2FA app? instructions: - text: Show the configuration of 2FA application {appId}. slots: appId: path.appId - text: Fetch the details of two-factor app {appId}. slots: appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}'].put update: x-apievangelist-phrasing: intent: Update a 2FA application effect: write questions: - Can I change the settings of a 2FA application I already created? - Is it possible to disable an existing two-factor application? instructions: - text: Rename 2FA application {appId} to {name}. slots: appId: path.appId name: requestBody.name - text: Disable 2FA application {appId} by setting enabled to {enabled}, keeping the name {name}. slots: appId: path.appId enabled: requestBody.enabled name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}/messages'].get update: x-apievangelist-phrasing: intent: List message templates in a 2FA application effect: read questions: - Which PIN message templates exist inside one of my 2FA applications? - Where do I see all the OTP text templates under a 2FA app? instructions: - text: List the message templates in 2FA application {appId}. slots: appId: path.appId - text: Show every PIN template configured for 2FA app {appId}. slots: appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}/messages'].post update: x-apievangelist-phrasing: intent: Create a 2FA SMS or voice PIN template effect: write questions: - How do I create an SMS or voice template for sending one-time PINs? - Can I choose the PIN length and whether it's numeric or alphanumeric in a template? - Is there a way to set the voice and speech rate for a spoken OTP template? instructions: - text: Create a 2FA message template in app {appId} with text {messageText} and PIN type {pinType}. slots: appId: path.appId messageText: requestBody.messageText pinType: requestBody.pinType - text: Add a {pinLength}-digit {pinType} PIN template to 2FA app {appId} saying {messageText}. slots: pinLength: requestBody.pinLength pinType: requestBody.pinType appId: path.appId messageText: requestBody.messageText - text: Create a voice OTP template in app {appId} reading {messageText} with PIN type {pinType} using voice {voiceName}. slots: appId: path.appId messageText: requestBody.messageText pinType: requestBody.pinType voiceName: requestBody.voiceName method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}/messages/{msgId}'].get update: x-apievangelist-phrasing: intent: Get a 2FA message template effect: read questions: - What does one particular 2FA PIN template contain? - Can I check the sender ID and PIN length set on a single OTP template? instructions: - text: Show 2FA message template {msgId} from application {appId}. slots: msgId: path.msgId appId: path.appId - text: Fetch the settings of PIN template {msgId} in 2FA app {appId}. slots: msgId: path.msgId appId: path.appId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}/messages/{msgId}'].put update: x-apievangelist-phrasing: intent: Update a 2FA SMS or voice PIN template effect: write questions: - Can I edit the text of an SMS or voice OTP template I already made? - Is it possible to change the sender ID on an existing 2FA SMS template? instructions: - text: Change the text of 2FA template {msgId} in app {appId} to {messageText}. slots: msgId: path.msgId appId: path.appId messageText: requestBody.messageText - text: Set the sender ID of SMS PIN template {msgId} in app {appId} to {senderId}. slots: msgId: path.msgId appId: path.appId senderId: requestBody.senderId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}/email/messages'].post update: x-apievangelist-phrasing: intent: Create a 2FA email PIN template effect: write questions: - Can one-time PINs be delivered by email using one of my email templates? - What's needed to set up an email OTP template with a landing page? instructions: - text: Create an email PIN template in 2FA app {appId} using email template {emailTemplateId}. slots: appId: path.appId emailTemplateId: requestBody.emailTemplateId - text: Add a 2FA email template to app {appId} with email template {emailTemplateId} sent from {from}. slots: appId: path.appId emailTemplateId: requestBody.emailTemplateId from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}/email/messages/{msgId}'].put update: x-apievangelist-phrasing: intent: Update a 2FA email PIN template effect: write questions: - Can I change which email template an existing 2FA email OTP template uses? - Is the sender address editable on a 2FA email template I already created? instructions: - text: Point 2FA email template {msgId} in app {appId} at email template {emailTemplateId}. slots: msgId: path.msgId appId: path.appId emailTemplateId: requestBody.emailTemplateId - text: Change the from address of 2FA email template {msgId} in app {appId} to {from}. slots: msgId: path.msgId appId: path.appId from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/pin'].post update: x-apievangelist-phrasing: intent: Send a one-time PIN by SMS effect: write questions: - How do I text a verification code to a user's phone? - Can I track delivery of an OTP I send by SMS? instructions: - text: Send an SMS PIN to {to} using 2FA app {applicationId} and template {messageId}. slots: to: requestBody.to applicationId: requestBody.applicationId messageId: requestBody.messageId - text: Text a verification code to {to} from app {applicationId} with template {messageId} and sender {from}. slots: to: requestBody.to applicationId: requestBody.applicationId messageId: requestBody.messageId from: requestBody.from method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/pin/{pinId}/resend'].post update: x-apievangelist-phrasing: intent: Resend the same PIN by SMS effect: write questions: - My user didn't get their SMS code — can I resend the same one? - Is it possible to text a previously sent PIN again without generating a new one? instructions: - text: Resend PIN {pinId} by SMS. slots: pinId: path.pinId - text: Text the same verification code for PIN {pinId} again. slots: pinId: path.pinId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/pin/voice'].post update: x-apievangelist-phrasing: intent: Send a one-time PIN by voice call effect: write questions: - Can a verification code be read out to a user over a phone call? - What do I need to deliver an OTP as a voice message? instructions: - text: Call {to} with a voice PIN using 2FA app {applicationId} and template {messageId}. slots: to: requestBody.to applicationId: requestBody.applicationId messageId: requestBody.messageId - text: Deliver a spoken verification code to {to} from app {applicationId}, template {messageId}. slots: to: requestBody.to applicationId: requestBody.applicationId messageId: requestBody.messageId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/pin/{pinId}/resend/voice'].post update: x-apievangelist-phrasing: intent: Resend the same PIN by voice call effect: write questions: - Can I repeat a voice OTP call with the same code the user already got? - The user missed the verification call — is there a way to call again with the same PIN? instructions: - text: Resend PIN {pinId} as a voice call. slots: pinId: path.pinId - text: Call the user again with the same code for PIN {pinId}. slots: pinId: path.pinId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/pin/email'].post update: x-apievangelist-phrasing: intent: Send a one-time PIN by email effect: write questions: - How can I email a verification code to a user? - Can I fill landing page placeholders when emailing an OTP? instructions: - text: Email a PIN to {to} using 2FA app {applicationId} and email template {messageId}. slots: to: requestBody.to applicationId: requestBody.applicationId messageId: requestBody.messageId - text: Send a verification code by email to {to} from {from} via app {applicationId}, template {messageId}. slots: to: requestBody.to from: requestBody.from applicationId: requestBody.applicationId messageId: requestBody.messageId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/pin/{pinId}/resend/email'].post update: x-apievangelist-phrasing: intent: Resend the same PIN by email effect: write questions: - Can I re-send an emailed verification code that the user can't find? - Is there a way to email the same OTP again rather than issuing a new one? instructions: - text: Resend PIN {pinId} by email. slots: pinId: path.pinId - text: Email the same verification code for PIN {pinId} again. slots: pinId: path.pinId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/pin/{pinId}/verify'].post update: x-apievangelist-phrasing: intent: Verify a PIN a user entered effect: write questions: - How do I check whether the code a user typed in is correct? - What happens when someone submits a wrong OTP too many times? instructions: - text: Verify PIN {pinId} with the code {pin}. slots: pinId: path.pinId pin: requestBody.pin - text: Check whether {pin} is the right code for PIN {pinId}. slots: pin: requestBody.pin pinId: path.pinId method: generated generated: '2026-09-26' - target: $.paths['/2fa/2/applications/{appId}/verifications'].get update: x-apievangelist-phrasing: intent: Check if a number is verified in a 2FA app effect: read questions: - Has this phone number already been verified in my 2FA application? - Can I filter verification status to only numbers that were sent a PIN but never verified? instructions: - text: Check the verification status of {msisdn} in 2FA app {appId}. slots: msisdn: query.msisdn appId: path.appId - text: Show whether {msisdn} is verified for 2FA application {appId}, filtering verified={verified}. slots: msisdn: query.msisdn appId: path.appId verified: query.verified method: generated generated: '2026-09-26' - target: $.paths['/account/1/balance'].get update: x-apievangelist-phrasing: intent: Get my current account balance effect: read questions: - What's my current Infobip account balance? - Which currency is my balance shown in? instructions: - text: Show my current account balance. - text: Tell me how much credit is left on my account right now. method: generated generated: '2026-09-26' - target: $.paths['/account/1/free-messages'].get update: x-apievangelist-phrasing: intent: Get my remaining free messages effect: read questions: - How many free messages do I have left? - Is there any free message allowance remaining on my account? instructions: - text: Show my remaining free message count. - text: Check how many free messages are still available. method: generated generated: '2026-09-26' - target: $.paths['/account/1/total-balance'].get update: x-apievangelist-phrasing: intent: Get balance with credit limits and free messages effect: read questions: - Can I see my monthly balance and credit limits together with my free messages? - What is my total credit limit and how much free messaging is left per service type? instructions: - text: Show my full balance summary including credit limits and free messages per service. - text: Get my monthly balance, total credit limit and currency details. method: generated generated: '2026-09-26' - target: $.paths['/settings/1/accounts'].get update: x-apievangelist-phrasing: intent: List sub-accounts effect: read questions: - Which sub-accounts sit under my main account? - Can I list only the enabled sub-accounts, or search them by name? instructions: - text: List my sub-accounts named {name}. slots: name: query.name - text: Show up to {limit} sub-accounts where enabled is {enabled}. slots: limit: query.limit enabled: query.enabled method: generated generated: '2026-09-26' - target: $.paths['/settings/1/accounts/{accountKey}'].put update: x-apievangelist-phrasing: intent: Update a sub-account effect: write questions: - Can I rename or disable one of my sub-accounts? - Is it possible to edit the main account itself, or only sub-accounts? instructions: - text: Rename sub-account {accountKey} to {name}. slots: accountKey: path.accountKey name: requestBody.name - text: Set enabled to {enabled} on sub-account {accountKey}. slots: enabled: requestBody.enabled accountKey: path.accountKey method: generated generated: '2026-09-26' - target: $.paths['/settings/1/accounts/{accountKey}/api-keys'].get update: x-apievangelist-phrasing: intent: List an account's API keys (legacy endpoint) effect: read questions: - Using the older per-account settings endpoint, which API keys belong to a given account? - Can the legacy v1 key listing filter by public API key value? instructions: - text: With the legacy v1 endpoint, list API keys for account {accountKey}. slots: accountKey: path.accountKey - text: Find the key named {name} on account {accountKey} using the old v1 API key listing. slots: name: query.name accountKey: path.accountKey method: generated generated: '2026-09-26' - target: $.paths['/settings/1/accounts/{accountKey}/api-keys'].post update: x-apievangelist-phrasing: intent: Create an account API key (legacy endpoint) effect: write questions: - How do I create an API key under a specific account using the older v1 settings API? - Can a legacy v1 API key be restricted to certain IP addresses? instructions: - text: Using the legacy v1 endpoint, create an API key {name} for account {accountKey}. slots: name: requestBody.name accountKey: path.accountKey - text: Create a v1 API key {name} on account {accountKey} allowed only from {allowedIPs}. slots: name: requestBody.name accountKey: path.accountKey allowedIPs: requestBody.allowedIPs method: generated generated: '2026-09-26' - target: $.paths['/settings/1/accounts/{accountKey}/api-keys/{key}'].get update: x-apievangelist-phrasing: intent: Get an account API key (legacy endpoint) effect: read questions: - With the old v1 settings API, how do I look up one key under an account? - Can I use the underscore shortcut for my own account when fetching a legacy key? instructions: - text: Using the legacy v1 endpoint, show API key {key} on account {accountKey}. slots: key: path.key accountKey: path.accountKey - text: Fetch v1 key {key} from my own account using accountKey {accountKey}. slots: key: path.key accountKey: path.accountKey method: generated generated: '2026-09-26' - target: $.paths['/settings/1/accounts/{accountKey}/api-keys/{key}'].put update: x-apievangelist-phrasing: intent: Update an account API key (legacy endpoint) effect: write questions: - Can I disable a key through the older v1 account-scoped key endpoint? - Is the validity window editable on a legacy v1 API key? instructions: - text: Using the legacy v1 endpoint, disable key {key} on account {accountKey} by setting enabled to {enabled}. slots: key: path.key accountKey: path.accountKey enabled: requestBody.enabled - text: Set v1 key {key} on account {accountKey} to expire at {validTo}. slots: key: path.key accountKey: path.accountKey validTo: requestBody.validTo method: generated generated: '2026-09-26' - target: $.paths['/settings/2/api-keys'].get update: x-apievangelist-phrasing: intent: Search API keys effect: read questions: - Which API keys exist across my accounts, and can I sort them? - Who is allowed to list API keys — do I need a special role? instructions: - text: List API keys named {name}. slots: name: query.name - text: Show API keys for account {accountId}, page {page}, ordered by {orderBy}. slots: accountId: query.accountId page: query.page orderBy: query.orderBy method: generated generated: '2026-09-26' - target: $.paths['/settings/2/api-keys'].post update: x-apievangelist-phrasing: intent: Create an API key effect: write questions: - How do I generate a new API key with specific scopes? - Can I limit a new API key to a validity period and a set of IPs? instructions: - text: Create an API key called {name}. slots: name: requestBody.name - text: Create API key {name} for account {accountId} with scopes {scopeGuids}. slots: name: requestBody.name accountId: requestBody.accountId scopeGuids: requestBody.scopeGuids method: generated generated: '2026-09-26' - target: $.paths['/settings/2/api-keys/{apiKeyId}'].get update: x-apievangelist-phrasing: intent: Get an API key effect: read questions: - What scopes and IP restrictions does one of my API keys have? - Can I look up a single key by its ID? instructions: - text: Show API key {apiKeyId}. slots: apiKeyId: path.apiKeyId - text: Fetch the scopes and allowed IPs of key {apiKeyId}. slots: apiKeyId: path.apiKeyId method: generated generated: '2026-09-26' - target: $.paths['/settings/2/api-keys/{apiKeyId}'].put update: x-apievangelist-phrasing: intent: Update an API key effect: write questions: - Can I change the scopes of an API key that's already in use? - Is it possible to switch off an API key without deleting it? instructions: - text: Disable API key {apiKeyId} by setting enabled to {enabled}. slots: apiKeyId: path.apiKeyId enabled: requestBody.enabled - text: Replace the scopes on key {apiKeyId} with {scopeGuids}. slots: apiKeyId: path.apiKeyId scopeGuids: requestBody.scopeGuids method: generated generated: '2026-09-26' - target: $.paths['/auth/1/session'].post update: x-apievangelist-phrasing: intent: Log in and create a session token effect: write questions: - How do I log in with a username and password to get a session token? - How long does a session token last before it expires? instructions: - text: Log in as {username} with password {password} and get a session token. slots: username: requestBody.username password: requestBody.password - text: Create a session for {username} using {password} that isn't bound to my IP ({unsafe}). slots: username: requestBody.username password: requestBody.password unsafe: requestBody.unsafe method: generated generated: '2026-09-26' - target: $.paths['/auth/1/session'].delete update: x-apievangelist-phrasing: intent: Log out and destroy the session token effect: destructive questions: - How do I log out and invalidate my current session token? - Do I have to end my session before I can create a fresh token? instructions: - text: Log me out and destroy my session token. - text: End the current session so I can start a new one. method: generated generated: '2026-09-26' - target: $.paths['/auth/1/oauth2/token'].post update: x-apievangelist-phrasing: intent: Get an OAuth2 access token effect: write questions: - Can I authenticate API calls with OAuth2 client credentials? - Which grant type do I pass to exchange a client ID and secret for an access token? instructions: - text: Get an OAuth2 access token for client {client_id} with secret {client_secret} and grant type {grant_type}. slots: client_id: requestBody.client_id client_secret: requestBody.client_secret grant_type: requestBody.grant_type - text: Exchange authorization code {code} for a token as client {client_id}, secret {client_secret}, grant {grant_type}. slots: code: requestBody.code client_id: requestBody.client_id client_secret: requestBody.client_secret grant_type: requestBody.grant_type method: generated generated: '2026-09-26' - target: $.paths['/audit/1/logs/export'].get update: x-apievangelist-phrasing: intent: Export audit logs to a file effect: read questions: - Can I download a file of what users did in the web interface? - Is there a way to export audit activity for a date range? instructions: - text: Export audit logs from {from} to {to}. slots: from: query.from to: query.to - text: Download an export of audit activity by user {userKey}. slots: userKey: query.userKey method: generated generated: '2026-09-26' - target: $.paths['/audit/1/logs'].get update: x-apievangelist-phrasing: intent: Search audit logs effect: read questions: - Who changed settings in our web portal recently? - Can I search user activity by IP address or action type? instructions: - text: Search audit logs for actions from IP {ipAddress}. slots: ipAddress: query.ipAddress - text: Show audit entries with action {action} between {from} and {to}. slots: action: query.action from: query.from to: query.to method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/applications'].get update: x-apievangelist-phrasing: intent: List provisioning applications effect: read questions: - Which applications have I defined for grouping my traffic and resources? - Can I page through my provisioning applications? instructions: - text: List my applications. - text: Show page {page} of my applications, {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/applications'].post update: x-apievangelist-phrasing: intent: Create an application effect: write questions: - How do I register a new application ID to tag my traffic? - Can I give an application a readable name as well as an ID? instructions: - text: Create an application with ID {applicationId}. slots: applicationId: requestBody.applicationId - text: Create application {applicationId} named {applicationName}. slots: applicationId: requestBody.applicationId applicationName: requestBody.applicationName method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/applications/{applicationId}'].get update: x-apievangelist-phrasing: intent: Get an application effect: read questions: - What name is set on one of my applications? - Can I look up a single application by its ID? instructions: - text: Show application {applicationId}. slots: applicationId: path.applicationId - text: Fetch the details of app ID {applicationId}. slots: applicationId: path.applicationId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/applications/{applicationId}'].put update: x-apievangelist-phrasing: intent: Rename an application effect: write questions: - Can I change the display name of an existing application? - Is the application name the only thing I can edit on an application? instructions: - text: Rename application {applicationId} to {applicationName}. slots: applicationId: path.applicationId applicationName: requestBody.applicationName - text: Change the name of app {applicationId} to {applicationName}. slots: applicationId: path.applicationId applicationName: requestBody.applicationName method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/applications/{applicationId}'].delete update: x-apievangelist-phrasing: intent: Delete an application effect: destructive questions: - What happens to linked resources when I delete an application? - Can I remove an application I no longer use? instructions: - text: Delete application {applicationId}. slots: applicationId: path.applicationId - text: Remove app {applicationId} and reset its linked resources. slots: applicationId: path.applicationId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/entities'].get update: x-apievangelist-phrasing: intent: List entities effect: read questions: - Which entities have I set up to segment my traffic? - Can I page through all my entities? instructions: - text: List my entities. - text: Show page {page} of entities, {size} at a time. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/entities'].post update: x-apievangelist-phrasing: intent: Create an entity effect: write questions: - Do I have to create an entity before sending messages tagged with it? - Can I give a new entity a friendly name? instructions: - text: Create an entity with ID {entityId}. slots: entityId: requestBody.entityId - text: Create entity {entityId} named {entityName}. slots: entityId: requestBody.entityId entityName: requestBody.entityName method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/entities/{entityId}'].get update: x-apievangelist-phrasing: intent: Get an entity effect: read questions: - What name is stored on a particular entity? - Can I fetch one entity by its entity ID? instructions: - text: Show entity {entityId}. slots: entityId: path.entityId - text: Fetch the details of entity ID {entityId}. slots: entityId: path.entityId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/entities/{entityId}'].put update: x-apievangelist-phrasing: intent: Rename an entity effect: write questions: - Can I change the name of an entity after creating it? - Is renaming the only change allowed on an entity? instructions: - text: Rename entity {entityId} to {entityName}. slots: entityId: path.entityId entityName: requestBody.entityName - text: Change entity {entityId}'s display name to {entityName}. slots: entityId: path.entityId entityName: requestBody.entityName method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/entities/{entityId}'].delete update: x-apievangelist-phrasing: intent: Delete an entity effect: destructive questions: - What happens to resources linked to an entity when it's deleted? - Can I remove an entity I no longer need? instructions: - text: Delete entity {entityId}. slots: entityId: path.entityId - text: Remove entity {entityId} and reset the resources linked to it. slots: entityId: path.entityId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/associations'].get update: x-apievangelist-phrasing: intent: List resource associations effect: read questions: - Which senders and numbers are linked to which application and entity? - Can I filter resource associations by channel or resource type? instructions: - text: List resource associations for application {applicationId}. slots: applicationId: query.applicationId - text: Show {channel} associations for entity {entityId}. slots: channel: query.channel entityId: query.entityId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/associations'].post update: x-apievangelist-phrasing: intent: Link a resource to an application and entity effect: write questions: - How do I tie a sender or number to a specific application and entity? - What fields are required to associate a resource with a channel? instructions: - text: Associate {resourceType} {resourceId} on {channel} with application {applicationId} and entity {entityId}. slots: resourceType: requestBody.resourceType resourceId: requestBody.resourceId channel: requestBody.channel applicationId: requestBody.applicationId entityId: requestBody.entityId - text: Link sender {resourceId} ({resourceType}, {channel}) to app {applicationId}, entity {entityId}. slots: resourceId: requestBody.resourceId resourceType: requestBody.resourceType channel: requestBody.channel applicationId: requestBody.applicationId entityId: requestBody.entityId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/associations'].delete update: x-apievangelist-phrasing: intent: Unlink a resource from an application and entity effect: destructive questions: - Can I detach a number from the application and entity it's tied to? - What do I need to supply to remove a resource association? instructions: - text: Remove the association of {resourceType} {resourceId} on {channel} from app {applicationId} and entity {entityId}. slots: resourceType: requestBody.resourceType resourceId: requestBody.resourceId channel: requestBody.channel applicationId: requestBody.applicationId entityId: requestBody.entityId - text: Unlink sender {resourceId} ({resourceType}, {channel}) from application {applicationId}, entity {entityId}. slots: resourceId: requestBody.resourceId resourceType: requestBody.resourceType channel: requestBody.channel applicationId: requestBody.applicationId entityId: requestBody.entityId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/1/associations/single'].get update: x-apievangelist-phrasing: intent: Look up one exact resource association effect: read questions: - Is a particular sender currently linked to a given application? - Can I check one specific resource association rather than listing them all? instructions: - text: Check whether {resourceType} {resourceId} on {channel} is associated with application {applicationId}. slots: resourceType: query.resourceType resourceId: query.resourceId channel: query.channel applicationId: query.applicationId - text: Get the exact association for resource {resourceId} ({resourceType}, {channel}) in app {applicationId} and entity {entityId}. slots: resourceId: query.resourceId resourceType: query.resourceType channel: query.channel applicationId: query.applicationId entityId: query.entityId method: generated generated: '2026-09-26' - target: $.paths['/numbers/1/numbers/available'].get update: x-apievangelist-phrasing: intent: Find phone numbers available to buy effect: read questions: - Which phone numbers can I buy in a given country? - Can I search for US numbers by state and area code? - Are there numbers for sale that support both SMS and voice? instructions: - text: Find numbers available to buy in {country}. slots: country: query.country - text: Search purchasable US numbers in area code {npa} in state {state}. slots: npa: query.npa state: query.state - text: Show numbers for sale with capabilities {capabilities} in {country}. slots: capabilities: query.capabilities country: query.country method: generated generated: '2026-09-26' - target: $.paths['/numbers/1/numbers'].get update: x-apievangelist-phrasing: intent: List numbers I own effect: read questions: - Which phone numbers does my account currently own? - Can I check whether a specific number is among the ones I've purchased? instructions: - text: List all the numbers I own. - text: Find {number} among my owned numbers. slots: number: query.number method: generated generated: '2026-09-26' - target: $.paths['/numbers/1/numbers'].post update: x-apievangelist-phrasing: intent: Buy a phone number effect: write questions: - How do I buy one of the available numbers? - For a US number, do I buy it by the number itself instead of its ID? instructions: - text: Buy the number with key {numberKey}. slots: numberKey: requestBody.numberKey - text: Purchase US number {number} and link it to application {applicationId}. slots: number: requestBody.number applicationId: requestBody.applicationId method: generated generated: '2026-09-26' - target: $.paths['/numbers/1/numbers/{numberKey}'].get update: x-apievangelist-phrasing: intent: Get details of a number I own effect: read questions: - What capabilities and settings does one of my purchased numbers have? - Can I look up a single owned number by its key? instructions: - text: Show details of owned number {numberKey}. slots: numberKey: path.numberKey - text: Fetch the info for my number with key {numberKey}. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/1/numbers/{numberKey}'].put update: x-apievangelist-phrasing: intent: Relink an owned number to an application effect: write questions: - Can I change which application and entity a purchased number belongs to? - Is the entity on an owned number editable after purchase? instructions: - text: Link my number {numberKey} to application {applicationId}. slots: numberKey: path.numberKey applicationId: requestBody.applicationId - text: Move number {numberKey} to application {applicationId} and entity {entityId}. slots: numberKey: path.numberKey applicationId: requestBody.applicationId entityId: requestBody.entityId method: generated generated: '2026-09-26' - target: $.paths['/numbers/1/numbers/{numberKey}'].delete update: x-apievangelist-phrasing: intent: Cancel a number I own effect: destructive questions: - What happens to a number after I cancel it — can someone else buy it? - How can I give up a phone number I no longer need? instructions: - text: Cancel my number {numberKey}. slots: numberKey: path.numberKey - text: Release owned number {numberKey} back to the pool. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/sms'].get update: x-apievangelist-phrasing: intent: List SMS configurations on a number effect: read questions: - Which inbound SMS keyword configurations are set on my number? - What happens to incoming texts on this number — what's configured? instructions: - text: List the SMS configurations on number {numberKey}. slots: numberKey: path.numberKey - text: Show page {page} of SMS keyword setups for number {numberKey}. slots: page: query.page numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/sms'].put update: x-apievangelist-phrasing: intent: Update an SMS configuration on a number effect: write questions: - Can I change the forwarding action of an existing SMS keyword on my number? - Is it possible to switch an inbound SMS configuration to forward into Conversations? instructions: - text: Update SMS configuration {key} on number {numberKey} to action {action}. slots: key: requestBody.key numberKey: path.numberKey action: requestBody.action - text: Change keyword {keyword} of SMS config {key} on number {numberKey} to use action {action}. slots: keyword: requestBody.keyword key: requestBody.key numberKey: path.numberKey action: requestBody.action method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/sms'].post update: x-apievangelist-phrasing: intent: Set up inbound SMS handling on a number effect: write questions: - How do I forward incoming SMS on my number to a URL or other action? - Can I set a keyword so only matching texts trigger an action? instructions: - text: Add an SMS configuration to number {numberKey} with action {action}. slots: numberKey: path.numberKey action: requestBody.action - text: Create an SMS rule on number {numberKey} for keyword {keyword} using action {action}. slots: numberKey: path.numberKey keyword: requestBody.keyword action: requestBody.action method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/sms/{configurationKey}'].get update: x-apievangelist-phrasing: intent: Get one SMS configuration on a number effect: read questions: - What does a specific SMS keyword configuration on my number do? - Can I see the forward action of a single SMS config? instructions: - text: Show SMS configuration {configurationKey} on number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey - text: Fetch details of SMS config {configurationKey} for number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/sms/{configurationKey}'].delete update: x-apievangelist-phrasing: intent: Delete an SMS configuration from a number effect: destructive questions: - If I remove every SMS configuration, can I still pull inbound messages? - Can I delete an SMS keyword rule from a number? instructions: - text: Delete SMS configuration {configurationKey} from number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey - text: Remove the SMS rule {configurationKey} on number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/mms'].get update: x-apievangelist-phrasing: intent: List MMS configurations on a number effect: read questions: - Which MMS configurations are set up on my number? - What happens to incoming picture messages on this number? instructions: - text: List the MMS configurations on number {numberKey}. slots: numberKey: path.numberKey - text: Show {limit} MMS setups per page for number {numberKey}. slots: limit: query.limit numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/mms'].post update: x-apievangelist-phrasing: intent: Set up inbound MMS handling on a number effect: write questions: - How do I route incoming MMS on my number to an action? - Can an MMS configuration be tied to a keyword? instructions: - text: Add an MMS configuration to number {numberKey} with action {action}. slots: numberKey: path.numberKey action: requestBody.action - text: Create an MMS rule for keyword {keyword} on number {numberKey} using action {action}. slots: keyword: requestBody.keyword numberKey: path.numberKey action: requestBody.action method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/mms/{configurationKey}'].get update: x-apievangelist-phrasing: intent: Get one MMS configuration on a number effect: read questions: - What action does a particular MMS configuration on my number perform? - Can I inspect a single MMS keyword rule? instructions: - text: Show MMS configuration {configurationKey} on number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey - text: Fetch MMS config {configurationKey} for number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/mms/{configurationKey}'].put update: x-apievangelist-phrasing: intent: Update an MMS configuration on a number effect: write questions: - Can I change the action on an existing MMS configuration? - Is the keyword of an MMS rule editable after it's created? instructions: - text: Update MMS configuration {configurationKey} on number {numberKey} to action {action}. slots: configurationKey: path.configurationKey numberKey: path.numberKey action: requestBody.action - text: Change the keyword on MMS config {configurationKey} of number {numberKey} to {keyword}, action {action}. slots: configurationKey: path.configurationKey numberKey: path.numberKey keyword: requestBody.keyword action: requestBody.action method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/mms/{configurationKey}'].delete update: x-apievangelist-phrasing: intent: Delete an MMS configuration from a number effect: destructive questions: - Can I remove an MMS rule from my number? - Will inbound MMS still be retrievable after I delete its configuration? instructions: - text: Delete MMS configuration {configurationKey} from number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey - text: Remove the MMS rule {configurationKey} on number {numberKey}. slots: configurationKey: path.configurationKey numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice'].get update: x-apievangelist-phrasing: intent: Get the voice setup on a number effect: read questions: - What happens when someone calls my number — which voice action is set? - Can I check the inbound call configuration on a number? instructions: - text: Show the voice setup on number {numberKey}. slots: numberKey: path.numberKey - text: Fetch the inbound call action for number {numberKey}. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice'].put update: x-apievangelist-phrasing: intent: Change the voice setup on a number effect: write questions: - Can I change what my number does with incoming calls after setting it up? - Is it possible to relink a number's voice setup to another application? instructions: - text: Update the voice setup on number {numberKey} to action {action}. slots: numberKey: path.numberKey action: requestBody.action - text: Change number {numberKey}'s voice action to {action} under application {applicationId}. slots: numberKey: path.numberKey action: requestBody.action applicationId: requestBody.applicationId method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice'].post update: x-apievangelist-phrasing: intent: Set up inbound call handling on a number effect: write questions: - How do I make my number handle incoming calls? - Can a number have more than one voice action? instructions: - text: Create a voice setup on number {numberKey} with action {action}. slots: numberKey: path.numberKey action: requestBody.action - text: Configure number {numberKey} to handle calls with action {action} for entity {entityId}. slots: numberKey: path.numberKey action: requestBody.action entityId: requestBody.entityId method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice'].delete update: x-apievangelist-phrasing: intent: Remove the voice setup from a number effect: destructive questions: - Can I stop my number from handling incoming calls? - How do I clear the voice action on a number? instructions: - text: Delete the voice setup on number {numberKey}. slots: numberKey: path.numberKey - text: Remove inbound call handling from number {numberKey}. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/cnam'].get update: x-apievangelist-phrasing: intent: Get the caller name (CNAM) settings effect: read questions: - What caller ID name is configured for my number? - Is CNAM delivery turned on for this number? instructions: - text: Show the CNAM configuration for number {numberKey}. slots: numberKey: path.numberKey - text: Fetch the caller name settings on number {numberKey}. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/cnam'].put update: x-apievangelist-phrasing: intent: Change the caller name (CNAM) settings effect: write questions: - Can I change the caller ID name shown on calls from my number? - Is it possible to switch CNAM delivery on or off later? instructions: - text: Change the CNAM name on number {numberKey} to {storage}. slots: numberKey: path.numberKey storage: requestBody.storage - text: Set CNAM delivery on number {numberKey} to {delivery}. slots: numberKey: path.numberKey delivery: requestBody.delivery method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/cnam'].post update: x-apievangelist-phrasing: intent: Set up a caller name (CNAM) on a number effect: write questions: - How do I make my business name show up as caller ID? - Which countries support CNAM caller name configuration? instructions: - text: Create a CNAM on number {numberKey} with the name {storage}. slots: numberKey: path.numberKey storage: requestBody.storage - text: Register caller name {storage} for number {numberKey} with delivery {delivery}. slots: storage: requestBody.storage numberKey: path.numberKey delivery: requestBody.delivery method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/cnam'].delete update: x-apievangelist-phrasing: intent: Remove the caller name (CNAM) from a number effect: destructive questions: - Can I remove the caller ID name from my number? - How do I delete a CNAM configuration? instructions: - text: Delete the CNAM configuration on number {numberKey}. slots: numberKey: path.numberKey - text: Remove the caller name from number {numberKey}. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/cnam/status'].get update: x-apievangelist-phrasing: intent: Check the caller name (CNAM) status effect: read questions: - Has my CNAM caller name been activated yet? - Is the caller name registration on my number still pending? instructions: - text: Check the CNAM status of number {numberKey}. slots: numberKey: path.numberKey - text: Tell me whether the caller name on {numberKey} is active. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/emergency-service/validate-address'].post update: x-apievangelist-phrasing: intent: Validate an emergency (E911) address effect: read questions: - Will this US street address be accepted for emergency calls before I save it? - Can I check an emergency service address is valid without registering it? instructions: - text: Validate the emergency address {streetNumber} {streetName}, {city}, {stateCode} {zipCode}, {countryCode} for {name} on number {numberKey}. slots: streetNumber: requestBody.streetNumber streetName: requestBody.streetName city: requestBody.city stateCode: requestBody.stateCode zipCode: requestBody.zipCode countryCode: requestBody.countryCode name: requestBody.name numberKey: path.numberKey - text: Check if suite {suite} at {streetNumber} {streetName}, {city} {stateCode} {zipCode} {countryCode} is a valid E911 address for {name}, number {numberKey}. slots: suite: requestBody.suite streetNumber: requestBody.streetNumber streetName: requestBody.streetName city: requestBody.city stateCode: requestBody.stateCode zipCode: requestBody.zipCode countryCode: requestBody.countryCode name: requestBody.name numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/emergency-service'].get update: x-apievangelist-phrasing: intent: Get the emergency (E911) address on a number effect: read questions: - What address is registered for emergency calls from my number? - Is an emergency service address enabled on this number? instructions: - text: Show the emergency service address for number {numberKey}. slots: numberKey: path.numberKey - text: Fetch the E911 address registered on {numberKey}. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/emergency-service'].put update: x-apievangelist-phrasing: intent: Change the emergency (E911) address on a number effect: write questions: - We moved offices — can I update the emergency address on our number? - Can I disable the emergency address without deleting it? instructions: - text: Update the emergency address on number {numberKey} to {address} with enabled {enabled}. slots: numberKey: path.numberKey address: requestBody.address enabled: requestBody.enabled - text: Set enabled to {enabled} for the E911 address {address} on {numberKey}. slots: enabled: requestBody.enabled address: requestBody.address numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/emergency-service'].post update: x-apievangelist-phrasing: intent: Register an emergency (E911) address effect: write questions: - How do I make emergency calls from my number route to the right local responders? - Can I register any US physical address for emergency calls? instructions: - text: Register emergency address {address} on number {numberKey} with enabled {enabled}. slots: address: requestBody.address numberKey: path.numberKey enabled: requestBody.enabled - text: Create an E911 address {address} for {numberKey}, enabled {enabled}. slots: address: requestBody.address numberKey: path.numberKey enabled: requestBody.enabled method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/emergency-service'].delete update: x-apievangelist-phrasing: intent: Remove the emergency (E911) address effect: destructive questions: - Can I delete the emergency address from a number? - How do I remove E911 registration from my number? instructions: - text: Delete the emergency service address on number {numberKey}. slots: numberKey: path.numberKey - text: Remove the E911 address from {numberKey}. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/numbers/2/numbers/{numberKey}/voice/emergency-service/status'].get update: x-apievangelist-phrasing: intent: Check the emergency (E911) address status effect: read questions: - Has my emergency address registration been provisioned yet? - Is the E911 setup on my number active or still processing? instructions: - text: Check the emergency service status for number {numberKey}. slots: numberKey: path.numberKey - text: Tell me whether the E911 address on {numberKey} is active. slots: numberKey: path.numberKey method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands'].get update: x-apievangelist-phrasing: intent: List 10DLC brands effect: read questions: - Which brands have I created for number registration? - Can I search my brands by part of their name? instructions: - text: List my brands whose name contains {nameLike}. slots: nameLike: query.nameLike - text: Show brands of type {type} for application {applicationId}. slots: type: query.type applicationId: query.applicationId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands'].post update: x-apievangelist-phrasing: intent: Create a brand for number registration effect: write questions: - What do I need to create a brand before registering it for 10DLC? - Does creating a brand also register it with the registrars? instructions: - text: Create a brand named {name} with website {website} and type {type}. slots: name: requestBody.name website: requestBody.website type: requestBody.type - text: Create brand {name} ({type}, {website}) under application {applicationId}. slots: name: requestBody.name type: requestBody.type website: requestBody.website applicationId: requestBody.applicationId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}'].get update: x-apievangelist-phrasing: intent: Get a brand effect: read questions: - What details are stored on one of my registration brands? - Can I look up a brand by its ID? instructions: - text: Show brand {brandId}. slots: brandId: path.brandId - text: Fetch the details of registration brand {brandId}. slots: brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}'].put update: x-apievangelist-phrasing: intent: Update a brand effect: write questions: - Can I edit a brand after its registration failed? - Is it possible to change a brand's website before registering it? instructions: - text: Update brand {brandId} with name {name}, website {website} and type {type}. slots: brandId: path.brandId name: requestBody.name website: requestBody.website type: requestBody.type - text: Change the website of brand {brandId} to {website}, keeping name {name} and type {type}. slots: brandId: path.brandId website: requestBody.website name: requestBody.name type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}'].delete update: x-apievangelist-phrasing: intent: Delete a brand effect: destructive questions: - Can I delete a brand that still has campaigns? - How do I remove a brand I no longer need? instructions: - text: Delete brand {brandId}. slots: brandId: path.brandId - text: Remove registration brand {brandId}. slots: brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/register'].post update: x-apievangelist-phrasing: intent: Register a brand with 10DLC registrars effect: write questions: - How do I register my brand for 10DLC texting? - Does brand registration cost money? instructions: - text: Register brand {brandId} with all registrars. slots: brandId: path.brandId - text: Submit brand {brandId} for 10DLC registration. slots: brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/registrar-statuses'].get update: x-apievangelist-phrasing: intent: Check a brand's registration status per registrar effect: read questions: - Has my brand been approved by each registrar? - Where do I see brand registration status broken down by registrar? instructions: - text: Show the registrar statuses for brand {brandId}. slots: brandId: path.brandId - text: Check whether brand {brandId} is registered with every registrar. slots: brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/brand-auth-verification'].post update: x-apievangelist-phrasing: intent: Request Authentication+ verification for a brand effect: write questions: - How do I finish registering a public company brand with Authentication+? - Which brand types need brand Authentication+ verification? instructions: - text: Request Authentication+ verification for brand {brandId}. slots: brandId: path.brandId - text: Start brand authentication for public company brand {brandId}. slots: brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/resend2fa'].post update: x-apievangelist-phrasing: intent: Resend the brand authentication email effect: write questions: - Our contact never got the brand authentication email — can it be resent? - Is there a way to resend the 2FA email for brand Authentication+? instructions: - text: Resend the brand authentication 2FA email for brand {brandId}. slots: brandId: path.brandId - text: Send the Authentication+ email again for brand {brandId}. slots: brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/appeal'].post update: x-apievangelist-phrasing: intent: Appeal a rejected brand registration effect: write questions: - My 10DLC brand was rejected — can I appeal it? - How long after a brand rejection do I have to file an appeal? instructions: - text: Appeal the rejection of brand {brandId} with documents {documents}. slots: brandId: path.brandId documents: requestBody.documents - text: Submit a brand appeal for {brandId} explaining {explanation}, attaching {documents}. slots: brandId: path.brandId explanation: requestBody.explanation documents: requestBody.documents method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/appeals'].get update: x-apievangelist-phrasing: intent: List appeals submitted for a brand effect: read questions: - What appeals have been filed for my brand and what happened to them? - Is there already a pending appeal on this brand? instructions: - text: List the appeals for brand {brandId}. slots: brandId: path.brandId - text: Show every identity appeal submitted for brand {brandId}. slots: brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/vets'].get update: x-apievangelist-phrasing: intent: List vets done for a brand effect: read questions: - What vetting scores has my brand received? - Can I see the full history of vets on a brand? instructions: - text: List the vets for brand {brandId}. slots: brandId: path.brandId - text: Show page {page} of vetting records for brand {brandId}. slots: page: query.page brandId: path.brandId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/vets'].post update: x-apievangelist-phrasing: intent: Vet a brand effect: write questions: - How often can a brand be vetted, and does it cost anything? - Can I request enhanced vetting instead of standard? instructions: - text: Vet brand {brandId} with vet type {type}. slots: brandId: path.brandId type: requestBody.type - text: Run an enhanced vet on brand {brandId} using type {type}. slots: brandId: path.brandId type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/vets/{vetId}'].get update: x-apievangelist-phrasing: intent: Get one brand vet effect: read questions: - What score did a particular vet of my brand get? - Can I look up one vetting record by its ID? instructions: - text: Show vet {vetId} for brand {brandId}. slots: vetId: path.vetId brandId: path.brandId - text: Fetch the score and status of brand {brandId}'s vet {vetId}. slots: brandId: path.brandId vetId: path.vetId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/vets/{vetId}'].put update: x-apievangelist-phrasing: intent: Upgrade a standard brand vet to enhanced effect: write questions: - Can I upgrade a recent standard vet to an enhanced one? - What's the time limit for converting a standard vet to enhanced? instructions: - text: Upgrade vet {vetId} on brand {brandId} to type {type}. slots: vetId: path.vetId brandId: path.brandId type: requestBody.type - text: Change the vetting type of brand {brandId}'s vet {vetId} to {type}. slots: brandId: path.brandId vetId: path.vetId type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/vets/import'].put update: x-apievangelist-phrasing: intent: Import a brand vet from an outside vetting provider effect: write questions: - I already had my brand vetted elsewhere — can I import that vet? - Which vetting provider does an imported brand vet come from? instructions: - text: Import an existing vet for brand {brandId} from provider {type}. slots: brandId: path.brandId type: requestBody.type - text: Bring in brand {brandId}'s previous vet from vetting provider {type}. slots: brandId: path.brandId type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/brands/{brandId}/vets/{vetId}/report'].get update: x-apievangelist-phrasing: intent: Get a brand's enhanced vet report effect: read questions: - Can I read the detailed report from an enhanced brand vet? - Where is the enhanced vetting report for my brand? instructions: - text: Get the enhanced vet report for vet {vetId} of brand {brandId}. slots: vetId: path.vetId brandId: path.brandId - text: Download brand {brandId}'s enhanced vetting report {vetId}. slots: brandId: path.brandId vetId: path.vetId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns'].get update: x-apievangelist-phrasing: intent: List registration campaigns effect: read questions: - Which 10DLC campaigns belong to a particular brand? - Can I filter campaigns by stage or by the number they use? instructions: - text: List campaigns for brand {brandId}. slots: brandId: query.brandId - text: Show campaigns in stage {stage} whose name contains {nameLike}. slots: stage: query.stage nameLike: query.nameLike method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns'].post update: x-apievangelist-phrasing: intent: Create a 10DLC campaign draft effect: write questions: - How do I create a messaging campaign before submitting it for registration? - Does creating a campaign register it with the networks right away? instructions: - text: Create a campaign named {name}. slots: name: requestBody.name - text: Create campaign {name} with reference ID {referenceId} under application {applicationId}. slots: name: requestBody.name referenceId: requestBody.referenceId applicationId: requestBody.applicationId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/toll-free'].post update: x-apievangelist-phrasing: intent: Create a toll-free verification campaign effect: write questions: - What information do I need to verify toll-free numbers for texting? - Can I include opt-in screenshots and sample messages in a toll-free campaign? instructions: - text: Create a toll-free campaign {name} for numbers {numberKeys} with use case {useCase}. slots: name: requestBody.name numberKeys: requestBody.numberKeys useCase: requestBody.useCase - text: Create toll-free campaign {name} for {legalName} with sample message {exampleMessage} and monthly volume {messageVolume}. slots: name: requestBody.name legalName: requestBody.legalName exampleMessage: requestBody.exampleMessage messageVolume: requestBody.messageVolume method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}'].get update: x-apievangelist-phrasing: intent: Get a campaign effect: read questions: - What stage is one of my registration campaigns in? - Can I fetch a single campaign by its ID? instructions: - text: Show campaign {campaignId}. slots: campaignId: path.campaignId - text: Fetch the details of registration campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}'].put update: x-apievangelist-phrasing: intent: Edit an unregistered or rejected campaign effect: write questions: - Can I edit a campaign that Infobip rejected before resubmitting it? - Which campaigns are still editable before registration? instructions: - text: Rename draft campaign {campaignId} to {name}. slots: campaignId: path.campaignId name: requestBody.name - text: Update rejected campaign {campaignId} with name {name} and reference ID {referenceId}. slots: campaignId: path.campaignId name: requestBody.name referenceId: requestBody.referenceId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}'].delete update: x-apievangelist-phrasing: intent: Delete a campaign effect: destructive questions: - Can I delete a campaign that's already registered? - How do I remove a draft or deregistered campaign? instructions: - text: Delete campaign {campaignId}. slots: campaignId: path.campaignId - text: Remove draft campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/register'].post update: x-apievangelist-phrasing: intent: Submit a campaign for review and registration effect: write questions: - What happens after I submit a campaign — who reviews it? - Can I set a priority when submitting a campaign for registration? instructions: - text: Submit campaign {campaignId} for registration. slots: campaignId: path.campaignId - text: Send campaign {campaignId} for review with priority {priorityId}. slots: campaignId: path.campaignId priorityId: requestBody.priorityId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/network-statuses'].get update: x-apievangelist-phrasing: intent: Check a campaign's status per carrier network effect: read questions: - Has each carrier approved my registered campaign yet? - Where can I see a campaign's status network by network? instructions: - text: Show the network statuses for campaign {campaignId}. slots: campaignId: path.campaignId - text: Check carrier-by-carrier approval of campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/deregister'].post update: x-apievangelist-phrasing: intent: Deregister a campaign from all networks effect: destructive questions: - How do I stop a registered campaign and take it off the networks? - Can a campaign be withdrawn from every carrier at once? instructions: - text: Deregister campaign {campaignId}. slots: campaignId: path.campaignId - text: Withdraw campaign {campaignId} from all networks. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/update-registration'].post update: x-apievangelist-phrasing: intent: Replace the numbers on a registered campaign effect: write questions: - Can I change the set of numbers on a campaign that's already registered? - Why does updating a campaign fail with 400 before registration completes? instructions: - text: Set the numbers on registered campaign {campaignId} to {numberKeys}. slots: campaignId: path.campaignId numberKeys: requestBody.numberKeys - text: Update registered campaign {campaignId} to use 10DLC numbers {numbers}. slots: campaignId: path.campaignId numbers: requestBody.numbers method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/add-numbers'].post update: x-apievangelist-phrasing: intent: Add numbers to a registered campaign effect: write questions: - Can I add more phone numbers to a campaign that's already live? - Is there a limit on how many numbers I can add to a campaign at once? instructions: - text: Add numbers {numberKeys} to campaign {campaignId}. slots: numberKeys: requestBody.numberKeys campaignId: path.campaignId - text: Attach 10DLC number {numbers} to registered campaign {campaignId}. slots: numbers: requestBody.numbers campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/remove-numbers'].post update: x-apievangelist-phrasing: intent: Remove numbers from a registered campaign effect: write questions: - Can I take some phone numbers off a registered campaign? - What happens if I try to remove numbers before registration completes? instructions: - text: Remove numbers {numberKeys} from campaign {campaignId}. slots: numberKeys: requestBody.numberKeys campaignId: path.campaignId - text: Detach 10DLC number {numbers} from registered campaign {campaignId}. slots: numbers: requestBody.numbers campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/numbers'].get update: x-apievangelist-phrasing: intent: List numbers on a campaign effect: read questions: - Which phone numbers are assigned to my campaign? - Does the campaign number list include numbers in every stage? instructions: - text: List the numbers on campaign {campaignId}. slots: campaignId: path.campaignId - text: Show every phone number associated with campaign {campaignId}. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/appeal'].post update: x-apievangelist-phrasing: intent: Appeal a rejected 10DLC campaign effect: write questions: - My 10DLC campaign got rejected — can I appeal? - How many times, and for how long, can a rejected campaign be appealed? instructions: - text: Appeal rejected campaign {campaignId} because {reason}. slots: campaignId: path.campaignId reason: requestBody.reason - text: File an appeal on campaign {campaignId} with reason {reason}. slots: campaignId: path.campaignId reason: requestBody.reason method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/priorities'].get update: x-apievangelist-phrasing: intent: List campaign priority levels effect: read questions: - What campaign priority levels are available to my account? - Which priority IDs can I use when submitting a campaign? instructions: - text: List the campaign priorities for my account. - text: Show me the available priority levels for campaign submission. method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/number-pool/attach'].post update: x-apievangelist-phrasing: intent: Attach a number pool to a campaign effect: write questions: - My campaign needs more than 49 numbers — how do I add a number pool? - Do I need to explain why a campaign requires a dedicated number pool? instructions: - text: Attach number pool {numberPoolId} to campaign {campaignId}. slots: numberPoolId: requestBody.numberPoolId campaignId: path.campaignId - text: Request a number pool for campaign {campaignId} because {reason}. slots: campaignId: path.campaignId reason: requestBody.reason method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaigns/{campaignId}/number-pool/detach'].post update: x-apievangelist-phrasing: intent: Detach the number pool from a campaign effect: write questions: - Can I remove the number pool from a campaign? - Why can't I detach a pool while the campaign has 50 or more numbers? instructions: - text: Detach the number pool from campaign {campaignId}. slots: campaignId: path.campaignId - text: Take campaign {campaignId} off its number pool. slots: campaignId: path.campaignId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/number-pools'].get update: x-apievangelist-phrasing: intent: List number pools I own effect: read questions: - Which number pools does my account own? - Can I filter my number pools by availability? instructions: - text: List my number pools. - text: Show number pools with availability {availability}. slots: availability: query.availability method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/documents'].post update: x-apievangelist-phrasing: intent: Upload a document for 10DLC registration effect: write questions: - How do I upload a supporting document for a brand or campaign registration? - Can I attach files to use in a 10DLC appeal? instructions: - text: Upload {document} as a number registration document. slots: document: requestBody.document - text: Upload the file {document} for my 10DLC campaign paperwork. slots: document: requestBody.document method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/documents/{documentId}'].get update: x-apievangelist-phrasing: intent: Download a 10DLC registration document effect: read questions: - Can I download a document I uploaded for number registration? - Who can access an uploaded 10DLC registration document? instructions: - text: Download number registration document {documentId}. slots: documentId: path.documentId - text: Fetch the 10DLC paperwork file {documentId}. slots: documentId: path.documentId method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/automatic-review/campaigns/{campaignUuid}'].post update: x-apievangelist-phrasing: intent: Run AI compliance review on an existing campaign effect: write questions: - Can an AI check my existing campaign for compliance issues before I register it? - What do I get back after submitting a campaign for automatic review? instructions: - text: Submit campaign {campaignUuid} for AI compliance review. slots: campaignUuid: path.campaignUuid - text: Run an automatic compliance check on existing campaign {campaignUuid}. slots: campaignUuid: path.campaignUuid method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/automatic-review'].post update: x-apievangelist-phrasing: intent: Run AI compliance review on draft campaign info effect: write questions: - Can I have my campaign details AI-reviewed before I even create the campaign? - What information goes into an automatic compliance review of a new program? instructions: - text: AI-review a new messaging program for brand {brandName} ({brandWebsite}) described as {programDescription}. slots: brandName: requestBody.brandName brandWebsite: requestBody.brandWebsite programDescription: requestBody.programDescription - text: Run a {reviewType} compliance review of draft campaign info for {brandName} with sample messages {messageExamples}. slots: reviewType: requestBody.reviewType brandName: requestBody.brandName messageExamples: requestBody.messageExamples method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/automatic-review/{requestUuid}'].get update: x-apievangelist-phrasing: intent: Get AI compliance review results effect: read questions: - Is my AI compliance review finished, and what did it find? - Where do I read the outcome of an automatic campaign review? instructions: - text: Get the AI review results for request {requestUuid}. slots: requestUuid: path.requestUuid - text: Show the compliance findings from review {requestUuid}. slots: requestUuid: path.requestUuid method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaign-builder'].post update: x-apievangelist-phrasing: intent: Have the campaign builder draft a campaign effect: write questions: - Can the platform build a campaign for me from my brand and use case? - What do I need to provide to start the campaign builder? instructions: - text: Build a {campaignType} campaign for brand {brandId} about {campaignIntent}, contact {contactEmail}, opt-in via {optInMethods}. slots: campaignType: requestBody.campaignType brandId: requestBody.brandId campaignIntent: requestBody.campaignIntent contactEmail: requestBody.contactEmail optInMethods: requestBody.optInMethods - text: 'Start the campaign builder for brand {brandId}: type {campaignType}, intent {campaignIntent}, email {contactEmail}, opt-ins {optInMethods}.' slots: brandId: requestBody.brandId campaignType: requestBody.campaignType campaignIntent: requestBody.campaignIntent contactEmail: requestBody.contactEmail optInMethods: requestBody.optInMethods method: generated generated: '2026-09-26' - target: $.paths['/number-registration/1/campaign-builder/{requestUuid}'].get update: x-apievangelist-phrasing: intent: Get campaign builder results effect: read questions: - Has the campaign builder finished drafting my campaign? - Where do I see what the campaign builder generated? instructions: - text: Get the campaign builder results for request {requestUuid}. slots: requestUuid: path.requestUuid - text: Show the campaign the builder produced for job {requestUuid}. slots: requestUuid: path.requestUuid method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/subscription/{channel}'].get update: x-apievangelist-phrasing: intent: List webhook event subscriptions for a channel effect: read questions: - Which event notification subscriptions do I have for a channel? - Can I filter my subscriptions by application or entity? instructions: - text: List my event subscriptions for channel {channel}. slots: channel: path.channel - text: Show {channel} subscriptions for application {applicationId}. slots: channel: path.channel applicationId: query.applicationId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/subscription/{channel}'].post update: x-apievangelist-phrasing: intent: Subscribe to event notifications on a channel effect: write questions: - How do I start receiving delivery and event notifications for a channel on my webhook? - Do I need a separate subscription for every channel? instructions: - text: Create an event subscription for channel {channel}. slots: channel: path.channel - text: Subscribe my webhook to {channel} notifications. slots: channel: path.channel method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/subscription/{channel}/{subscriptionId}'].get update: x-apievangelist-phrasing: intent: Get one event subscription effect: read questions: - Which events and profile does a particular subscription use? - Can I look up a subscription by its ID? instructions: - text: Show subscription {subscriptionId} on channel {channel}. slots: subscriptionId: path.subscriptionId channel: path.channel - text: Fetch the settings of {channel} subscription {subscriptionId}. slots: channel: path.channel subscriptionId: path.subscriptionId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/subscription/{channel}/{subscriptionId}'].put update: x-apievangelist-phrasing: intent: Change an event subscription effect: write questions: - Can I point an existing subscription at a different notification profile? - Is it possible to change which events a subscription delivers? instructions: - text: Update subscription {subscriptionId} on channel {channel}. slots: subscriptionId: path.subscriptionId channel: path.channel - text: Modify the {channel} subscription {subscriptionId} to use a new profile. slots: channel: path.channel subscriptionId: path.subscriptionId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/subscription/{channel}/{subscriptionId}'].delete update: x-apievangelist-phrasing: intent: Delete an event subscription effect: destructive questions: - How do I stop getting webhook notifications for one subscription? - Can I remove a subscription from a channel? instructions: - text: Delete subscription {subscriptionId} on channel {channel}. slots: subscriptionId: path.subscriptionId channel: path.channel - text: Unsubscribe {channel} subscription {subscriptionId}. slots: channel: path.channel subscriptionId: path.subscriptionId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/profiles'].get update: x-apievangelist-phrasing: intent: List notification profiles effect: read questions: - Which webhook notification profiles have I defined? - Can I page through all my notification profiles? instructions: - text: List my notification profiles. - text: Show page {page} of notification profiles, {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/profiles'].post update: x-apievangelist-phrasing: intent: Create a notification profile for a webhook effect: write questions: - How do I define the webhook URL, timeouts and rate limit for event notifications? - Can I reuse existing security settings in a new notification profile? instructions: - text: Create notification profile {profileId} with webhook {webhook}. slots: profileId: requestBody.profileId webhook: requestBody.webhook - text: Create profile {profileId} for webhook {webhook} with a read timeout of {readTimeout} ms and rate limit {rateLimit}. slots: profileId: requestBody.profileId webhook: requestBody.webhook readTimeout: requestBody.readTimeout rateLimit: requestBody.rateLimit method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/profiles/{profileId}'].get update: x-apievangelist-phrasing: intent: Get a notification profile effect: read questions: - What webhook and timeouts does one of my notification profiles use? - Can I fetch a single notification profile by ID? instructions: - text: Show notification profile {profileId}. slots: profileId: path.profileId - text: Fetch the webhook settings of profile {profileId}. slots: profileId: path.profileId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/profiles/{profileId}'].put update: x-apievangelist-phrasing: intent: Update a notification profile effect: write questions: - Can I change the webhook URL on an existing notification profile? - Is it possible to adjust connection timeouts on a profile? instructions: - text: Change the webhook on notification profile {profileId} to {webhook}. slots: profileId: path.profileId webhook: requestBody.webhook - text: Set the connect timeout of profile {profileId} to {connectTimeout} ms. slots: profileId: path.profileId connectTimeout: requestBody.connectTimeout method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/profiles/{profileId}'].delete update: x-apievangelist-phrasing: intent: Delete a notification profile effect: destructive questions: - Can I remove a notification profile I no longer use? - How do I delete a webhook profile? instructions: - text: Delete notification profile {profileId}. slots: profileId: path.profileId - text: Remove webhook profile {profileId}. slots: profileId: path.profileId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/security'].get update: x-apievangelist-phrasing: intent: List webhook security settings effect: read questions: - What authentication settings are configured for my webhooks? - Can I page through all saved webhook security settings? instructions: - text: List my webhook security settings. - text: Show page {page} of security settings. slots: page: query.page method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/security'].post update: x-apievangelist-phrasing: intent: Create webhook security settings effect: write questions: - How do I set up authentication credentials for notifications sent to my webhook? - Which credential types can webhook security settings use? instructions: - text: Create security settings {authId} of type {type}. slots: authId: requestBody.authId type: requestBody.type - text: Add webhook auth {authId} with credentials {credentials}. slots: authId: requestBody.authId credentials: requestBody.credentials method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/security/{authId}'].get update: x-apievangelist-phrasing: intent: Get one webhook security setting effect: read questions: - What credential type does a particular webhook security setting use? - Can I look up security settings by their ID? instructions: - text: Show security settings {authId}. slots: authId: path.authId - text: Fetch the webhook auth configuration {authId}. slots: authId: path.authId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/security/{authId}'].put update: x-apievangelist-phrasing: intent: Update webhook security settings effect: write questions: - Can I rotate the credentials on existing webhook security settings? - Is the auth type changeable after creation? instructions: - text: Update the credentials on security settings {authId} to {credentials}. slots: authId: path.authId credentials: requestBody.credentials - text: Change security settings {authId} to type {type}. slots: authId: path.authId type: requestBody.type method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/security/{authId}'].delete update: x-apievangelist-phrasing: intent: Delete webhook security settings effect: destructive questions: - Can I delete webhook auth settings I don't use? - How do I remove a security settings item? instructions: - text: Delete security settings {authId}. slots: authId: path.authId - text: Remove webhook auth {authId}. slots: authId: path.authId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/certificates'].get update: x-apievangelist-phrasing: intent: List webhook client certificates effect: read questions: - Which client certificates have I uploaded for my webhooks? - Can I search and sort my uploaded certificates? instructions: - text: List my uploaded certificates. - text: Search certificate details for {search}, sorted by {sortBy}. slots: search: query.search sortBy: query.sortBy method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/certificates'].post update: x-apievangelist-phrasing: intent: Upload a client certificate for webhooks effect: write questions: - How can my webhook verify that notifications really come from Infobip? - Can I upload a passphrase-protected certificate? instructions: - text: Upload certificate {certificateId} with content {certificateContent}. slots: certificateId: requestBody.certificateId certificateContent: requestBody.certificateContent - text: Add client certificate {certificateId} from {certificateContent} using passphrase {passphrase}. slots: certificateId: requestBody.certificateId certificateContent: requestBody.certificateContent passphrase: requestBody.passphrase method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/certificates/{certificateId}'].get update: x-apievangelist-phrasing: intent: Get details of a certificate effect: read questions: - What are the details of a certificate I uploaded? - Can I look up one certificate by its identifier? instructions: - text: Show details of certificate {certificateId}. slots: certificateId: path.certificateId - text: Fetch certificate {certificateId}'s details. slots: certificateId: path.certificateId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/certificates/{certificateId}'].delete update: x-apievangelist-phrasing: intent: Delete a certificate effect: destructive questions: - Why can't I delete a certificate that a notification profile uses? - Can I remove an old webhook certificate? instructions: - text: Delete certificate {certificateId}. slots: certificateId: path.certificateId - text: Remove webhook certificate {certificateId}. slots: certificateId: path.certificateId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/certificates/status'].get update: x-apievangelist-phrasing: intent: List certificate statuses effect: read questions: - Are any of my webhook certificates expired or invalid? - Can I see the status of all uploaded certificates at once? instructions: - text: List the statuses of my certificates. - text: Show certificate statuses matching {search}, direction {direction}. slots: search: query.search direction: query.direction method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/certificates/status/{certificateId}'].get update: x-apievangelist-phrasing: intent: Check one certificate's status effect: read questions: - Is a particular certificate still valid? - What's the current status of one webhook certificate? instructions: - text: Check the status of certificate {certificateId}. slots: certificateId: path.certificateId - text: Tell me if certificate {certificateId} is valid. slots: certificateId: path.certificateId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/1/certificates/test/webhook'].post update: x-apievangelist-phrasing: intent: Test a webhook connection with a certificate effect: read questions: - Can I check my webhook accepts connections with a certificate before going live? - Does the webhook connectivity test send a real notification? instructions: - text: Test the connection to {webhookUrl} using certificate {certificateId}. slots: webhookUrl: requestBody.webhookUrl certificateId: requestBody.certificateId - text: Check that webhook {webhookUrl} is reachable with certificate {certificateId}. slots: webhookUrl: requestBody.webhookUrl certificateId: requestBody.certificateId method: generated generated: '2026-09-26' - target: $.paths['/metrics/1/query-aggregate-data'].post update: x-apievangelist-phrasing: intent: Request aggregated traffic metrics effect: write questions: - Can I get aggregated messaging traffic statistics delivered to a callback? - How are aggregated traffic results returned to me? instructions: - text: Aggregate traffic data for {request} and post results to {callbackUrl}. slots: request: requestBody.request callbackUrl: requestBody.callbackUrl - text: Start a traffic metrics query {request} with callback {callbackUrl}. slots: request: requestBody.request callbackUrl: requestBody.callbackUrl method: generated generated: '2026-09-26' - target: $.paths['/metrics/1/requests/{requestId}'].get update: x-apievangelist-phrasing: intent: Check a traffic metrics request's status effect: read questions: - Is my aggregated traffic data query still running? - What's the status of a metrics aggregation request I started? instructions: - text: Check the status of metrics request {requestId}. slots: requestId: path.requestId - text: Tell me if traffic aggregation {requestId} has finished. slots: requestId: path.requestId method: generated generated: '2026-09-26' - target: $.paths['/billing/1/usage/query'].post update: x-apievangelist-phrasing: intent: Request billing usage cost data effect: write questions: - Can I get billing-grade cost data for my traffic? - How are billing usage results delivered — is it a one-time callback? instructions: - text: Query billing usage for {request} and deliver results to {callbackUrl}. slots: request: requestBody.request callbackUrl: requestBody.callbackUrl - text: Aggregate my messaging costs by {request}, posting to {callbackUrl}. slots: request: requestBody.request callbackUrl: requestBody.callbackUrl method: generated generated: '2026-09-26' - target: $.paths['/provisioning/2/sending-strategies'].get update: x-apievangelist-phrasing: intent: List sending strategies effect: read questions: - Which sender selection strategies have I configured? - Can I filter sending strategies by application or entity? instructions: - text: List my sending strategies. - text: Show sending strategies for application {applicationId}. slots: applicationId: query.applicationId method: generated generated: '2026-09-26' - target: $.paths['/provisioning/2/sending-strategies'].post update: x-apievangelist-phrasing: intent: Create a sending strategy effect: write questions: - Can I keep using the same sender for a recipient across conversations? - Is there a way to pick senders by the recipient's location or by priority? instructions: - text: Create a sending strategy on {channel} for country {destinationCountryCode}. slots: channel: requestBody.channel destinationCountryCode: requestBody.destinationCountryCode - text: Create a {channel} strategy for {destinationCountryCode} with sticky sender {useStickySender}. slots: channel: requestBody.channel destinationCountryCode: requestBody.destinationCountryCode useStickySender: requestBody.useStickySender method: generated generated: '2026-09-26' - target: $.paths['/provisioning/2/sending-strategies/{sendingStrategyId}'].delete update: x-apievangelist-phrasing: intent: Delete a sending strategy effect: destructive questions: - Can I remove a sending strategy I no longer want? - How do I delete a sender selection strategy by its ID? instructions: - text: Delete sending strategy {sendingStrategyId}. slots: sendingStrategyId: path.sendingStrategyId - text: Remove sender strategy {sendingStrategyId}. slots: sendingStrategyId: path.sendingStrategyId method: generated generated: '2026-09-26' - target: $.paths['/platform/1/blocklists'].get update: x-apievangelist-phrasing: intent: List blocklisted recipients effect: read questions: - Which phone numbers or addresses are on my blocklist? - Can I see blocklist entries across all my sub-accounts? - Is a specific recipient blocklisted for one sender? instructions: - text: List blocklist entries for destination {destination}. slots: destination: query.destination - text: Show blocklisted recipients for sender {sender} on {channel}. slots: sender: query.sender channel: query.channel - text: List blocklists created between {createdDateFrom} and {createdDateTo}. slots: createdDateFrom: query.createdDateFrom createdDateTo: query.createdDateTo method: generated generated: '2026-09-26' - target: $.paths['/platform/1/blocklists'].post update: x-apievangelist-phrasing: intent: Add recipients to the blocklist effect: write questions: - How do I stop messages going to someone who opted out? - Are duplicate blocklist entries ignored? instructions: - text: Add {blocklist} to the blocklist. slots: blocklist: requestBody.blocklist - text: 'Blocklist these destinations: {blocklist}.' slots: blocklist: requestBody.blocklist method: generated generated: '2026-09-26' - target: $.paths['/platform/1/blocklists'].delete update: x-apievangelist-phrasing: intent: Remove recipients from the blocklist effect: destructive questions: - Can I unblock someone who was blocklisted? - How do I remove matching entries from my blocklist? instructions: - text: Remove {blocklist} from the blocklist. slots: blocklist: requestBody.blocklist - text: 'Unblock these recipients: {blocklist}.' slots: blocklist: requestBody.blocklist method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs'].get update: x-apievangelist-phrasing: intent: List product catalogs effect: read questions: - Which catalogs have I created? - Can I filter catalogs by name or type? instructions: - text: List my catalogs. - text: Find catalogs named {name} of type {type}. slots: name: query.name type: query.type method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs'].post update: x-apievangelist-phrasing: intent: Create a catalog effect: write questions: - How do I create a new catalog to hold items? - What details does a new catalog need? instructions: - text: Create a catalog {name} of type {type} described as {description}. slots: name: requestBody.name type: requestBody.type description: requestBody.description - text: 'Make a new {type} catalog called {name}: {description}.' slots: type: requestBody.type name: requestBody.name description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{id}'].get update: x-apievangelist-phrasing: intent: Get a catalog effect: read questions: - What's the name and type of a particular catalog? - Can I fetch one catalog by ID? instructions: - text: Show catalog {id}. slots: id: path.id - text: Fetch the details of catalog {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{id}'].delete update: x-apievangelist-phrasing: intent: Delete a catalog effect: destructive questions: - Can I delete an entire catalog? - How do I remove a catalog I no longer need? instructions: - text: Delete catalog {id}. slots: id: path.id - text: Remove catalog {id} permanently. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{id}'].patch update: x-apievangelist-phrasing: intent: Rename or redescribe a catalog effect: write questions: - Can I change a catalog's name or description? - What happens to fields I leave out when updating a catalog? instructions: - text: Rename catalog {id} to {name}. slots: id: path.id name: requestBody.name - text: Change catalog {id}'s description to {description}. slots: id: path.id description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/fields'].get update: x-apievangelist-phrasing: intent: List a catalog's fields effect: read questions: - Which fields (columns) does my catalog have? - What is the schema of a catalog? instructions: - text: List the fields of catalog {catalogId}. slots: catalogId: path.catalogId - text: Show the columns defined in catalog {catalogId}. slots: catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/fields'].post update: x-apievangelist-phrasing: intent: Add fields to a catalog effect: write questions: - How many fields can a catalog have? - Can I add new columns to an existing catalog? instructions: - text: Add fields to catalog {catalogId}. slots: catalogId: path.catalogId - text: Create new columns in catalog {catalogId}. slots: catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/fields/{fieldId}'].get update: x-apievangelist-phrasing: intent: Get a catalog field effect: read questions: - What type is a specific catalog field? - Can I look up one field in a catalog? instructions: - text: Show field {fieldId} in catalog {catalogId}. slots: fieldId: path.fieldId catalogId: path.catalogId - text: Fetch the definition of column {fieldId} from catalog {catalogId}. slots: fieldId: path.fieldId catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/fields/{fieldId}'].delete update: x-apievangelist-phrasing: intent: Delete a catalog field effect: destructive questions: - Can I remove a column from my catalog? - How do I delete a field I no longer use? instructions: - text: Delete field {fieldId} from catalog {catalogId}. slots: fieldId: path.fieldId catalogId: path.catalogId - text: Remove column {fieldId} in catalog {catalogId}. slots: fieldId: path.fieldId catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/fields/{fieldId}'].patch update: x-apievangelist-phrasing: intent: Rename a catalog field effect: write questions: - Can I rename a field in my catalog? - Is a catalog column's name editable? instructions: - text: Rename field {fieldId} in catalog {catalogId} to {name}. slots: fieldId: path.fieldId catalogId: path.catalogId name: requestBody.name - text: Change column {fieldId} of catalog {catalogId} to be called {name}. slots: fieldId: path.fieldId catalogId: path.catalogId name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items'].get update: x-apievangelist-phrasing: intent: List or filter a catalog's items effect: read questions: - What items are in my catalog? - Can I filter catalog items by a column value? instructions: - text: List items in catalog {catalogId}. slots: catalogId: path.catalogId - text: Show items in catalog {catalogId} matching {queryFilter}. slots: catalogId: path.catalogId queryFilter: query.queryFilter method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items'].post update: x-apievangelist-phrasing: intent: Add items to a catalog effect: write questions: - How do I load products into a catalog? - Does adding catalog items report errors for rejected rows? instructions: - text: Add items to catalog {catalogId}. slots: catalogId: path.catalogId - text: Insert new products into catalog {catalogId}. slots: catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items'].delete update: x-apievangelist-phrasing: intent: Delete catalog items matching a filter effect: destructive questions: - Can I bulk delete catalog items that match a condition? - How do I clear out all items with a certain value? instructions: - text: Delete items in catalog {catalogId} matching {queryFilter}. slots: catalogId: path.catalogId queryFilter: query.queryFilter - text: Bulk remove catalog {catalogId} items where {queryFilter}. slots: catalogId: path.catalogId queryFilter: query.queryFilter method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items'].patch update: x-apievangelist-phrasing: intent: Bulk update catalog items matching a filter effect: write questions: - Can I update many catalog items at once based on a filter? - Is there a bulk edit for items that share a column value? instructions: - text: Update items in catalog {catalogId} matching {queryFilter}. slots: catalogId: path.catalogId queryFilter: query.queryFilter - text: Bulk edit catalog {catalogId} items where {queryFilter}. slots: catalogId: path.catalogId queryFilter: query.queryFilter method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items/{itemId}'].get update: x-apievangelist-phrasing: intent: Get a catalog item effect: read questions: - What values does a specific catalog item have? - Can I fetch one product from a catalog by its ID? instructions: - text: Show item {itemId} in catalog {catalogId}. slots: itemId: path.itemId catalogId: path.catalogId - text: Fetch product {itemId} from catalog {catalogId}. slots: itemId: path.itemId catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items/{itemId}'].delete update: x-apievangelist-phrasing: intent: Delete a catalog item effect: destructive questions: - Can I remove one specific product from a catalog? - How do I delete a single catalog item? instructions: - text: Delete item {itemId} from catalog {catalogId}. slots: itemId: path.itemId catalogId: path.catalogId - text: Remove product {itemId} in catalog {catalogId}. slots: itemId: path.itemId catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items/{itemId}'].patch update: x-apievangelist-phrasing: intent: Update a single catalog item effect: write questions: - Can I change the field values of one catalog item? - How do I edit a single product's details in a catalog? instructions: - text: Update item {itemId} in catalog {catalogId}. slots: itemId: path.itemId catalogId: path.catalogId - text: Edit the values of product {itemId} in catalog {catalogId}. slots: itemId: path.itemId catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/catalogs/1/catalogs/{catalogId}/items/count'].get update: x-apievangelist-phrasing: intent: Count items in a catalog effect: read questions: - How many items are in my catalog? - What's the total product count of a catalog? instructions: - text: Count the items in catalog {catalogId}. slots: catalogId: path.catalogId - text: Tell me how many products catalog {catalogId} holds. slots: catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/messages-api/1/messages'].post update: x-apievangelist-phrasing: intent: Send messages across channels effect: write questions: - Can I send one message that fails over from WhatsApp to SMS? - How do I send messages at scale on multiple channels with one API? instructions: - text: 'Send these messages: {messages}.' slots: messages: requestBody.messages - text: Send {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/messages-api/1/messages/validate'].post update: x-apievangelist-phrasing: intent: Validate messages before sending effect: read questions: - Can I check whether a multichannel message would be accepted without sending it? - Does message validation check each failover step? instructions: - text: 'Validate these messages without sending: {messages}.' slots: messages: requestBody.messages - text: Dry-run check {messages} with options {options}. slots: messages: requestBody.messages options: requestBody.options method: generated generated: '2026-09-26' - target: $.paths['/messages-api/1/events'].post update: x-apievangelist-phrasing: intent: Send typing indicators and other events effect: write questions: - Can I show a typing indicator to a user in a chat? - Which events besides messages can I send to a recipient's device? instructions: - text: 'Send these events: {events}.' slots: events: requestBody.events - text: Send a TYPING_STARTED event to recipients via {events}. slots: events: requestBody.events method: generated generated: '2026-09-26' - target: $.paths['/messages-api/1/reports'].get update: x-apievangelist-phrasing: intent: Fetch delivery reports effect: read questions: - My webhook was down — can I pull delivery reports instead? - Was a particular message actually delivered? instructions: - text: Fetch the latest delivery reports. - text: Get the delivery report for message {messageId}. slots: messageId: query.messageId - text: Pull up to {limit} {channel} delivery reports for bulk {bulkId}. slots: limit: query.limit channel: query.channel bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/messages-api/1/inbound'].get update: x-apievangelist-phrasing: intent: Fetch received inbound messages effect: read questions: - Can I pull messages people sent me if I don't have a webhook? - Will fetching inbound messages return the same message twice? instructions: - text: Fetch new inbound messages on {channel}. slots: channel: query.channel - text: Get up to {limit} received {channel} messages for application {applicationId}. slots: limit: query.limit channel: query.channel applicationId: query.applicationId method: generated generated: '2026-09-26' - target: $.paths['/signals/1/trusted-msisdns'].post update: x-apievangelist-phrasing: intent: Add phone numbers to the trusted list effect: write questions: - How do I make sure fraud protection never blocks messages to certain numbers? - Can I whitelist phone numbers in Signals? instructions: - text: Add {phoneNumbers} to the trusted numbers list. slots: phoneNumbers: requestBody.phoneNumbers - text: 'Trust these MSISDNs so Signals never blocks them: {phoneNumbers}.' slots: phoneNumbers: requestBody.phoneNumbers method: generated generated: '2026-09-26' - target: $.paths['/signals/1/trusted-msisdns'].delete update: x-apievangelist-phrasing: intent: Remove phone numbers from the trusted list effect: destructive questions: - Can I take numbers off the trusted MSISDN list? - How do I stop exempting a number from fraud blocking? instructions: - text: Remove {phoneNumbers} from the trusted numbers list. slots: phoneNumbers: requestBody.phoneNumbers - text: 'Untrust these MSISDNs: {phoneNumbers}.' slots: phoneNumbers: requestBody.phoneNumbers method: generated generated: '2026-09-26' - target: $.paths['/signals/1/trusted-msisdns/{msisdn}/check'].get update: x-apievangelist-phrasing: intent: Check if a phone number is trusted effect: read questions: - Is a particular phone number on my trusted list? - Will fraud protection skip blocking this number? instructions: - text: Check whether {msisdn} is on the trusted list. slots: msisdn: path.msisdn - text: Tell me if MSISDN {msisdn} is trusted. slots: msisdn: path.msisdn method: generated generated: '2026-09-26' - target: $.paths['/resource-management/1/inbound-message-configurations'].get update: x-apievangelist-phrasing: intent: List inbound message configurations effect: read questions: - What happens to inbound messages on a given sender or number? - Can I look up inbound configurations by keyword and channel? instructions: - text: List inbound configurations on {channel} for number {number}. slots: channel: query.channel number: query.number - text: Show {channel} inbound configuration for keyword {keyword} on resource {resource}. slots: channel: query.channel keyword: query.keyword resource: query.resource method: generated generated: '2026-09-26' - target: $.paths['/resource-management/1/inbound-message-configurations'].post update: x-apievangelist-phrasing: intent: Create or update an inbound message configuration effect: write questions: - How do I route inbound messages for a channel to an action? - Can I unset specific inbound configuration options? instructions: - text: Set up inbound handling on channel {channel}. slots: channel: requestBody.channel - text: Configure inbound {channel} messages with keyword {keyword}. slots: channel: requestBody.channel keyword: requestBody.keyword method: generated generated: '2026-09-26' - target: $.paths['/resource-management/1/inbound-message-configurations/{configurationKey}'].delete update: x-apievangelist-phrasing: intent: Delete an inbound message configuration effect: destructive questions: - Can I remove an inbound routing rule? - How do I delete an inbound configuration by its key? instructions: - text: Delete inbound configuration {configurationKey}. slots: configurationKey: path.configurationKey - text: Remove the inbound message rule {configurationKey}. slots: configurationKey: path.configurationKey method: generated generated: '2026-09-26' - target: $.paths['/resources/1/resources'].post update: x-apievangelist-phrasing: intent: Search senders and numbers I own effect: read questions: - Which senders and numbers are assigned to my account? - Does the resource search include numbers I could still buy? instructions: - text: Search my owned resources of type {resourceType}. slots: resourceType: requestBody.resourceType - text: Show page {page} of my {resourceType} resources. slots: page: query.page resourceType: requestBody.resourceType method: generated generated: '2026-09-26' - target: $.paths['/resources/1/coverage-lookup'].post update: x-apievangelist-phrasing: intent: Look up coverage for a sender or number effect: read questions: - Which networks does a given sender or phone number cover in a country? - Can I check coverage for one resource by type? instructions: - text: Look up coverage for a {resourceType} resource. slots: resourceType: requestBody.resourceType - text: Check country coverage of my {resourceType} sender. slots: resourceType: requestBody.resourceType method: generated generated: '2026-09-26' - target: $.paths['/resources/1/requirements-lookup'].post update: x-apievangelist-phrasing: intent: Look up requirements to request a resource effect: read questions: - What documents do I need to get a sender or number in a country? - Which requirements apply before I request a new resource? instructions: - text: Look up the requirements for requesting a resource. - text: Tell me what's needed before I request a new sender. method: generated generated: '2026-09-26' - target: $.paths['/resources/1/requests'].get update: x-apievangelist-phrasing: intent: List resource requests effect: read questions: - What's the status of the sender and number requests I've submitted? - Can I filter resource requests by country or status? instructions: - text: List my resource requests in status {status}. slots: status: query.status - text: Show {type} resource requests for country {countryCode}. slots: type: query.type countryCode: query.countryCode method: generated generated: '2026-09-26' - target: $.paths['/resources/1/requests'].post update: x-apievangelist-phrasing: intent: Request a new sender or number effect: write questions: - How do I apply for a new sender ID or number? - Do resource requests cost money? instructions: - text: Submit a resource request. - text: Apply for a new sender through a resource request. method: generated generated: '2026-09-26' - target: $.paths['/resources/1/requests/{id}'].get update: x-apievangelist-phrasing: intent: Get a resource request effect: read questions: - Where does one of my resource requests stand? - Can I see a single resource request's details? instructions: - text: Show resource request {id}. slots: id: path.id - text: Fetch the status of resource request {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/resources/1/requests/{id}'].patch update: x-apievangelist-phrasing: intent: Resubmit requirements on a resource request effect: write questions: - Infobip asked for corrections — how do I update my resource request? - Do I have to resend all requirements or just the changed ones? instructions: - text: Update resource request {id} with requirements {requirements}. slots: id: path.id requirements: requestBody.requirements - text: Resubmit the full requirements {requirements} for request {id}. slots: requirements: requestBody.requirements id: path.id method: generated generated: '2026-09-26' - target: $.paths['/resources/1/requests/{id}/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a resource request effect: destructive questions: - Can I withdraw a sender or number request? - In which statuses can a resource request be canceled? instructions: - text: Cancel resource request {id}. slots: id: path.id - text: Withdraw my resource request {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/resources/1/documents'].post update: x-apievangelist-phrasing: intent: Upload a supporting document for a resource request effect: write questions: - How do I upload paperwork to attach as a requirement on a sender or number request? - Must a document be uploaded before I reference it in a resource request? instructions: - text: Upload {document} as a resource request requirement. slots: document: requestBody.document - text: Upload the file {document} to support my sender request. slots: document: requestBody.document method: generated generated: '2026-09-26' - target: $.paths['/resources/1/documents/{documentId}'].get update: x-apievangelist-phrasing: intent: Download a resource request document effect: read questions: - Can I download the template or sample document for a resource requirement? - Where do I retrieve a file I uploaded for a resource request? instructions: - text: Download resource document {documentId}. slots: documentId: path.documentId - text: Fetch the requirement template or upload {documentId}. slots: documentId: path.documentId method: generated generated: '2026-09-26' - target: $.paths['/resources/1/documents/{documentId}'].delete update: x-apievangelist-phrasing: intent: Delete an uploaded resource document effect: destructive questions: - Can I delete a document I uploaded for a resource request? - How do I remove a wrong file from my resource paperwork? instructions: - text: Delete uploaded document {documentId}. slots: documentId: path.documentId - text: Remove the resource requirement file {documentId}. slots: documentId: path.documentId method: generated generated: '2026-09-26'