# 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 Connectivity API version: 1.0.0 extends: openapi/infobip-connectivity-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: 35 - target: $.paths['/number/1/notify'].post update: x-apievangelist-phrasing: intent: Look up phone number context with a callback report effect: read questions: - Can Number Context lookup results be pushed to my callback server instead of returned right away? - How do I get lookup reports for a batch of phone numbers delivered to a URL as XML or JSON? instructions: - text: Run an async Number Context lookup for {to} and send the report to {notifyUrl}. slots: to: requestBody.to notifyUrl: requestBody.notifyUrl - text: Look up number context for {to} asynchronously and deliver the report as {notifyContentType}. slots: to: requestBody.to notifyContentType: requestBody.notifyContentType method: generated generated: '2026-09-26' - target: $.paths['/number/1/query'].post update: x-apievangelist-phrasing: intent: Look up phone number context immediately effect: read questions: - How can I find out the network and status information for a phone number in Infobip and get the answer in the same response? - What does a synchronous Number Context query return for numbers in international format? instructions: - text: Query Number Context for {to} right now and return the results in the response. slots: to: requestBody.to - text: 'Do an immediate number context lookup on these phone numbers: {to}.' slots: to: requestBody.to method: generated generated: '2026-09-26' - target: $.paths['/number/1/logs'].get update: x-apievangelist-phrasing: intent: Review logs of past Number Context lookups effect: read questions: - Where can I see a history of the number lookups I've already sent? - Can I filter my Number Context lookup logs by mobile country code and network code? - How many past lookup log records can I pull back at once? instructions: - text: Show my Number Context lookup logs for destination {to}. slots: to: query.to - text: List number lookup logs sent between {sentSince} and {sentUntil}, up to {limit} records. slots: sentSince: query.sentSince sentUntil: query.sentUntil limit: query.limit - text: Get the lookup log entries for bulk {bulkId}. slots: bulkId: query.bulkId method: generated generated: '2026-09-26' - target: $.paths['/number-activation-state/1/network-reports'].get update: x-apievangelist-phrasing: intent: List network activation-state reports effect: read questions: - Which network reports on number activation state are available for my account? - Can I find network reports generated within a certain date range or by a specific mobile network? instructions: - text: List the network reports metadata from {networkName}. slots: networkName: query.networkName - text: Show network reports covering {dateFrom} to {dateTo}. slots: dateFrom: query.dateFrom dateTo: query.dateTo - text: Page through network report metadata, page {page} with {size} per page. slots: page: query.page size: query.size method: generated generated: '2026-09-26' - target: $.paths['/number-activation-state/1/network-reports/{reportId}/records'].get update: x-apievangelist-phrasing: intent: Read number activation changes in a network report effect: read questions: - How do I see which destination numbers changed activation state inside one network report? - Is the content of a single network report paginated? instructions: - text: Get the activation state change records from network report {reportId}. slots: reportId: path.reportId - text: Show page {page} of the records in network report {reportId}. slots: page: query.page reportId: path.reportId method: generated generated: '2026-09-26' - target: $.paths['/mi/verification/1/verify'].post update: x-apievangelist-phrasing: intent: Silently verify a user's phone number via the operator effect: write questions: - How can I confirm a user owns their phone number over the mobile data connection without sending an OTP? - What callback do I need to receive the result of a silent mobile verification? instructions: - text: Start a silent mobile verification for {phoneNumber} with consent granted and post the result to {callbackUrl}. slots: phoneNumber: requestBody.phoneNumber callbackUrl: requestBody.callbackUrl - text: Silently verify {phoneNumber} through the operator and redirect the device to {returnUrl} when finished. slots: phoneNumber: requestBody.phoneNumber returnUrl: requestBody.returnUrl method: generated generated: '2026-09-26' - target: $.paths['/mi/verification/1/verify/advanced'].post update: x-apievangelist-phrasing: intent: Silent number check with SIM swap check and SMS fallback effect: write questions: - Can I run a SIM swap check before verifying a phone number silently? - Is there a way to fall back to an SMS if silent mobile verification fails? instructions: - text: Run advanced silent verification for {phoneNumber} with SMS failover {smsFailover}, sending the result to {callbackUrl}. slots: phoneNumber: requestBody.phoneNumber smsFailover: requestBody.smsFailover callbackUrl: requestBody.callbackUrl - text: Check {phoneNumber} for a SIM swap using {simSwapCheck} and then verify it silently. slots: phoneNumber: requestBody.phoneNumber simSwapCheck: requestBody.simSwapCheck method: generated generated: '2026-09-26' - target: $.paths['/mi/verification/1/verify/synchronous'].post update: x-apievangelist-phrasing: intent: Verify a phone number synchronously by device IP effect: read questions: - Can I get a silent verification answer in the same response rather than via a callback in Brazil? - Which device IP and port details are required for synchronous phone number verification? instructions: - text: Synchronously verify {phoneNumber} for the device at {deviceIp} port {devicePort}. slots: phoneNumber: requestBody.phoneNumber deviceIp: requestBody.deviceIp devicePort: requestBody.devicePort - text: Get an immediate silent verification result for {phoneNumber} from device IP {deviceIp} on port {devicePort}. slots: phoneNumber: requestBody.phoneNumber deviceIp: requestBody.deviceIp devicePort: requestBody.devicePort method: generated generated: '2026-09-26' - target: $.paths['/mi/verification/1/zero-rated/init'].post update: x-apievangelist-phrasing: intent: Start a zero-rated silent verification request effect: write questions: - How do I initialize a zero-rated phone verification so the end user isn't charged for data? - What's the first step of the zero-rated verification flow in Brazil? instructions: - text: Initialize a zero-rated verification request for {phoneNumber}. slots: phoneNumber: requestBody.phoneNumber - text: Set up zero-rated verification for {phoneNumber} and send the device back to {returnUrl} afterwards. slots: phoneNumber: requestBody.phoneNumber returnUrl: requestBody.returnUrl method: generated generated: '2026-09-26' - target: $.paths['/mi/verification/1/verify/zero-rated'].post update: x-apievangelist-phrasing: intent: Complete a zero-rated silent verification effect: write questions: - Once a zero-rated request is initialized, how do I finish verifying the phone number? - Which token ties the zero-rated verify call back to its initialization? instructions: - text: Complete the zero-rated verification using token {token}. slots: token: requestBody.token - text: Run the zero-rated verify step for request {token}. slots: token: requestBody.token method: generated generated: '2026-09-26' - target: $.paths['/mi/number-intelligence/1/query'].post update: x-apievangelist-phrasing: intent: Query operator attributes for a phone number effect: read questions: - What operator-held attributes can I query about a mobile number with Number Intelligence? - How are Number Intelligence query results delivered back to me? instructions: - text: Query Number Intelligence attributes {attributes} for {phoneNumber} and send results to {callbackUrl}. slots: attributes: requestBody.attributes phoneNumber: requestBody.phoneNumber callbackUrl: requestBody.callbackUrl - text: Ask the operator for number intelligence on {phoneNumber} using {attributes}. slots: phoneNumber: requestBody.phoneNumber attributes: requestBody.attributes method: generated generated: '2026-09-26' - target: $.paths['/mi/simswap/1/check'].post update: x-apievangelist-phrasing: intent: Check a number for SIM swap in the last N hours effect: read questions: - Has this customer's SIM been swapped within the last few hours, checked with the owner's consent? - Can the mobile identity SIM swap check look back over a period I choose in hours? instructions: - text: Check whether {phoneNumber} had a SIM swap in the last {period} hours, with the owner's consent. slots: phoneNumber: requestBody.phoneNumber period: requestBody.period - text: Run a consent-based mobile identity SIM swap check on {phoneNumber} for {period} hours. slots: phoneNumber: requestBody.phoneNumber period: requestBody.period method: generated generated: '2026-09-26' - target: $.paths['/mi/national-identity-number/1/check'].post update: x-apievangelist-phrasing: intent: Check a phone number belongs to a national ID effect: read questions: - Can I confirm that a mobile number is registered to the person with a given national ID number? - Which document type do I need to pass for a national identity number match in Colombia? instructions: - text: Check that {phoneNumber} belongs to national ID {nationalId}. slots: phoneNumber: requestBody.phoneNumber nationalId: requestBody.nationalId - text: Match {phoneNumber} against national ID {nationalId} using document type {documentType}. slots: phoneNumber: requestBody.phoneNumber nationalId: requestBody.nationalId documentType: requestBody.documentType method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/scenarios'].get update: x-apievangelist-phrasing: intent: List biometrics scenarios enabled on my account effect: read questions: - Which biometrics scenarios are enabled for my account? - Can I see only the scenarios for a particular application type like KYC or enrollment? instructions: - text: List all biometrics scenarios available to me. - text: Show biometrics scenarios for application types {applicationTypes}. slots: applicationTypes: query.applicationTypes method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/extraction/sessions'].get update: x-apievangelist-phrasing: intent: Get a biometrics extraction session effect: read questions: - How do I check the current state of a document extraction session? - What details come back when I fetch an extraction session by its ID? instructions: - text: Get extraction session {sessionId}. slots: sessionId: header.X-Session-Id - text: Show me the status of the data extraction session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/extraction/sessions'].post update: x-apievangelist-phrasing: intent: Start a biometrics extraction session effect: write questions: - How do I kick off an extraction flow so an end user can capture their document data? - What webhook and scenario are required to start an extraction session? instructions: - text: Create an extraction session for scenario {scenarioName} with location {locationInfo}, reporting status to {webhook}. slots: scenarioName: requestBody.scenarioName locationInfo: requestBody.locationInfo webhook: requestBody.webhook - text: Start a data extraction session for user {partnerReference} using scenario {scenarioName}. slots: partnerReference: requestBody.partnerReference scenarioName: requestBody.scenarioName method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/extraction/sessions'].delete update: x-apievangelist-phrasing: intent: Abort a biometrics extraction session effect: destructive questions: - Can I cancel an extraction session that's still in progress? - How do I stop a document extraction flow a user abandoned? instructions: - text: Abort extraction session {sessionId}. slots: sessionId: header.X-Session-Id - text: Cancel the in-progress data extraction session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/kyc/sessions'].get update: x-apievangelist-phrasing: intent: Get a biometrics KYC session effect: read questions: - How can I look up the progress of a know-your-customer biometrics session? - What does a KYC session return once the user completes the scenario? instructions: - text: Get KYC session {sessionId}. slots: sessionId: header.X-Session-Id - text: Show the current status of know-your-customer session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/kyc/sessions'].post update: x-apievangelist-phrasing: intent: Start a biometrics KYC session effect: write questions: - How do I start a KYC identity check where the user scans their ID and face? - Can I send the user to my own page after they finish or cancel a KYC scenario? instructions: - text: Create a KYC session for scenario {scenarioName} with location {locationInfo} and webhook {webhook}. slots: scenarioName: requestBody.scenarioName locationInfo: requestBody.locationInfo webhook: requestBody.webhook - text: Start KYC for user {partnerReference}, sending them to {successUrl} on success. slots: partnerReference: requestBody.partnerReference successUrl: requestBody.successUrl method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/kyc/sessions'].delete update: x-apievangelist-phrasing: intent: Abort a biometrics KYC session effect: destructive questions: - Is it possible to abort a KYC session before the user finishes? - How do I terminate an unfinished know-your-customer check? instructions: - text: Abort KYC session {sessionId}. slots: sessionId: header.X-Session-Id - text: Cancel the know-your-customer session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/enrollment/sessions'].get update: x-apievangelist-phrasing: intent: Get a biometrics enrollment session effect: read questions: - How do I check whether a user's biometric enrollment session has completed? - What information can I retrieve about an enrollment session by its ID? instructions: - text: Get enrollment session {sessionId}. slots: sessionId: header.X-Session-Id - text: Show the status of biometric enrollment session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/enrollment/sessions'].post update: x-apievangelist-phrasing: intent: Start a biometrics enrollment session effect: write questions: - How do I enroll a user's biometrics so I can verify them later? - Can I choose whether Infobip retains data from an enrollment session? instructions: - text: Create an enrollment session for scenario {scenarioName} with location {locationInfo} and webhook {webhook}. slots: scenarioName: requestBody.scenarioName locationInfo: requestBody.locationInfo webhook: requestBody.webhook - text: Enroll user {partnerReference} biometrically with data retention set to {retainData}. slots: partnerReference: requestBody.partnerReference retainData: requestBody.retainData method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/enrollment/sessions'].delete update: x-apievangelist-phrasing: intent: Abort a biometrics enrollment session effect: destructive questions: - Can I cancel a biometric enrollment that's partway through? - What happens if I need to stop an enrollment session I started? instructions: - text: Abort enrollment session {sessionId}. slots: sessionId: header.X-Session-Id - text: Cancel the biometric enrollment session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/verification/sessions'].get update: x-apievangelist-phrasing: intent: Get a biometrics verification session effect: read questions: - How do I find out whether a biometric verification session passed? - What does a biometrics verification session return when I fetch it? instructions: - text: Get biometrics verification session {sessionId}. slots: sessionId: header.X-Session-Id - text: Show the result of biometric verification session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/verification/sessions'].post update: x-apievangelist-phrasing: intent: Start a biometrics verification session effect: write questions: - How do I verify a returning user against biometric data they enrolled? - Can I pass biometric data directly when starting a verification session? instructions: - text: Create a biometrics verification session for scenario {scenarioName} with location {locationInfo} and webhook {webhook}. slots: scenarioName: requestBody.scenarioName locationInfo: requestBody.locationInfo webhook: requestBody.webhook - text: Start biometric verification for user {partnerReference} using biometric data {biometricData}. slots: partnerReference: requestBody.partnerReference biometricData: requestBody.biometricData method: generated generated: '2026-09-26' - target: $.paths['/biometrics/1/verification/sessions'].delete update: x-apievangelist-phrasing: intent: Abort a biometrics verification session effect: destructive questions: - Can a biometric verification session be aborted before it finishes? - How do I stop a face verification session that's no longer needed? instructions: - text: Abort biometrics verification session {sessionId}. slots: sessionId: header.X-Session-Id - text: Cancel the biometric verification session {sessionId}. slots: sessionId: header.X-Session-Id method: generated generated: '2026-09-26' - target: $.paths['/camara/number-verification/v0/authorize'].get update: x-apievangelist-phrasing: intent: Authorize a device on the operator network for verification effect: read questions: - How do I redirect a phone to its mobile operator to authorize CAMARA number verification? - Where does the authorization code come back after the device is redirected? instructions: - text: Start operator authorization for client {clientId} and redirect the device to {redirectUrl}. slots: clientId: query.clientId redirectUrl: query.redirectUrl - text: Authorize the device for number verification as client {clientId}, returning to {redirectUrl} with login hint {login_hint}. slots: clientId: query.clientId redirectUrl: query.redirectUrl login_hint: query.login_hint method: generated generated: '2026-09-26' - target: $.paths['/camara/number-verification/v0/verify'].post update: x-apievangelist-phrasing: intent: Verify phone number possession via network (v0) effect: read questions: - After network authorization, how do I confirm the device's data connection matches the phone number? - Does the v0 CAMARA number verification need the code from the authorize redirect? instructions: - text: Verify {phoneNumber} over the operator data connection with the v0 CAMARA endpoint. slots: phoneNumber: requestBody.phoneNumber - text: Confirm possession of {phoneNumber} using authorization code {code}. slots: phoneNumber: requestBody.phoneNumber code: header.X-Correlator method: generated generated: '2026-09-26' - target: $.paths['/camara/number-verification/v2/dcql'].post update: x-apievangelist-phrasing: intent: Generate a SIM-based credential request for Android effect: write questions: - How do I build the credential request that Android Credential Manager needs for SIM-based verification? - Which carrier IDs and nonce must I supply for a TS.43 DCQL request? instructions: - text: Generate a DCQL request for use case {useCase} with nonce {nonce} and carriers {carrierIds}. slots: useCase: requestBody.useCase nonce: requestBody.nonce carrierIds: requestBody.carrierIds - text: Create a TS.43 credential request for carriers {carrierIds} using nonce {nonce} and use case {useCase}. slots: carrierIds: requestBody.carrierIds nonce: requestBody.nonce useCase: requestBody.useCase method: generated generated: '2026-09-26' - target: $.paths['/camara/number-verification/v2/device-phone-number'].get update: x-apievangelist-phrasing: intent: Get the phone number tied to a device SIM effect: read questions: - Can I retrieve the phone number of the SIM in a user's device instead of asking them to type it? - What token do I pass to get the device phone number in the SIM-based flow? instructions: - text: Get the phone number for the device SIM using vp_token {vpToken}. slots: vpToken: header.X-Correlator - text: Look up which phone number belongs to this device's SIM. method: generated generated: '2026-09-26' - target: $.paths['/camara/number-verification/v2/verify'].post update: x-apievangelist-phrasing: intent: Verify phone number possession via SIM card (v2) effect: read questions: - How do I verify a user's phone number against their SIM card with the v2 CAMARA API? - Can I use the Android Credential Manager token to verify a phone number? instructions: - text: Verify {phoneNumber} against the device SIM using the v2 endpoint. slots: phoneNumber: requestBody.phoneNumber - text: Check SIM possession of {phoneNumber} with vp_token {vpToken}. slots: phoneNumber: requestBody.phoneNumber vpToken: header.X-Correlator method: generated generated: '2026-09-26' - target: $.paths['/camara/location/v0/verify'].post update: x-apievangelist-phrasing: intent: Verify a device is within a given area effect: read questions: - Can I check whether a user's device is currently within a certain radius of a location? - What latitude, longitude and radius does device location verification accept? instructions: - text: Verify device {ueId} is within {accuracy} km of {latitude}, {longitude}. slots: ueId: requestBody.ueId accuracy: requestBody.accuracy latitude: requestBody.latitude longitude: requestBody.longitude - text: Check whether user equipment {ueId} on port {uePort} is inside the area around {latitude}, {longitude} with radius {accuracy} km. slots: ueId: requestBody.ueId uePort: requestBody.uePort latitude: requestBody.latitude longitude: requestBody.longitude accuracy: requestBody.accuracy method: generated generated: '2026-09-26' - target: $.paths['/camara/sim-swap/v0/check'].post update: x-apievangelist-phrasing: intent: Check for a recent SIM swap (CAMARA) effect: read questions: - Can the CAMARA SIM swap API tell me if a number's SIM changed within a maximum age? - Is a phone number safe from recent SIM swap fraud before I approve a transaction? instructions: - text: Use CAMARA to check if {phoneNumber} had a SIM swap within {maxAge} hours. slots: phoneNumber: requestBody.phoneNumber maxAge: requestBody.maxAge - text: Run a CAMARA SIM swap check on {phoneNumber}. slots: phoneNumber: requestBody.phoneNumber method: generated generated: '2026-09-26' - target: $.paths['/camara/sim-swap/v0/retrieve-date'].post update: x-apievangelist-phrasing: intent: Get the date of the last SIM swap effect: read questions: - When was the SIM last swapped for a given phone number? - Can I retrieve the exact date of the most recent SIM change rather than a yes/no answer? instructions: - text: Get the last SIM swap date for {phoneNumber}. slots: phoneNumber: requestBody.phoneNumber - text: Tell me when {phoneNumber} last changed SIM cards. slots: phoneNumber: requestBody.phoneNumber method: generated generated: '2026-09-26' - target: $.paths['/camara/kyc-match/v0.3/match'].post update: x-apievangelist-phrasing: intent: Match customer details against operator records effect: read questions: - Can I compare a customer's name, address and birthdate with what their mobile operator has on file? - Which customer fields can a KYC Match check against operator data? instructions: - text: Match {phoneNumber} against operator records for {givenName} {familyName} born {birthdate}. slots: phoneNumber: requestBody.phoneNumber givenName: requestBody.givenName familyName: requestBody.familyName birthdate: requestBody.birthdate - text: Run a KYC match on {phoneNumber} with ID document {idDocument} and email {email}. slots: phoneNumber: requestBody.phoneNumber idDocument: requestBody.idDocument email: requestBody.email - text: Check that the operator's address for {phoneNumber} matches {address}. slots: phoneNumber: requestBody.phoneNumber address: requestBody.address method: generated generated: '2026-09-26'