{
"openapi": "3.1.0",
"info": {
"version": "2.0.0",
"x-endpoint-cost": "light",
"title": "Telnyx API",
"description": "Telnyx provides global communications and connectivity APIs for developers \u2014 including SIP trunking, programmable voice, SMS, MMS, WhatsApp Business Messaging, Call Control, Fax, Wireless (IoT & eSIM), Phone Numbers (DID provisioning & porting), Emergency Services, and Network APIs for private interconnects and edge connectivity. Build, scale, and manage voice, messaging, and data networks with Telnyx's carrier-grade global infrastructure and API-first platform.",
"contact": {
"email": "support@telnyx.com"
}
},
"servers": [
{
"url": "https://api.telnyx.com/v2",
"description": "Version 2.0.0 of the Telnyx API"
}
],
"security": [
{
"bearerAuth": []
}
],
"tags": [
{
"name": "Access Tokens",
"description": "Access Tokens creation"
},
{
"name": "Addresses",
"description": "Operations to work with Address records. Address records are emergency-validated addresses meant to be associated with phone numbers. They are validated for emergency usage purposes at creation time, although you may validate them separately with a custom workflow using the ValidateAddress operation separately. Address records are not usable for physical orders, such as for Telnyx SIM cards, please use UserAddress for that. It is not possible to entirely skip emergency service validation for Address records; if an emergency provider for a phone number rejects the address then it cannot be used on a phone number. To prevent records from getting out of sync, Address records are immutable and cannot be altered once created. If you realize you need to alter an address, a new record must be created with the differing address."
},
{
"name": "Assistants",
"description": "Configure AI assistant specifications"
},
{
"name": "Audit Logs",
"description": "Audit log operations."
},
{
"name": "AutoRechargePreferences",
"description": "V2 Auto Recharge Preferences API"
},
{
"name": "Billing",
"description": "Billing operations"
},
{
"name": "Billing Groups",
"description": "Billing groups operations"
},
{
"name": "Brands",
"description": "Brand operations"
},
{
"name": "Bucket SSL Certificate",
"description": "SSL certificate operations"
},
{
"name": "Bucket Usage",
"description": "Bucket Usage operations"
},
{
"name": "Bulk Phone Number Campaigns",
"description": "Phone number campaign bulk assignment"
},
{
"name": "Bulk Phone Number Operations",
"description": "Background jobs performed over a batch of phone numbers"
},
{
"name": "Bulk Small Business",
"description": "Endpoints for creating and checking the status of campaigns, brands, and phone numbers"
},
{
"name": "Bundle Pricing",
"description": "Bundle Pricing operations"
},
{
"name": "CDR Reports",
"description": "Voice batch detail records"
},
{
"name": "CDR Usage Reports",
"description": "Voice usage reports"
},
{
"name": "Call Commands",
"description": "Call Control command operations"
},
{
"name": "Call Control Applications",
"description": "Call Control applications operations"
},
{
"name": "Call Information",
"description": "Call information"
},
{
"name": "Call Recordings",
"description": "Call Recordings operations."
},
{
"name": "Callbacks",
"description": "Callbacks"
},
{
"name": "Campaign",
"description": "Campaign operations"
},
{
"name": "Chat",
"description": "Generate text with LLMs"
},
{
"name": "Clusters",
"description": "Identify common themes and patterns in your embedded documents"
},
{
"name": "Comments",
"description": "Read messages from the Telnyx vetting team and reply with clarifying information."
},
{
"name": "Conference Commands",
"description": "Conference command operations"
},
{
"name": "Connections",
"description": "Connections operations"
},
{
"name": "Conversations",
"description": "Manage historical AI assistant conversations"
},
{
"name": "Country Coverage",
"description": "Country Coverage"
},
{
"name": "Credential Connections",
"description": "Credential connection operations"
},
{
"name": "Credentials",
"description": "Credentials operations"
},
{
"name": "Customer Service Record",
"description": "Customer Service Record operations"
},
{
"name": "Data Migration",
"description": "Migrate data from an external provider into Telnyx Cloud Storage"
},
{
"name": "Debugging",
"description": "Call Control debugging"
},
{
"name": "Detail Records",
"description": "Detail Records operations"
},
{
"name": "Dialogflow Integration",
"description": "Dialogflow Connection Operations."
},
{
"name": "Display Identity Records",
"description": "A Display Identity Record (DIR) is the verified calling identity (display name, logo, call reasons) shown to recipients on outbound calls."
},
{
"name": "Documents",
"description": "Documents"
},
{
"name": "Dynamic Emergency Addresses",
"description": "Dynamic emergency address operations"
},
{
"name": "Dynamic Emergency Endpoints",
"description": "Dynamic Emergency Endpoints"
},
{
"name": "Embeddings",
"description": "Embed documents and perform text searches"
},
{
"name": "Enterprises",
"description": "Manage the legal-entity record that owns your DIRs and phone numbers."
},
{
"name": "External Connections",
"description": "External Connections operations"
},
{
"name": "FQDN Connections",
"description": "FQDN connection operations"
},
{
"name": "FQDNs",
"description": "FQDN operations"
},
{
"name": "File-based Text-to-Speech",
"description": "Turn audio into text or text into audio."
},
{
"name": "Fine Tuning",
"description": "Customize LLMs for your unique needs"
},
{
"name": "Global IPs",
"description": "Global IPs"
},
{
"name": "Hosted Numbers",
"description": "Manage your messaging hosted numbers"
},
{
"name": "IP Addresses",
"description": "IP Address Operations"
},
{
"name": "IP Connections",
"description": "IP connection operations"
},
{
"name": "IP Ranges",
"description": "IP Range Operations"
},
{
"name": "IPs",
"description": "IP operations"
},
{
"name": "Inexplicit Number Orders",
"description": "Inexplicit number orders for bulk purchasing without specifying exact numbers"
},
{
"name": "Infringement Claims",
"description": "Trademark or impersonation claims filed against your DIR. Customers may contest a claim with supporting evidence."
},
{
"name": "Integration Secrets",
"description": "Store and retrieve integration secrets"
},
{
"name": "Inventory Level",
"description": "Inventory Level"
},
{
"name": "Invoice",
"description": "Invoice operations"
},
{
"name": "MDR Detailed Reports",
"description": "Messaging batch detail records"
},
{
"name": "MDR Usage Reports",
"description": "Messaging usage reports"
},
{
"name": "Managed Accounts",
"description": "Managed Accounts operations"
},
{
"name": "Media Storage API",
"description": "Media Storage operations"
},
{
"name": "Messages",
"description": "Messages"
},
{
"name": "Messaging URL Domains",
"description": "Messaging URL Domains"
},
{
"name": "Mobile Network Operators",
"description": "Mobile network operators operations"
},
{
"name": "Mobile Phone Numbers",
"description": "Mobile phone number operations"
},
{
"name": "Mobile Voice Connections",
"description": "Mobile voice connection operations"
},
{
"name": "Monthly Charges",
"description": "Monthly Charges Report"
},
{
"name": "Networks",
"description": "Network operations"
},
{
"name": "Notifications",
"description": "Notification settings operations"
},
{
"name": "Number Lookup",
"description": "Look up phone number data"
},
{
"name": "Number Portout",
"description": "Number portout operations"
},
{
"name": "Number Settings",
"description": "Configure your phone numbers"
},
{
"name": "OTA updates",
"description": "OTA updates operations"
},
{
"name": "OpenAI Embeddings",
"description": "OpenAI-compatible embeddings endpoints for generating vector representations of text"
},
{
"name": "Opt-Out Management",
"description": "Opt-Out Management"
},
{
"name": "Organization Users",
"description": "Operations related to users in your organization"
},
{
"name": "Outbound Voice Profiles",
"description": "Outbound voice profiles operations"
},
{
"name": "Phone Number Batches",
"description": "Phone numbers are submitted to Telnyx for vetting in batches. Batches group all numbers added in a single request under the same Letter of Authorization."
},
{
"name": "Phone Number Blocks Background Jobs",
"description": "Background jobs performed over a phone-numbers block's phone numbers"
},
{
"name": "Phone Number Campaigns",
"description": "Phone number campaign assignment"
},
{
"name": "Phone Number Configurations",
"description": "Configure your phone numbers"
},
{
"name": "Phone Number Order Documents",
"description": "Number order documents"
},
{
"name": "Phone Number Orders",
"description": "Number orders"
},
{
"name": "Phone Number Porting",
"description": "Determining portability of phone numbers"
},
{
"name": "Phone Number Reservations",
"description": "Number reservations"
},
{
"name": "Phone Number Search",
"description": "Number search"
},
{
"name": "Phone Numbers",
"description": "Associate phone numbers with a verified DIR so calls from those numbers carry the DIR's display identity."
},
{
"name": "Porting Orders",
"description": "Endpoints related to porting orders management."
},
{
"name": "Presigned Object URLs",
"description": "Presigned object URL operations"
},
{
"name": "Private Wireless Gateways",
"description": "Private Wireless Gateways operations"
},
{
"name": "Profiles",
"description": "Messaging profiles"
},
{
"name": "Programmable Fax Applications",
"description": "Fax Applications operations"
},
{
"name": "Programmable Fax Commands",
"description": "Programmable fax command operations"
},
{
"name": "Pronunciation Dictionaries",
"description": "Manage pronunciation dictionaries for text-to-speech synthesis. Dictionaries contain alias items (text replacement) and phoneme items (IPA pronunciation notation) that control how specific words are spoken."
},
{
"name": "Public Internet Gateways",
"description": "Public Internet Gateway operations"
},
{
"name": "Push Credentials",
"description": "Mobile push credential management"
},
{
"name": "Queue Commands",
"description": "Queue commands operations"
},
{
"name": "RCS",
"description": "Send RCS messages"
},
{
"name": "Reference Data",
"description": "Static reference values the API accepts: call reasons, document types, rejection types."
},
{
"name": "Regions",
"description": "Regions"
},
{
"name": "Regulatory Requirements",
"description": "Regulatory Requirements"
},
{
"name": "Reporting",
"description": "Wireless reporting operations"
},
{
"name": "Reports",
"description": "Ledger billing reports"
},
{
"name": "Reputation",
"description": "Phone-number reputation monitoring (spam-score lookup and tracking)."
},
{
"name": "Requirement Groups",
"description": "Requirement Groups"
},
{
"name": "Requirement Types",
"description": "Types of requirements for international numbers and porting orders"
},
{
"name": "Requirements",
"description": "Requirements for international numbers and porting orders"
},
{
"name": "Room Compositions",
"description": "Rooms Compositions operations."
},
{
"name": "Room Participants",
"description": "Rooms Participants operations."
},
{
"name": "Room Recordings",
"description": "Rooms Recordings operations."
},
{
"name": "Room Sessions",
"description": "Rooms Sessions operations."
},
{
"name": "Rooms",
"description": "Rooms operations."
},
{
"name": "Rooms Client Tokens",
"description": "Rooms Client Tokens operations."
},
{
"name": "SETI Observability",
"description": "Observability into Telnyx platform stability and performance."
},
{
"name": "SIM Card Actions",
"description": "View SIM card actions, their progress and timestamps using the SIM Card Actions API"
},
{
"name": "SIM Card Group Actions",
"description": "SIM Card Group actions operations"
},
{
"name": "SIM Card Groups",
"description": "SIM Card Groups operations"
},
{
"name": "SIM Card Orders",
"description": "SIM Card Orders operations"
},
{
"name": "SIM Cards",
"description": "SIM Cards operations"
},
{
"name": "SIPREC Connectors",
"description": "SIPREC connectors configuration."
},
{
"name": "Session Analysis",
"description": "Analyze voice AI sessions, costs, and event hierarchies across Telnyx products."
},
{
"name": "Short Codes",
"description": "Short codes"
},
{
"name": "Speech To Text Capabilities",
"description": "Discover available speech-to-text providers, models, and supported languages."
},
{
"name": "Speech To Text over WebSockets",
"description": "Speech to text command operations"
},
{
"name": "Speech to Text Batch Reports",
"description": "Speech to text batch detail records"
},
{
"name": "Speech to text Usage Reports",
"description": "Speech to text usage reports"
},
{
"name": "Stored Payment Transactions",
"description": "Operations for managing stored payment transactions."
},
{
"name": "TeXML Applications",
"description": "TeXML Applications operations"
},
{
"name": "TeXML REST Commands",
"description": "TeXML REST Commands"
},
{
"name": "Telco Data Usage Reports",
"description": "Number lookup usage reports"
},
{
"name": "Terms of Service",
"description": "Accept and review the Branded Calling and Phone Number Reputation terms of service."
},
{
"name": "Text To Speech Commands",
"description": "Text to speech streaming command operations"
},
{
"name": "Text to Speech Commands",
"description": "Text to Speech commands operations"
},
{
"name": "Traffic Policy Profiles",
"description": "Traffic Policy Profiles operations"
},
{
"name": "UAC Connections",
"description": "UAC connection operations"
},
{
"name": "Usage Reports (BETA)",
"description": "Usage data reporting across Telnyx products"
},
{
"name": "User Tags",
"description": "User-defined tags for Telnyx resources"
},
{
"name": "UserAddresses",
"description": "Operations for working with UserAddress records. UserAddress records are stored addresses that users can use for non-emergency-calling purposes, such as for shipping addresses for orders of wireless SIMs (or other physical items). They cannot be used for emergency calling and are distinct from Address records, which are used on phone numbers."
},
{
"name": "Verification Requests",
"description": "Manage your tollfree verification requests"
},
{
"name": "Verified Numbers",
"description": "Verified Numbers operations"
},
{
"name": "Verify",
"description": "Two factor authentication API"
},
{
"name": "Virtual Cross Connects",
"description": "Virtual Cross Connect operations"
},
{
"name": "Voice Channels",
"description": "Voice Channels"
},
{
"name": "Voice Clones",
"description": "Capture and manage voice identities as clones for use in text-to-speech synthesis."
},
{
"name": "Voice Designs",
"description": "Create and manage AI-generated voice designs using natural language prompts."
},
{
"name": "Voice SDK Stats",
"description": "Retrieve raw Voice SDK call report stats payloads for WebRTC call troubleshooting."
},
{
"name": "Voicemail",
"description": "Voicemail API"
},
{
"name": "Webhooks",
"description": "Webhooks operations"
},
{
"name": "Whatsapp Business Accounts",
"description": "Manage Whatsapp business accounts"
},
{
"name": "Whatsapp Message Templates",
"description": "Manage Whatsapp message templates"
},
{
"name": "Whatsapp Phone Numbers",
"description": "Manage Whatsapp phone numbers"
},
{
"name": "Whatsapp messaging",
"description": "Send Whatsapp messages"
},
{
"name": "WireGuard Interfaces",
"description": "WireGuard Interface operations"
},
{
"name": "Wireless",
"description": "Wireless operations"
},
{
"name": "Wireless Blocklists",
"description": "Wireless Blocklists operations"
},
{
"name": "Wireless Regions",
"description": "Regions for wireless services"
},
{
"name": "x402 Payment Transactions",
"description": "Operations for x402 cryptocurrency payment transactions. Fund your Telnyx account using USDC stablecoin payments via the x402 protocol."
}
],
"paths": {
"/.well-known/oauth-authorization-server": {
"get": {
"operationId": "GetOAuthAuthorizationServerMetadata",
"tags": [
"OAuth Discovery"
],
"summary": "Authorization server metadata",
"description": "OAuth 2.0 Authorization Server Metadata (RFC 8414)",
"security": [],
"responses": {
"200": {
"description": "Authorization server metadata",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuthorizationServerMetadata"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/oauth_Error"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/oauth_Error"
}
}
}
}
},
"x-latency-category": "responsive"
},
"servers": [
{
"url": "https://api.telnyx.com"
}
]
},
"/.well-known/oauth-protected-resource": {
"get": {
"operationId": "GetOAuthProtectedResourceMetadata",
"tags": [
"OAuth Discovery"
],
"summary": "Protected resource metadata",
"description": "OAuth 2.0 Protected Resource Metadata for resource discovery",
"security": [],
"responses": {
"200": {
"description": "Protected resource metadata",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResourceMetadata"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/oauth_Error"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/oauth_Error"
}
}
}
}
},
"x-latency-category": "responsive"
},
"servers": [
{
"url": "https://api.telnyx.com"
}
]
},
"/10dlc/brand": {
"get": {
"tags": [
"Brands"
],
"summary": "List Brands",
"operationId": "GetBrands",
"parameters": [
{
"required": false,
"schema": {
"title": "Page",
"minimum": 1,
"type": "integer",
"default": 1
},
"name": "page",
"in": "query",
"description": "Page number to retrieve (1-based)."
},
{
"description": "number of records per page. maximum of 500",
"required": false,
"schema": {
"title": "Recordsperpage",
"type": "integer",
"description": "number of records per page. maximum of 500",
"default": 10
},
"name": "recordsPerPage",
"in": "query"
},
{
"name": "sort",
"required": false,
"schema": {
"title": "Sort",
"description": "Specifies the sort order for results. If not given, results are sorted by created_at in descending order.",
"type": "string",
"enum": [
"assignedCampaignsCount",
"-assignedCampaignsCount",
"brandId",
"-brandId",
"createdAt",
"-createdAt",
"displayName",
"-displayName",
"identityStatus",
"-identityStatus",
"status",
"-status",
"tcrBrandId",
"-tcrBrandId"
],
"default": "-createdAt"
},
"description": "Specifies the sort order for results. If not given, results are sorted by createdAt in descending order.",
"example": "-identityStatus",
"in": "query"
},
{
"required": false,
"schema": {
"title": "Displayname",
"type": "string"
},
"name": "displayName",
"in": "query",
"description": "Filter results by display name."
},
{
"required": false,
"schema": {
"title": "Entitytype",
"type": "string"
},
"name": "entityType",
"in": "query",
"description": "Filter results by entity type."
},
{
"required": false,
"schema": {
"title": "State",
"type": "string"
},
"name": "state",
"in": "query",
"description": "Filter results by state."
},
{
"required": false,
"schema": {
"title": "Country",
"type": "string"
},
"name": "country",
"in": "query",
"description": "Filter results by country."
},
{
"name": "brandId",
"schema": {
"title": "BrandId",
"type": "string",
"example": "826ef77a-348c-445b-81a5-a9b13c68fbfe"
},
"in": "query",
"description": "Filter results by the Telnyx Brand id",
"required": false
},
{
"name": "tcrBrandId",
"schema": {
"title": "TCRBrandId",
"type": "string",
"example": "BBAND1"
},
"in": "query",
"description": "Filter results by the TCR Brand id",
"required": false
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BrandRecordSetCSP"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "This endpoint is used to list all brands associated with your organization.",
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Brands"
],
"summary": "Create Brand",
"operationId": "CreateBrandPost",
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateBrand"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxBrand"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "This endpoint is used to create a new brand. A brand is an entity created by The Campaign Registry (TCR) that represents an organization or a company. It is this entity that TCR created campaigns will be associated with. Each brand creation will entail an upfront, non-refundable $4 expense.",
"x-latency-category": "responsive"
}
},
"/10dlc/brand/feedback/{brandId}": {
"get": {
"tags": [
"Brands"
],
"summary": "Get Brand Feedback By Id",
"description": "Get feedback about a brand by ID. This endpoint can be used after creating or revetting\na brand.\n\nPossible values for `.category[].id`:\n\n* `TAX_ID` - Data mismatch related to tax id and its associated properties.\n* `STOCK_SYMBOL` - Non public entity registered as a public for profit entity or\n the stock information mismatch.\n* `GOVERNMENT_ENTITY` - Non government entity registered as a government entity.\n Must be a U.S. government entity.\n* `NONPROFIT` - Not a recognized non-profit entity. No IRS tax-exempt status\n found.\n* `OTHERS` - Details of the data misrepresentation if any.",
"operationId": "GetBrandFeedbackById",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BrandFeedback"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/brand/smsOtp/{referenceId}": {
"get": {
"tags": [
"Brands"
],
"summary": "Get Brand SMS OTP Status",
"description": "Query the status of an SMS OTP (One-Time Password) for Sole Proprietor brand verification.\n\nThis endpoint allows you to check the delivery and verification status of an OTP sent during the Sole Proprietor brand verification process. You can query by either:\n\n* `referenceId` - The reference ID returned when the OTP was initially triggered\n* `brandId` - Query parameter for portal users to look up OTP status by Brand ID\n\nThe response includes delivery status, verification dates, and detailed delivery information.",
"operationId": "GetBrandSmsOtpStatus",
"parameters": [
{
"required": true,
"schema": {
"title": "Referenceid",
"type": "string",
"example": "OTP4B2001"
},
"name": "referenceId",
"in": "path",
"description": "The reference ID returned when the OTP was initially triggered"
},
{
"required": false,
"schema": {
"title": "Brandid",
"type": "string",
"example": "B123ABC"
},
"name": "brandId",
"in": "query",
"description": "Filter by Brand ID for easier lookup in portal applications"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BrandSmsOtpStatus"
}
}
}
},
"404": {
"description": "OTP reference not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/brand/{brandId}": {
"delete": {
"tags": [
"Brands"
],
"summary": "Delete Brand",
"description": "Delete Brand. This endpoint is used to delete a brand. Note the brand cannot be deleted if it contains one or more active campaigns, the campaigns need to be inactive and at least 3 months old due to billing purposes.",
"operationId": "DeleteBrand",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"responses": {
"204": {
"description": "Brand removed successfully"
},
"400": {
"description": "Brand cannot be deleted",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Error"
}
}
}
},
"404": {
"description": "Brand not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Error"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Brands"
],
"summary": "Get Brand",
"operationId": "GetBrand",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxBrandWithCampaignsCount"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Retrieve a brand by `brandId`.",
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Brands"
],
"summary": "Update Brand",
"operationId": "UpdateBrand",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateBrand"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxBrand"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Update a brand's attributes by `brandId`.",
"x-latency-category": "responsive"
}
},
"/10dlc/brand/{brandId}/2faEmail": {
"post": {
"tags": [
"Brands"
],
"summary": "Resend brand 2FA email",
"operationId": "ResendBrand2faEmail",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Resend brand 2FA email"
}
},
"/10dlc/brand/{brandId}/externalVetting": {
"get": {
"tags": [
"Brands"
],
"summary": "List External Vettings",
"description": "Get list of valid external vetting record for a given brand",
"operationId": "ListExternalVettings",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalVettingList"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Brands"
],
"summary": "Order Brand External Vetting",
"description": "Order new external vetting for a brand.\n\nDuplicate orders for the same `evpId` and `vettingClass` return `400` with code `10012` if a successful vetting exists within the last 180 days, or one is currently being processed. Failed vettings can be retried immediately.",
"operationId": "PostOrderExternalVetting",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrderExternalVetting"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalVetting"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Brands"
],
"summary": "Import External Vetting Record",
"description": "This operation can be used to import an external vetting record from a TCR-approved\nvetting provider. If the vetting provider confirms validity of the record, it will be\nsaved with the brand and will be considered for future campaign qualification.",
"operationId": "PutExternalVettingRecord",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImportExternalVetting"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalVetting"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/brand/{brandId}/revet": {
"put": {
"tags": [
"Brands"
],
"summary": "Revet Brand",
"operationId": "RevetBrand",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxBrand"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "This operation allows you to revet the brand. However, revetting is allowed once after the successful brand registration and thereafter limited to once every 3 months.",
"x-latency-category": "responsive"
}
},
"/10dlc/brand/{brandId}/smsOtp": {
"get": {
"tags": [
"Brands"
],
"summary": "Get Brand SMS OTP Status by Brand ID",
"description": "Query the status of an SMS OTP (One-Time Password) for Sole Proprietor brand verification using the Brand ID.\n\nThis endpoint allows you to check the delivery and verification status of an OTP sent during the Sole Proprietor brand verification process by looking it up with the brand ID.\n\nThe response includes delivery status, verification dates, and detailed delivery information.\n\n**Note:** This is an alternative to the `/10dlc/brand/smsOtp/{referenceId}` endpoint when you have the Brand ID but not the reference ID.",
"operationId": "GetBrandSmsOtpStatusByBrandId",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string",
"example": "4b20019b-043a-78f8-0657-b3be3f4b4002"
},
"name": "brandId",
"in": "path",
"description": "The Brand ID for which to query OTP status"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BrandSmsOtpStatus"
}
}
}
},
"404": {
"description": "OTP status not found for this brand",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Brands"
],
"summary": "Trigger Brand SMS OTP",
"description": "Trigger or re-trigger an SMS OTP (One-Time Password) for Sole Proprietor brand verification.\n\n**Important Notes:**\n\n* Only allowed for Sole Proprietor (`SOLE_PROPRIETOR`) brands\n* Triggers generation of a one-time password sent to the `mobilePhone` number in the brand's profile\n* Campaigns cannot be created until OTP verification is complete\n* US/CA numbers only for real OTPs; mock brands can use non-US/CA numbers for testing\n* Returns a `referenceId` that can be used to check OTP status via the GET `/10dlc/brand/smsOtp/{referenceId}` endpoint\n\n**Use Cases:**\n\n* Initial OTP trigger after Sole Proprietor brand creation\n* Re-triggering OTP if the user didn't receive or needs a new code",
"operationId": "TriggerBrandSmsOtp",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string",
"example": "4b20019b-043a-78f8-0657-b3be3f4b4002"
},
"name": "brandId",
"in": "path",
"description": "The Brand ID for which to trigger the OTP"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TriggerBrandSmsOtpRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TriggerBrandSmsOtpResponse"
}
}
}
},
"400": {
"description": "Bad Request - Brand is not a Sole Proprietor or invalid mobile phone number",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Brands"
],
"summary": "Verify Brand SMS OTP",
"description": "Verify the SMS OTP (One-Time Password) for Sole Proprietor brand verification.\n\n**Verification Flow:**\n\n1. User receives OTP via SMS after triggering\n2. User submits the OTP pin through this endpoint\n3. Upon successful verification:\n - A `BRAND_OTP_VERIFIED` webhook event is sent to the CSP\n - The brand's `identityStatus` changes to `VERIFIED`\n - Campaigns can now be created for this brand\n\n**Error Handling:**\n\nProvides proper error responses for:\n* Invalid OTP pins\n* Expired OTPs\n* OTP verification failures",
"operationId": "VerifyBrandSmsOtp",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string",
"example": "4b20019b-043a-78f8-0657-b3be3f4b4002"
},
"name": "brandId",
"in": "path",
"description": "The Brand ID for which to verify the OTP"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyBrandSmsOtpRequest"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "OTP verified successfully - No content returned"
},
"400": {
"description": "Bad Request - Invalid or expired OTP",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/campaign": {
"get": {
"tags": [
"Campaign"
],
"summary": "List Campaigns",
"operationId": "GetCampaigns",
"parameters": [
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "query",
"description": "Filter results by brand id."
},
{
"description": "The 1-indexed page number to get. The default value is `1`.",
"required": false,
"schema": {
"title": "Page",
"type": "integer",
"description": "The 1-indexed page number to get. The default value is `1`.",
"default": 1
},
"name": "page",
"in": "query"
},
{
"description": "The amount of records per page, limited to between 1 and 500 inclusive. The default value is `10`.",
"required": false,
"schema": {
"title": "Recordsperpage",
"type": "integer",
"description": "The amount of records per page, limited to between 1 and 500 inclusive. The default value is `10`.",
"default": 10
},
"name": "recordsPerPage",
"in": "query"
},
{
"name": "sort",
"required": false,
"schema": {
"title": "Sort",
"description": "Specifies the sort order for results. If not given, results are sorted by created_at in descending order.",
"type": "string",
"enum": [
"assignedPhoneNumbersCount",
"-assignedPhoneNumbersCount",
"campaignId",
"-campaignId",
"createdAt",
"-createdAt",
"status",
"-status",
"tcrCampaignId",
"-tcrCampaignId"
],
"default": "-createdAt"
},
"in": "query",
"description": "Specifies the sort order for results. If not given, results are sorted by createdAt in descending order.",
"example": "-assignedPhoneNumbersCount"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignRecordSet_CSP"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Retrieve a list of campaigns associated with a supplied `brandId`.",
"x-latency-category": "responsive"
}
},
"/10dlc/campaign/acceptSharing/{campaignId}": {
"post": {
"tags": [
"Campaign"
],
"summary": "Accept Shared Campaign",
"description": "Manually accept a campaign shared with Telnyx",
"operationId": "AcceptCampaign",
"parameters": [
{
"description": "TCR's ID for the campaign to import",
"required": true,
"schema": {
"title": "Campaignid",
"pattern": "^C[A-Z0-9]{5,8}$",
"type": "string",
"description": "TCR's ID for the campaign to import"
},
"name": "campaignId",
"in": "path"
}
],
"responses": {
"202": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true,
"example": {}
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/campaign/usecase/cost": {
"get": {
"tags": [
"Campaign"
],
"summary": "Get Campaign Cost",
"operationId": "GetCampaignCost",
"parameters": [
{
"required": true,
"schema": {
"title": "Usecase",
"type": "string"
},
"name": "usecase",
"in": "query",
"description": "Filter results by usecase."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignCost"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Get Campaign Cost"
}
},
"/10dlc/campaign/{campaignId}": {
"delete": {
"tags": [
"Campaign"
],
"summary": "Deactivate campaign",
"description": "Terminate a campaign. Note that once deactivated, a campaign cannot be restored.",
"operationId": "DeactivateCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Campaignid",
"type": "string"
},
"name": "campaignId",
"in": "path",
"description": "Unique identifier of the campaign."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignDeletionResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Campaign"
],
"summary": "Get campaign",
"operationId": "GetCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Campaignid",
"type": "string"
},
"name": "campaignId",
"in": "path",
"description": "Unique identifier of the campaign."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxCampaign_CSP"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Retrieve campaign details by `campaignId`.",
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Campaign"
],
"summary": "Update campaign",
"operationId": "UpdateCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Campaignid",
"type": "string"
},
"name": "campaignId",
"in": "path",
"description": "Unique identifier of the campaign."
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCampaignRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxCampaign_CSP"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Update a campaign's properties by `campaignId`. **Please note:** only sample messages are editable.",
"x-latency-category": "responsive"
}
},
"/10dlc/campaign/{campaignId}/appeal": {
"post": {
"tags": [
"Campaign"
],
"summary": "Submit campaign appeal for manual review",
"description": "Submits an appeal for rejected native campaigns in TELNYX_FAILED or MNO_REJECTED status. The appeal is recorded for manual compliance team review and the campaign status is reset to TCR_ACCEPTED. Note: Appeal forwarding is handled manually to allow proper review before incurring upstream charges.",
"operationId": "AppealCampaign",
"parameters": [
{
"name": "campaignId",
"in": "path",
"description": "The Telnyx campaign identifier",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"example": "5eb13888-32b7-4cab-95e6-d834dde21d64"
}
}
],
"requestBody": {
"description": "Appeal request payload",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"appeal_reason"
],
"properties": {
"appeal_reason": {
"type": "string",
"description": "Detailed explanation of why the campaign should be reconsidered and what changes have been made to address the rejection reason.",
"example": "The website has been updated to include the required privacy policy and terms of service."
}
}
}
}
}
},
"responses": {
"200": {
"description": "Appeal recorded successfully. Campaign status updated to TCR_ACCEPTED for manual compliance review.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"appealed_at": {
"type": "string",
"format": "date-time",
"description": "Timestamp when the appeal was submitted"
}
}
},
"example": {
"appealed_at": "2025-08-06T15:30:45.123456+00:00"
}
}
}
},
"400": {
"description": "Campaign not in appealable status or invalid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Error"
}
}
}
},
"404": {
"description": "Campaign not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Error"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/campaign/{campaignId}/mnoMetadata": {
"get": {
"tags": [
"Campaign"
],
"summary": "Get Campaign Mno Metadata",
"description": "Get the campaign metadata for each MNO it was submitted to.",
"operationId": "GetCampaignMnoMetadata",
"parameters": [
{
"description": "ID of the campaign in question",
"required": true,
"schema": {
"title": "Campaignid",
"type": "string",
"description": "ID of the campaign in question"
},
"name": "campaignId",
"in": "path"
}
],
"responses": {
"200": {
"description": "Successful Response. It constains a map of usecase metadata for each MNO. The key is the network ID of the MNO (e.g. 10017), the value is the mno metadata for the usecase. The metadata may also include some MNO specific fields.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MnoMetadata"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
},
"5XX": {
"description": "Unexpected Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Errors"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/campaign/{campaignId}/operationStatus": {
"get": {
"tags": [
"Campaign"
],
"summary": "Get campaign operation status",
"operationId": "GetCampaignOperationStatus",
"parameters": [
{
"required": true,
"schema": {
"title": "Campaignid",
"type": "string"
},
"name": "campaignId",
"in": "path",
"description": "Unique identifier of the campaign."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true,
"example": {
"10017": "APPROVED",
"10035": "REVIEW"
}
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Retrieve campaign's operation status at MNO level.",
"x-latency-category": "responsive"
}
},
"/10dlc/campaign/{campaignId}/osr/attributes": {
"get": {
"tags": [
"Campaign"
],
"summary": "Get OSR campaign attributes",
"operationId": "GetCampaignOsrAttributes",
"parameters": [
{
"required": true,
"schema": {
"title": "Campaignid",
"type": "string"
},
"name": "campaignId",
"in": "path",
"description": "Unique identifier of the campaign."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true,
"example": {
"msg_class": "E",
"status": "7",
"brandId": "00000000-0000-0000-0000-000000000000"
}
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Get OSR campaign attributes"
}
},
"/10dlc/campaign/{campaignId}/sharing": {
"get": {
"tags": [
"Campaign"
],
"summary": "Get Sharing Status",
"operationId": "GetCampaignSharingStatus",
"parameters": [
{
"description": "ID of the campaign in question",
"required": true,
"schema": {
"title": "Campaignid",
"type": "string",
"description": "ID of the campaign in question"
},
"name": "campaignId",
"in": "path"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignSharingChain"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Get Sharing Status"
}
},
"/10dlc/campaignBuilder": {
"post": {
"tags": [
"Campaign"
],
"summary": "Submit Campaign",
"operationId": "PostCampaign",
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxCampaign_CSP"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Error"
}
}
}
},
"402": {
"description": "Insufficient Funds",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Error"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Before creating a campaign, use the [Qualify By Usecase endpoint](https://developers.telnyx.com/api-reference/campaign/qualify-by-usecase) to ensure that the brand you want to assign a new campaign to is qualified for the desired use case of that campaign. **Please note:** After campaign creation, you'll only be able to edit the campaign's sample messages. Creating a campaign will entail an upfront, non-refundable three month's cost that will depend on the campaign's use case ([see 10DLC Costs section for details](https://developers.telnyx.com/api-reference/campaign/get-campaign-cost)).",
"x-latency-category": "responsive"
}
},
"/10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase}": {
"get": {
"tags": [
"Campaign"
],
"summary": "Qualify By Usecase",
"operationId": "GetUsecaseQualification",
"parameters": [
{
"required": true,
"schema": {
"title": "Usecase",
"type": "string"
},
"name": "usecase",
"in": "path",
"description": "Unique identifier of the usecase."
},
{
"required": true,
"schema": {
"title": "Brandid",
"type": "string"
},
"name": "brandId",
"in": "path",
"description": "Unique identifier of the brand."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UsecaseMetadata"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "This endpoint allows you to see whether or not the supplied brand is suitable for your desired campaign use case.",
"x-latency-category": "responsive"
}
},
"/10dlc/enum/{endpoint}": {
"get": {
"tags": [
"Enum"
],
"summary": "Get Enum",
"operationId": "GetEnumEndpoint",
"parameters": [
{
"required": true,
"schema": {
"title": "Endpoint",
"type": "string",
"enum": [
"mno",
"optionalAttributes",
"usecase",
"vertical",
"altBusinessIdType",
"brandIdentityStatus",
"brandRelationship",
"campaignStatus",
"entityType",
"extVettingProvider",
"vettingStatus",
"brandStatus",
"operationStatus",
"approvedPublicCompany",
"stockExchange",
"vettingClass"
]
},
"name": "endpoint",
"in": "path",
"description": "Unique identifier of the endpoint."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/EnumStringListResponse"
},
{
"$ref": "#/components/schemas/EnumObjectListResponse"
},
{
"$ref": "#/components/schemas/EnumObjectToStringResponse"
},
{
"$ref": "#/components/schemas/EnumObjecToObjecttResponse"
},
{
"$ref": "#/components/schemas/EnumPaginatedResponse"
}
]
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/10dlc_Errors"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Get Enum"
}
},
"/10dlc/partnerCampaign/sharedByMe": {
"get": {
"tags": [
"Shared Campaigns"
],
"summary": "List shared partner campaigns",
"description": "Get all partner campaigns you have shared to Telnyx in a paginated fashion\n\nThis endpoint is currently limited to only returning shared campaigns that Telnyx\nhas accepted. In other words, shared but pending campaigns are currently omitted\nfrom the response from this endpoint.",
"operationId": "GetPartnerCampaignsSharedByUser",
"parameters": [
{
"description": "The 1-indexed page number to get. The default value is `1`.",
"required": false,
"schema": {
"title": "Page",
"type": "integer",
"description": "The 1-indexed page number to get. The default value is `1`.",
"default": 1
},
"name": "page",
"in": "query"
},
{
"description": "The amount of records per page, limited to between 1 and 500 inclusive. The default value is `10`.",
"required": false,
"schema": {
"title": "Recordsperpage",
"type": "integer",
"description": "The amount of records per page, limited to between 1 and 500 inclusive. The default value is `10`.",
"default": 10
},
"name": "recordsPerPage",
"in": "query"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SharedCampaignRecordSet"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/10dlc/partnerCampaign/{campaignId}/sharing": {
"get": {
"tags": [
"Shared Campaigns"
],
"summary": "Get Sharing Status",
"operationId": "GetPartnerCampaignSharingStatus",
"parameters": [
{
"description": "ID of the campaign in question",
"required": true,
"schema": {
"title": "Campaignid",
"type": "string",
"description": "ID of the campaign in question"
},
"name": "campaignId",
"in": "path"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"title": "Response Get Sharing Status Public Partnercampaign Campaignid Sharing Get",
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/CampaignSharingStatus"
}
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Get Sharing Status"
}
},
"/10dlc/partner_campaigns": {
"get": {
"tags": [
"Shared Campaigns"
],
"summary": "List Shared Campaigns",
"operationId": "GetSharedCampaigns",
"parameters": [
{
"description": "The 1-indexed page number to get. The default value is `1`.",
"required": false,
"schema": {
"title": "Page",
"type": "integer",
"description": "The 1-indexed page number to get. The default value is `1`.",
"default": 1
},
"name": "page",
"in": "query"
},
{
"description": "The amount of records per page, limited to between 1 and 500 inclusive. The default value is `10`.",
"required": false,
"schema": {
"title": "Recordsperpage",
"type": "integer",
"description": "The amount of records per page, limited to between 1 and 500 inclusive. The default value is `10`.",
"default": 10
},
"name": "recordsPerPage",
"in": "query"
},
{
"name": "sort",
"required": false,
"schema": {
"title": "Sort",
"description": "Specifies the sort order for results. If not given, results are sorted by created_at in descending order.",
"type": "string",
"enum": [
"assignedPhoneNumbersCount",
"-assignedPhoneNumbersCount",
"brandDisplayName",
"-brandDisplayName",
"tcrBrandId",
"-tcrBrandId",
"tcrCampaignId",
"-tcrCampaignId",
"createdAt",
"-createdAt",
"campaignStatus",
"-campaignStatus"
],
"default": "-createdAt"
},
"in": "query",
"description": "Specifies the sort order for results. If not given, results are sorted by createdAt in descending order.",
"example": "-assignedPhoneNumbersCount"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxDownstreamCampaignRecordSet"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Retrieve all partner campaigns you have shared to Telnyx in a paginated fashion.\n\nThis endpoint is currently limited to only returning shared campaigns that Telnyx has accepted. In other words, shared but pending campaigns are currently omitted from the response from this endpoint.",
"x-latency-category": "responsive"
}
},
"/10dlc/partner_campaigns/{campaignId}": {
"get": {
"tags": [
"Shared Campaigns"
],
"summary": "Get Single Shared Campaign",
"operationId": "GetSharedCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Campaignid",
"type": "string"
},
"name": "campaignId",
"in": "path",
"description": "Unique identifier of the campaign."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxDownstreamCampaign"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Retrieve campaign details by `campaignId`.",
"x-latency-category": "responsive"
},
"patch": {
"tags": [
"Shared Campaigns"
],
"summary": "Update Single Shared Campaign",
"operationId": "UpdateSharedCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Campaignid",
"type": "string"
},
"name": "campaignId",
"in": "path",
"description": "Unique identifier of the campaign."
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdatePartnerCampaignRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxDownstreamCampaign"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Update campaign details by `campaignId`. **Please note:** Only webhook urls are editable.",
"x-latency-category": "responsive"
}
},
"/10dlc/phoneNumberAssignmentByProfile": {
"post": {
"tags": [
"Bulk Phone Number Campaigns"
],
"summary": "Assign Messaging Profile To Campaign",
"operationId": "PostAssignMessagingProfileToCampaign",
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssignProfileToCampaignRequest"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssignProfileToCampaignResponse"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
},
"500": {
"description": "Error searching for phone numbers",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SettingsDataErrorMessage"
}
}
}
}
},
"description": "This endpoint allows you to link all phone numbers associated with a Messaging Profile to a campaign. **Please note:** if you want to assign phone numbers to a campaign that you did not create with Telnyx 10DLC services, this endpoint allows that provided that you've shared the campaign with Telnyx. In this case, only provide the parameter, `tcrCampaignId`, and not `campaignId`. In all other cases (where the campaign you're assigning was created with Telnyx 10DLC services), only provide `campaignId`, not `tcrCampaignId`.",
"x-latency-category": "responsive"
}
},
"/10dlc/phoneNumberAssignmentByProfile/{taskId}": {
"get": {
"tags": [
"Bulk Phone Number Campaigns"
],
"summary": "Get Assignment Task Status",
"operationId": "GetAssignmentTaskStatus",
"parameters": [
{
"required": true,
"schema": {
"title": "Taskid",
"type": "string"
},
"name": "taskId",
"in": "path",
"description": "Unique identifier of the task."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssignmentTaskStatusResponse"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Check the status of the task associated with assigning all phone numbers on a messaging profile to a campaign by `taskId`.",
"x-latency-category": "responsive"
}
},
"/10dlc/phoneNumberAssignmentByProfile/{taskId}/phoneNumbers": {
"get": {
"tags": [
"Bulk Phone Number Campaigns"
],
"summary": "Get Phone Number Status",
"operationId": "GetPhoneNumberStatus",
"parameters": [
{
"required": true,
"schema": {
"title": "Taskid",
"type": "string"
},
"name": "taskId",
"in": "path",
"description": "Unique identifier of the task."
},
{
"required": false,
"schema": {
"title": "Recordsperpage",
"default": 20,
"type": "integer"
},
"name": "recordsPerPage",
"in": "query",
"description": "Number of records to return per page."
},
{
"required": false,
"schema": {
"title": "Page",
"default": 1,
"type": "integer"
},
"name": "page",
"in": "query",
"description": "Page number to retrieve (1-based)."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberStatusResponsePaginated"
}
}
}
},
"422": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Check the status of the individual phone number/campaign assignments associated with the supplied `taskId`.",
"x-latency-category": "responsive"
}
},
"/10dlc/phone_number_campaigns": {
"get": {
"tags": [
"Phone Number Campaigns"
],
"summary": "List phone number campaigns",
"operationId": "GetAllPhoneNumberCampaigns",
"parameters": [
{
"required": false,
"schema": {
"title": "Recordsperpage",
"default": 20,
"type": "integer"
},
"name": "recordsPerPage",
"in": "query",
"description": "Number of records to return per page."
},
{
"required": false,
"schema": {
"title": "Page",
"default": 1,
"type": "integer"
},
"name": "page",
"in": "query",
"description": "Page number to retrieve (1-based)."
},
{
"$ref": "#/components/parameters/10dlc_FilterConsolidated"
},
{
"name": "sort",
"required": false,
"schema": {
"title": "Sort",
"description": "Specifies the sort order for results. If not given, results are sorted by created_at in descending order.",
"type": "string",
"enum": [
"assignmentStatus",
"-assignmentStatus",
"createdAt",
"-createdAt",
"phoneNumber",
"-phoneNumber"
],
"default": "-createdAt"
},
"description": "Specifies the sort order for results. If not given, results are sorted by createdAt in descending order.",
"example": "-phoneNumber",
"in": "query"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberCampaignPaginated"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "List phone number campaigns"
},
"post": {
"tags": [
"Phone Number Campaigns"
],
"summary": "Create New Phone Number Campaign",
"operationId": "CreatePhoneNumberCampaign",
"parameters": [],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberCampaignCreate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberCampaign"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Create New Phone Number Campaign"
}
},
"/10dlc/phone_number_campaigns/{phoneNumber}": {
"delete": {
"tags": [
"Phone Number Campaigns"
],
"summary": "Delete Phone Number Campaign",
"description": "This endpoint allows you to remove a campaign assignment from the supplied `phoneNumber`.",
"operationId": "DeletePhoneNumberCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Phonenumber",
"type": "string"
},
"name": "phoneNumber",
"in": "path",
"description": "Unique identifier of the phone number."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberCampaign"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Phone Number Campaigns"
],
"summary": "Get Single Phone Number Campaign",
"operationId": "GetSinglePhoneNumberCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Phonenumber",
"type": "string"
},
"name": "phoneNumber",
"in": "path",
"description": "Unique identifier of the phone number."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberCampaign"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"description": "Retrieve an individual phone number/campaign assignment by `phoneNumber`.",
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Phone Number Campaigns"
],
"summary": "Create New Phone Number Campaign",
"operationId": "PutPhoneNumberCampaign",
"parameters": [
{
"required": true,
"schema": {
"title": "Phonenumber",
"type": "string"
},
"name": "phoneNumber",
"in": "path",
"description": "Unique identifier of the phone number."
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberCampaignCreate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PhoneNumberCampaign"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/10dlc_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Create New Phone Number Campaign"
}
},
"/access_ip_address": {
"get": {
"summary": "List all Access IP Addresses",
"operationId": "ListAccessIpAddresses",
"tags": [
"IP Addresses"
],
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[ip_source], filter[ip_address], filter[created_at]. Supports complex bracket operations for dynamic filtering.",
"schema": {
"type": "object",
"properties": {
"ip_source": {
"type": "string",
"description": "Filter by IP source"
},
"ip_address": {
"type": "string",
"description": "Filter by IP address"
},
"created_at": {
"oneOf": [
{
"type": "string",
"format": "date-time",
"description": "Filter by exact creation date-time"
},
{
"type": "object",
"title": "DateRangeFilter",
"properties": {
"gt": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time greater than"
},
"lt": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time less than"
},
"gte": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time greater than or equal to"
},
"lte": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time less than or equal to"
}
},
"additionalProperties": false,
"description": "Date range filtering operations"
}
]
}
},
"additionalProperties": true
},
"examples": {
"filter[ip_source]=cloudflare": {
"value": {
"ip_source": "cloudflare"
},
"summary": "Filter access IP addresses by source 'cloudflare'"
},
"filter[ip_address]=192.168.1.1": {
"value": {
"ip_address": "192.168.1.1"
},
"summary": "Filter by specific IP address"
},
"filter[created_at][gt]=2023-01-01T00:00:00Z": {
"value": {
"created_at": {
"gt": "2023-01-01T00:00:00Z"
}
},
"summary": "Filter IP addresses created after the specified date-time"
},
"filter[created_at][lt]=2023-12-31T23:59:59Z": {
"value": {
"created_at": {
"lt": "2023-12-31T23:59:59Z"
}
},
"summary": "Filter IP addresses created before the specified date-time"
},
"Complex filtering example": {
"value": {
"ip_source": "cloudflare",
"created_at": {
"gt": "2023-01-01T00:00:00Z",
"lt": "2023-12-31T23:59:59Z"
}
},
"summary": "Combine multiple filters: cloudflare source IPs created within 2023"
}
}
},
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"default": 1
},
"size": {
"maximum": 250,
"type": "integer",
"default": 20
}
}
},
"examples": {
"page[number]=1&page[size]=20": {
"value": {
"number": 1,
"size": 20
},
"summary": "Default pagination with first page and 20 records per page"
},
"page[number]=2&page[size]=20": {
"value": {
"number": 2,
"size": 20
},
"summary": "Second page with 20 records per page"
},
"page[number]=1&page[size]=50": {
"value": {
"number": 1,
"size": 50
},
"summary": "First page with 50 records per page"
},
"page[number]=5&page[size]=100": {
"value": {
"number": 5,
"size": 100
},
"summary": "Fifth page with 100 records per page"
}
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPAddressListResponseSchema"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cloudflare-ip-list-sync_Errors"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "List all Access IP Addresses"
},
"post": {
"summary": "Create new Access IP Address",
"operationId": "CreateAccessIpAddress",
"tags": [
"IP Addresses"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPAddressPOST"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPAddressResponseSchema"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cloudflare-ip-list-sync_Errors"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Create new Access IP Address"
}
},
"/access_ip_address/{access_ip_address_id}": {
"delete": {
"summary": "Delete access IP address",
"operationId": "DeleteAccessIpAddress",
"tags": [
"IP Addresses"
],
"parameters": [
{
"required": true,
"schema": {
"type": "string"
},
"name": "access_ip_address_id",
"in": "path",
"description": "Unique identifier of the access ip address."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPAddressResponseSchema"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cloudflare-ip-list-sync_Errors"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Delete access IP address"
},
"get": {
"summary": "Retrieve an access IP address",
"operationId": "GetAccessIpAddress",
"tags": [
"IP Addresses"
],
"parameters": [
{
"required": true,
"schema": {
"type": "string"
},
"name": "access_ip_address_id",
"in": "path",
"description": "Unique identifier of the access ip address."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPAddressResponseSchema"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cloudflare-ip-list-sync_Errors"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Retrieve an access IP address"
}
},
"/access_ip_ranges": {
"get": {
"summary": "List all Access IP Ranges",
"operationId": "ListAccessIpRanges",
"tags": [
"IP Ranges"
],
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[cidr_block], filter[cidr_block][startswith], filter[cidr_block][endswith], filter[cidr_block][contains], filter[created_at]. Supports complex bracket operations for dynamic filtering.",
"schema": {
"type": "object",
"properties": {
"cidr_block": {
"oneOf": [
{
"type": "string",
"description": "Filter by exact CIDR block match"
},
{
"type": "object",
"title": "CidrBlockPatternFilter",
"properties": {
"startswith": {
"type": "string",
"description": "Filter CIDR blocks starting with the specified string"
},
"endswith": {
"type": "string",
"description": "Filter CIDR blocks ending with the specified string"
},
"contains": {
"type": "string",
"description": "Filter CIDR blocks containing the specified string"
}
},
"additionalProperties": false,
"description": "CIDR block pattern matching operations"
}
]
},
"created_at": {
"oneOf": [
{
"type": "string",
"format": "date-time",
"description": "Filter by exact creation date-time"
},
{
"type": "object",
"title": "DateRangeFilter",
"properties": {
"gt": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time greater than"
},
"lt": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time less than"
},
"gte": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time greater than or equal to"
},
"lte": {
"type": "string",
"format": "date-time",
"description": "Filter for creation date-time less than or equal to"
}
},
"additionalProperties": false,
"description": "Date range filtering operations"
}
]
}
},
"additionalProperties": true
},
"examples": {
"filter[cidr_block]=192.168.1.0/24": {
"value": {
"cidr_block": "192.168.1.0/24"
},
"summary": "Filter by exact CIDR block match"
},
"filter[cidr_block][startswith]=192.168": {
"value": {
"cidr_block": {
"startswith": "192.168"
}
},
"summary": "Filter CIDR blocks starting with '192.168'"
},
"filter[cidr_block][endswith]=/24": {
"value": {
"cidr_block": {
"endswith": "/24"
}
},
"summary": "Filter CIDR blocks ending with '/24'"
},
"filter[cidr_block][contains]=10.0": {
"value": {
"cidr_block": {
"contains": "10.0"
}
},
"summary": "Filter CIDR blocks containing '10.0'"
},
"filter[created_at][gt]=2023-01-01T00:00:00Z": {
"value": {
"created_at": {
"gt": "2023-01-01T00:00:00Z"
}
},
"summary": "Filter IP ranges created after the specified date-time"
},
"filter[created_at][lt]=2023-12-31T23:59:59Z": {
"value": {
"created_at": {
"lt": "2023-12-31T23:59:59Z"
}
},
"summary": "Filter IP ranges created before the specified date-time"
},
"Complex filtering example": {
"value": {
"cidr_block": {
"startswith": "10.0",
"endswith": "/16"
},
"created_at": {
"gt": "2023-01-01T00:00:00Z",
"lt": "2023-12-31T23:59:59Z"
}
},
"summary": "Combine multiple filters: CIDR blocks starting with '10.0' and ending with '/16', created within 2023"
}
}
},
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"default": 1
},
"size": {
"maximum": 250,
"type": "integer",
"default": 20
}
}
},
"examples": {
"page[number]=1&page[size]=20": {
"value": {
"number": 1,
"size": 20
},
"summary": "Default pagination with first page and 20 records per page"
},
"page[number]=2&page[size]=20": {
"value": {
"number": 2,
"size": 20
},
"summary": "Second page with 20 records per page"
},
"page[number]=1&page[size]=50": {
"value": {
"number": 1,
"size": 50
},
"summary": "First page with 50 records per page"
},
"page[number]=5&page[size]=100": {
"value": {
"number": 5,
"size": 100
},
"summary": "Fifth page with 100 records per page"
}
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPRangeListResponseSchema"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cloudflare-ip-list-sync_Errors"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "List all Access IP Ranges"
},
"post": {
"summary": "Create new Access IP Range",
"operationId": "CreateAccessIPRange",
"tags": [
"IP Ranges"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPRangePOST"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPRangeResponseSchema"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cloudflare-ip-list-sync_Errors"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Create new Access IP Range"
}
},
"/access_ip_ranges/{access_ip_range_id}": {
"delete": {
"summary": "Delete access IP ranges",
"operationId": "DeleteAccessIpRange",
"tags": [
"IP Ranges"
],
"parameters": [
{
"required": true,
"schema": {
"type": "string"
},
"name": "access_ip_range_id",
"in": "path",
"description": "Unique identifier of the access ip range."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AccessIPRangeResponseSchema"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cloudflare-ip-list-sync_Errors"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Delete access IP ranges"
}
},
"/actions/purchase/esims": {
"post": {
"x-latency-category": "background",
"summary": "Purchase eSIMs",
"description": "Purchases and registers the specified amount of eSIMs to the current user's account.
\nIf sim_card_group_id is provided, the eSIMs will be associated with that group. Otherwise, the default group for the current user will be used.
\n",
"operationId": "PurchaseESim",
"tags": [
"SIM Cards"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ESimPurchase"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"description": "Successfully registered SIM cards.",
"type": "array",
"items": {
"$ref": "#/components/schemas/SimpleSIMCard"
}
},
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/wireless_Error"
}
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
}
}
},
"/actions/register/sim_cards": {
"post": {
"x-latency-category": "background",
"summary": "Register SIM cards",
"description": "Register the SIM cards associated with the provided registration codes to the current user's account.
\nIf sim_card_group_id is provided, the SIM cards will be associated with that group. Otherwise, the default group for the current user will be used.
\n",
"operationId": "RegisterSimCards",
"tags": [
"SIM Cards"
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SIMCardRegistration"
}
}
},
"required": true
},
"responses": {
"202": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"description": "Successfully registered SIM cards.",
"type": "array",
"items": {
"$ref": "#/components/schemas/SimpleSIMCard"
}
},
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/wireless_Error"
}
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
}
}
},
"/addresses": {
"get": {
"description": "Returns a list of your addresses.",
"summary": "List all addresses",
"operationId": "FindAddresses",
"tags": [
"Addresses"
],
"x-endpoint-cost": "medium",
"parameters": [
{
"$ref": "#/components/parameters/PageConsolidated"
},
{
"$ref": "#/components/parameters/FilterConsolidated"
},
{
"$ref": "#/components/parameters/SortAddress"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Address"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"400": {
"description": "Bad request"
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Resource not found"
}
},
"x-latency-category": "responsive"
},
"post": {
"description": "Creates an address.",
"summary": "Creates an address",
"operationId": "CreateAddress",
"tags": [
"Addresses"
],
"x-endpoint-cost": "medium",
"parameters": [],
"requestBody": {
"description": "Parameters that can be defined during address creation",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddressCreate"
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Address"
}
}
}
}
}
},
"422": {
"description": "Bad request"
}
},
"x-latency-category": "responsive"
}
},
"/addresses/actions/validate": {
"post": {
"description": "Validates an address for emergency services.",
"summary": "Validate an address",
"operationId": "ValidateAddress",
"tags": [
"Addresses"
],
"parameters": [],
"requestBody": {
"description": "Parameters that can be defined during address validation",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidateAddressRequest"
}
}
}
},
"responses": {
"200": {
"description": "Action response",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Validate address action response",
"properties": {
"data": {
"$ref": "#/components/schemas/ValidateAddressResult"
}
}
}
}
}
},
"422": {
"description": "Bad request"
}
},
"x-latency-category": "responsive"
}
},
"/addresses/{id}": {
"delete": {
"description": "Deletes an existing address.",
"summary": "Deletes an address",
"operationId": "DeleteAddress",
"tags": [
"Addresses"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "address ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Address"
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Resource not found"
},
"422": {
"description": "Bad request"
}
},
"x-latency-category": "responsive"
},
"get": {
"description": "Retrieves the details of an existing address.",
"summary": "Retrieve an address",
"operationId": "GetAddress",
"tags": [
"Addresses"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "address ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Address"
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Resource not found"
},
"422": {
"description": "Bad request"
}
},
"x-latency-category": "responsive"
}
},
"/addresses/{id}/actions/accept_suggestions": {
"post": {
"summary": "Accepts this address suggestion as a new emergency address for Operator Connect and finishes the uploads of the numbers associated with it to Microsoft.",
"operationId": "acceptAddressSuggestions",
"tags": [
"Addresses"
],
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"description": "The UUID of the address that should be accepted."
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AcceptSuggestionsRequest"
}
}
}
},
"responses": {
"200": {
"description": "This address suggestion has already been accepted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddressSuggestionResponse"
}
}
}
},
"202": {
"description": "This address suggestion was accepted. The numbers associated to it will resume processing in the background.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddressSuggestionResponse"
}
}
}
},
"404": {
"description": "Address not found or not accessible by the user.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResourceNotFoundError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Accepts this address suggestion as a new emergency address for Operator Connect and finishes the uploads of the numbers associated with it to Microsoft."
}
},
"/advanced_orders": {
"get": {
"summary": "List Advanced Orders",
"tags": [
"Advanced Number Orders"
],
"operationId": "list_advanced_orders_v2",
"responses": {
"200": {
"description": "An array of Advanced Order Responses",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdvancedOrder"
}
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "List Advanced Orders"
},
"post": {
"summary": "Create Advanced Order",
"operationId": "create_advanced_order_v2",
"tags": [
"Advanced Number Orders"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedOrderRequest"
}
}
}
},
"responses": {
"200": {
"description": "An Advanced Order Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedOrder"
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Create Advanced Order"
}
},
"/advanced_orders/{advanced-order-id}/requirement_group": {
"patch": {
"summary": "Update Advanced Order",
"operationId": "update_advanced_order_v2",
"parameters": [
{
"name": "advanced-order-id",
"in": "path",
"description": "Unique identifier of the advanced order.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Order Id"
}
}
],
"tags": [
"Advanced Number Orders"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedOrderRequest"
}
}
}
},
"responses": {
"200": {
"description": "An Advanced Order Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedOrder"
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Update Advanced Order"
}
},
"/advanced_orders/{order_id}": {
"get": {
"summary": "Get Advanced Order",
"operationId": "get_advanced_order_v2",
"parameters": [
{
"name": "order_id",
"in": "path",
"description": "Unique identifier of the order.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Order Id"
}
}
],
"tags": [
"Advanced Number Orders"
],
"responses": {
"200": {
"description": "An Advanced Order Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdvancedOrder"
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Get Advanced Order"
}
},
"/ai/assistants": {
"get": {
"tags": [
"Assistants"
],
"summary": "List assistants",
"description": "Retrieve a list of all AI Assistants configured by the user.",
"operationId": "get_assistants_public_assistants_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantsListData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Create an assistant",
"description": "Create a new AI Assistant.",
"operationId": "create_new_assistant_public_assistants_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateAssistantRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inference-embedding_Assistant"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/import": {
"post": {
"tags": [
"Assistants"
],
"summary": "Import assistants from external provider",
"description": "Import assistants from external providers. Any assistant that has already been imported will be overwritten with its latest version from the importing provider.",
"operationId": "import_assistants_public_assistants_import_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImportAssistantsRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantsListData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/tags": {
"get": {
"tags": [
"Assistants"
],
"summary": "Get All Tags",
"operationId": "get_all_assistant_tags",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagsResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Get All Tags"
}
},
"/ai/assistants/tests": {
"get": {
"tags": [
"Assistants"
],
"summary": "List assistant tests with pagination",
"description": "Retrieves a paginated list of assistant tests with optional filtering capabilities",
"operationId": "get_assistant_tests_public_assistants_tests_get",
"parameters": [
{
"name": "test_suite",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Filter tests by test suite name",
"title": "Test Suite"
},
"description": "Filter tests by test suite name"
},
{
"name": "telnyx_conversation_channel",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Filter tests by communication channel (e.g., 'web_chat', 'sms')",
"title": "Telnyx Conversation Channel"
},
"description": "Filter tests by communication channel (e.g., 'web_chat', 'sms')"
},
{
"name": "destination",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Filter tests by destination (phone number, webhook URL, etc.)",
"title": "Destination"
},
"description": "Filter tests by destination (phone number, webhook URL, etc.)"
},
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Number of tests to return per page (1-100)",
"default": 20,
"title": "Page[Size]"
},
"number": {
"type": "integer",
"minimum": 1,
"description": "Page number to retrieve (1-based indexing)",
"default": 1,
"title": "Page[Number]"
}
}
}
}
],
"responses": {
"200": {
"description": "Returns paginated test list with metadata for navigation and filtering",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedAssistantTestList"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Create a new assistant test",
"description": "Creates a comprehensive test configuration for evaluating AI assistant performance",
"operationId": "create_assistant_test_public_assistants_tests_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateAssistantTestRequest"
}
}
}
},
"responses": {
"201": {
"description": "Returns the created test configuration with assigned test ID",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantTestResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/tests/test-suites": {
"get": {
"tags": [
"Assistants"
],
"summary": "Get all test suite names",
"description": "Retrieves a list of all distinct test suite names available to the current user",
"operationId": "fetch_test_suites_public_assistants_tests_test_suites_get",
"responses": {
"200": {
"description": "Returns an array of unique test suite names for filtering and organization",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestSuitesResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/tests/test-suites/{suite_name}/runs": {
"get": {
"tags": [
"Assistants"
],
"summary": "Get test suite run history",
"description": "Retrieves paginated history of test runs for a specific test suite with filtering options",
"operationId": "ListTestSuiteRuns",
"parameters": [
{
"name": "suite_name",
"in": "path",
"description": "Name of the suite.",
"required": true,
"schema": {
"type": "string",
"title": "Suite Name"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Filter runs by execution status (pending, running, completed, failed, timeout)",
"title": "Status"
},
"description": "Filter runs by execution status (pending, running, completed, failed, timeout)"
},
{
"name": "test_suite_run_id",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Filter runs by specific suite execution batch ID",
"title": "Test Suite Run Id"
},
"description": "Filter runs by specific suite execution batch ID"
},
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Number of test runs to return per page (1-100)",
"default": 20,
"title": "Page[Size]"
},
"number": {
"type": "integer",
"minimum": 1,
"description": "Page number to retrieve (1-based indexing)",
"default": 1,
"title": "Page[Number]"
}
}
}
}
],
"responses": {
"200": {
"description": "Returns paginated list of test runs within the specified suite",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedTestRunList"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Trigger test suite execution",
"description": "Executes all tests within a specific test suite as a batch operation",
"operationId": "TriggerTestSuiteRuns",
"parameters": [
{
"name": "suite_name",
"in": "path",
"description": "Name of the suite.",
"required": true,
"schema": {
"type": "string",
"title": "Suite Name"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TriggerTestSuiteRunsRequest",
"title": "Request"
}
}
}
},
"responses": {
"201": {
"description": "Returns array of created test runs for all tests in the suite",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TestRunResponse"
},
"title": "Response Trigger Test Suite Runs Public Assistants Tests Test Suites Suite Name Runs Post"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/tests/{test_id}": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Delete an assistant test",
"description": "Permanently removes an assistant test and all associated data",
"operationId": "delete_assistant_test_public_assistants_tests__test_id__delete",
"parameters": [
{
"name": "test_id",
"in": "path",
"description": "Unique identifier of the test.",
"required": true,
"schema": {
"type": "string",
"title": "Test Id"
}
}
],
"responses": {
"200": {
"description": "Returns success status when test is successfully deleted"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Assistants"
],
"summary": "Get assistant test by ID",
"description": "Retrieves detailed information about a specific assistant test",
"operationId": "get_assistant_test_public_assistants_tests__test_id__get",
"parameters": [
{
"name": "test_id",
"in": "path",
"description": "Unique identifier of the test.",
"required": true,
"schema": {
"type": "string",
"title": "Test Id"
}
}
],
"responses": {
"200": {
"description": "Returns complete test configuration including rubric, schedule, and metadata",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantTestResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Assistants"
],
"summary": "Update an assistant test",
"description": "Updates an existing assistant test configuration with new settings",
"operationId": "update_assistant_test_public_assistants_tests__test_id__put",
"parameters": [
{
"name": "test_id",
"in": "path",
"description": "Unique identifier of the test.",
"required": true,
"schema": {
"type": "string",
"title": "Test Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateAssistantTestRequest"
}
}
}
},
"responses": {
"200": {
"description": "Returns the updated test configuration with all changes applied",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantTestResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/tests/{test_id}/runs": {
"get": {
"tags": [
"Assistants"
],
"summary": "Get test run history for a specific test",
"description": "Retrieves paginated execution history for a specific assistant test with filtering options",
"operationId": "ListTestRuns",
"parameters": [
{
"name": "test_id",
"in": "path",
"description": "Unique identifier of the test.",
"required": true,
"schema": {
"type": "string",
"title": "Test Id"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Filter runs by execution status (pending, running, completed, failed, timeout)",
"title": "Status"
},
"description": "Filter runs by execution status (pending, running, completed, failed, timeout)"
},
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Number of test runs to return per page (1-100)",
"default": 20,
"title": "Page[Size]"
},
"number": {
"type": "integer",
"minimum": 1,
"description": "Page number to retrieve (1-based indexing)",
"default": 1,
"title": "Page[Number]"
}
}
}
}
],
"responses": {
"200": {
"description": "Returns paginated list of test runs for the specified test",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedTestRunList"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Trigger a manual test run",
"description": "Initiates immediate execution of a specific assistant test",
"operationId": "trigger_test_run_public_assistants_tests__test_id__runs_post",
"parameters": [
{
"name": "test_id",
"in": "path",
"description": "Unique identifier of the test.",
"required": true,
"schema": {
"type": "string",
"title": "Test Id"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TriggerTestRunRequest",
"title": "Request"
}
}
}
},
"responses": {
"201": {
"description": "Returns the created test run with execution details and status",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/tests/{test_id}/runs/{run_id}": {
"get": {
"tags": [
"Assistants"
],
"summary": "Get specific test run details",
"description": "Retrieves detailed information about a specific test run execution",
"operationId": "get_test_run_public_assistants_tests__test_id__runs__run_id__get",
"parameters": [
{
"name": "test_id",
"in": "path",
"description": "Unique identifier of the test.",
"required": true,
"schema": {
"type": "string",
"title": "Test Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"title": "Run Id"
}
}
],
"responses": {
"200": {
"description": "Returns complete test run details including results, logs, and performance metrics",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Delete an assistant",
"description": "Delete an AI Assistant by `assistant_id`.",
"operationId": "delete_assistant_public_assistants__assistant_id__delete",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantDeletedResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Assistants"
],
"summary": "Get an assistant",
"description": "Retrieve an AI Assistant configuration by `assistant_id`.",
"operationId": "get_assistant_public_assistants__assistant_id__get",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "fetch_dynamic_variables_from_webhook",
"in": "query",
"description": "Whether to fetch dynamic variables from the configured webhook.",
"required": false,
"schema": {
"type": "boolean",
"default": false,
"title": "Fetch Dynamic Variables From Webhook"
}
},
{
"name": "from",
"in": "query",
"description": "Start of the filter range.",
"required": false,
"schema": {
"type": "string",
"title": "From"
}
},
{
"name": "to",
"in": "query",
"description": "End of the filter range.",
"required": false,
"schema": {
"type": "string",
"title": "To"
}
},
{
"name": "call_control_id",
"in": "query",
"description": "Filter results by call control id.",
"required": false,
"schema": {
"type": "string",
"title": "Call Control Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inference-embedding_Assistant"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Update an assistant",
"description": "Update an AI Assistant's attributes.",
"operationId": "update_assistant_public_assistants__assistant_id__post",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateAssistantRequestWithPromotion"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inference-embedding_Assistant"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/canary-deploys": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Delete Canary Deploy",
"description": "Endpoint to delete a canary deploy configuration for an assistant.\n\nRemoves all canary deploy configurations for the specified assistant.",
"operationId": "DeleteCanaryDeploy",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"responses": {
"204": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Assistants"
],
"summary": "Get Canary Deploy",
"description": "Endpoint to get a canary deploy configuration for an assistant.\n\nRetrieves the current canary deploy configuration with all version IDs and their\ntraffic percentages for the specified assistant.",
"operationId": "get_canary_deploy_assistants__assistant_id__canary_deploys_get",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CanaryDeployResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Create Canary Deploy",
"description": "Endpoint to create a canary deploy configuration for an assistant.\n\nCreates a new canary deploy configuration with multiple version IDs and their traffic\npercentages for A/B testing or gradual rollouts of assistant versions.",
"operationId": "CreateCanaryDeploy",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CanaryDeployRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CanaryDeployResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Assistants"
],
"summary": "Update Canary Deploy",
"description": "Endpoint to update a canary deploy configuration for an assistant.\n\nUpdates the existing canary deploy configuration with new version IDs and percentages.\n All old versions and percentages are replaces by new ones from this request.",
"operationId": "UpdateCanaryDeploy",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CanaryDeployRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CanaryDeployResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/chat": {
"post": {
"tags": [
"Assistants"
],
"summary": "Assistant Chat (BETA)",
"description": "This endpoint allows a client to send a chat message to a specific AI Assistant. The assistant processes the message and returns a relevant reply based on the current conversation context. Refer to the Conversation API to [create a conversation](https://developers.telnyx.com/api-reference/conversations/create-a-conversation), [filter existing conversations](https://developers.telnyx.com/api-reference/conversations/list-conversations), [fetch messages for a conversation](https://developers.telnyx.com/api-reference/conversations/get-conversation-messages), and [manually add messages to a conversation](https://developers.telnyx.com/api-reference/conversations/create-message).",
"operationId": "assistant_chat_public_assistants__assistant_id__chat_post",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantChatReq"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantChatResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/chat/sms": {
"post": {
"tags": [
"Assistants"
],
"summary": "Assistant Sms Chat",
"description": "Send an SMS message for an assistant. This endpoint: \n1. Validates the assistant exists and has messaging profile configured \n2. If should_create_conversation is true, creates a new conversation with metadata \n3. Sends the SMS message (If `text` is set, this will be sent. Otherwise, if this is the first message in the conversation and the assistant has a `greeting` configured, this will be sent. Otherwise the assistant will generate the text to send.) \n4. Updates conversation metadata if provided \n5. Returns the conversation ID",
"operationId": "assistant_sms_chat_assistants__assistant_id__chat_sms_post",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantSmsChatReq"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantSmsChatResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/clone": {
"post": {
"tags": [
"Assistants"
],
"summary": "Clone Assistant",
"description": "Clone an existing assistant, excluding telephony and messaging settings.",
"operationId": "clone_assistant_public_assistants__assistant_id__clone_post",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inference-embedding_Assistant"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/scheduled_events": {
"get": {
"tags": [
"Assistants"
],
"summary": "List scheduled events",
"description": "Get scheduled events for an assistant with pagination and filtering",
"operationId": "get_scheduled_events",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "from_date",
"in": "query",
"description": "Start of the date range filter (inclusive, ISO 8601).",
"required": false,
"schema": {
"type": "string",
"format": "date-time",
"title": "From Date"
}
},
{
"name": "to_date",
"in": "query",
"description": "End of the date range filter (inclusive, ISO 8601).",
"required": false,
"schema": {
"type": "string",
"format": "date-time",
"title": "To Date"
}
},
{
"name": "conversation_channel",
"in": "query",
"description": "Filter results by conversation channel.",
"required": false,
"schema": {
"$ref": "#/components/schemas/ConversationChannelType",
"title": "Conversation Channel"
}
},
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"default": 20,
"title": "Page[Size]"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Page[Number]"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedScheduledEventList"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Create a scheduled event",
"description": "Create a scheduled event for an assistant",
"operationId": "create_scheduled_event",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateScheduledEventRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduledEventResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/scheduled_events/{event_id}": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Delete a scheduled event",
"description": "If the event is pending, this will cancel the event. Otherwise, this will simply remove the record of the event.",
"operationId": "delete_scheduled_event",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "event_id",
"in": "path",
"description": "Unique identifier of the event.",
"required": true,
"schema": {
"type": "string",
"title": "Event Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Assistants"
],
"summary": "Get a scheduled event",
"description": "Retrieve a scheduled event by event ID",
"operationId": "get_scheduled_event",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "event_id",
"in": "path",
"description": "Unique identifier of the event.",
"required": true,
"schema": {
"type": "string",
"title": "Event Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduledEventResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/tags": {
"post": {
"tags": [
"Assistants"
],
"summary": "Add Assistant Tag",
"operationId": "add_assistant_tag",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddTagRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagsResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Add Assistant Tag"
}
},
"/ai/assistants/{assistant_id}/tags/{tag}": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Remove Assistant Tag",
"operationId": "remove_assistant_tag",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "tag",
"in": "path",
"description": "Unique identifier of the tag.",
"required": true,
"schema": {
"type": "string",
"title": "Tag"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TagsResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Remove Assistant Tag"
}
},
"/ai/assistants/{assistant_id}/texml": {
"get": {
"tags": [
"Assistants"
],
"summary": "Get assistant texml",
"description": "Get an assistant texml by `assistant_id`.",
"operationId": "get_assistant_texml_public_assistants__assistant_id__texml_get",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/tools/{tool_id}": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Remove Assistant Tool",
"operationId": "remove_assistant_tool",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Remove Assistant Tool"
},
"put": {
"tags": [
"Assistants"
],
"summary": "Add Assistant Tool",
"operationId": "add_assistant_tool",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Add Assistant Tool"
}
},
"/ai/assistants/{assistant_id}/tools/{tool_id}/test": {
"post": {
"tags": [
"Assistants"
],
"summary": "Test Assistant Tool",
"description": "Test a webhook tool for an assistant",
"operationId": "TestAssistantTool",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestWebhookToolRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TestWebhookToolResponseData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/versions": {
"get": {
"tags": [
"Assistants"
],
"summary": "Get all versions of an assistant",
"description": "Retrieves all versions of a specific assistant with complete configuration and metadata",
"operationId": "ListAssistantVersions",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
}
],
"responses": {
"200": {
"description": "Returns list of assistant versions ordered by creation date (newest first)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantsListData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/versions/{version_id}": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Delete a specific assistant version",
"description": "Permanently removes a specific version of an assistant. Can not delete main version",
"operationId": "DeleteAssistantVersion",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "version_id",
"in": "path",
"description": "Unique identifier of the version.",
"required": true,
"schema": {
"type": "string",
"title": "Version Id"
}
}
],
"responses": {
"204": {
"description": "Returns HTTP 204 No Content on successful deletion"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Assistants"
],
"summary": "Get a specific assistant version",
"description": "Retrieves a specific version of an assistant by assistant_id and version_id",
"operationId": "GetAssistantVersion",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "version_id",
"in": "path",
"description": "Unique identifier of the version.",
"required": true,
"schema": {
"type": "string",
"title": "Version Id"
}
},
{
"name": "include_mcp_servers",
"in": "query",
"description": "Whether to include MCP servers in the response.",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Returns the specific assistant version configuration",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inference-embedding_Assistant"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Update a specific assistant version",
"description": "Updates the configuration of a specific assistant version. Can not update main version",
"operationId": "UpdateAssistantVersion",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "version_id",
"in": "path",
"description": "Unique identifier of the version.",
"required": true,
"schema": {
"type": "string",
"title": "Version Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateAssistantRequest"
}
}
}
},
"responses": {
"200": {
"description": "Returns the updated assistant version configuration",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inference-embedding_Assistant"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/assistants/{assistant_id}/versions/{version_id}/promote": {
"post": {
"tags": [
"Assistants"
],
"summary": "Promote an assistant version to main",
"description": "Promotes a specific version to be the main/current version of the assistant. This will delete any existing canary deploy configuration and send all live production traffic to this version.",
"operationId": "PromoteAssistantVersion",
"parameters": [
{
"name": "assistant_id",
"in": "path",
"description": "Unique identifier of the assistant.",
"required": true,
"schema": {
"type": "string",
"title": "Assistant Id"
}
},
{
"name": "version_id",
"in": "path",
"description": "Unique identifier of the version.",
"required": true,
"schema": {
"type": "string",
"title": "Version Id"
}
}
],
"responses": {
"200": {
"description": "Returns the promoted assistant configuration",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inference-embedding_Assistant"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/audio/transcriptions": {
"post": {
"tags": [
"Audio"
],
"summary": "Transcribe speech to text",
"description": "Transcribe speech to text. This endpoint is consistent with the [OpenAI Transcription API](https://platform.openai.com/docs/api-reference/audio/createTranscription) and may be used with the OpenAI JS or Python SDK.",
"operationId": "audio_public_audio_transcriptions_post",
"requestBody": {
"required": true,
"content": {
"multipart/form-data": {
"schema": {
"$ref": "#/components/schemas/AudioTranscriptionRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AudioTranscriptionResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/chat/completions": {
"post": {
"tags": [
"Chat"
],
"summary": "Create a chat completion",
"description": "**Deprecated**: Use `POST /v2/ai/openai/chat/completions` instead. Chat with a language model. This endpoint is consistent with the [OpenAI Chat Completions API](https://platform.openai.com/docs/api-reference/chat) and may be used with the OpenAI JS or Python SDK.",
"operationId": "chat_public_chat_completions_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionRequest"
},
"example": {
"messages": [
{
"role": "system",
"content": "You are a friendly chatbot."
},
{
"role": "user",
"content": "Hello, world!"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"deprecated": true,
"x-hidden": true,
"x-latency-category": "responsive"
}
},
"/ai/clusters": {
"get": {
"tags": [
"Clusters"
],
"summary": "List all clusters",
"operationId": "list_all_requested_clusters_public_text_clusters_get",
"parameters": [
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"default": 0,
"title": "Page[Number]"
},
"size": {
"type": "integer",
"default": 20,
"title": "Page[Size]"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ClusteringRequestInfoData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "List all clusters"
},
"post": {
"tags": [
"Clusters"
],
"summary": "Compute new clusters",
"description": "Starts a background task to compute how the data in an [embedded storage bucket](https://developers.telnyx.com/api-reference/embeddings/embed-documents) is clustered. This helps identify common themes and patterns in the data.",
"operationId": "compute_new_cluster_public_text_clusters_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublicTextClusteringRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TextClusteringResponseData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/clusters/{task_id}": {
"delete": {
"tags": [
"Clusters"
],
"summary": "Delete a cluster",
"operationId": "delete_cluster_by_task_id_public_text_clusters__task_id__delete",
"parameters": [
{
"name": "task_id",
"in": "path",
"description": "Unique identifier of the task.",
"required": true,
"schema": {
"type": "string",
"title": "Task Id"
}
}
],
"responses": {
"204": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Delete a cluster"
},
"get": {
"tags": [
"Clusters"
],
"summary": "Fetch a cluster",
"operationId": "fetch_cluster_by_task_id_public_text_clusters__task_id__get",
"parameters": [
{
"name": "task_id",
"in": "path",
"description": "Unique identifier of the task.",
"required": true,
"schema": {
"type": "string",
"title": "Task Id"
}
},
{
"name": "top_n_nodes",
"in": "query",
"description": "The number of nodes in the cluster to return in the response. Nodes will be sorted by their centrality within the cluster.",
"required": false,
"schema": {
"type": "integer",
"default": 0,
"title": "Top N Nodes"
}
},
{
"name": "show_subclusters",
"in": "query",
"description": "Whether or not to include subclusters and their nodes in the response.",
"required": false,
"schema": {
"type": "boolean",
"default": false,
"title": "Show Subclusters"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ClusteringStatusResponseData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Fetch a cluster"
}
},
"/ai/clusters/{task_id}/graph": {
"get": {
"tags": [
"Clusters"
],
"summary": "Fetch a cluster visualization",
"operationId": "GetClusterImage",
"parameters": [
{
"name": "task_id",
"in": "path",
"description": "Unique identifier of the task.",
"required": true,
"schema": {
"type": "string",
"title": "Task Id"
}
},
{
"name": "cluster_id",
"in": "query",
"description": "Filter results by cluster id.",
"required": false,
"schema": {
"type": "integer",
"title": "Cluster Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response - Returns a PNG image of the cluster visualization.",
"content": {
"image/png": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Fetch a cluster visualization"
}
},
"/ai/conversations": {
"get": {
"tags": [
"Conversations"
],
"summary": "List conversations",
"description": "Retrieve a list of all AI conversations configured by the user. Supports [PostgREST-style query parameters](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for filtering. Examples are included for the standard metadata fields, but you can filter on any field in the metadata JSON object. For example, to filter by a custom field `metadata->custom_field`, use `metadata->custom_field=eq.value`.",
"operationId": "get_conversations_public_conversations_get",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Filter by conversation ID (e.g. id=eq.123)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "query",
"description": "Filter by conversation Name (e.g. `name=like.Voice%`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "created_at",
"in": "query",
"description": "Filter by creation datetime (e.g., `created_at=gte.2025-01-01`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "last_message_at",
"in": "query",
"description": "Filter by last message datetime (e.g., `last_message_at=lte.2025-06-01`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "metadata->assistant_id",
"in": "query",
"description": "Filter by assistant ID (e.g., `metadata->assistant_id=eq.assistant-123`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "metadata->call_control_id",
"in": "query",
"description": "Filter by call control ID (e.g., `metadata->call_control_id=eq.v3:123`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "metadata->telnyx_agent_target",
"in": "query",
"description": "Filter by the phone number, SIP URI, or other identifier for the agent (e.g., `metadata->telnyx_agent_target=eq.+13128675309`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "metadata->telnyx_end_user_target",
"in": "query",
"description": "Filter by the phone number, SIP URI, or other identifier for the end user (e.g., `metadata->telnyx_end_user_target=eq.+13128675309`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "metadata->telnyx_conversation_channel",
"in": "query",
"description": "Filter by conversation channel (e.g., `metadata->telnyx_conversation_channel=eq.phone_call`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"description": "Limit the number of returned conversations (e.g., `limit=10`)",
"required": false,
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "order",
"in": "query",
"description": "Order the results by specific fields (e.g., `order=created_at.desc` or `order=last_message_at.asc`)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "or",
"in": "query",
"description": "Apply OR conditions using PostgREST syntax (e.g., `or=(created_at.gte.2025-04-01,last_message_at.gte.2025-04-01)`)",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationsListData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Conversations"
],
"summary": "Create a conversation",
"description": "Create a new AI Conversation.",
"operationId": "create_new_conversation_public_conversations_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateConversationRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Conversation"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/insight-groups": {
"get": {
"tags": [
"Conversations"
],
"summary": "Get Insight Template Groups",
"description": "Get all insight groups",
"operationId": "get_all_insight_groups",
"parameters": [
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"description": "Page number (0-based)",
"default": 1,
"title": "Page[Number]"
},
"size": {
"type": "integer",
"exclusiveMaximum": 100,
"minimum": 0,
"description": "Number of items per page",
"default": 20,
"title": "Page[Size]"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetInsightTemplateGroupsRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Conversations"
],
"summary": "Create Insight Template Group",
"description": "Create a new insight group",
"operationId": "create_insight_group",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateGroupCreateReq"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateGroupDetailRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/insight-groups/{group_id}": {
"delete": {
"tags": [
"Conversations"
],
"summary": "Delete Insight Template Group",
"description": "Delete insight group by ID",
"operationId": "delete_insight_group_by_id",
"parameters": [
{
"name": "group_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight group",
"title": "Group Id"
},
"description": "The ID of the insight group"
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Conversations"
],
"summary": "Get Insight Template Group",
"description": "Get insight group by ID",
"operationId": "get_insight_group_by_id",
"parameters": [
{
"name": "group_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight group",
"title": "Group Id"
},
"description": "The ID of the insight group"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateGroupDetailRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Conversations"
],
"summary": "Update Insight Template Group",
"description": "Update an insight template group",
"operationId": "update_insight_group_by_id",
"parameters": [
{
"name": "group_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight group",
"title": "Group Id"
},
"description": "The ID of the insight group"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateGroupUpdateReq"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateGroupDetailRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/insight-groups/{group_id}/insights/{insight_id}/assign": {
"post": {
"tags": [
"Conversations"
],
"summary": "Assign Insight Template To Group",
"description": "Assign an insight to a group",
"operationId": "assign_insight_to_group",
"parameters": [
{
"name": "group_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight group",
"title": "Group Id"
},
"description": "The ID of the insight group"
},
{
"name": "insight_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight",
"title": "Insight Id"
},
"description": "The ID of the insight"
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/insight-groups/{group_id}/insights/{insight_id}/unassign": {
"delete": {
"tags": [
"Conversations"
],
"summary": "Unassign Insight Template From Group",
"description": "Remove an insight from a group",
"operationId": "unassign_insight_from_group",
"parameters": [
{
"name": "group_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight group",
"title": "Group Id"
},
"description": "The ID of the insight group"
},
{
"name": "insight_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight",
"title": "Insight Id"
},
"description": "The ID of the insight"
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/insights": {
"get": {
"tags": [
"Conversations"
],
"summary": "Get Insight Templates",
"description": "Get all insights",
"operationId": "get_all_insights",
"parameters": [
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"description": "Page number (0-based)",
"default": 1,
"title": "Page[Number]"
},
"size": {
"type": "integer",
"exclusiveMaximum": 100,
"minimum": 0,
"description": "Number of items per page",
"default": 20,
"title": "Page[Size]"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetInsightTemplatesRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Conversations"
],
"summary": "Create Insight Template",
"description": "Create a new insight",
"operationId": "create_insight",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateCreateReq"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateDetailRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/insights/{insight_id}": {
"delete": {
"tags": [
"Conversations"
],
"summary": "Delete Insight Template",
"description": "Delete insight by ID",
"operationId": "delete_insight_by_id",
"parameters": [
{
"name": "insight_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight",
"title": "Insight Id"
},
"description": "The ID of the insight"
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Conversations"
],
"summary": "Get Insight Template",
"description": "Get insight by ID",
"operationId": "get_insight_by_id",
"parameters": [
{
"name": "insight_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight",
"title": "Insight Id"
},
"description": "The ID of the insight"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateDetailRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Conversations"
],
"summary": "Update Insight Template",
"description": "Update an insight template",
"operationId": "update_insight_by_id",
"parameters": [
{
"name": "insight_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the insight",
"title": "Insight Id"
},
"description": "The ID of the insight"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateUpdateReq"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InsightTemplateDetailRespData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/{conversation_id}": {
"delete": {
"tags": [
"Conversations"
],
"summary": "Delete a conversation",
"description": "Delete a specific conversation by its ID.",
"operationId": "delete_conversation_by_id_public_conversations_delete",
"parameters": [
{
"name": "conversation_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the conversation to delete"
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"404": {
"description": "Conversation Not Found"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Conversations"
],
"summary": "Get a conversation",
"description": "Retrieve a specific AI conversation by its ID.",
"operationId": "get_conversation_by_id_public_conversations_get",
"parameters": [
{
"name": "conversation_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the conversation to retrieve"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"$ref": "#/components/schemas/Conversation"
}
}
}
}
}
},
"404": {
"description": "Conversation Not Found"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Conversations"
],
"summary": "Update conversation metadata",
"description": "Update metadata for a specific conversation.",
"operationId": "update_conversation_by_id_public_conversations_put",
"parameters": [
{
"name": "conversation_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The ID of the conversation to update"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateConversationRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Update",
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"$ref": "#/components/schemas/Conversation"
}
}
}
}
}
},
"404": {
"description": "Conversation Not Found"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/{conversation_id}/conversations-insights": {
"get": {
"tags": [
"Conversations"
],
"summary": "Get insights for a conversation",
"description": "Retrieve insights for a specific conversation",
"operationId": "get_conversations_public__conversation_id__insights_get",
"parameters": [
{
"name": "conversation_id",
"in": "path",
"description": "Unique identifier of the conversation.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationInsightListData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/{conversation_id}/message": {
"post": {
"tags": [
"Conversations"
],
"summary": "Create Message",
"description": "Add a new message to the conversation. Used to insert a new messages to a conversation manually ( without using chat endpoint )",
"operationId": "add_new_message",
"parameters": [
{
"name": "conversation_id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"description": "The ID of the conversation",
"title": "Conversation Id"
},
"description": "The ID of the conversation"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateMsgReq"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/conversations/{conversation_id}/messages": {
"get": {
"tags": [
"Conversations"
],
"summary": "Get conversation messages",
"description": "Retrieve messages for a specific conversation, including tool calls made by the assistant.",
"operationId": "get_conversations_public__conversation_id__messages_get",
"parameters": [
{
"name": "conversation_id",
"in": "path",
"description": "Unique identifier of the conversation.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "page[size]",
"in": "query",
"description": "The number of messages to return per page.",
"required": false,
"schema": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"default": 20
}
},
{
"name": "page[number]",
"in": "query",
"description": "The page number to retrieve.",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationMessageListData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/embeddings": {
"get": {
"tags": [
"Embeddings"
],
"summary": "Get Tasks by Status",
"description": "Retrieve tasks for the user that are either `queued`, `processing`, `failed`, `success` or `partial_success` based on the query string. Defaults to `queued` and `processing`.",
"operationId": "GetTasksByStatus",
"parameters": [
{
"description": "List of task statuses i.e. `status=queued&status=processing`",
"required": false,
"schema": {
"items": {
"type": "string"
},
"type": "array",
"title": "Status",
"description": "List of task statuses i.e. `status=queued&status=processing`",
"default": [
"processing",
"queued"
]
},
"name": "status",
"in": "query"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BackgroundTasksQueryResponseData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Embeddings"
],
"summary": "Embed documents",
"description": "Perform embedding on a Telnyx Storage Bucket using the a embedding model.\nThe current supported file types are:\n- PDF\n- HTML\n- txt/unstructured text files\n- json\n- csv\n- audio / video (mp3, mp4, mpeg, mpga, m4a, wav, or webm ) - Max of 100mb file size.\n\nAny files not matching the above types will be attempted to be embedded as unstructured text.\n\nThis process can be slow, so it runs in the background and the user can check\nthe status of the task using the endpoint `/ai/embeddings/{task_id}`.\n\n **Important Note**: When you update documents in a Telnyx Storage bucket, their associated embeddings are automatically kept up to date. If you add or update a file, it is automatically embedded. If you delete a file, the embeddings are deleted for that particular file.\n\nYou can also specify a custom `loader` param. Currently the only supported loader value is\n`intercom` which loads Intercom article jsons as specified by [the Intercom article API](https://developers.intercom.com/docs/references/rest-api/api.intercom.io/Articles/article/)\nThis loader will split each article into paragraphs and save additional parameters relevant to Intercom docs, such as\n`article_url` and `heading`. These values will be returned by the `/v2/ai/embeddings/similarity-search` endpoint in the `loader_metadata` field.",
"operationId": "PostEmbedding",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddingBucketRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddingResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/embeddings/buckets": {
"get": {
"tags": [
"Embeddings"
],
"summary": "List embedded buckets",
"description": "Get all embedding buckets for a user.",
"operationId": "GetEmbeddingBuckets",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserEmbeddedBucketsData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/embeddings/buckets/{bucket_name}": {
"delete": {
"tags": [
"Embeddings"
],
"summary": "Disable AI for an Embedded Bucket",
"description": "Deletes an entire bucket's embeddings and disables the bucket for AI-use, returning it to normal storage pricing.",
"operationId": "DeleteEmbeddingBucket",
"parameters": [
{
"required": true,
"schema": {
"type": "string",
"title": "Bucket Name"
},
"name": "bucket_name",
"in": "path",
"description": "Name of the bucket."
}
],
"responses": {
"200": {
"description": "Bucket Embeddings Deleted Successfully"
},
"404": {
"description": "Bucket Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BucketNotFoundError"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Embeddings"
],
"summary": "Get file-level embedding statuses for a bucket",
"description": "Get all embedded files for a given user bucket, including their processing status.",
"operationId": "GetBucketName",
"parameters": [
{
"required": true,
"schema": {
"type": "string",
"title": "Bucket Name"
},
"name": "bucket_name",
"in": "path",
"description": "Name of the bucket."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddingsBucketFilesData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/embeddings/similarity-search": {
"post": {
"tags": [
"Embeddings"
],
"summary": "Search for documents",
"description": "Perform a similarity search on a Telnyx Storage Bucket, returning the most similar `num_docs` document chunks to the query.\n\nCurrently the only available distance metric is cosine similarity which will return a `distance` between 0 and 1.\nThe lower the distance, the more similar the returned document chunks are to the query.\nA `certainty` will also be returned, which is a value between 0 and 1 where the higher the certainty, the more similar the document.\nYou can read more about Weaviate distance metrics here: [Weaviate Docs](https://weaviate.io/developers/weaviate/config-refs/distances)\n\nIf a bucket was embedded using a custom loader, such as `intercom`, the additional metadata will be returned in the \n`loader_metadata` field.",
"operationId": "PostEmbeddingSimilaritySearch",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddingSimilaritySearchRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddingSimilaritySearchResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/embeddings/url": {
"post": {
"tags": [
"Embeddings"
],
"summary": "Embed URL content",
"description": "Embed website content from a specified URL, including child pages up to 5 levels deep within the same domain. The process crawls and loads content from the main URL and its linked pages into a Telnyx Cloud Storage bucket. As soon as each webpage is added to the bucket, its content is immediately processed for embeddings, that can be used for [similarity search](https://developers.telnyx.com/api-reference/embeddings/search-for-documents) and [clustering](https://developers.telnyx.com/docs/inference/clusters).",
"operationId": "PostEmbeddingUrl",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddingUrlRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmbeddingResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/embeddings/{task_id}": {
"get": {
"tags": [
"Embeddings"
],
"summary": "Get an embedding task's status",
"description": "Check the status of a current embedding task. Will be one of the following:\n- `queued` - Task is waiting to be picked up by a worker\n- `processing` - The embedding task is running\n- `success` - Task completed successfully and the bucket is embedded\n- `failure` - Task failed and no files were embedded successfully\n- `partial_success` - Some files were embedded successfully, but at least one failed",
"operationId": "GetEmbeddingTask",
"parameters": [
{
"required": true,
"schema": {
"type": "string",
"title": "Task Id"
},
"name": "task_id",
"in": "path",
"description": "Unique identifier of the task."
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TaskStatusResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/fine_tuning/jobs": {
"get": {
"tags": [
"Fine Tuning"
],
"summary": "List fine tuning jobs",
"description": "Retrieve a list of all fine tuning jobs created by the user.",
"operationId": "get_finetuningjob_public_finetuning_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FineTuningJobsListData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Fine Tuning"
],
"summary": "Create a fine tuning job",
"description": "Create a new fine tuning job.",
"operationId": "create_new_finetuningjob_public_finetuning_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateFineTuningJobRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FineTuningJob"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/fine_tuning/jobs/{job_id}": {
"get": {
"tags": [
"Fine Tuning"
],
"summary": "Get a fine tuning job",
"description": "Retrieve a fine tuning job by `job_id`.",
"operationId": "get_finetuningjob_public_finetuning__job_id__get",
"parameters": [
{
"name": "job_id",
"in": "path",
"description": "Unique identifier of the job.",
"required": true,
"schema": {
"type": "string",
"title": "Job Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FineTuningJob"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/fine_tuning/jobs/{job_id}/cancel": {
"post": {
"tags": [
"Fine Tuning"
],
"summary": "Cancel a fine tuning job",
"description": "Cancel a fine tuning job.",
"operationId": "cancel_new_finetuningjob_public_finetuning_post",
"parameters": [
{
"name": "job_id",
"in": "path",
"description": "Unique identifier of the job.",
"required": true,
"schema": {
"type": "string",
"title": "Job Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FineTuningJob"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/integrations": {
"get": {
"tags": [
"Integrations"
],
"summary": "List Integrations",
"description": "List all available integrations.",
"operationId": "list_integrations_public_integrations_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IntegrationsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/integrations/connections": {
"get": {
"tags": [
"Integrations"
],
"summary": "List User Integrations",
"description": "List user setup integrations",
"operationId": "list_user_integrations_public_integrations_connections_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IntegrationConnectionsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/integrations/connections/{user_connection_id}": {
"delete": {
"tags": [
"Integrations"
],
"summary": "Delete Integration Connection",
"description": "Delete a specific integration connection.",
"operationId": "delete_integration_connection",
"parameters": [
{
"name": "user_connection_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The user integration connection identifier"
}
],
"responses": {
"204": {
"description": "No Content - Integration connection deleted successfully"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Integrations"
],
"summary": "Get User Integration connection By Id",
"description": "Get user setup integrations",
"operationId": "GetUserIntegration",
"parameters": [
{
"name": "user_connection_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The connection id"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IntegrationConnectionResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/integrations/{integration_id}": {
"get": {
"tags": [
"Integrations"
],
"summary": "List Integration By Id",
"description": "Retrieve integration details",
"operationId": "list_integration_by_id_public_integrations__integration_id__get",
"parameters": [
{
"name": "integration_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The integration id"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Integration"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/mcp_servers": {
"get": {
"tags": [
"MCP Servers"
],
"summary": "List MCP Servers",
"description": "Retrieve a list of MCP servers.",
"operationId": "list_mcp_servers",
"parameters": [
{
"name": "type",
"in": "query",
"description": "Filter results by type.",
"required": false,
"schema": {
"type": "string",
"title": "Type"
}
},
{
"name": "url",
"in": "query",
"description": "Filter results by url.",
"required": false,
"schema": {
"type": "string",
"title": "Url"
}
},
{
"name": "page[size]",
"in": "query",
"description": "Number of items to return per page.",
"required": false,
"schema": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"default": 20,
"title": "Page[Size]"
}
},
{
"name": "page[number]",
"in": "query",
"description": "Page number to retrieve (1-based).",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Page[Number]"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MCPServersListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"MCP Servers"
],
"summary": "Create MCP Server",
"description": "Create a new MCP server.",
"operationId": "create_mcp_server",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateMCPServerRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MCPServer"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/mcp_servers/{mcp_server_id}": {
"delete": {
"tags": [
"MCP Servers"
],
"summary": "Delete MCP Server",
"description": "Delete a specific MCP server.",
"operationId": "delete_mcp_server",
"parameters": [
{
"name": "mcp_server_id",
"in": "path",
"description": "Unique identifier of the mcp server.",
"required": true,
"schema": {
"type": "string",
"title": "Mcp Server Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"MCP Servers"
],
"summary": "Get MCP Server",
"description": "Retrieve details for a specific MCP server.",
"operationId": "get_mcp_server",
"parameters": [
{
"name": "mcp_server_id",
"in": "path",
"description": "Unique identifier of the mcp server.",
"required": true,
"schema": {
"type": "string",
"title": "Mcp Server Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MCPServer"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"MCP Servers"
],
"summary": "Update MCP Server",
"description": "Update an existing MCP server.",
"operationId": "update_mcp_server",
"parameters": [
{
"name": "mcp_server_id",
"in": "path",
"description": "Unique identifier of the mcp server.",
"required": true,
"schema": {
"type": "string",
"title": "Mcp Server Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateMCPServerRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MCPServer"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions": {
"get": {
"tags": [
"Missions"
],
"summary": "List missions",
"description": "List all missions for the organization",
"operationId": "get_public_missions_missions",
"parameters": [
{
"name": "page[number]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"description": "Page number (1-based)",
"default": 1,
"title": "Page[Number]"
},
"description": "Page number (1-based)"
},
{
"name": "page[size]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"maximum": 1000,
"exclusiveMinimum": 0,
"description": "Number of items per page",
"default": 20,
"title": "Page[Size]"
},
"description": "Number of items per page"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Create mission",
"description": "Create a new mission definition",
"operationId": "post_public_missions_missions",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateMissionRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/events": {
"get": {
"tags": [
"Missions"
],
"summary": "List recent events",
"description": "List recent events across all missions",
"operationId": "get_public_missions_missions_events",
"parameters": [
{
"name": "type",
"in": "query",
"description": "Filter results by type.",
"required": false,
"schema": {
"title": "Type",
"type": "string"
}
},
{
"name": "page[number]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"description": "Page number (1-based)",
"default": 1,
"title": "Page[Number]"
},
"description": "Page number (1-based)"
},
{
"name": "page[size]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"maximum": 1000,
"exclusiveMinimum": 0,
"description": "Number of items per page",
"default": 50,
"title": "Page[Size]"
},
"description": "Number of items per page"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/runs": {
"get": {
"tags": [
"Missions"
],
"summary": "List recent runs",
"description": "List recent runs across all missions",
"operationId": "get_public_missions_missions_runs",
"parameters": [
{
"name": "status",
"in": "query",
"description": "Filter results by status.",
"required": false,
"schema": {
"title": "Status",
"type": "string"
}
},
{
"name": "page[number]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"description": "Page number (1-based)",
"default": 1,
"title": "Page[Number]"
},
"description": "Page number (1-based)"
},
{
"name": "page[size]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"maximum": 1000,
"exclusiveMinimum": 0,
"description": "Number of items per page",
"default": 20,
"title": "Page[Size]"
},
"description": "Number of items per page"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}": {
"delete": {
"tags": [
"Missions"
],
"summary": "Delete mission",
"description": "Delete a mission",
"operationId": "delete_public_missions_missions_mission_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
}
],
"responses": {
"204": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Missions"
],
"summary": "Get mission",
"description": "Get a mission by ID (includes tools, knowledge_bases, mcp_servers)",
"operationId": "get_public_missions_missions_mission_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Missions"
],
"summary": "Update mission",
"description": "Update a mission definition",
"operationId": "put_public_missions_missions_mission_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateMissionRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/clone": {
"post": {
"tags": [
"Missions"
],
"summary": "Clone mission",
"description": "Clone an existing mission",
"operationId": "post_public_missions_missions_mission_id_clone",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
}
],
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/knowledge-bases": {
"get": {
"tags": [
"Missions"
],
"summary": "List knowledge bases",
"description": "List all knowledge bases for a mission",
"operationId": "get_public_missions_missions_mission_id_knowledge_bases",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Create knowledge base",
"description": "Create a new knowledge base for a mission",
"operationId": "post_public_missions_missions_mission_id_knowledge_bases",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
}
],
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/knowledge-bases/{knowledge_base_id}": {
"delete": {
"tags": [
"Missions"
],
"summary": "Delete knowledge base",
"description": "Delete a knowledge base from a mission",
"operationId": "DeleteMissionKnowledgeBase",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "knowledge_base_id",
"in": "path",
"description": "Unique identifier of the knowledge base.",
"required": true,
"schema": {
"type": "string",
"title": "Knowledge Base Id"
}
}
],
"responses": {
"204": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Missions"
],
"summary": "Get knowledge base",
"description": "Get a specific knowledge base by ID",
"operationId": "GetMissionKnowledgeBase",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "knowledge_base_id",
"in": "path",
"description": "Unique identifier of the knowledge base.",
"required": true,
"schema": {
"type": "string",
"title": "Knowledge Base Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Missions"
],
"summary": "Update knowledge base",
"description": "Update a knowledge base definition",
"operationId": "PutMissionKnowledgeBase",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "knowledge_base_id",
"in": "path",
"description": "Unique identifier of the knowledge base.",
"required": true,
"schema": {
"type": "string",
"title": "Knowledge Base Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/mcp-servers": {
"get": {
"tags": [
"Missions"
],
"summary": "List MCP servers",
"description": "List all MCP servers for a mission",
"operationId": "get_public_missions_missions_mission_id_mcp_servers",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Create MCP server",
"description": "Create a new MCP server for a mission",
"operationId": "post_public_missions_missions_mission_id_mcp_servers",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
}
],
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/mcp-servers/{mcp_server_id}": {
"delete": {
"tags": [
"Missions"
],
"summary": "Delete MCP server",
"description": "Delete an MCP server from a mission",
"operationId": "DeleteMissionMcpServer",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "mcp_server_id",
"in": "path",
"description": "Unique identifier of the mcp server.",
"required": true,
"schema": {
"type": "string",
"title": "Mcp Server Id"
}
}
],
"responses": {
"204": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Missions"
],
"summary": "Get MCP server",
"description": "Get a specific MCP server by ID",
"operationId": "GetMissionMcpServer",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "mcp_server_id",
"in": "path",
"description": "Unique identifier of the mcp server.",
"required": true,
"schema": {
"type": "string",
"title": "Mcp Server Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Missions"
],
"summary": "Update MCP server",
"description": "Update an MCP server definition",
"operationId": "PutMissionMcpServer",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "mcp_server_id",
"in": "path",
"description": "Unique identifier of the mcp server.",
"required": true,
"schema": {
"type": "string",
"title": "Mcp Server Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs": {
"get": {
"tags": [
"Missions"
],
"summary": "List runs for mission",
"description": "List all runs for a specific mission",
"operationId": "get_public_missions_missions_mission_id_runs",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "status",
"in": "query",
"description": "Filter results by status.",
"required": false,
"schema": {
"title": "Status",
"type": "string"
}
},
{
"name": "page[number]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"description": "Page number (1-based)",
"default": 1,
"title": "Page[Number]"
},
"description": "Page number (1-based)"
},
{
"name": "page[size]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"maximum": 1000,
"exclusiveMinimum": 0,
"description": "Number of items per page",
"default": 20,
"title": "Page[Size]"
},
"description": "Number of items per page"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Start a run",
"description": "Start a new run for a mission",
"operationId": "post_public_missions_missions_mission_id_runs",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateMissionRunRequest",
"default": {}
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}": {
"get": {
"tags": [
"Missions"
],
"summary": "Get run details",
"description": "Get details of a specific run",
"operationId": "get_public_missions_missions_mission_id_runs_run_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"patch": {
"tags": [
"Missions"
],
"summary": "Update run",
"description": "Update run status and/or result",
"operationId": "patch_public_missions_missions_mission_id_runs_run_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateMissionRunRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/cancel": {
"post": {
"tags": [
"Missions"
],
"summary": "Cancel run",
"description": "Cancel a running or paused run",
"operationId": "post_public_missions_missions_mission_id_runs_run_id_cancel",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/events": {
"get": {
"tags": [
"Missions"
],
"summary": "List events",
"description": "List events for a run (paginated)",
"operationId": "get_public_missions_missions_mission_id_runs_run_id_events",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
},
{
"name": "type",
"in": "query",
"description": "Filter results by type.",
"required": false,
"schema": {
"title": "Type",
"type": "string"
}
},
{
"name": "step_id",
"in": "query",
"description": "Filter results by step id.",
"required": false,
"schema": {
"title": "Step Id",
"type": "string"
}
},
{
"name": "agent_id",
"in": "query",
"description": "Filter results by agent id.",
"required": false,
"schema": {
"title": "Agent Id",
"type": "string"
}
},
{
"name": "page[number]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"description": "Page number (1-based)",
"default": 1,
"title": "Page[Number]"
},
"description": "Page number (1-based)"
},
{
"name": "page[size]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"maximum": 1000,
"exclusiveMinimum": 0,
"description": "Number of items per page",
"default": 50,
"title": "Page[Size]"
},
"description": "Number of items per page"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Log event",
"description": "Log an event for a run",
"operationId": "post_public_missions_missions_mission_id_runs_run_id_events",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateEventRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/events/{event_id}": {
"get": {
"tags": [
"Missions"
],
"summary": "Get event details",
"description": "Get details of a specific event",
"operationId": "GetMissionRunEvent",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
},
{
"name": "event_id",
"in": "path",
"description": "Unique identifier of the event.",
"required": true,
"schema": {
"type": "string",
"title": "Event Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/pause": {
"post": {
"tags": [
"Missions"
],
"summary": "Pause run",
"description": "Pause a running run",
"operationId": "post_public_missions_missions_mission_id_runs_run_id_pause",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/plan": {
"get": {
"tags": [
"Missions"
],
"summary": "Get plan",
"description": "Get the plan (all steps) for a run",
"operationId": "get_public_missions_missions_mission_id_runs_run_id_plan",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlanResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Create initial plan",
"description": "Create the initial plan for a run",
"operationId": "post_public_missions_missions_mission_id_runs_run_id_plan",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreatePlanRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlanStepsCreatedResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/plan/steps": {
"post": {
"tags": [
"Missions"
],
"summary": "Add step(s) to plan",
"description": "Add one or more steps to an existing plan",
"operationId": "post_public_missions_missions_mission_id_runs_run_id_plan_steps",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddPlanStepsRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlanStepsCreatedResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/plan/steps/{step_id}": {
"get": {
"tags": [
"Missions"
],
"summary": "Get step details",
"description": "Get details of a specific plan step",
"operationId": "GetMissionRunStep",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
},
{
"name": "step_id",
"in": "path",
"description": "Unique identifier of the step.",
"required": true,
"schema": {
"type": "string",
"title": "Step Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlanStepResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"patch": {
"tags": [
"Missions"
],
"summary": "Update step status",
"description": "Update the status of a plan step",
"operationId": "UpdateMissionRunStep",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
},
{
"name": "step_id",
"in": "path",
"description": "Unique identifier of the step.",
"required": true,
"schema": {
"type": "string",
"title": "Step Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdatePlanStepRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlanStepResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/resume": {
"post": {
"tags": [
"Missions"
],
"summary": "Resume run",
"description": "Resume a paused run",
"operationId": "post_public_missions_missions_mission_id_runs_run_id_resume",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MissionRunResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/telnyx-agents": {
"get": {
"tags": [
"Missions"
],
"summary": "List linked Telnyx agents",
"description": "List all Telnyx agents linked to a run",
"operationId": "ListMissionRunAgents",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxAgentsListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Link Telnyx agent to run",
"description": "Link a Telnyx AI agent (voice/messaging) to a run",
"operationId": "CreateMissionRunAgent",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LinkTelnyxAgentRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TelnyxAgentResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/runs/{run_id}/telnyx-agents/{telnyx_agent_id}": {
"delete": {
"tags": [
"Missions"
],
"summary": "Unlink Telnyx agent",
"description": "Unlink a Telnyx agent from a run",
"operationId": "DeleteMissionRunAgent",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Mission Id"
}
},
{
"name": "run_id",
"in": "path",
"description": "Unique identifier of the run.",
"required": true,
"schema": {
"type": "string",
"format": "uuid",
"title": "Run Id"
}
},
{
"name": "telnyx_agent_id",
"in": "path",
"description": "Unique identifier of the telnyx agent.",
"required": true,
"schema": {
"type": "string",
"title": "Telnyx Agent Id"
}
}
],
"responses": {
"204": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/tools": {
"get": {
"tags": [
"Missions"
],
"summary": "List tools",
"description": "List all tools for a mission",
"operationId": "get_public_missions_missions_mission_id_tools",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Missions"
],
"summary": "Create tool",
"description": "Create a new tool for a mission",
"operationId": "post_public_missions_missions_mission_id_tools",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
}
],
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/missions/{mission_id}/tools/{tool_id}": {
"delete": {
"tags": [
"Missions"
],
"summary": "Delete tool",
"description": "Delete a tool from a mission",
"operationId": "delete_public_missions_missions_mission_id_tools_tool_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"responses": {
"204": {
"description": "Successful Response"
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"Missions"
],
"summary": "Get tool",
"description": "Get a specific tool by ID",
"operationId": "get_public_missions_missions_mission_id_tools_tool_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
},
"put": {
"tags": [
"Missions"
],
"summary": "Update tool",
"description": "Update a tool definition",
"operationId": "put_public_missions_missions_mission_id_tools_tool_id",
"parameters": [
{
"name": "mission_id",
"in": "path",
"description": "Unique identifier of the mission.",
"required": true,
"schema": {
"type": "string",
"title": "Mission Id"
}
},
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/models": {
"get": {
"tags": [
"Chat"
],
"summary": "Get available models",
"description": "**Deprecated**: Use `GET /v2/ai/openai/models` instead.\n\nReturns the same `ModelsResponse` payload as the OpenAI-compatible endpoint \u2014 open-source LLMs hosted on Telnyx (e.g. `moonshotai/Kimi-K2.6`, `zai-org/GLM-5.1-FP8`, `MiniMaxAI/MiniMax-M2.7`), embedding models, and fine-tuned models \u2014 kept around for backwards compatibility. New integrations should use `/v2/ai/openai/models`.\n\nModel ids follow the `{organization}/{model_name}` convention from Hugging Face.",
"operationId": "get_models_public_models_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelsResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"deprecated": true,
"x-hidden": true,
"x-latency-category": "responsive"
}
},
"/ai/openai/chat/completions": {
"post": {
"tags": [
"OpenAI Chat"
],
"summary": "Create a chat completion (OpenAI-compatible)",
"description": "Chat with a language model. This endpoint is consistent with the [OpenAI Chat Completions API](https://platform.openai.com/docs/api-reference/chat) and may be used with the OpenAI JS or Python SDK by setting the base URL to `https://api.telnyx.com/v2/ai/openai`.",
"operationId": "create_openai_chat_completion",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionRequest"
},
"example": {
"messages": [
{
"role": "system",
"content": "You are a friendly chatbot."
},
{
"role": "user",
"content": "Hello, world!"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/openai/embeddings": {
"post": {
"tags": [
"OpenAI Embeddings"
],
"summary": "Create embeddings",
"description": "Creates an embedding vector representing the input text. This endpoint is compatible with the [OpenAI Embeddings API](https://platform.openai.com/docs/api-reference/embeddings) and may be used with the OpenAI JS or Python SDK by setting the base URL to `https://api.telnyx.com/v2/ai/openai`.",
"operationId": "create_openai_embeddings",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAIEmbeddingRequest"
},
"example": {
"input": "The quick brown fox jumps over the lazy dog",
"model": "thenlper/gte-large"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAIEmbeddingResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/openai/embeddings/models": {
"get": {
"tags": [
"OpenAI Embeddings"
],
"summary": "List embedding models",
"description": "Returns a list of available embedding models. This endpoint is compatible with the OpenAI Models API format.",
"operationId": "list_openai_embedding_models",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAIEmbeddingModelsResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/openai/models": {
"get": {
"tags": [
"OpenAI Chat"
],
"summary": "Get available models (OpenAI-compatible)",
"description": "Lists every model currently available to your account on Telnyx Inference, including SOTA open-source LLMs hosted on Telnyx GPUs (for example `moonshotai/Kimi-K2.6`, `zai-org/GLM-5.1-FP8`, and `MiniMaxAI/MiniMax-M2.7`), embedding models, and any fine-tuned models you have created.\n\nEach entry is a `ModelMetadata` object describing the model id, owner, task, context length, supported languages, billing tier, pricing per 1M tokens, deployment regions, and whether the model supports vision or fine-tuning. Use this endpoint to discover model ids you can pass to `POST /v2/ai/openai/chat/completions`.\n\nModel ids follow the `{organization}/{model_name}` convention from Hugging Face (for example `moonshotai/Kimi-K2.6`). This endpoint is OpenAI-compatible: clients pointed at `https://api.telnyx.com/v2/ai/openai` can call `client.models.list()` to retrieve the same payload.",
"operationId": "list_openai_models",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModelsResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/openai/responses": {
"post": {
"tags": [
"OpenAI Chat"
],
"summary": "Create an OpenAI-compatible response",
"description": "Create a response using Telnyx's OpenAI-compatible Responses API. This endpoint is compatible with the [OpenAI Responses API](https://developers.openai.com/api/reference/responses/overview) and may be used with the OpenAI JS or Python SDK by setting the base URL to `https://api.telnyx.com/v2/ai/openai`.\n\nThe `conversation` parameter refers to a Telnyx Conversation rather than an OpenAI-hosted conversation object. To persist a thread across turns, first [create a conversation](https://developers.telnyx.com/api-reference/conversations/create-a-conversation) with `POST /ai/conversations`, then pass that conversation's `id` in the Responses request as `conversation`. The endpoint appends the new input, assistant output, reasoning, and tool-call messages to that conversation. Reuse the same `conversation` id on subsequent Responses requests, including tool-result followups, so the model receives the prior context.\n\nIf `conversation` is omitted, the request is processed without persisting messages to a Telnyx conversation. Use the Conversations API to manage history: [list conversations](https://developers.telnyx.com/api-reference/conversations/list-conversations) (optionally filtered by metadata), [fetch messages](https://developers.telnyx.com/api-reference/conversations/get-conversation-messages) for a conversation, and optionally [add messages](https://developers.telnyx.com/api-reference/conversations/create-message) outside the Responses flow.\n\nYou can attach arbitrary metadata when creating a conversation (for example to tag the conversation's source, channel, or user) and later filter by it when listing conversations.",
"operationId": "chat_public_openai_responses_completions_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true,
"properties": {
"model": {
"type": "string",
"description": "Model identifier to use for the response, for example `zai-org/GLM-5.1-FP8` or another model available from the Telnyx OpenAI-compatible models endpoint."
},
"input": {
"description": "The input items for this turn, using the OpenAI Responses API input format."
},
"conversation": {
"type": "string",
"format": "uuid",
"description": "Optional Telnyx Conversation ID from `POST /ai/conversations`. When provided, Telnyx stores this turn on that conversation and uses the conversation's prior messages as context. Reuse the same ID for subsequent turns and tool-result followups. Omit it for a non-persisted, stateless response."
},
"instructions": {
"type": "string",
"description": "Optional system/developer instructions for the model. When used with a persisted `conversation`, send these on the first request that creates the thread; subsequent turns can rely on the stored history."
},
"stream": {
"type": "boolean",
"description": "Set to `true` to stream Server-Sent Events, matching OpenAI's Responses streaming format."
}
}
},
"example": {
"model": "zai-org/GLM-5.1-FP8",
"conversation": "6a09cdc3-8948-47f0-aa62-74ac943d6c58",
"instructions": "You are a friendly chatbot.",
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, world!"
}
]
}
],
"stream": true
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/responses": {
"post": {
"tags": [
"Chat"
],
"summary": "Create a response",
"description": "**Deprecated**: Use `POST /v2/ai/openai/responses` instead. This endpoint is compatible with the [OpenAI Responses API](https://developers.openai.com/api/reference/responses/overview) and may be used with the OpenAI JS or Python SDK. Response id parameter is not supported at the moment. Use the `conversation` parameter with a Telnyx Conversation ID to leverage persistent conversations.",
"operationId": "chat_public_responses_completions_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
},
"example": {
"model": "zai-org/GLM-5.1-FP8",
"input": [
{
"role": "system",
"content": [
{
"type": "input_text",
"text": "You are a friendly chatbot."
}
]
},
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, world!"
}
]
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"deprecated": true,
"x-hidden": true,
"x-latency-category": "responsive"
}
},
"/ai/summarize": {
"post": {
"tags": [
"Chat"
],
"summary": "Summarize file content",
"description": "Generate a summary of a file's contents. \n\n Supports the following text formats: \n- PDF, HTML, txt, json, csv\n\n Supports the following media formats (billed for both the transcription and summary): \n- flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm\n- Up to 100 MB",
"operationId": "PostSummary",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SummaryRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SummaryResponseData"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/ai/tools": {
"get": {
"tags": [
"Assistants"
],
"summary": "List Tools",
"operationId": "list_tools",
"parameters": [
{
"name": "filter[type]",
"in": "query",
"description": "Filter results by filter type.",
"required": false,
"schema": {
"title": "Filter[Type]",
"type": "string"
}
},
{
"name": "filter[name]",
"in": "query",
"description": "Filter results by filter name.",
"required": false,
"schema": {
"title": "Filter[Name]",
"type": "string"
}
},
{
"name": "page[size]",
"in": "query",
"description": "Number of items to return per page.",
"required": false,
"schema": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"default": 20,
"title": "Page[Size]"
}
},
{
"name": "page[number]",
"in": "query",
"description": "Page number to retrieve (1-based).",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"default": 1,
"title": "Page[Number]"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SharedToolListResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "List Tools"
},
"post": {
"tags": [
"Assistants"
],
"summary": "Create Tool",
"operationId": "create_tool_post",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateSharedToolRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SharedToolResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Create Tool"
}
},
"/ai/tools/{tool_id}": {
"delete": {
"tags": [
"Assistants"
],
"summary": "Delete Tool",
"operationId": "delete_tool_tool_id",
"parameters": [
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Delete Tool"
},
"get": {
"tags": [
"Assistants"
],
"summary": "Get Tool",
"operationId": "get_tool_tool_id",
"parameters": [
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SharedToolResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Get Tool"
},
"patch": {
"tags": [
"Assistants"
],
"summary": "Update Tool",
"operationId": "update_tool_tool_id",
"parameters": [
{
"name": "tool_id",
"in": "path",
"description": "Unique identifier of the tool.",
"required": true,
"schema": {
"type": "string",
"title": "Tool Id"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateSharedToolRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SharedToolResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
},
"x-latency-category": "responsive",
"description": "Update Tool"
}
},
"/alphanumeric_sender_ids": {
"get": {
"summary": "List alphanumeric sender IDs",
"description": "List all alphanumeric sender IDs for the authenticated user.",
"operationId": "ListAlphanumericSenderIds",
"tags": [
"Messaging"
],
"parameters": [
{
"name": "filter[messaging_profile_id]",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "uuid"
},
"description": "Filter by messaging profile ID."
},
{
"name": "page[number]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 1
},
"description": "Page number."
},
{
"name": "page[size]",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 20
},
"description": "Page size."
}
],
"responses": {
"200": {
"description": "Successful response with a list of alphanumeric sender IDs.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlphanumericSenderId"
}
},
"meta": {
"$ref": "#/components/schemas/messaging_PaginationMeta"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/messaging_UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/messaging_UnprocessableEntityResponse"
}
},
"x-latency-category": "responsive"
},
"post": {
"summary": "Create an alphanumeric sender ID",
"description": "Create a new alphanumeric sender ID associated with a messaging profile.",
"operationId": "CreateAlphanumericSenderId",
"tags": [
"Messaging"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateAlphanumericSenderIdRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful response with a single alphanumeric sender ID.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AlphanumericSenderId"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/messaging_UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/messaging_UnprocessableEntityResponse"
}
},
"x-latency-category": "responsive"
}
},
"/alphanumeric_sender_ids/{id}": {
"delete": {
"summary": "Delete an alphanumeric sender ID",
"description": "Delete an alphanumeric sender ID and disassociate it from its messaging profile.",
"operationId": "DeleteAlphanumericSenderId",
"tags": [
"Messaging"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The identifier of the alphanumeric sender ID."
}
],
"responses": {
"200": {
"description": "Successful response with a single alphanumeric sender ID.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AlphanumericSenderId"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/messaging_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/messaging_NotFoundResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"summary": "Retrieve an alphanumeric sender ID",
"description": "Retrieve a specific alphanumeric sender ID.",
"operationId": "GetAlphanumericSenderId",
"tags": [
"Messaging"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The identifier of the alphanumeric sender ID."
}
],
"responses": {
"200": {
"description": "Successful response with a single alphanumeric sender ID.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AlphanumericSenderId"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/messaging_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/messaging_NotFoundResponse"
}
},
"x-latency-category": "responsive"
}
},
"/audit_events": {
"get": {
"summary": "List Audit Logs",
"description": "Retrieve a list of audit log entries. Audit logs are a best-effort, eventually consistent record of significant account-related changes.",
"operationId": "ListAuditLogs",
"tags": [
"Audit Logs"
],
"parameters": [
{
"$ref": "#/components/parameters/audit-logs_PageConsolidated"
},
{
"$ref": "#/components/parameters/audit-logs_FilterConsolidated"
},
{
"$ref": "#/components/parameters/Sort"
}
],
"responses": {
"200": {
"description": "A list of audit log entries.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuditLogList"
}
}
}
},
"401": {
"$ref": "#/components/responses/AuditLogsGenericErrorResponse"
},
"default": {
"$ref": "#/components/responses/AuditLogsGenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/authentication_providers": {
"get": {
"summary": "List all SSO authentication providers",
"deprecated": false,
"description": "Returns a list of your SSO authentication providers.",
"operationId": "FindAuthenticationProviders",
"tags": [
"Authentication Providers"
],
"parameters": [
{
"name": "sort",
"in": "query",
"description": "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.
\nThat is:
name: sorts the result by the\n name field in ascending order.\n -name: sorts the result by the\n name field in descending order.\n created_at in descending order.",
"required": false,
"schema": {
"type": "string",
"enum": [
"name",
"-name",
"short_name",
"-short_name",
"active",
"-active",
"created_at",
"-created_at",
"updated_at",
"-updated_at"
],
"default": "-created_at",
"example": "name"
}
},
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
},
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AuthenticationProvider"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
}
},
"x-latency-category": "responsive"
},
"post": {
"summary": "Creates an authentication provider",
"deprecated": false,
"description": "Creates an authentication provider.",
"operationId": "CreateAuthenticationProvider",
"tags": [
"Authentication Providers"
],
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuthenticationProviderCreate"
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AuthenticationProvider"
}
}
}
}
}
},
"422": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/authentication_providers/{id}": {
"delete": {
"summary": "Deletes an authentication provider",
"deprecated": false,
"description": "Deletes an existing authentication provider.",
"operationId": "DeleteAuthenticationProvider",
"tags": [
"Authentication Providers"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "authentication provider ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AuthenticationProvider"
}
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"422": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
}
},
"x-latency-category": "responsive"
},
"get": {
"summary": "Retrieve an authentication provider",
"deprecated": false,
"description": "Retrieves the details of an existing authentication provider.",
"operationId": "GetAuthenticationProvider",
"tags": [
"Authentication Providers"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "authentication provider ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AuthenticationProvider"
}
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"422": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
}
},
"x-latency-category": "responsive"
},
"patch": {
"summary": "Update an authentication provider",
"deprecated": false,
"description": "Updates settings of an existing authentication provider.",
"operationId": "UpdateAuthenticationProvider",
"tags": [
"Authentication Providers"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateAuthenticationProviderRequest"
},
"example": {
"name": "Okta",
"short_name": "myorg",
"active": true,
"settings": {
"idp_entity_id": "https://myorg.myidp.com/saml/metadata",
"idp_sso_target_url": "https://myorg.myidp.com/trust/saml2/http-post/sso",
"idp_cert_fingerprint": "13:38:C7:BB:C9:FF:4A:70:38:3A:E3:D9:5C:CD:DB:2E:50:1E:80:A7",
"idp_cert_fingerprint_algorithm": "sha1"
}
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/AuthenticationProvider"
}
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
},
"422": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
}
}
}
}
},
"x-latency-category": "responsive"
}
},
"/available_phone_number_blocks": {
"get": {
"summary": "List available phone number blocks",
"operationId": "ListAvailablePhoneNumberBlocks",
"tags": [
"Phone Number Search"
],
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[locality], filter[country_code], filter[national_destination_code], filter[phone_number_type]",
"schema": {
"type": "object",
"properties": {
"locality": {
"type": "string",
"description": "Filter phone numbers by city."
},
"country_code": {
"type": "string",
"description": "Filter phone numbers by country."
},
"national_destination_code": {
"type": "string",
"description": "Filter by the national destination code of the number."
},
"phone_number_type": {
"type": "string",
"enum": [
"local",
"toll_free",
"mobile",
"national",
"shared_cost"
],
"description": "Filter phone numbers by number type."
}
}
}
}
],
"responses": {
"200": {
"description": "Successful response with a list of available phone numbers blocks.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Available Phone Numbers Blocks Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AvailablePhoneNumberBlock"
}
},
"meta": {
"$ref": "#/components/schemas/AvailablePhoneNumbersMetadata"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "List available phone number blocks"
}
},
"/available_phone_numbers": {
"get": {
"summary": "List available phone numbers",
"operationId": "ListAvailablePhoneNumbers",
"tags": [
"Phone Number Search"
],
"x-group-parameters": "true",
"x-endpoint-cost": "heavy",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[phone_number], filter[locality], filter[administrative_area], filter[country_code], filter[national_destination_code], filter[rate_center], filter[phone_number_type], filter[features], filter[limit], filter[best_effort], filter[quickship], filter[reservable], filter[exclude_held_numbers]",
"schema": {
"type": "object",
"properties": {
"phone_number": {
"type": "object",
"description": "Filter phone numbers by pattern matching.",
"properties": {
"starts_with": {
"type": "string",
"description": "Filter numbers starting with a pattern (excludes NDC if used with `national_destination_code` filter)."
},
"ends_with": {
"type": "string",
"description": "Filter numbers ending with a pattern (excludes NDC if used with `national_destination_code` filter)."
},
"contains": {
"type": "string",
"description": "Filter numbers containing a pattern (excludes NDC if used with `national_destination_code` filter)."
}
},
"additionalProperties": false
},
"locality": {
"type": "string",
"description": "Filter phone numbers by city."
},
"administrative_area": {
"type": "string",
"description": "Find numbers in a particular US state or CA province."
},
"country_code": {
"type": "string",
"description": "Filter phone numbers by country."
},
"national_destination_code": {
"type": "string",
"description": "Filter by the national destination code of the number."
},
"rate_center": {
"type": "string",
"description": "Filter phone numbers by rate center. This filter is only applicable to USA and Canada numbers."
},
"phone_number_type": {
"type": "string",
"enum": [
"local",
"toll_free",
"mobile",
"national",
"shared_cost"
],
"description": "Filter phone numbers by number type."
},
"features": {
"type": "array",
"items": {
"type": "string",
"enum": [
"sms",
"mms",
"voice",
"fax",
"emergency",
"hd_voice",
"international_sms",
"local_calling"
]
},
"description": "Filter phone numbers with specific features."
},
"limit": {
"type": "integer",
"description": "Limits the number of results."
},
"best_effort": {
"type": "boolean",
"description": "Filter to determine if best effort results should be included. Only available in USA/CANADA."
},
"quickship": {
"type": "boolean",
"description": "Filter to exclude phone numbers that need additional time after to purchase to activate. Only applicable for +1 toll_free numbers."
},
"reservable": {
"type": "boolean",
"description": "Filter to ensure only numbers that can be reserved are included in the results."
},
"exclude_held_numbers": {
"type": "boolean",
"description": "Filter to exclude phone numbers that are currently on hold/reserved for your account."
}
}
}
}
],
"responses": {
"200": {
"description": "Successful response with a list of available phone numbers.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Available Phone Numbers Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AvailablePhoneNumber"
}
},
"meta": {
"$ref": "#/components/schemas/AvailablePhoneNumbersMetadata"
},
"metadata": {
"$ref": "#/components/schemas/AvailablePhoneNumbersMetadata"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "List available phone numbers"
}
},
"/balance": {
"get": {
"summary": "Get user balance details",
"operationId": "GetUserBalance",
"tags": [
"Billing"
],
"responses": {
"200": {
"description": "Get user balance details",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/UserBalance"
}
}
}
}
}
},
"403": {
"$ref": "#/components/responses/billing_ForbiddenErrorResponse"
},
"422": {
"$ref": "#/components/responses/billing_UnprocessableEntityErrorResponse"
},
"503": {
"$ref": "#/components/responses/ServiceUnavailableErrorResponse"
},
"default": {
"$ref": "#/components/responses/GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Get user balance details"
}
},
"/billing_groups": {
"get": {
"summary": "List all billing groups",
"deprecated": false,
"description": "List all billing groups",
"operationId": "ListBillingGroups",
"tags": [
"Billing Groups"
],
"parameters": [
{
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
},
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
}
}
}
}
],
"responses": {
"200": {
"description": "A paginated array of billing groups",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BillingGroup"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
},
"headers": {}
},
"400": {
"$ref": "#/components/responses/BadRequestErrorResponse"
},
"default": {
"$ref": "#/components/responses/GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"post": {
"summary": "Create a billing group",
"deprecated": false,
"description": "Create a billing group",
"operationId": "CreateBillingGroup",
"tags": [
"Billing Groups"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NewBillingGroup"
},
"example": {
"name": "string"
}
}
}
},
"responses": {
"200": {
"description": "Expected billing group response to a valid request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/BillingGroup"
}
}
}
}
},
"headers": {}
},
"409": {
"$ref": "#/components/responses/ConflictErrorResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityErrorResponse"
},
"default": {
"$ref": "#/components/responses/GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/billing_groups/{id}": {
"delete": {
"summary": "Delete a billing group",
"deprecated": false,
"description": "Delete a billing group",
"operationId": "DeleteBillingGroup",
"tags": [
"Billing Groups"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "The id of the billing group",
"required": true,
"example": "f5586561-8ff0-4291-a0ac-84fe544797bd",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Expected billing group response to a valid request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/BillingGroup"
}
}
}
}
},
"headers": {}
},
"403": {
"$ref": "#/components/responses/ForbiddenErrorResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundErrorResponse"
},
"409": {
"$ref": "#/components/responses/ConflictErrorResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityErrorResponse"
},
"default": {
"$ref": "#/components/responses/GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"summary": "Get a billing group",
"deprecated": false,
"description": "Get a billing group",
"operationId": "GetBillingGroup",
"tags": [
"Billing Groups"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "The id of the billing group",
"required": true,
"example": "f5586561-8ff0-4291-a0ac-84fe544797bd",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Expected billing group response to a valid request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/BillingGroup"
}
}
}
}
},
"headers": {}
},
"403": {
"$ref": "#/components/responses/ForbiddenErrorResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundErrorResponse"
},
"default": {
"$ref": "#/components/responses/GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"patch": {
"summary": "Update a billing group",
"deprecated": false,
"description": "Update a billing group",
"operationId": "UpdateBillingGroup",
"tags": [
"Billing Groups"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "The id of the billing group",
"required": true,
"example": "f5586561-8ff0-4291-a0ac-84fe544797bd",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateBillingGroup"
},
"example": {
"name": "string"
}
}
}
},
"responses": {
"200": {
"description": "Expected billing group response to a valid request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/BillingGroup"
}
}
}
}
},
"headers": {}
},
"403": {
"$ref": "#/components/responses/ForbiddenErrorResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundErrorResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityErrorResponse"
},
"default": {
"$ref": "#/components/responses/GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bulk_sim_card_actions": {
"get": {
"operationId": "ListBulkSimCardActions",
"summary": "List bulk SIM card actions",
"description": "This API lists a paginated collection of bulk SIM card actions. A bulk SIM card action contains details about a collection of individual SIM card actions.",
"tags": [
"SIM Card Actions"
],
"parameters": [
{
"$ref": "#/components/parameters/wireless_PageNumber"
},
{
"$ref": "#/components/parameters/wireless_PageSize"
},
{
"name": "filter[action_type]",
"description": "Filter by action type.",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"bulk_disable_voice",
"bulk_enable_voice",
"bulk_set_public_ips"
],
"example": "bulk_set_public_ips"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BulkSIMCardActionDetailed"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
},
"description": "Successful Response"
},
"401": {
"description": "Unauthorized"
},
"default": {
"$ref": "#/components/responses/wireless_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bulk_sim_card_actions/{id}": {
"get": {
"operationId": "GetBulkSimCardAction",
"summary": "Get bulk SIM card action details",
"description": "This API fetches information about a bulk SIM card action. A bulk SIM card action contains details about a collection of individual SIM card actions.",
"tags": [
"SIM Card Actions"
],
"parameters": [
{
"$ref": "#/components/parameters/ResourceId"
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/BulkSIMCardActionDetailed"
}
}
}
}
},
"description": "Successful Response"
},
"401": {
"description": "Unauthorized"
},
"default": {
"$ref": "#/components/responses/wireless_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bundle_pricing/billing_bundles": {
"get": {
"tags": [
"Bundles"
],
"summary": "Retrieve Bundles",
"description": "Get all allowed bundles.",
"operationId": "GetUserBillingBundles",
"parameters": [
{
"$ref": "#/components/parameters/bundle-pricing_FilterConsolidated"
},
{
"$ref": "#/components/parameters/bundle-pricing_PageConsolidated"
},
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedBillingBundlesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/bundle-pricing_BadRequestErrorResponse"
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bundle_pricing/billing_bundles/{bundle_id}": {
"get": {
"tags": [
"Bundles"
],
"summary": "Get Bundle By Id",
"description": "Get a single bundle by ID.",
"operationId": "GetBillingBundleById",
"parameters": [
{
"$ref": "#/components/parameters/BundleId"
},
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BillingBundleResponse"
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"404": {
"$ref": "#/components/responses/bundle-pricing_NotFoundErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bundle_pricing/user_bundles": {
"get": {
"tags": [
"User Bundles"
],
"summary": "Get User Bundles",
"operationId": "GetUserBundles",
"description": "Get a paginated list of user bundles.",
"parameters": [
{
"$ref": "#/components/parameters/bundle-pricing_FilterConsolidated"
},
{
"$ref": "#/components/parameters/bundle-pricing_PageConsolidated"
},
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedUserBundlesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/bundle-pricing_BadRequestErrorResponse"
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bundle_pricing/user_bundles/bulk": {
"post": {
"summary": "Create User Bundles",
"description": "Creates multiple user bundles for the user.",
"operationId": "CreateUserBundlesBulk",
"parameters": [
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"tags": [
"User Bundles"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateUserBundlesBulkRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreatedUserBundlesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/bundle-pricing_BadRequestErrorResponse"
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"404": {
"$ref": "#/components/responses/bundle-pricing_NotFoundErrorResponse"
},
"422": {
"$ref": "#/components/responses/bundle-pricing_UnprocessableEntityErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bundle_pricing/user_bundles/unused": {
"get": {
"tags": [
"User Bundles"
],
"summary": "Get Unused User Bundles",
"description": "Returns all user bundles that aren't in use.",
"operationId": "GetUnusedUserBundles",
"parameters": [
{
"$ref": "#/components/parameters/bundle-pricing_FilterConsolidated"
},
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UnusedUserBundlesResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/bundle-pricing_BadRequestErrorResponse"
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bundle_pricing/user_bundles/{user_bundle_id}": {
"delete": {
"tags": [
"User Bundles"
],
"summary": "Deactivate User Bundle",
"description": "Deactivates a user bundle by its ID.",
"operationId": "DeactivateUserBundle",
"parameters": [
{
"$ref": "#/components/parameters/UserBundleId"
},
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserBundleCreateResponse"
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"404": {
"$ref": "#/components/responses/bundle-pricing_NotFoundErrorResponse"
},
"422": {
"$ref": "#/components/responses/bundle-pricing_UnprocessableEntityErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"tags": [
"User Bundles"
],
"summary": "Get User Bundle by Id",
"description": "Retrieves a user bundle by its ID.",
"operationId": "GetUserBundleById",
"parameters": [
{
"$ref": "#/components/parameters/UserBundleId"
},
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserBundleResponse"
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"404": {
"$ref": "#/components/responses/bundle-pricing_NotFoundErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/bundle_pricing/user_bundles/{user_bundle_id}/resources": {
"get": {
"tags": [
"User Bundles"
],
"summary": "Get User Bundle Resources",
"description": "Retrieves the resources of a user bundle by its ID.",
"operationId": "GetUserBundleResources",
"parameters": [
{
"$ref": "#/components/parameters/UserBundleId"
},
{
"$ref": "#/components/parameters/AuthorizationBearer"
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserBundleResourcesResponse"
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedErrorResponse"
},
"404": {
"$ref": "#/components/responses/bundle-pricing_NotFoundErrorResponse"
},
"default": {
"$ref": "#/components/responses/bundle-pricing_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/call_control_applications": {
"get": {
"description": "Return a list of call control applications.",
"summary": "List call control applications",
"operationId": "ListCallControlApplications",
"tags": [
"Call Control Applications"
],
"x-group-parameters": "true",
"x-endpoint-cost": "medium",
"parameters": [
{
"$ref": "#/components/parameters/call-control_FilterConsolidated"
},
{
"$ref": "#/components/parameters/call-control_PageConsolidated"
},
{
"$ref": "#/components/parameters/SortConnection"
}
],
"responses": {
"200": {
"description": "Successful response with a list of call control applications.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Call Control Applications Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallControlApplication"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"400": {
"description": "Bad request"
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"description": "Resource not found"
}
},
"x-latency-category": "interactive"
},
"post": {
"summary": "Create a call control application",
"description": "Create a call control application.",
"operationId": "CreateCallControlApplication",
"tags": [
"Call Control Applications"
],
"x-endpoint-cost": "medium",
"requestBody": {
"description": "Create call control application request.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateCallControlApplicationRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful response with details about a call control application.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Application Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlApplication"
}
}
}
}
}
},
"422": {
"description": "Bad Request"
}
},
"x-latency-category": "interactive"
}
},
"/call_control_applications/{id}": {
"delete": {
"description": "Deletes a call control application.",
"summary": "Delete a call control application",
"operationId": "DeleteCallControlApplication",
"tags": [
"Call Control Applications"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string",
"example": "1293384261075731499",
"x-format": "int64"
}
}
],
"responses": {
"200": {
"description": "Successful response with details about a call control application.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Application Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlApplication"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"description": "Resource not found"
},
"422": {
"description": "Bad request"
}
},
"x-latency-category": "interactive"
},
"get": {
"description": "Retrieves the details of an existing call control application.",
"summary": "Retrieve a call control application",
"operationId": "RetrieveCallControlApplication",
"tags": [
"Call Control Applications"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string",
"example": "1293384261075731499",
"x-format": "int64"
}
}
],
"responses": {
"200": {
"description": "Successful response with details about a call control application.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Application Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlApplication"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"description": "Resource not found"
},
"422": {
"description": "Bad request"
}
},
"x-latency-category": "interactive"
},
"patch": {
"summary": "Update a call control application",
"description": "Updates settings of an existing call control application.",
"operationId": "UpdateCallControlApplication",
"tags": [
"Call Control Applications"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string",
"example": "1293384261075731499",
"x-format": "int64"
}
}
],
"requestBody": {
"description": "Update call control application request.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCallControlApplicationRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response with details about a call control application.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Application Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlApplication"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"description": "Resource not found"
},
"422": {
"description": "Bad request"
}
},
"x-latency-category": "interactive"
}
},
"/call_events": {
"get": {
"summary": "List call events",
"description": "Filters call events by given filter parameters. Events are ordered by `occurred_at`. If filter for `leg_id` or `application_session_id` is not present, it only filters events from the last 24 hours.\n\n**Note**: Only one `filter[occurred_at]` can be passed.\n",
"x-latency-category": "responsive",
"x-group-parameters": "true",
"operationId": "ListCallEvents",
"tags": [
"Debugging"
],
"parameters": [
{
"$ref": "#/components/parameters/call-control_FilterConsolidated"
},
{
"$ref": "#/components/parameters/call-control_PageConsolidated"
}
],
"responses": {
"200": {
"description": "Successful response with a list of call events.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Call Events Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CallEvent"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
}
}
},
"/call_reasons": {
"get": {
"summary": "List standard call reasons",
"description": "Telnyx maintains a library of pre-vetted call-reason phrases (e.g. \"Appointment reminders\", \"Billing inquiries\") that carry through DIR vetting smoothly. You can use any string that fits your use case in `DirCreateRequest.call_reasons`, but matching one of these reduces the chance the vetting team flags the phrasing for clarification.",
"operationId": "listCallReasons",
"tags": [
"Reference Data"
],
"parameters": [
{
"$ref": "#/components/parameters/BcPageNumber"
},
{
"name": "page[size]",
"in": "query",
"required": false,
"description": "Items per page. Default `100` for this endpoint (the call-reason library is small and most callers want the whole list in one call). Maximum 250; values above are clamped to 250.",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 100,
"example": 100
}
}
],
"responses": {
"200": {
"description": "Paginated list of standard call reasons.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallReasonReferenceList"
},
"example": {
"data": [
{
"id": "d29914a4-3c93-440c-af72-03778f442522",
"reason": "Account Alert",
"description": "Alert about account status or changes"
},
{
"id": "4cabcae2-6c61-415b-ac5b-753469458a56",
"reason": "Account Notification",
"description": "General account notifications"
}
],
"meta": {
"page_number": 1,
"page_size": 2,
"total_results": 45,
"total_pages": 23
}
}
}
}
},
"default": {
"$ref": "#/components/responses/branded-calling_GenericErrorResponse"
},
"4XX": {
"$ref": "#/components/responses/branded-calling_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/call_reasons/validate": {
"post": {
"summary": "Validate a list of call reasons",
"description": "Check up to 10 candidate `call_reasons` strings against Telnyx's vetting heuristics before sending them on a DIR create or update. The endpoint flags strings that are likely to be rejected during vetting (too generic, banned phrases, length issues, etc.) so you can fix them up front.",
"operationId": "validateCallReasons",
"tags": [
"Reference Data"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidateCallReasonsRequest"
},
"example": [
"Appointment reminders",
"Billing inquiries"
]
}
}
},
"responses": {
"200": {
"description": "Per-string validation result.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidateCallReasonsResponse"
}
}
}
},
"default": {
"$ref": "#/components/responses/branded-calling_GenericErrorResponse"
},
"4XX": {
"$ref": "#/components/responses/branded-calling_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/calls": {
"post": {
"summary": "Dial",
"description": "Dial a number or SIP URI from a given connection. A successful response will include a `call_leg_id` which can be used to correlate the command with subsequent webhooks.\n\n**Expected Webhooks:**\n\n- `call.initiated`\n- `call.answered` or `call.hangup`\n- `call.hold` and `call.unhold` if the call is held/unheld\n- `call.machine.detection.ended` if `answering_machine_detection` was requested\n- `call.machine.greeting.ended` if `answering_machine_detection` was requested to detect the end of machine greeting\n- `call.machine.premium.detection.ended` if `answering_machine_detection=premium` was requested\n- `call.machine.premium.greeting.ended` if `answering_machine_detection=premium` was requested and a beep was detected\n- `call.deepfake_detection.result` if `deepfake_detection` was enabled\n- `call.deepfake_detection.error` if `deepfake_detection` was enabled and an error occurred\n- `streaming.started`, `streaming.stopped` or `streaming.failed` if `stream_url` was set\n\nWhen the `record` parameter is set to `record-from-answer`, the response will include a `recording_id` field.\n",
"operationId": "DialCall",
"tags": [
"Call Commands"
],
"requestBody": {
"description": "Call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CallRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response with details about a call status that includes recording_id.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Retrieve Call Status Response With Recording ID",
"properties": {
"data": {
"$ref": "#/components/schemas/CallWithRecordingId"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequestResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"500": {
"$ref": "#/components/responses/InternalServerErrorResponse"
},
"503": {
"$ref": "#/components/responses/ServiceUnavailableResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}": {
"get": {
"summary": "Retrieve a call status",
"description": "Returns the status of a call (data is available 10 minutes after call ended).",
"operationId": "RetrieveCallStatus",
"tags": [
"Call Information"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"responses": {
"200": {
"description": "Successful response with details about a call status.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Retrieve Call Status Response",
"properties": {
"data": {
"$ref": "#/components/schemas/Call"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/ai_assistant_add_messages": {
"post": {
"summary": "Add messages to AI Assistant",
"description": "Add messages to the conversation started by an AI assistant on the call.",
"operationId": "CallAddMessagesToAIAssistant",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "AI Assistant add messages request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIAssistantAddMessagesRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/ai_assistant_join": {
"post": {
"summary": "Join AI Assistant Conversation",
"description": "Add a participant to an existing AI assistant conversation. Use this command to bring an additional call leg into a running AI conversation.",
"operationId": "CallJoinAIAssistant",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "AI Assistant Join request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIAssistantJoinRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command that includes conversation_id.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response With Conversation ID",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResultWithConversationId"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/ai_assistant_start": {
"post": {
"summary": "Start AI Assistant",
"description": "Start an AI assistant on the call.\n\n**Expected Webhooks:**\n\n- `call.conversation.ended`\n- `call.conversation_insights.generated`\n",
"operationId": "CallStartAIAssistant",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "AI Assistant request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIAssistantStartRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command that includes conversation_id.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response With Conversation ID",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResultWithConversationId"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/ai_assistant_stop": {
"post": {
"summary": "Stop AI Assistant",
"description": "Stop an AI assistant on the call.",
"operationId": "CallStopAIAssistant",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "AI Assistant request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AIAssistantStopRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/answer": {
"post": {
"summary": "Answer call",
"description": "Answer an incoming call. You must issue this command before executing subsequent commands on an incoming call.\n\n**Expected Webhooks:**\n\n- `call.answered`\n- `call.hold` and `call.unhold` if the call is held/unheld\n- `call.deepfake_detection.result` if `deepfake_detection` was enabled\n- `call.deepfake_detection.error` if `deepfake_detection` was enabled and an error occurred\n- `streaming.started`, `streaming.stopped` or `streaming.failed` if `stream_url` was set\n\nWhen the `record` parameter is set to `record-from-answer`, the response will include a `recording_id` field.\n",
"operationId": "AnswerCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Answer call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AnswerRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command that includes recording_id.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response With Recording ID",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResultWithRecordingId"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/bridge": {
"post": {
"summary": "Bridge calls",
"description": "Bridge two call control calls.\n\n**Expected Webhooks:**\n\n- `call.bridged` for Leg A\n- `call.bridged` for Leg B\n",
"operationId": "BridgeCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Bridge call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BridgeRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/client_state_update": {
"put": {
"summary": "Update client state",
"description": "Updates client state",
"operationId": "UpdateClientState",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Updates client state for every subsequent webhook",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ClientStateUpdateRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/conversation_relay_start": {
"post": {
"summary": "Start Conversation Relay",
"description": "Start a Conversation Relay session on an active call. Conversation Relay connects the call audio to your WebSocket so your application can exchange realtime messages with the caller while Telnyx handles speech recognition and text-to-speech. Only one AI Assistant or Conversation Relay session can be active on a call at a time.\n\n**Expected Webhooks:**\n\n- `call.conversation.ended` - Sent when the Conversation Relay session ends. If the customer WebSocket disconnects, the webhook payload `reason` is `customer_disconnect`.\n",
"operationId": "CallStartConversationRelay",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Conversation Relay start request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationRelayStartRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon starting Conversation Relay.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response With Conversation Relay ID",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResultWithConversationRelayId"
}
}
}
}
}
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/conversation_relay_stop": {
"post": {
"summary": "Stop Conversation Relay",
"description": "Stop the active Conversation Relay session on a call.",
"operationId": "CallStopConversationRelay",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Conversation Relay stop request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationRelayStopRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/enqueue": {
"post": {
"summary": "Enqueue call",
"description": "Put the call in a queue.",
"operationId": "EnqueueCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Enqueue call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnqueueRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/fork_start": {
"post": {
"summary": "Forking start",
"description": "Call forking allows you to stream the media from a call to a specific target in realtime. \nThis stream can be used to enable realtime audio analysis to support a \nvariety of use cases, including fraud detection, or the creation of AI-generated audio responses. \nRequests must specify either the `target` attribute or the `rx` and `tx` attributes.\n\n**Expected Webhooks:**\n\n- `call.fork.started`\n- `call.fork.stopped`\n\n",
"operationId": "StartCallFork",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Fork media request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StartForkingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/fork_stop": {
"post": {
"summary": "Forking stop",
"description": "Stop forking a call.\n\n**Expected Webhooks:**\n\n- `call.fork.stopped`\n",
"operationId": "StopCallFork",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Stop forking media request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StopForkingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/gather": {
"post": {
"summary": "Gather",
"description": "Gather DTMF signals to build interactive menus.\n\nYou can pass a list of valid digits. The `Answer` command must be issued before the `gather` command.\n\n**Expected Webhooks:**\n\n- `call.dtmf.received` (you may receive many of these webhooks)\n- `call.gather.ended`\n",
"operationId": "GatherCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Gather",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GatherRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/gather_stop": {
"post": {
"summary": "Gather stop",
"description": "Stop current gather.\n\n**Expected Webhooks:**\n\n- `call.gather.ended`\n",
"operationId": "StopCallGather",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Stop current gather",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StopGatherRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/gather_using_ai": {
"post": {
"summary": "Gather using AI",
"description": "Gather parameters defined in the request payload using a voice assistant.\n\n You can pass parameters described as a JSON Schema object and the voice assistant will attempt to gather these informations. \n\n**Expected Webhooks:**\n\n- `call.ai_gather.ended`\n- `call.conversation.ended`\n- `call.ai_gather.partial_results` (if `send_partial_results` is set to `true`)\n- `call.ai_gather.message_history_updated` (if `send_message_history_updates` is set to `true`)\n",
"operationId": "callGatherUsingAI",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Gather using AI request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GatherUsingAIRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command that includes conversation_id.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response With Conversation ID",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResultWithConversationId"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/gather_using_audio": {
"post": {
"summary": "Gather using audio",
"description": "Play an audio file on the call until the required DTMF signals are gathered to build interactive menus.\n\nYou can pass a list of valid digits along with an 'invalid_audio_url', which will be played back at the beginning of each prompt. Playback will be interrupted when a DTMF signal is received. The `Answer command must be issued before the `gather_using_audio` command.\n\n**Expected Webhooks:**\n\n- `call.playback.started`\n- `call.playback.ended`\n- `call.dtmf.received` (you may receive many of these webhooks)\n- `call.gather.ended`\n",
"operationId": "GatherUsingAudio",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Gather using audio request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GatherUsingAudioRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/gather_using_speak": {
"post": {
"summary": "Gather using speak",
"description": "Convert text to speech and play it on the call until the required DTMF signals are gathered to build interactive menus.\n\nYou can pass a list of valid digits along with an 'invalid_payload', which will be played back at the beginning of each prompt. Speech will be interrupted when a DTMF signal is received. The `Answer` command must be issued before the `gather_using_speak` command.\n\n**Expected Webhooks:**\n\n- `call.dtmf.received` (you may receive many of these webhooks)\n- `call.gather.ended`\n",
"operationId": "GatherUsingSpeak",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Gather using speak request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GatherUsingSpeakRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/hangup": {
"post": {
"summary": "Hangup call",
"description": "Hang up the call.\n\n**Expected Webhooks:**\n\n- `call.hangup`\n- `call.recording.saved`\n",
"operationId": "HangupCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Hangup request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HangupRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/leave_queue": {
"post": {
"summary": "Remove call from a queue",
"description": "Removes the call from a queue.",
"operationId": "LeaveQueue",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Removes the call from the queue, the call currently is enqueued in.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LeaveQueueRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/playback_start": {
"post": {
"summary": "Play audio URL",
"description": "Play an audio file on the call. If multiple play audio commands are issued consecutively,\nthe audio files will be placed in a queue awaiting playback.\n\n*Notes:*\n\n- When `overlay` is enabled, `target_legs` is limited to `self`.\n- A customer cannot Play Audio with `overlay=true` unless there is a Play Audio with `overlay=false` actively playing.\n\n**Expected Webhooks:**\n\n- `call.playback.started`\n- `call.playback.ended`\n",
"operationId": "StartCallPlayback",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Play audio URL request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlayAudioUrlRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/playback_stop": {
"post": {
"summary": "Stop audio playback",
"description": "Stop audio being played on the call.\n\n**Expected Webhooks:**\n\n- `call.playback.ended` or `call.speak.ended`\n",
"operationId": "StopCallPlayback",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Stop audio playback request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlaybackStopRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/record_pause": {
"post": {
"summary": "Record pause",
"description": "Pause recording the call. Recording can be resumed via Resume recording command.\n\n**Expected Webhooks:**\n\nThere are no webhooks associated with this command.\n",
"operationId": "PauseCallRecording",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Pause recording call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PauseRecordingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/record_resume": {
"post": {
"summary": "Record resume",
"description": "Resume recording the call.\n\n**Expected Webhooks:**\n\nThere are no webhooks associated with this command.\n",
"operationId": "ResumeCallRecording",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Resume recording call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResumeRecordingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/record_start": {
"post": {
"summary": "Recording start",
"description": "Start recording the call. Recording will stop on call hang-up, or can be initiated via the Stop Recording command.\n\n**Expected Webhooks:**\n\n- `call.recording.saved`\n- `call.recording.transcription.saved`\n- `call.recording.error`\n",
"operationId": "StartCallRecord",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Start recording audio request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StartRecordingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/record_stop": {
"post": {
"summary": "Recording stop",
"description": "Stop recording the call.\n\n**Expected Webhooks:**\n\n- `call.recording.saved`\n",
"operationId": "StopCallRecording",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Stop recording call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StopRecordingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/refer": {
"post": {
"summary": "SIP Refer a call",
"description": "Initiate a SIP Refer on a Call Control call. You can initiate a SIP Refer at any point in the duration of a call.\n\n**Expected Webhooks:**\n\n- `call.refer.started`\n- `call.refer.completed`\n- `call.refer.failed`\n",
"operationId": "ReferCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Refer request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReferRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/reject": {
"post": {
"summary": "Reject a call",
"description": "Reject an incoming call.\n\n**Expected Webhooks:**\n\n- `call.hangup`\n",
"operationId": "RejectCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Reject request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RejectRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/send_dtmf": {
"post": {
"summary": "Send DTMF",
"description": "Sends DTMF tones from this leg. DTMF tones will be heard by the other end of the call.\n\n**Expected Webhooks:**\n\nThere are no webhooks associated with this command.\n",
"operationId": "SendDTMF",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Send DTMF request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendDTMFRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/send_sip_info": {
"post": {
"summary": "Send SIP info",
"description": "Sends SIP info from this leg.\n\n**Expected Webhooks:**\n\n- `call.sip_info.received` (to be received on the target call leg)\n",
"operationId": "SendSIPInfo",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Send SIP INFO request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendSIPInfoRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/siprec_start": {
"post": {
"summary": "SIPREC start",
"description": "Start siprec session to configured in SIPREC connector SRS. \n\n**Expected Webhooks:**\n\n- `siprec.started`\n- `siprec.stopped`\n- `siprec.failed`\n",
"operationId": "StartSiprecSession",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Start siprec session to configured in SIPREC connector SRS.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StartSiprecRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/siprec_stop": {
"post": {
"summary": "SIPREC stop",
"description": "Stop SIPREC session.\n\n**Expected Webhooks:**\n\n- `siprec.stopped`\n",
"operationId": "StopSiprecSession",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Stop siprec session",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StopSiprecRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/speak": {
"post": {
"summary": "Speak text",
"description": "Convert text to speech and play it back on the call. If multiple speak text commands are issued consecutively, the audio files will be placed in a queue awaiting playback.\n\n**Expected Webhooks:**\n\n- `call.speak.started`\n- `call.speak.ended`\n",
"operationId": "SpeakCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Speak request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SpeakRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/streaming_start": {
"post": {
"summary": "Streaming start",
"description": "Start streaming the media from a call to a specific WebSocket address or Dialogflow connection in near-realtime. Audio will be delivered as base64-encoded RTP payload (raw audio), wrapped in JSON payloads.\n\nPlease find more details about media streaming messages specification under the [link](https://developers.telnyx.com/docs/voice/programmable-voice/media-streaming).",
"operationId": "StartCallStreaming",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Start streaming media request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StartStreamingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/streaming_stop": {
"post": {
"summary": "Streaming stop",
"description": "Stop streaming a call to a WebSocket.\n\n**Expected Webhooks:**\n\n- `streaming.stopped`\n",
"operationId": "StopCallStreaming",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Stop streaming media request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StopStreamingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/suppression_start": {
"post": {
"operationId": "noiseSuppressionStart",
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NoiseSuppressionStart"
}
}
},
"description": "Start noise suppression request",
"required": true
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"summary": "Noise Suppression Start (BETA)",
"tags": [
"Call Commands"
],
"x-latency-category": "interactive",
"description": "Noise Suppression Start (BETA)"
}
},
"/calls/{call_control_id}/actions/suppression_stop": {
"post": {
"operationId": "noiseSuppressionStop",
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NoiseSuppressionStop"
}
}
},
"description": "Stop noise suppression request",
"required": true
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"summary": "Noise Suppression Stop (BETA)",
"tags": [
"Call Commands"
],
"x-latency-category": "interactive",
"description": "Noise Suppression Stop (BETA)"
}
},
"/calls/{call_control_id}/actions/switch_supervisor_role": {
"post": {
"summary": "Switch supervisor role",
"description": "Switch the supervisor role for a bridged call. This allows switching between different supervisor modes during an active call",
"operationId": "SwitchSupervisorRole",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Switch supervisor role request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SwitchSupervisorRoleRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/transcription_start": {
"post": {
"summary": "Transcription start",
"description": "Start real-time transcription. Transcription will stop on call hang-up, or can be initiated via the Transcription stop command.\n\n**Expected Webhooks:**\n\n- `call.transcription`\n",
"operationId": "StartCallTranscription",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Transcription start request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscriptionStartRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/transcription_stop": {
"post": {
"summary": "Transcription stop",
"description": "Stop real-time transcription.",
"operationId": "StopCallTranscription",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Transcription stop request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscriptionStopRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/calls/{call_control_id}/actions/transfer": {
"post": {
"summary": "Transfer call",
"description": "Transfer a call to a new destination. If the transfer is unsuccessful, a `call.hangup` webhook for the other call (Leg B) will be sent indicating that the transfer could not be completed. The original call will remain active and may be issued additional commands, potentially transfering the call to an alternate destination.\n\n**Expected Webhooks:**\n\n- `call.initiated`\n- `call.bridged` to Leg B\n- `call.answered` or `call.hangup`\n- `call.machine.detection.ended` if `answering_machine_detection` was requested\n- `call.machine.greeting.ended` if `answering_machine_detection` was requested to detect the end of machine greeting\n- `call.machine.premium.detection.ended` if `answering_machine_detection=premium` was requested\n- `call.machine.premium.greeting.ended` if `answering_machine_detection=premium` was requested and a beep was detected\n",
"operationId": "TransferCall",
"tags": [
"Call Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/CallControlId"
}
],
"requestBody": {
"description": "Transfer call request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TransferCallRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a call control command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Call Control Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CallControlCommandResult"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
},
"x-latency-category": "interactive"
}
},
"/channel_zones": {
"get": {
"summary": "List your voice channels for non-US zones",
"description": "Returns the non-US voice channels for your account. voice channels allow you to use Channel Billing for calls to your Telnyx phone numbers. Please check the Telnyx Support Articles section for full information and examples of how to utilize Channel Billing.",
"operationId": "GetChannelZones",
"tags": [
"Voice Channels"
],
"parameters": [
{
"$ref": "#/components/parameters/voice-channels_PageConsolidated"
}
],
"responses": {
"200": {
"description": "A list of channel zones",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GcbChannelZone"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"400": {
"description": "Bad request"
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Resource not found"
}
},
"x-latency-category": "interactive"
}
},
"/channel_zones/{channel_zone_id}": {
"parameters": [
{
"$ref": "#/components/parameters/GcbChannelZoneId"
}
],
"put": {
"summary": "Update voice channels for non-US Zones",
"description": "Update the number of Voice Channels for the Non-US Zones. This allows your account to handle multiple simultaneous inbound calls to Non-US numbers. Use this endpoint to increase or decrease your capacity based on expected call volume.",
"operationId": "PatchChannelZone",
"tags": [
"Voice Channels"
],
"requestBody": {
"description": "Quantity of reserved channels and organizational update option",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"channels": {
"type": "integer",
"format": "int64",
"description": "The number of reserved channels"
}
},
"required": [
"channels"
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successfuly patched channel zone",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GcbChannelZone"
}
}
}
},
"400": {
"description": "Bad request"
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Resource not found"
},
"default": {
"$ref": "#/components/responses/voice-channels_GenericErrorResponse"
}
},
"x-codegen-request-body-name": "body",
"x-latency-category": "interactive"
}
},
"/charges_breakdown": {
"get": {
"summary": "Get monthly charges breakdown",
"operationId": "GetMonthlyChargesBreakdown",
"description": "Retrieve a detailed breakdown of monthly charges for phone numbers in a specified date range. The date range cannot exceed 31 days.",
"parameters": [
{
"name": "start_date",
"in": "query",
"description": "Start date for the charges breakdown in ISO date format (YYYY-MM-DD)",
"required": true,
"schema": {
"type": "string",
"format": "date",
"example": "2025-05-01"
}
},
{
"name": "end_date",
"in": "query",
"description": "End date for the charges breakdown in ISO date format (YYYY-MM-DD). If not provided, defaults to start_date + 1 month. The date is exclusive, data for the end_date itself is not included in the report. The interval between start_date and end_date cannot exceed 31 days.",
"required": false,
"schema": {
"type": "string",
"format": "date",
"example": "2025-06-01"
}
},
{
"name": "format",
"in": "query",
"description": "Response format",
"required": false,
"schema": {
"type": "string",
"enum": [
"json",
"csv"
],
"default": "json",
"example": "json"
}
}
],
"responses": {
"200": {
"description": "Monthly charges breakdown",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MonthlyChargesBreakdownResponse"
}
},
"text/csv": {
"schema": {
"type": "string",
"description": "CSV format of the charges breakdown"
}
}
}
},
"400": {
"$ref": "#/components/responses/charges_BadRequestErrorResponse"
},
"422": {
"$ref": "#/components/responses/charges_UnprocessableEntityErrorResponse"
},
"default": {
"$ref": "#/components/responses/charges_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/charges_summary": {
"get": {
"summary": "Get monthly charges summary",
"operationId": "GetMonthlyChargesSummary",
"description": "Retrieve a summary of monthly charges for a specified date range. The date range cannot exceed 31 days.",
"parameters": [
{
"name": "start_date",
"in": "query",
"description": "Start date for the charges summary in ISO date format (YYYY-MM-DD)",
"required": true,
"schema": {
"type": "string",
"format": "date",
"example": "2025-05-01"
}
},
{
"name": "end_date",
"in": "query",
"description": "End date for the charges summary in ISO date format (YYYY-MM-DD). The date is exclusive, data for the end_date itself is not included in the report. The interval between start_date and end_date cannot exceed 31 days.",
"required": true,
"schema": {
"type": "string",
"format": "date",
"example": "2025-06-01"
}
}
],
"responses": {
"200": {
"description": "Monthly charges summary",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MonthlyChargesSummaryResponse"
}
}
}
},
"400": {
"$ref": "#/components/responses/charges_BadRequestErrorResponse"
},
"422": {
"$ref": "#/components/responses/charges_UnprocessableEntityErrorResponse"
},
"default": {
"$ref": "#/components/responses/charges_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/comments": {
"get": {
"summary": "Retrieve all comments",
"operationId": "ListComments",
"tags": [
"Phone Number Orders"
],
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[comment_record_type], filter[comment_record_id]",
"schema": {
"type": "object",
"properties": {
"comment_record_type": {
"type": "string",
"example": "sub_number_order",
"enum": [
"sub_number_order",
"requirement_group"
],
"description": "Record type that the comment relates to"
},
"comment_record_id": {
"type": "string",
"example": "8ffb3622-7c6b-4ccc-b65f-7a3dc0099576",
"description": "ID of the record the comments relate to"
}
}
}
}
],
"responses": {
"200": {
"description": "An array of Comment Responses",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Comment"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Retrieve all comments"
},
"post": {
"summary": "Create a comment",
"operationId": "CreateComment",
"tags": [
"Phone Number Orders"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Comment"
}
}
}
},
"responses": {
"200": {
"description": "A Comment Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/components/schemas/Comment"
},
{
"type": "object"
}
]
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Create a comment"
}
},
"/comments/{id}": {
"get": {
"summary": "Retrieve a comment",
"operationId": "RetrieveComment",
"tags": [
"Phone Number Orders"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "The comment ID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "A Comment Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/components/schemas/Comment"
},
{
"type": "object"
}
]
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Retrieve a comment"
}
},
"/comments/{id}/read": {
"patch": {
"summary": "Mark a comment as read",
"operationId": "MarkCommentRead",
"tags": [
"Phone Number Orders"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "The comment ID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "A Comment Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/components/schemas/ReadComment"
},
{
"type": "object"
}
]
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive",
"description": "Mark a comment as read"
}
},
"/conferences": {
"get": {
"x-group-parameters": "true",
"x-latency-category": "responsive",
"description": "Lists conferences. Conferences are created on demand, and will expire after all participants have left the conference or after 4 hours regardless of the number of active participants. Conferences are listed in descending order by `expires_at`.",
"summary": "List conferences",
"operationId": "ListConferences",
"tags": [
"Conference Commands"
],
"parameters": [
{
"$ref": "#/components/parameters/ConferenceRegion"
},
{
"$ref": "#/components/parameters/call-control_FilterConsolidated"
},
{
"$ref": "#/components/parameters/call-control_PageConsolidated"
}
],
"responses": {
"200": {
"description": "Successful response with a list of conferences.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Conferences Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Conference"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
}
},
"post": {
"summary": "Create conference",
"description": "Create a conference from an existing call leg using a `call_control_id` and a conference name. Upon creating the conference, the call will be automatically bridged to the conference. Conferences will expire after all participants have left the conference or after 4 hours regardless of the number of active participants.\n\n**Expected Webhooks:**\n\n- `conference.created`\n- `conference.participant.joined`\n- `conference.participant.left`\n- `conference.ended`\n- `conference.recording.saved`\n- `conference.floor.changed`\n",
"operationId": "CreateConference",
"tags": [
"Conference Commands"
],
"requestBody": {
"description": "Create a conference",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateConferenceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response with details about a conference.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Response",
"properties": {
"data": {
"$ref": "#/components/schemas/Conference"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{conference_id}/participants": {
"get": {
"description": "Lists conference participants",
"summary": "List conference participants",
"operationId": "ListConferenceParticipants",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "conference_id",
"description": "Uniquely identifies the conference by id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/ConferenceRegion"
},
{
"$ref": "#/components/parameters/call-control_PageConsolidated"
},
{
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[muted], filter[on_hold], filter[whispering]",
"schema": {
"type": "object",
"properties": {
"muted": {
"type": "boolean",
"description": "If present, participants will be filtered to those who are/are not muted"
},
"on_hold": {
"type": "boolean",
"description": "If present, participants will be filtered to those who are/are not put on hold"
},
"whispering": {
"type": "boolean",
"description": "If present, participants will be filtered to those who are whispering or are not"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful response with a list of conference participants.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Participants Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Participant"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}": {
"get": {
"summary": "Retrieve a conference",
"description": "Retrieve an existing conference",
"operationId": "RetrieveConference",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/ConferenceRegion"
}
],
"responses": {
"200": {
"description": "Successful response with details about a conference.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Response",
"properties": {
"data": {
"$ref": "#/components/schemas/Conference"
}
}
}
}
}
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/end": {
"post": {
"summary": "End a conference",
"description": "End a conference and terminate all active participants.",
"operationId": "EndConference",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Uniquely identifies the conference.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EndConferenceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-endpoint-cost": 0.01,
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/gather_using_audio": {
"post": {
"summary": "Gather DTMF using audio prompt in a conference",
"description": "Play an audio file to a specific conference participant and gather DTMF input.",
"operationId": "ConferenceGatherUsingAudio",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Uniquely identifies the conference.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceGatherUsingAudioRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-endpoint-cost": 0.01,
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/hold": {
"post": {
"summary": "Hold conference participants",
"description": "Hold a list of participants in a conference call",
"operationId": "HoldConferenceParticipants",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceHoldRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/join": {
"post": {
"summary": "Join a conference",
"description": "Join an existing call leg to a conference. Issue the Join Conference command with the conference ID in the path and the `call_control_id` of the leg you wish to join to the conference as an attribute. The conference can have up to a certain amount of active participants, as set by the `max_participants` parameter in conference creation request. \n\n**Expected Webhooks:**\n\n- `conference.participant.joined`\n- `conference.participant.left`\n",
"operationId": "JoinConference",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Join Conference request object",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/JoinConferenceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/leave": {
"post": {
"summary": "Leave a conference",
"description": "Removes a call leg from a conference and moves it back to parked state. \n\n**Expected Webhooks:**\n\n- `conference.participant.left`\n",
"operationId": "LeaveConference",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Leave Conference request object",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LeaveConferenceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/mute": {
"post": {
"summary": "Mute conference participants",
"description": "Mute a list of participants in a conference call",
"operationId": "MuteConferenceParticipants",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceMuteRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/play": {
"post": {
"summary": "Play audio to conference participants",
"description": "Play audio to all or some participants on a conference call.",
"operationId": "PlayConferenceAudio",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferencePlayRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/record_pause": {
"post": {
"summary": "Conference recording pause",
"description": "Pause conference recording.",
"operationId": "PauseConferenceRecording",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Specifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PauseConferenceRecordingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/record_resume": {
"post": {
"summary": "Conference recording resume",
"description": "Resume conference recording.",
"operationId": "ResumeConferenceRecording",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Specifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResumeConferenceRecordingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/record_start": {
"post": {
"summary": "Conference recording start",
"description": "Start recording the conference. Recording will stop on conference end, or via the Stop Recording command.\n\n**Expected Webhooks:**\n\n- `conference.recording.saved`",
"operationId": "StartConferenceRecording",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Specifies the conference to record by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StartConferenceRecordingRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/record_stop": {
"post": {
"summary": "Conference recording stop",
"description": "Stop recording the conference.\n\n**Expected Webhooks:**\n\n- `conference.recording.saved`\n",
"operationId": "StopConferenceRecording",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Specifies the conference to stop the recording for by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Stop recording conference request",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StopRecordingConferenceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/send_dtmf": {
"post": {
"summary": "Send DTMF to conference participants",
"description": "Send DTMF tones to one or more conference participants.",
"operationId": "ConferenceSendDTMF",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Uniquely identifies the conference.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceSendDTMFRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-endpoint-cost": 0.01,
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/speak": {
"post": {
"summary": "Speak text to conference participants",
"description": "Convert text to speech and play it to all or some participants.",
"operationId": "SpeakTextToConference",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Specifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceSpeakRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/stop": {
"post": {
"summary": "Stop audio being played on the conference",
"description": "Stop audio being played to all or some participants on a conference call.",
"operationId": "StopConferenceAudio",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceStopRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/unhold": {
"post": {
"summary": "Unhold conference participants",
"description": "Unhold a list of participants in a conference call",
"operationId": "UnholdConferenceParticipants",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceUnholdRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/unmute": {
"post": {
"summary": "Unmute conference participants",
"description": "Unmute a list of participants in a conference call",
"operationId": "UnmuteConferenceParticipants",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceUnmuteRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/actions/update": {
"post": {
"summary": "Update conference participant",
"description": "Update conference participant supervisor_role",
"operationId": "UpdateConference",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"description": "Uniquely identifies the conference by id or name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Update Conference request object",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateConferenceRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response upon making a conference command.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Conference Command Response",
"properties": {
"data": {
"$ref": "#/components/schemas/ConferenceCommandResult"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-latency-category": "interactive"
}
},
"/conferences/{id}/participants/{participant_id}": {
"get": {
"summary": "Retrieve a conference participant",
"description": "Retrieve details of a specific conference participant by their ID or label.",
"operationId": "RetrieveConferenceParticipant",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Uniquely identifies the conference.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "participant_id",
"in": "path",
"required": true,
"description": "Uniquely identifies the participant by their ID or label.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceParticipantResource"
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-endpoint-cost": 0.01,
"x-latency-category": "interactive"
},
"patch": {
"summary": "Update a conference participant",
"description": "Update properties of a conference participant.",
"operationId": "UpdateConferenceParticipant",
"tags": [
"Conference Commands"
],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Uniquely identifies the conference.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "participant_id",
"in": "path",
"required": true,
"description": "Uniquely identifies the participant.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateConferenceParticipantRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConferenceParticipantResource"
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
}
},
"x-endpoint-cost": 0.01,
"x-latency-category": "interactive"
}
},
"/connections": {
"get": {
"description": "Returns a list of your connections irrespective of type.",
"summary": "List connections",
"operationId": "ListConnections",
"tags": [
"Connections"
],
"x-group-parameters": "true",
"x-endpoint-cost": "medium",
"parameters": [
{
"$ref": "#/components/parameters/connections_FilterConsolidated"
},
{
"$ref": "#/components/parameters/connections_PageConsolidated"
},
{
"$ref": "#/components/parameters/connections_SortConnection"
}
],
"responses": {
"200": {
"description": "Successful response with a list of connections.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Connections Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Connection"
}
},
"meta": {
"$ref": "#/components/schemas/connections_PaginationMeta"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/connections_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
}
},
"x-latency-category": "responsive"
}
},
"/connections/{connection_id}/active_calls": {
"get": {
"summary": "List all active calls for given connection",
"description": "Lists all active calls for given connection. Acceptable connections are either SIP connections with webhook_url or xml_request_url, call control or texml. Returned results are cursor paginated.\n",
"x-latency-category": "responsive",
"x-group-parameters": "true",
"operationId": "ListConnectionActiveCalls",
"tags": [
"Call Information"
],
"parameters": [
{
"$ref": "#/components/parameters/ConnectionId"
},
{
"$ref": "#/components/parameters/call-control_PageConsolidated"
}
],
"responses": {
"200": {
"description": "Successful response with list of details about active calls.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Active Calls Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ActiveCall"
}
},
"meta": {
"$ref": "#/components/schemas/CursorPaginationMeta"
}
}
}
}
}
},
"422": {
"$ref": "#/components/responses/UnprocessableEntityResponse"
},
"default": {
"$ref": "#/components/responses/call-control_GenericErrorResponse"
}
}
}
},
"/connections/{id}": {
"get": {
"description": "Retrieves the high-level details of an existing connection. To retrieve specific authentication information, use the endpoint for the specific connection type.",
"summary": "Retrieve a connection",
"operationId": "RetrieveConnection",
"tags": [
"Connections"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "IP Connection ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response with details about a connection.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Connection Response",
"properties": {
"data": {
"$ref": "#/components/schemas/Connection"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/connections_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/connections_NotFoundResponse"
}
},
"x-latency-category": "responsive"
}
},
"/country_coverage": {
"get": {
"summary": "Get country coverage",
"description": "Get country coverage",
"operationId": "retreiveCountryCoverage",
"tags": [
"Country Coverage"
],
"responses": {
"200": {
"description": "Response for country coverage",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/CountryCoverage"
}
}
}
},
"examples": {
"example-1": {
"value": {
"data": {
"Afghanistan": {
"code": "AF",
"numbers": false,
"features": [],
"phone_number_type": [],
"reservable": false,
"quickship": false,
"international_sms": false,
"p2p": false,
"local": {},
"toll_free": {},
"mobile": {},
"national": {},
"region": null,
"inventory_coverage": false
},
"Aland Islands": {
"code": "AX",
"numbers": false,
"features": [],
"phone_number_type": [],
"reservable": false,
"quickship": false,
"international_sms": false,
"p2p": false,
"local": {},
"toll_free": {},
"mobile": {},
"national": {},
"region": null,
"inventory_coverage": false
},
"Albania": {
"code": "AL",
"numbers": true,
"features": [
"voice",
"fax"
],
"phone_number_type": [
"local",
"toll_free"
],
"reservable": false,
"quickship": false,
"international_sms": false,
"p2p": false,
"local": {
"features": [
"fax",
"voice"
],
"reservable": false,
"full_pstn_replacement": false,
"quickship": false,
"international_sms": false,
"p2p": false
},
"toll_free": {
"features": [
"fax",
"voice"
],
"reservable": false,
"full_pstn_replacement": false,
"quickship": false,
"international_sms": false,
"p2p": false
},
"mobile": {},
"national": {},
"region": "EMEA",
"inventory_coverage": false,
"shared_cost": {}
},
"Algeria": {
"code": "DZ",
"numbers": false,
"features": [],
"phone_number_type": [],
"reservable": false,
"quickship": false,
"international_sms": false,
"p2p": false,
"local": {},
"toll_free": {},
"mobile": {},
"national": {},
"region": null,
"inventory_coverage": false
}
}
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/country_coverage/countries/{country_code}": {
"get": {
"parameters": [
{
"name": "country_code",
"in": "path",
"description": "Country ISO code.",
"required": true,
"schema": {
"type": "string",
"example": "US"
}
}
],
"summary": "Get coverage for a specific country",
"description": "Get coverage for a specific country",
"operationId": "retreiveSpecificCountryCoverage",
"tags": [
"Country Coverage"
],
"responses": {
"200": {
"description": "Response for specific country coverage",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CountryCoverage"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/numbers_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/numbers_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/numbers_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/numbers_UnprocessableEntity"
},
"500": {
"$ref": "#/components/responses/numbers_GenericErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/credential_connections": {
"get": {
"description": "Returns a list of your credential connections.",
"summary": "List credential connections",
"operationId": "ListCredentialConnections",
"tags": [
"Credential Connections"
],
"x-group-parameters": "true",
"x-endpoint-cost": "medium",
"parameters": [
{
"$ref": "#/components/parameters/connections_FilterConsolidated"
},
{
"$ref": "#/components/parameters/connections_PageConsolidated"
},
{
"$ref": "#/components/parameters/connections_SortConnection"
}
],
"responses": {
"200": {
"description": "Successful response with a list of credential connections.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "List Credential Connections Response",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CredentialConnection"
}
},
"meta": {
"$ref": "#/components/schemas/connections_PaginationMeta"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/connections_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
}
},
"x-latency-category": "responsive"
},
"post": {
"description": "Creates a credential connection.",
"summary": "Create a credential connection",
"operationId": "CreateCredentialConnection",
"tags": [
"Credential Connections"
],
"x-endpoint-cost": "medium",
"parameters": [],
"requestBody": {
"description": "Parameters that can be defined during credential connection creation",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateCredentialConnectionRequest"
}
}
}
},
"responses": {
"201": {
"description": "Successful response with details about a credential connection.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Credential Connection Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CredentialConnection"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
},
"422": {
"$ref": "#/components/responses/connections_UnprocessableEntityResponse"
}
},
"x-latency-category": "responsive"
}
},
"/credential_connections/{id}": {
"delete": {
"description": "Deletes an existing credential connection.",
"summary": "Delete a credential connection",
"operationId": "DeleteCredentialConnection",
"tags": [
"Credential Connections"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response with details about a credential connection.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Credential Connection Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CredentialConnection"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/connections_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/connections_NotFoundResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"description": "Retrieves the details of an existing credential connection.",
"summary": "Retrieve a credential connection",
"operationId": "RetrieveCredentialConnection",
"tags": [
"Credential Connections"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response with details about a credential connection.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Credential Connection Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CredentialConnection"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/connections_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/connections_NotFoundResponse"
}
},
"x-latency-category": "responsive"
},
"patch": {
"description": "Updates settings of an existing credential connection.",
"summary": "Update a credential connection",
"operationId": "UpdateCredentialConnection",
"tags": [
"Credential Connections"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Parameters that can be updated in a credential connection",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCredentialConnectionRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successful response with details about a credential connection.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Credential Connection Response",
"properties": {
"data": {
"$ref": "#/components/schemas/CredentialConnection"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/connections_NotFoundResponse"
},
"422": {
"$ref": "#/components/responses/connections_UnprocessableEntityResponse"
}
},
"x-latency-category": "responsive"
}
},
"/credential_connections/{id}/actions/check_registration_status": {
"post": {
"description": "Checks the registration_status for a credential connection, (`registration_status`) as well as the timestamp for the last SIP registration event (`registration_status_updated_at`)",
"summary": "Check a Credential Connection Registration Status",
"operationId": "CheckRegistrationStatus",
"tags": [
"Credential Connections"
],
"parameters": [
{
"name": "id",
"in": "path",
"description": "Identifies the resource.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Successful response with details about a credential connection registration status.",
"content": {
"application/json": {
"schema": {
"type": "object",
"title": "Registration Status Response",
"properties": {
"data": {
"type": "object",
"title": "Registration Status",
"properties": {
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"example": "registration_status"
},
"status": {
"type": "string",
"description": "The current registration status of your SIP connection",
"enum": [
"Not Applicable",
"Not Registered",
"Failed",
"Expired",
"Registered",
"Unregistered"
]
},
"sip_username": {
"type": "string",
"description": "The user name of the SIP connection",
"example": "sip_username"
},
"ip_address": {
"type": "string",
"description": "The ip used during the SIP connection",
"example": "190.106.106.121"
},
"transport": {
"type": "string",
"description": "The protocol of the SIP connection",
"example": "TCP"
},
"port": {
"type": "integer",
"description": "The port of the SIP connection",
"example": 37223
},
"user_agent": {
"type": "string",
"description": "The user agent of the SIP connection",
"example": "Z 5.4.12 v2.10.13.2-mod"
},
"last_registration": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was last updated.",
"example": "2018-02-02T22:25:27.521Z"
}
},
"example": {
"record_type": "registration_status",
"status": "Expired",
"sip_username": "rogerp",
"ip_address": "190.106.106.121",
"transport": "UDP",
"port": 37223,
"user_agent": "Z 5.4.12 v2.10.13.2-mod",
"last_registration": "2021-09-28T15:11:02"
}
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/connections_BadRequestResponse"
},
"401": {
"$ref": "#/components/responses/UnauthenticatedResponse"
},
"403": {
"$ref": "#/components/responses/connections_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/connections_NotFoundResponse"
}
},
"x-latency-category": "responsive"
}
},
"/custom_storage_credentials/{connection_id}": {
"delete": {
"summary": "Delete a stored credential",
"description": "Deletes a stored custom credentials configuration.",
"operationId": "DeleteCustomStorageCredentials",
"tags": [
"Call Recordings"
],
"parameters": [
{
"$ref": "#/components/parameters/call-recordings_ConnectionId"
}
],
"responses": {
"204": {
"description": "The credentials configuration for connection_id was deleted successfully."
},
"default": {
"$ref": "#/components/responses/call-recordings_GenericErrorResponse"
},
"401": {
"$ref": "#/components/responses/call-recordings_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/call-recordings_NotFoundResponse"
}
},
"x-latency-category": "responsive"
},
"get": {
"summary": "Retrieve a stored credential",
"description": "Returns the information about custom storage credentials.",
"operationId": "GetCustomStorageCredentials",
"tags": [
"Call Recordings"
],
"parameters": [
{
"$ref": "#/components/parameters/call-recordings_ConnectionId"
}
],
"responses": {
"200": {
"description": "A response containing a credentials resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CredentialsResponse"
}
}
}
},
"default": {
"$ref": "#/components/responses/call-recordings_GenericErrorResponse"
},
"401": {
"$ref": "#/components/responses/call-recordings_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/call-recordings_NotFoundResponse"
}
},
"x-latency-category": "responsive"
},
"post": {
"summary": "Create a custom storage credential",
"description": "Creates a custom storage credentials configuration.",
"operationId": "CreateCustomStorageCredentials",
"tags": [
"Call Recordings"
],
"parameters": [
{
"$ref": "#/components/parameters/call-recordings_ConnectionId"
}
],
"requestBody": {
"$ref": "#/components/requestBodies/CreateCredentialsRequest"
},
"responses": {
"200": {
"description": "A response containing a credentials resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CredentialsResponse"
}
}
}
},
"default": {
"$ref": "#/components/responses/call-recordings_GenericErrorResponse"
},
"401": {
"$ref": "#/components/responses/call-recordings_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/call-recordings_NotFoundResponse"
}
},
"x-latency-category": "responsive"
},
"put": {
"summary": "Update a stored credential",
"description": "Updates a stored custom credentials configuration.",
"operationId": "UpdateCustomStorageCredentials",
"tags": [
"Call Recordings"
],
"parameters": [
{
"$ref": "#/components/parameters/call-recordings_ConnectionId"
}
],
"requestBody": {
"$ref": "#/components/requestBodies/CreateCredentialsRequest"
},
"responses": {
"200": {
"description": "A response containing a credentials resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CredentialsResponse"
}
}
}
},
"default": {
"$ref": "#/components/responses/call-recordings_GenericErrorResponse"
},
"401": {
"$ref": "#/components/responses/call-recordings_UnauthorizedResponse"
},
"404": {
"$ref": "#/components/responses/call-recordings_NotFoundResponse"
}
},
"x-latency-category": "responsive"
}
},
"/customer_service_records": {
"get": {
"tags": [
"Customer Service Record"
],
"summary": "List customer service records",
"description": "List customer service records.",
"operationId": "ListCustomerServiceRecords",
"parameters": [
{
"$ref": "#/components/parameters/customer_service_record_PageConsolidated"
},
{
"$ref": "#/components/parameters/customer_service_record_FilterConsolidated"
},
{
"name": "sort",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated sort parameter (deepObject style). Originally: sort[value]",
"schema": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"created_at",
"-created_at"
],
"example": "created_at",
"description": "Specifies the sort order for results. If not given, results are sorted by created_at in descending order."
}
}
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomerServiceRecord"
}
},
"meta": {
"$ref": "#/components/schemas/PaginationMeta"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/customer_service_record_UnauthorizedErrorResponse"
},
"403": {
"$ref": "#/components/responses/customer_service_record_ForbiddenErrorResponse"
},
"422": {
"$ref": "#/components/responses/customer_service_record_UnprocessableEntityErrorResponse"
},
"500": {
"$ref": "#/components/responses/UnexpectedErrorResponse"
}
},
"x-latency-category": "responsive"
},
"post": {
"tags": [
"Customer Service Record"
],
"summary": "Create a customer service record",
"description": "Create a new customer service record for the provided phone number.",
"operationId": "CreateCustomerServiceRecord",
"requestBody": {
"$ref": "#/components/requestBodies/CreateCustomerServiceRecord"
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CustomerServiceRecord"
}
},
"example": {
"data": {
"id": "db7cebdb-21a8-4e89-8f51-e03ba6b799bb",
"phone_number": "+2003271000",
"status": "pending",
"error_message": null,
"result": null,
"webhook_url": "https://example.com/webhook",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/customer_service_record_UnauthorizedErrorResponse"
},
"403": {
"$ref": "#/components/responses/customer_service_record_ForbiddenErrorResponse"
},
"422": {
"$ref": "#/components/responses/customer_service_record_UnprocessableEntityErrorResponse"
},
"500": {
"$ref": "#/components/responses/UnexpectedErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/customer_service_records/phone_number_coverages": {
"post": {
"tags": [
"Customer Service Record"
],
"summary": "Verify CSR phone number coverage",
"description": "Verify the coverage for a list of phone numbers.",
"operationId": "VerifyPhoneNumberCoverage",
"requestBody": {
"$ref": "#/components/requestBodies/VerifyCustomerServiceRecordPhoneNumberCoverage"
},
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomerServiceRecordPhoneNumberCoverage"
}
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/customer_service_record_UnauthorizedErrorResponse"
},
"403": {
"$ref": "#/components/responses/customer_service_record_ForbiddenErrorResponse"
},
"422": {
"$ref": "#/components/responses/customer_service_record_UnprocessableEntityErrorResponse"
},
"500": {
"$ref": "#/components/responses/UnexpectedErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/customer_service_records/{customer_service_record_id}": {
"get": {
"tags": [
"Customer Service Record"
],
"summary": "Get a customer service record",
"description": "Get a specific customer service record.",
"operationId": "GetCustomerServiceRecord",
"parameters": [
{
"$ref": "#/components/parameters/PathCustomerServiceRecordId"
}
],
"responses": {
"201": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/CustomerServiceRecord"
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/customer_service_record_UnauthorizedErrorResponse"
},
"403": {
"$ref": "#/components/responses/customer_service_record_ForbiddenErrorResponse"
},
"404": {
"$ref": "#/components/responses/ResourceNotFoundErrorResponse"
},
"500": {
"$ref": "#/components/responses/UnexpectedErrorResponse"
}
},
"x-latency-category": "responsive"
}
},
"/detail_records": {
"get": {
"tags": [
"Detail Records"
],
"summary": "Search detail records",
"description": "Search for any detail record across the Telnyx Platform",
"operationId": "SearchDetailRecords",
"parameters": [
{
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Filter records on a given record attribute and value. disabling.connection_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
}
}
},
"external_sip_connection": {
"enum": [
"zoom",
"operator_connect"
],
"type": "string",
"example": "zoom",
"description": "If present, connections with external_sip_connection matching the given value will be returned."
},
"id": {
"type": "string",
"default": null,
"example": "1930241863466354012",
"description": "If present, connections with id matching the given value will be returned."
},
"created_at": {
"type": "string",
"default": null,
"example": "2022-12-31",
"description": "If present, connections with created_at date matching the given YYYY-MM-DD date will be returned."
},
"phone_number": {
"type": "object",
"properties": {
"contains": {
"type": "string",
"example": "+15555555555",
"description": "If present, connections associated with the given phone_number will be returned. A full match is necessary with a e164 format."
}
},
"description": "Phone number filter for connections. Note: Despite the 'contains' name, this requires a full E164 match per the original specification."
}
}
}
},
"FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[customer_reference][eq], filter[customer_reference][contains], filter[used_as_emergency], filter[street_address][contains], filter[address_book][eq]",
"schema": {
"type": "object",
"properties": {
"street_address": {
"type": "object",
"properties": {
"contains": {
"type": "string",
"description": "If present, addresses with street_address containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
}
}
},
"address_book": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"description": "If present, only returns results with the address_book flag equal to the given value."
}
}
},
"customer_reference": {
"oneOf": [
{
"type": "string",
"description": "If present, addresses with customer_reference containing the given value will be returned. Matching is not case-sensitive."
},
{
"type": "object",
"properties": {
"eq": {
"type": "string",
"description": "Exact match for customer_reference."
},
"contains": {
"type": "string",
"description": "Partial match for customer_reference. Matching is not case-sensitive."
}
}
}
]
},
"used_as_emergency": {
"type": "string",
"description": "If set as 'true', only addresses used as the emergency address for at least one active phone-number will be returned. When set to 'false', the opposite happens: only addresses not used as the emergency address from phone-numbers will be returned."
}
}
}
},
"FilterDocumentLinksConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"required": false,
"description": "Consolidated filter parameter for document links (deepObject style). Originally: filter[linked_record_type], filter[linked_resource_id]",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"linked_record_type": {
"type": "string",
"example": "porting_order",
"description": "The linked_record_type of the document to filter on."
},
"linked_resource_id": {
"type": "string",
"format": "uuid",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58",
"description": "The linked_resource_id of the document to filter on."
}
}
}
},
"FilterDocumentsConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"required": false,
"description": "Consolidated filter parameter for documents (deepObject style). Originally: filter[filename][contains], filter[customer_reference][eq], filter[customer_reference][in][], filter[created_at][gt], filter[created_at][lt]",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"filename": {
"type": "object",
"additionalProperties": false,
"properties": {
"contains": {
"type": "string",
"example": "invoice",
"description": "Filter by string matching part of filename."
}
}
},
"customer_reference": {
"type": "object",
"additionalProperties": false,
"properties": {
"eq": {
"type": "string",
"example": "MY REF 001",
"description": "Filter documents by a customer reference."
},
"in": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"MY REF 001",
"MY REF 002"
],
"description": "Filter documents by a list of customer references."
}
}
},
"created_at": {
"type": "object",
"additionalProperties": false,
"properties": {
"gt": {
"type": "string",
"format": "date-time",
"example": "2021-04-09T22:25:27.521Z",
"description": "Filter by created at greater than provided value."
},
"lt": {
"type": "string",
"format": "date-time",
"example": "2021-04-09T22:25:27.521Z",
"description": "Filter by created at less than provided value."
}
}
}
},
"example": {
"filename": {
"contains": "invoice"
},
"customer_reference": {
"in": [
"REF001",
"REF002"
]
},
"created_at": {
"gt": "2021-01-01T00:00:00Z"
}
}
}
},
"FilterLogMessagesConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Filter parameter for log messages (deepObject style). Supports filtering by external_connection_id and telephone_number with eq/contains operations.",
"schema": {
"type": "object",
"properties": {
"external_connection_id": {
"type": "string",
"example": "67ea7693-9cd5-4a68-8c76-abb3aa5bf5d2",
"description": "The external connection ID to filter by or \"null\" to filter for logs without an external connection ID"
},
"telephone_number": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "+1234567890",
"description": "The phone number to filter log messages for or \"null\" to filter for logs without a phone number",
"x-format": "E164"
},
"contains": {
"type": "string",
"example": "+123",
"description": "The partial phone number to filter log messages for. Requires 3-15 digits."
}
},
"description": "Telephone number filter operations for log messages. Use 'eq' for exact matches or 'contains' for partial matches."
}
}
}
},
"FilterMobileNetworkOperatorsConsolidated": {
"name": "filter",
"in": "query",
"explode": true,
"description": "Consolidated filter parameter for mobile network operators (deepObject style). Originally: filter[name][starts_with], filter[name][contains], filter[name][ends_with], filter[country_code], filter[mcc], filter[mnc], filter[tadig], filter[network_preferences_enabled]",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "object",
"properties": {
"starts_with": {
"type": "string",
"example": "AT",
"description": "Filter by name starting with."
},
"contains": {
"type": "string",
"example": "T&T",
"description": "Filter by name containing match."
},
"ends_with": {
"type": "string",
"example": "T",
"description": "Filter by name ending with."
}
},
"description": "Advanced name filtering operations"
},
"country_code": {
"type": "string",
"example": "US",
"description": "Filter by exact country_code."
},
"mcc": {
"type": "string",
"example": "310",
"description": "Filter by exact MCC."
},
"mnc": {
"type": "string",
"example": "410",
"description": "Filter by exact MNC."
},
"tadig": {
"type": "string",
"example": "USACG",
"description": "Filter by exact TADIG."
},
"network_preferences_enabled": {
"type": "boolean",
"example": true,
"description": "Filter by network_preferences_enabled."
}
}
}
},
"FilterName": {
"name": "filter[name]",
"in": "query",
"required": false,
"description": "Case-insensitive substring filter on the name field.",
"schema": {
"type": "string"
}
},
"FilterOTAUpdatesConsolidated": {
"name": "filter",
"in": "query",
"explode": true,
"description": "Consolidated filter parameter for OTA updates (deepObject style). Originally: filter[status], filter[sim_card_id], filter[type]",
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"in-progress",
"completed",
"failed"
],
"example": "in-progress",
"description": "Filter by a specific status of the resource's lifecycle."
},
"sim_card_id": {
"type": "string",
"description": "The SIM card identification UUID."
},
"type": {
"type": "string",
"enum": [
"sim_card_network_preferences"
],
"example": "sim_card_network_preferences",
"description": "Filter by type."
}
}
}
},
"FilterOrganizationUserEmail": {
"name": "filter[email]",
"in": "query",
"description": "Filter by email address (partial match)",
"schema": {
"type": "string"
}
},
"FilterOrganizationUserStatus": {
"name": "filter[user_status]",
"in": "query",
"description": "Filter by user status",
"schema": {
"type": "string",
"enum": [
"enabled",
"disabled",
"blocked"
]
}
},
"FilterPhoneNumbersConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"required": false,
"description": "Filter parameter for phone numbers (deepObject style). Supports filtering by phone_number, civic_address_id, and location_id with eq/contains operations.",
"schema": {
"type": "object",
"properties": {
"phone_number": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "+19705555098",
"description": "The phone number to filter by (exact match)"
},
"contains": {
"type": "string",
"example": "+1970",
"description": "The phone number to filter by (partial match)"
}
}
},
"civic_address_id": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "19990261512338516954",
"description": "The civic address ID to filter by"
}
}
},
"location_id": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "19995665508264022121",
"description": "The location ID to filter by"
}
}
}
}
}
},
"FilterProvider": {
"name": "filter[provider]",
"in": "query",
"required": false,
"description": "Filter by voice synthesis provider. Case-insensitive.",
"schema": {
"type": "string",
"enum": [
"telnyx",
"minimax",
"Telnyx",
"Minimax"
]
}
},
"FilterReleasesConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Filter parameter for releases (deepObject style). Supports filtering by status, civic_address_id, location_id, and phone_number with eq/contains operations.",
"schema": {
"type": "object",
"properties": {
"status": {
"type": "object",
"properties": {
"eq": {
"type": "array",
"items": {
"type": "string",
"enum": [
"pending_upload",
"pending",
"in_progress",
"complete",
"failed",
"expired",
"unknown"
]
},
"example": [
"pending",
"in_progress"
],
"description": "The status of the release to filter by"
}
}
},
"civic_address_id": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "19990261512338516954",
"description": "The civic address ID to filter by"
}
}
},
"location_id": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "19995665508264022121",
"description": "The location ID to filter by"
}
}
},
"phone_number": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "+1234567890",
"description": "The phone number to filter by",
"x-format": "E164"
},
"contains": {
"type": "string",
"example": "+123",
"description": "The partial phone number to filter by. Requires 3-15 digits."
}
},
"description": "Phone number filter operations. Use 'eq' for exact matches or 'contains' for partial matches."
}
}
}
},
"FilterRequirementTypesConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"required": false,
"description": "Consolidated filter parameter for requirement types (deepObject style). Originally: filter[name]",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "object",
"additionalProperties": false,
"properties": {
"contains": {
"type": "string",
"example": "utility bill",
"description": "Filters requirement types to those whose name contains a certain string."
}
}
}
}
}
},
"FilterRequirementsConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"required": false,
"description": "Consolidated filter parameter for requirements (deepObject style). Originally: filter[country_code], filter[phone_number_type], filter[action]",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"country_code": {
"type": "string",
"example": "US",
"description": "Filters results to those applying to a 2-character (ISO 3166-1 alpha-2) country code"
},
"phone_number_type": {
"type": "string",
"enum": [
"local",
"national",
"toll_free"
],
"example": "local",
"description": "Filters results to those applying to a specific phone_number_type"
},
"action": {
"type": "string",
"enum": [
"branded_calling",
"ordering",
"porting"
],
"example": "porting",
"description": "Filters requirements to those applying to a specific action."
}
}
}
},
"FilterSIMCardActionsConsolidated": {
"name": "filter",
"in": "query",
"explode": true,
"description": "Consolidated filter parameter for SIM card actions (deepObject style). Originally: filter[sim_card_id], filter[status], filter[bulk_sim_card_action_id], filter[action_type]",
"schema": {
"type": "object",
"properties": {
"sim_card_id": {
"type": "string",
"format": "uuid",
"example": "47a1c2b0-cc7b-4ab1-bb98-b33fb0fc61b9",
"description": "A valid SIM card ID."
},
"status": {
"type": "string",
"enum": [
"in-progress",
"completed",
"failed"
],
"example": "in-progress",
"description": "Filter by a specific status of the resource's lifecycle."
},
"bulk_sim_card_action_id": {
"type": "string",
"format": "uuid",
"example": "47a1c2b0-cc7b-4ab1-bb98-b33fb0fc61b9",
"description": "Filter by a bulk SIM card action ID."
},
"action_type": {
"type": "string",
"enum": [
"enable",
"enable_standby_sim_card",
"disable",
"set_standby",
"remove_public_ip",
"set_public_ip"
],
"example": "disable",
"description": "Filter by action type."
}
}
}
},
"FilterSIMCardConsolidated": {
"name": "filter",
"in": "query",
"explode": true,
"description": "Consolidated filter parameter for SIM cards (deepObject style). Originally: filter[iccid], filter[msisdn], filter[status], filter[tags]",
"schema": {
"type": "object",
"properties": {
"iccid": {
"type": "string",
"example": "89310410106543789301",
"description": "A search string to partially match for the SIM card's ICCID."
},
"msisdn": {
"type": "string",
"example": "+13109976224",
"description": "A search string to match for the SIM card's MSISDN."
},
"status": {
"type": "array",
"items": {
"type": "string",
"enum": [
"enabled",
"disabled",
"standby",
"data_limit_exceeded",
"unauthorized_imei"
]
},
"description": "Filter by a SIM card's status."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"personal",
"customers",
"active-customers"
],
"description": "A list of SIM card tags to filter on.tags they will be found.['customers', 'staff', 'test']\n ['test']['customers']['customers', 'test'] returns only the first because it's the only one with both tags.test returns the first two SIMs, because both of them have such tag.customers returns the first and last SIMs. - prefix.street_address: sorts the result by the\n street_address field in ascending order.\n -street_address: sorts the result by the\n street_address field in descending order.\n created_at in descending order.",
"schema": {
"type": "string",
"enum": [
"created_at",
"first_name",
"last_name",
"business_name",
"street_address"
],
"example": "street_address",
"default": "created_at"
}
},
"SortApplication": {
"name": "sort",
"in": "query",
"description": "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.friendly_name: sorts the result by the\n friendly_name field in ascending order.\n -friendly_name: sorts the result by the\n friendly_name field in descending order.\n created_at in descending order.",
"schema": {
"type": "string",
"enum": [
"created_at",
"friendly_name",
"active"
],
"example": "friendly_name",
"default": "created_at"
}
},
"SortConnection": {
"name": "sort",
"in": "query",
"required": false,
"description": "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.connection_name: sorts the result by the\n connection_name field in ascending order.\n -connection_name: sorts the result by the\n connection_name field in descending order.\n created_at in descending order.",
"schema": {
"type": "string",
"enum": [
"created_at",
"connection_name",
"active"
],
"example": "connection_name",
"default": "created_at"
}
},
"SortDocumentsConsolidated": {
"name": "sort",
"in": "query",
"required": false,
"description": "Consolidated sort parameter for documents (deepObject style). Originally: sort[]",
"schema": {
"type": "array",
"items": {
"type": "string",
"enum": [
"filename",
"created_at",
"updated_at",
"-filename",
"-created_at",
"-updated_at"
]
},
"example": [
"filename"
],
"description": "Specifies the sort order for results. If you want to sort by a field in ascending order, include it as a sort parameter. If you want to sort in descending order, prepend a `-` in front of the field name."
}
},
"SortOutboundVoiceProfile": {
"name": "sort",
"in": "query",
"description": "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.name: sorts the result by the\n name field in ascending order.\n -name: sorts the result by the\n name field in descending order.\n - prefix.street_address: sorts the result by the\n street_address field in ascending order.\n -street_address: sorts the result by the\n street_address field in descending order.\n created_at in descending order.",
"schema": {
"type": "string",
"enum": [
"created_at",
"first_name",
"last_name",
"business_name",
"street_address"
],
"example": "street_address",
"default": "created_at"
}
},
"StartTime": {
"name": "StartTime",
"in": "query",
"required": false,
"description": "Filters calls by their start date. Expected format is YYYY-MM-DD.",
"schema": {
"type": "string"
},
"example": "2023-05-22"
},
"StartTime_gt": {
"name": "StartTime_gt",
"in": "query",
"required": false,
"description": "Filters calls by their start date (after). Expected format is YYYY-MM-DD",
"schema": {
"type": "string"
},
"example": "2023-05-22"
},
"StartTime_lt": {
"name": "StartTime_lt",
"in": "query",
"required": false,
"description": "Filters calls by their start date (before). Expected format is YYYY-MM-DD",
"schema": {
"type": "string"
},
"example": "2023-05-22"
},
"Status": {
"name": "Status",
"in": "query",
"required": false,
"description": "Filters calls by status.",
"schema": {
"type": "string",
"enum": [
"canceled",
"completed",
"failed",
"busy",
"no-answer"
]
},
"example": "no-answer"
},
"StreamingSid": {
"description": "Uniquely identifies the streaming by id.",
"name": "streaming_sid",
"in": "path",
"required": true,
"schema": {
"format": "uuid",
"type": "string",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
}
},
"TexmlDateCreated": {
"name": "DateCreated",
"in": "query",
"required": false,
"description": "Filters recording by the creation date. Expected format is ISO8601 date or date-time, ie. {YYYY}-{MM}-{DD} or {YYYY}-{MM}-{DD}T{hh}:{mm}:{ss}Z. Also accepts inequality operators, e.g. DateCreated>=2023-05-22.",
"schema": {
"type": "string",
"format": "date-time",
"example": "2023-05-22T00:00:00Z"
}
},
"To": {
"name": "To",
"in": "query",
"required": false,
"description": "Filters calls by the to number.",
"schema": {
"type": "string"
},
"example": "+1312345678"
},
"TrafficPolicyProfileId": {
"name": "id",
"description": "Identifies the traffic policy profile.",
"in": "path",
"required": true,
"schema": {
"format": "uuid",
"type": "string",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
}
},
"UserBundleId": {
"required": true,
"schema": {
"title": "User Bundle Id",
"type": "string",
"format": "uuid",
"example": "ca1d2263-d1f1-43ac-ba53-248e7a4bb26a",
"description": "User bundle's ID, this is used to identify the user bundle in the API."
},
"name": "user_bundle_id",
"in": "path",
"description": "Unique identifier of the user bundle."
},
"VoiceSdkCallReportSort": {
"name": "sort",
"in": "query",
"description": "Set the order of the results by creation date. `asc` and `created_at` sort oldest reports first; `desc` and `-created_at` sort newest reports first. If not given, results are sorted by creation date in descending order.",
"required": false,
"schema": {
"type": "string",
"enum": [
"asc",
"desc",
"created_at",
"-created_at"
],
"default": "desc",
"example": "-created_at"
}
},
"WabaId": {
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Whatsapp Business Account ID"
},
"WhatsappPhoneNumber": {
"name": "phone_number",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Phone number (E.164 format)"
},
"WhatsappTemplateId": {
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Whatsapp message template ID"
},
"WirelessBlocklistId": {
"name": "id",
"description": "Identifies the wireless blocklist.",
"in": "path",
"required": true,
"schema": {
"format": "uuid",
"type": "string",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
}
},
"address_id": {
"name": "address_id",
"description": "Identifies a civic address or a location.",
"in": "path",
"required": true,
"schema": {
"format": "uuid",
"type": "string",
"example": "318fb664-d341-44d2-8405-e6bfb9ced6d9"
}
},
"audio_format": {
"name": "audio_format",
"in": "query",
"required": false,
"description": "Audio output format override. Supported for Telnyx models. `pcm` and `wav` are available for `Natural`/`NaturalHD` models. The `Ultra` model outputs PCM at 24kHz s16le or MP3 at 128kbps 24kHz.",
"schema": {
"type": "string",
"enum": [
"pcm",
"wav",
"mp3"
]
}
},
"audit-logs_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[created_before], filter[created_after]",
"schema": {
"type": "object",
"properties": {
"created_before": {
"type": "string",
"format": "date-time",
"example": "2021-01-01T00:00:00Z",
"description": "Filter for audit events created before a specific date."
},
"created_after": {
"type": "string",
"format": "date-time",
"example": "2021-01-01T00:00:00Z",
"description": "Filter for audit events created after a specific date."
}
}
}
},
"audit-logs_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"example": 1,
"description": "Page number to load."
},
"size": {
"type": "integer",
"example": 10,
"description": "Number of items per page."
}
}
}
},
"bundle-pricing_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Supports filtering by country_iso and resource. Examples: filter[country_iso]=US or filter[resource]=+15617819942",
"schema": {
"type": "object",
"properties": {
"country_iso": {
"title": "Filter[Country Iso]",
"type": "array",
"items": {
"type": "string",
"example": "US"
},
"description": "Filter by country code."
},
"resource": {
"title": "Filter[Resource]",
"type": "array",
"items": {
"type": "string",
"description": "Filter by resource.",
"example": "+15617819942"
},
"description": "Filter by resource."
}
}
}
},
"bundle-pricing_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page."
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load."
}
}
}
},
"call-control_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[application_name][contains], filter[outbound.outbound_voice_profile_id], filter[leg_id], filter[application_session_id], filter[connection_id], filter[product], filter[failed], filter[from], filter[to], filter[name], filter[type], filter[occurred_at][eq/gt/gte/lt/lte], filter[status]",
"schema": {
"type": "object",
"properties": {
"application_name": {
"type": "object",
"description": "Application name filters",
"properties": {
"contains": {
"type": "string",
"default": "null",
"description": "If present, applications with application_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
}
},
"additionalProperties": false
},
"outbound.outbound_voice_profile_id": {
"type": "string",
"example": "1293384261075731499",
"description": "Identifies the associated outbound voice profile.",
"x-format": "int64"
},
"leg_id": {
"type": "string",
"format": "uuid",
"description": "The unique identifier of an individual call leg."
},
"application_session_id": {
"type": "string",
"format": "uuid",
"description": "The unique identifier of the call session. A session may include multiple call leg events."
},
"connection_id": {
"type": "string",
"description": "The unique identifier of the conection."
},
"product": {
"type": "string",
"enum": [
"call_control",
"fax",
"texml"
],
"example": "texml",
"description": "Filter by product."
},
"failed": {
"type": "boolean",
"example": false,
"description": "Delivery failed or not."
},
"from": {
"type": "string",
"example": "+12025550142",
"description": "Filter by From number."
},
"to": {
"type": "string",
"example": "+12025550142",
"description": "Filter by To number."
},
"name": {
"type": "string",
"description": "If present, conferences will be filtered to those with a matching `name` attribute. Matching is case-sensitive"
},
"type": {
"type": "string",
"enum": [
"command",
"webhook"
],
"example": "webhook",
"description": "Event type"
},
"occurred_at": {
"type": "object",
"description": "Event occurred_at filters",
"properties": {
"eq": {
"type": "string",
"example": "2019-03-29T11:10:00Z",
"description": "Event occurred_at: equal"
},
"gt": {
"type": "string",
"example": "2019-03-29T11:10:00Z",
"description": "Event occurred_at: greater than"
},
"gte": {
"type": "string",
"example": "2019-03-29T11:10:00Z",
"description": "Event occurred_at: greater than or equal"
},
"lt": {
"type": "string",
"example": "2019-03-29T11:10:00Z",
"description": "Event occurred_at: lower than"
},
"lte": {
"type": "string",
"example": "2019-03-29T11:10:00Z",
"description": "Event occurred_at: lower than or equal"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"init",
"in_progress",
"completed"
],
"description": "If present, conferences will be filtered by status."
}
}
}
},
"call-control_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[after], page[before], page[limit], page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"after": {
"type": "string",
"default": "null",
"description": "Opaque identifier of next page"
},
"before": {
"type": "string",
"default": "null",
"description": "Opaque identifier of previous page"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "Limit of records per single page"
},
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"call-recordings_ConnectionId": {
"name": "connection_id",
"description": "Uniquely identifies a Telnyx application (Call Control, TeXML) or Sip connection resource.",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
"call-recordings_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page."
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load."
}
}
}
},
"call-scripting_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[outbound_voice_profile_id], filter[friendly_name]",
"schema": {
"type": "object",
"properties": {
"outbound_voice_profile_id": {
"type": "string",
"example": "1293384261075731499",
"description": "Identifies the associated outbound voice profile."
},
"friendly_name": {
"type": "string",
"default": "null",
"description": "If present, applications with friendly_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
}
}
}
},
"call-scripting_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 250,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"connections_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[connection_name], filter[fqdn], filter[outbound_voice_profile_id], filter[outbound.outbound_voice_profile_id]",
"schema": {
"type": "object",
"properties": {
"connection_name": {
"type": "object",
"description": "Filter by connection_name using nested operations",
"properties": {
"contains": {
"type": "string",
"default": null,
"description": "If present, connections with connection_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
}
}
},
"fqdn": {
"type": "string",
"default": null,
"description": "If present, connections with an `fqdn` that equals the given value will be returned. Matching is case-sensitive, and the full string must match."
},
"outbound_voice_profile_id": {
"type": "string",
"example": "1293384261075731499",
"description": "Identifies the associated outbound voice profile.",
"x-format": "int64"
}
}
}
},
"connections_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 250,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"connections_SortConnection": {
"name": "sort",
"in": "query",
"description": "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.connection_name: sorts the result by the\n connection_name field in ascending order.\n -connection_name: sorts the result by the\n connection_name field in descending order.\n created_at in descending order.",
"schema": {
"type": "string",
"enum": [
"created_at",
"connection_name",
"active"
],
"example": "connection_name",
"default": "created_at"
}
},
"connections_id": {
"name": "id",
"description": "Identifies the resource.",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "1293384261075731499",
"x-format": "int64"
}
},
"customer_service_record_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[phone_number][eq], filter[phone_number][in][], filter[status][eq], filter[status][in][], filter[created_at][lt], filter[created_at][gt]",
"schema": {
"type": "object",
"properties": {
"phone_number": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "+12441239999",
"description": "Filters records to those with a specified number."
},
"in": {
"type": "array",
"items": {
"type": "string",
"example": "+12441239999"
},
"description": "Filters records to those with at least one number in the list."
}
}
},
"status": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"enum": [
"pending",
"completed",
"failed"
],
"example": "pending",
"description": "Filters records to those with a specific status."
},
"in": {
"type": "array",
"items": {
"type": "string",
"enum": [
"pending",
"completed",
"failed"
],
"example": "pending"
},
"description": "Filters records to those with a least one status in the list."
}
}
},
"created_at": {
"type": "object",
"properties": {
"lt": {
"type": "string",
"format": "date-time",
"example": "2020-01-01T00:00:00Z",
"description": "Filters records to those created before a specific date."
},
"gt": {
"type": "string",
"format": "date-time",
"example": "2020-01-01T00:00:00Z",
"description": "Filters records to those created after a specific date."
}
}
}
}
}
},
"customer_service_record_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"disable_cache": {
"name": "disable_cache",
"in": "query",
"required": false,
"description": "When `true`, bypass the audio cache and generate fresh audio.",
"schema": {
"type": "boolean",
"default": false
}
},
"documents_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"emergency_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"endpointing": {
"name": "endpointing",
"in": "query",
"required": false,
"description": "Silence duration (in milliseconds) that triggers end-of-speech detection. When set, the engine uses this value to determine when a speaker has stopped talking. Supported by `xAI`, `Deepgram`, `Google`, `Speechmatics`, and `Soniox`. `Soniox` accepts values between 500 and 3000. Other engines may not support this parameter.",
"schema": {
"type": "integer"
},
"example": 500
},
"external-voice-integrations_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 250,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"external-voice-integrations_id": {
"name": "id",
"description": "Identifies the resource.",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "1293384261075731499",
"x-format": "int64"
}
},
"id": {
"name": "id",
"description": "Identifies the resource.",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "1293384261075731499"
}
},
"input_format": {
"name": "input_format",
"in": "query",
"required": true,
"description": "The format of input audio stream.",
"schema": {
"type": "string",
"enum": [
"mp3",
"wav"
]
},
"example": "mp3"
},
"interim_results": {
"name": "interim_results",
"in": "query",
"required": false,
"description": "Whether to receive interim transcription results.",
"schema": {
"type": "boolean"
},
"example": true
},
"keyterm": {
"name": "keyterm",
"in": "query",
"required": false,
"description": "A key term to boost in the transcription. The engine will be more likely to recognize this term. Can be specified multiple times for multiple terms.",
"schema": {
"type": "string"
},
"example": "Telnyx"
},
"keywords": {
"name": "keywords",
"in": "query",
"required": false,
"description": "Comma-separated list of keywords to boost in the transcription. The engine will prioritize recognition of these words.",
"schema": {
"type": "string"
},
"example": "Telnyx,SIP,WebRTC"
},
"language": {
"name": "language",
"in": "query",
"required": false,
"description": "The language spoken in the audio stream.",
"schema": {
"type": "string"
},
"example": "en-US"
},
"managed-accounts_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"required": false,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[email][contains], filter[email][eq], filter[organization_name][contains], filter[organization_name][eq]",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"email": {
"type": "object",
"additionalProperties": false,
"properties": {
"contains": {
"type": "string",
"description": "If present, email containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
},
"eq": {
"type": "string",
"description": "If present, only returns results with the email matching exactly the value given."
}
}
},
"organization_name": {
"type": "object",
"additionalProperties": false,
"properties": {
"contains": {
"type": "string",
"description": "If present, only returns results with the organization_name containing the given value. Matching is not case-sensitive. Requires at least three characters."
},
"eq": {
"type": "string",
"description": "If present, only returns results with the organization_name matching exactly the value given."
}
}
}
},
"example": {
"email": {
"contains": "john"
},
"organization_name": {
"eq": "Example Company LLC"
}
}
}
},
"managed-accounts_Sort": {
"name": "sort",
"in": "query",
"required": false,
"description": "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.email: sorts the result by the\n email field in ascending order.\n -email: sorts the result by the\n email field in descending order.\n created_at in descending order.",
"schema": {
"type": "string",
"enum": [
"created_at",
"email"
],
"example": "email",
"default": "created_at"
}
},
"media-streaming_ConnectionId": {
"name": "connection_id",
"description": "Uniquely identifies a Telnyx application (Call Control).",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
"model": {
"name": "model",
"in": "query",
"description": "The specific model to use within the selected transcription engine.",
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/azure_models"
},
{
"$ref": "#/components/schemas/deepgram_models"
},
{
"$ref": "#/components/schemas/google_models"
},
{
"$ref": "#/components/schemas/telnyx_models"
},
{
"$ref": "#/components/schemas/xai_models"
},
{
"$ref": "#/components/schemas/speechmatics_models"
},
{
"$ref": "#/components/schemas/soniox_models"
}
]
}
},
"model_id": {
"name": "model_id",
"in": "query",
"required": false,
"description": "Model identifier for the chosen provider. Examples: `Natural`, `NaturalHD`, `Ultra` (Telnyx); `Polly.Generative` (AWS).",
"schema": {
"type": "string"
}
},
"notifications_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"required": false,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[associated_record_type][eq], filter[channel_type_id][eq], filter[notification_profile_id][eq], filter[notification_channel][eq], filter[notification_event_condition_id][eq], filter[status][eq]",
"schema": {
"type": "object",
"properties": {
"associated_record_type": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"enum": [
"account",
"phone_number"
],
"example": "phone_number",
"description": "Filter by the associated record type"
}
}
},
"channel_type_id": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"enum": [
"webhook",
"sms",
"email",
"voice"
],
"example": "webhook",
"description": "Filter by the id of a channel type"
}
}
},
"notification_profile_id": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "12455643-3cf1-4683-ad23-1cd32f7d5e0a",
"description": "Filter by the id of a notification profile"
}
}
},
"notification_channel": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "12455643-3cf1-4683-ad23-1cd32f7d5e0a",
"description": "Filter by the id of a notification channel"
}
}
},
"notification_event_condition_id": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"example": "12455643-3cf1-4683-ad23-1cd32f7d5e0a",
"description": "Filter by the id of a notification channel"
}
}
},
"status": {
"type": "object",
"properties": {
"eq": {
"type": "string",
"enum": [
"enabled",
"enable-received",
"enable-pending",
"enable-submtited",
"delete-received",
"delete-pending",
"delete-submitted",
"deleted"
],
"example": "enable-received",
"description": "The status of a notification setting"
}
}
}
}
}
},
"notifications_Id": {
"name": "id",
"in": "path",
"description": "The id of the resource.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
"numbers_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"outbound-voice-profiles_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[name][contains]",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "object",
"properties": {
"contains": {
"type": "string",
"example": "office-profile",
"description": "Optional filter on outbound voice profile name."
}
},
"description": "Name filtering operations"
}
}
}
},
"outbound-voice-profiles_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page."
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load."
}
}
}
},
"phone_number_id": {
"name": "phone_number_id",
"description": "A phone number's ID via the Telnyx API",
"in": "path",
"required": true,
"schema": {
"type": "string",
"example": "1234567889"
}
},
"porting-order_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[porting_order_id], filter[support_key], filter[status], filter[phone_number], filter[activation_status], filter[portability_status]",
"schema": {
"type": "object",
"properties": {
"porting_order_id": {
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"example": "f3575e15-32ce-400e-a4c0-dd78800c20b0"
},
"description": "Filter results by a list of porting order ids"
},
"support_key": {
"oneOf": [
{
"type": "string",
"example": "sr_a12345",
"description": "Filter by exact support key match (eq operation)"
},
{
"type": "array",
"items": {
"type": "string",
"example": "sr_a12345"
},
"description": "Filter by multiple support keys (in operation)"
}
],
"description": "Filter results by support key(s). Originally: filter[support_key][eq], filter[support_key][in][]"
},
"status": {
"oneOf": [
{
"type": "string",
"enum": [
"draft",
"in-process",
"submitted",
"exception",
"foc-date-confirmed",
"cancel-pending",
"ported",
"cancelled"
],
"example": "in-process",
"description": "Filter by single status"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"draft",
"in-process",
"submitted",
"exception",
"foc-date-confirmed",
"cancel-pending",
"ported",
"cancelled"
]
},
"example": [
"in-process",
"submitted"
],
"description": "Filter by multiple statuses (in operation)"
}
],
"description": "Filter porting orders by status(es). Originally: filter[status], filter[status][in][]"
},
"phone_number": {
"type": "array",
"items": {
"type": "string",
"example": "+12003151212"
},
"description": "Filter results by a list of phone numbers"
},
"activation_status": {
"$ref": "#/components/schemas/PortingOrderActivationStatus",
"description": "Filter results by activation status"
},
"portability_status": {
"$ref": "#/components/schemas/PortabilityStatus",
"description": "Filter results by portability status"
}
}
}
},
"porting-order_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"programmable-fax_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[application_name][contains], filter[outbound_voice_profile_id]",
"schema": {
"type": "object",
"properties": {
"application_name": {
"type": "object",
"properties": {
"contains": {
"type": "string",
"example": "fax-app",
"description": "If present, applications with application_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
}
},
"description": "Application name filtering operations"
},
"outbound_voice_profile_id": {
"type": "string",
"example": "1293384261075731499",
"description": "Identifies the associated outbound voice profile."
}
}
}
},
"programmable-fax_SortApplication": {
"name": "sort",
"in": "query",
"description": "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.application_name: sorts the result by the\n application_name field in ascending order.\n -application_name: sorts the result by the\n application_name field in descending order.\n created_at in descending order.",
"schema": {
"type": "string",
"enum": [
"created_at",
"application_name",
"active"
],
"example": "application_name",
"default": "created_at"
}
},
"pronunciation_dict_id": {
"name": "id",
"in": "path",
"required": true,
"description": "The UUID of the pronunciation dictionary.",
"schema": {
"type": "string",
"format": "uuid",
"example": "c215a3e1-be41-4701-97e8-1d3c22f9a5b7"
}
},
"provider": {
"name": "provider",
"in": "query",
"required": false,
"description": "TTS provider. Defaults to `telnyx` if not specified. Ignored when `voice` is provided.",
"schema": {
"type": "string",
"enum": [
"aws",
"telnyx",
"azure",
"elevenlabs",
"minimax",
"murfai",
"rime",
"resemble",
"xai"
],
"default": "telnyx"
}
},
"push-notifications_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page."
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load."
}
}
}
},
"redact": {
"name": "redact",
"in": "query",
"required": false,
"description": "Enable redaction of sensitive information (e.g., PCI data, SSN) from transcription results. Supported values depend on the transcription engine.",
"schema": {
"type": "string"
},
"example": "pci"
},
"release_id": {
"name": "release_id",
"description": "Identifies a Release request",
"in": "path",
"required": true,
"schema": {
"format": "uuid",
"type": "string",
"example": "7b6a6449-b055-45a6-81f6-f6f0dffa4cc6"
}
},
"socket_id": {
"name": "socket_id",
"in": "query",
"required": false,
"description": "Client-provided socket identifier for tracking. If not provided, one is generated server-side.",
"schema": {
"type": "string"
}
},
"telephony-credentials_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[tag], filter[name], filter[status], filter[resource_id], filter[sip_username]",
"schema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Filter by tag"
},
"name": {
"type": "string",
"description": "Filter by name"
},
"status": {
"type": "string",
"description": "Filter by status"
},
"resource_id": {
"type": "string",
"description": "Filter by resource_id"
},
"sip_username": {
"type": "string",
"description": "Filter by sip_username"
}
}
}
},
"telephony-credentials_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[number], page[size]",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
},
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 50,
"description": "The size of the page"
}
}
}
},
"ticket_id": {
"name": "ticket_id",
"description": "Identifies an Upload request",
"in": "path",
"required": true,
"schema": {
"format": "uuid",
"type": "string",
"example": "7b6a6449-b055-45a6-81f6-f6f0dffa4cc6"
}
},
"transcription_engine": {
"name": "transcription_engine",
"in": "query",
"required": true,
"description": "The transcription engine to use for processing the audio stream.",
"schema": {
"type": "string",
"enum": [
"Azure",
"Deepgram",
"Google",
"Telnyx",
"xAI",
"Speechmatics",
"Soniox"
]
},
"example": "Telnyx"
},
"user-addresses_FilterConsolidated": {
"name": "filter",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated filter parameter (deepObject style). Originally: filter[customer_reference][eq], filter[customer_reference][contains], filter[street_address][contains]",
"schema": {
"type": "object",
"properties": {
"customer_reference": {
"type": "object",
"description": "Filter user addresses via the customer reference. Supports both exact matching (eq) and partial matching (contains). Matching is not case-sensitive.",
"properties": {
"eq": {
"type": "string",
"description": "Filter user addresses via exact customer reference match. Matching is not case-sensitive."
},
"contains": {
"type": "string",
"description": "If present, user addresses with customer_reference containing the given value will be returned. Matching is not case-sensitive."
}
}
},
"street_address": {
"type": "object",
"description": "Filter user addresses via street address. Supports partial matching (contains). Matching is not case-sensitive.",
"properties": {
"contains": {
"type": "string",
"description": "If present, user addresses with street_address containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters."
}
}
}
}
},
"examples": {
"customer_reference_eq": {
"summary": "Filter by exact customer reference",
"description": "Find user addresses with exact customer reference match",
"value": {
"customer_reference": {
"eq": "MY REF 001"
}
}
},
"customer_reference_contains": {
"summary": "Filter by partial customer reference",
"description": "Find user addresses containing part of customer reference",
"value": {
"customer_reference": {
"contains": "REF"
}
}
},
"street_address_contains": {
"summary": "Filter by street address",
"description": "Find user addresses containing part of street address",
"value": {
"street_address": {
"contains": "Congress"
}
}
},
"combined_filters": {
"summary": "Combined filters",
"description": "Use multiple filters together",
"value": {
"customer_reference": {
"contains": "REF"
},
"street_address": {
"contains": "Avenue"
}
}
}
}
},
"user-addresses_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page"
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load"
}
}
}
},
"users_PageSize": {
"name": "page[size]",
"in": "query",
"description": "The size of the page",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 250
}
},
"video_PageConsolidated": {
"name": "page",
"in": "query",
"style": "deepObject",
"explode": true,
"description": "Consolidated page parameter (deepObject style). Originally: page[size], page[number]",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"minimum": 1,
"maximum": 250,
"default": 20,
"description": "The size of the page."
},
"number": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "The page number to load."
}
}
}
},
"voice": {
"name": "voice",
"in": "query",
"required": false,
"description": "Voice identifier in the format `provider.model_id.voice_id` or `provider.voice_id` (e.g. `telnyx.NaturalHD.Telnyx_Alloy`, `Telnyx.Ultra.bulk_disable_voice - disable voice for every SIM Card in a SIM Card Group.bulk_enable_voice - enable voice for every SIM Card in a SIM Card Group.bulk_set_public_ips - set a public IP for each specified SIM Card.bulk_disable_voice - disable voice for every SIM Card in a SIM Card Group.bulk_enable_voice - enable voice for every SIM Card in a SIM Card Group.bulk_set_public_ips - set a public IP for each specified SIM Card.Latency directs Telnyx to route media through the site with the lowest round-trip time to the user's connection. Telnyx calculates this time using ICMP ping messages. This can be disabled by specifying a site to handle all media.\n",
"enum": [
"Latency",
"Chicago, IL",
"Ashburn, VA",
"San Jose, CA",
"London, UK",
"Chennai, IN",
"Amsterdam, Netherlands",
"Toronto, Canada",
"Sydney, Australia"
],
"example": "Amsterdam, Netherlands",
"default": "Latency"
},
"application_name": {
"type": "string",
"description": "A user-assigned name to help manage the application.",
"example": "call-router"
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date of when the resource was created",
"example": "2018-02-02T22:25:27.521Z"
},
"dtmf_type": {
"type": "string",
"description": "Sets the type of DTMF digits sent from Telnyx to this Connection. Note that DTMF digits sent to Telnyx will be accepted in all formats.",
"enum": [
"RFC 2833",
"Inband",
"SIP INFO"
],
"example": "Inband",
"default": "RFC 2833"
},
"first_command_timeout": {
"type": "boolean",
"description": "Specifies whether calls to phone numbers associated with this connection should hangup after timing out.",
"example": true,
"default": false
},
"first_command_timeout_secs": {
"type": "integer",
"description": "Specifies how many seconds to wait before timing out a dial command.",
"example": 10,
"default": 30
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags assigned to the Call Control Application."
},
"id": {
"type": "string",
"example": "1293384261075731499",
"x-format": "int64"
},
"inbound": {
"$ref": "#/components/schemas/CallControlApplicationInbound"
},
"outbound": {
"$ref": "#/components/schemas/CallControlApplicationOutbound"
},
"record_type": {
"type": "string",
"enum": [
"call_control_application"
],
"default": "call_control_application"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date of when the resource was last updated",
"example": "2018-02-02T22:25:27.521Z"
},
"webhook_api_version": {
"type": "string",
"description": "Determines which webhook format will be used, Telnyx API v1 or v2.",
"enum": [
"1",
"2"
],
"example": "1",
"default": "1"
},
"webhook_event_failover_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as `https`.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_event_url": {
"type": "string",
"format": "url",
"description": "The URL where webhooks related to this connection will be sent. Must include a scheme, such as `https`.",
"example": "https://example.com"
},
"webhook_timeout_secs": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 30,
"example": 25,
"default": null
},
"call_cost_in_webhooks": {
"type": "boolean",
"description": "Specifies if call cost webhooks should be sent for this Call Control Application.",
"default": false
},
"redact_dtmf_debug_logging": {
"type": "boolean",
"description": "When enabled, DTMF digits entered by users will be redacted in debug logs to protect PII data entered through IVR interactions.",
"example": true,
"default": false
}
},
"example": {
"active": false,
"anchorsite_override": "Latency",
"application_name": "call-router",
"created_at": "2018-02-02T22:25:27.521Z",
"dtmf_type": "Inband",
"first_command_timeout": true,
"first_command_timeout_secs": 10,
"id": "1293384261075731499",
"inbound": {
"channel_limit": 10,
"shaken_stir_enabled": true,
"sip_subdomain": "example",
"sip_subdomain_receive_settings": "only_my_connections"
},
"outbound": {
"channel_limit": 10,
"outbound_voice_profile_id": "1293384261075731499"
},
"record_type": "call_control_application",
"updated_at": "2018-02-02T22:25:27.521Z",
"webhook_api_version": "1",
"webhook_event_failover_url": "https://failover.example.com",
"webhook_event_url": "https://example.com",
"webhook_timeout_secs": 25,
"call_cost_in_webhooks": false,
"redact_dtmf_debug_logging": true
}
},
"CallControlApplicationInbound": {
"type": "object",
"title": "Call Control Application Inbound",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the total number of inbound calls to phone numbers associated with this connection.",
"example": 10,
"default": null
},
"shaken_stir_enabled": {
"type": "boolean",
"description": "When enabled Telnyx will include Shaken/Stir data in the Webhook for new inbound calls.",
"default": false,
"example": false
},
"sip_subdomain": {
"type": "string",
"description": "Specifies a subdomain that can be used to receive Inbound calls to a Connection, in the same way a phone number is used, from a SIP endpoint. Example: the subdomain \"example.sip.telnyx.com\" can be called from any SIP endpoint by using the SIP URI \"sip:@example.sip.telnyx.com\" where the user part can be any alphanumeric value. Please note TLS encrypted calls are not allowed for subdomain calls.",
"example": "example",
"default": null
},
"sip_subdomain_receive_settings": {
"type": "string",
"description": "This option can be enabled to receive calls from: \"Anyone\" (any SIP endpoint in the public Internet) or \"Only my connections\" (any connection assigned to the same Telnyx user).",
"enum": [
"only_my_connections",
"from_anyone"
],
"example": "only_my_connections",
"default": "from_anyone"
}
}
},
"CallControlApplicationOutbound": {
"type": "object",
"title": "Call Control Application Outbound",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the total number of outbound calls to phone numbers associated with this connection.",
"example": 10,
"default": null
},
"outbound_voice_profile_id": {
"type": "string",
"description": "Identifies the associated outbound voice profile.",
"example": "1293384261075731499",
"x-format": "int64"
}
}
},
"CallControlBucketIds": {
"properties": {
"bucket_ids": {
"items": {
"type": "string"
},
"type": "array",
"title": "Bucket Ids"
},
"max_num_results": {
"description": "The maximum number of results to retrieve as context for the language model.",
"type": "integer"
}
},
"type": "object",
"required": [
"bucket_ids"
],
"title": "BucketIds"
},
"CallControlCommandResult": {
"type": "object",
"title": "Call Control Command Result",
"example": {
"result": "ok"
},
"properties": {
"result": {
"type": "string",
"example": "ok"
}
}
},
"CallControlCommandResultWithConversationId": {
"type": "object",
"title": "Call Control Command Result With Conversation ID",
"example": {
"result": "ok",
"conversation_id": "d7e9c1d4-8b2a-4b8f-b3a7-9a671c9e9b0a"
},
"properties": {
"result": {
"type": "string",
"example": "ok"
},
"conversation_id": {
"type": "string",
"format": "uuid",
"example": "d7e9c1d4-8b2a-4b8f-b3a7-9a671c9e9b0a",
"description": "The ID of the conversation created by the command."
}
}
},
"CallControlCommandResultWithConversationRelayId": {
"type": "object",
"title": "Call Control Command Result With Conversation Relay ID",
"example": {
"result": "ok",
"conversation_relay_id": "d7e9c1d4-8b2a-4b8f-b3a7-9a671c9e9b0a"
},
"properties": {
"result": {
"type": "string",
"example": "ok"
},
"conversation_relay_id": {
"type": "string",
"example": "d7e9c1d4-8b2a-4b8f-b3a7-9a671c9e9b0a",
"description": "The ID of the Conversation Relay session created by the command."
}
}
},
"CallControlCommandResultWithRecordingId": {
"type": "object",
"title": "Call Control Command Result With Recording ID",
"example": {
"result": "ok",
"recording_id": "d7e9c1d4-8b2a-4b8f-b3a7-9a671c9e9b0a"
},
"properties": {
"result": {
"type": "string",
"example": "ok"
},
"recording_id": {
"type": "string",
"format": "uuid",
"example": "d7e9c1d4-8b2a-4b8f-b3a7-9a671c9e9b0a",
"description": "The ID of the recording. Only present when the record parameter is set to record-from-answer."
}
}
},
"CallControlId": {
"type": "string",
"example": "v3:KBnLO0ZK3DhKM5s7bE9VluaSmKsOchKht_fUYvxcp8ysbmzCCtpkmA"
},
"CallControlRetrievalTool": {
"properties": {
"type": {
"type": "string",
"enum": [
"retrieval"
]
},
"retrieval": {
"$ref": "#/components/schemas/CallControlBucketIds"
}
},
"type": "object",
"required": [
"type",
"retrieval"
],
"title": "RetrievalTool"
},
"CallControlTransferToolParams": {
"properties": {
"targets": {
"oneOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the target.",
"example": "Support"
},
"to": {
"type": "string",
"description": "The destination number or SIP URI of the call.",
"example": "+13129457420"
}
},
"required": [
"to"
]
}
},
{
"type": "string",
"description": "A dynamic variable string like `{{ targets }}` where `targets` is returned by the dynamic variables webhook and resolves to an array of target objects at runtime.",
"example": "{{ targets }}"
}
],
"description": "The different possible targets of the transfer. The assistant will be able to choose one of the targets to transfer the call to. This can also be a dynamic variable string like `{{ targets }}` where `targets` is returned by the dynamic variables webhook and resolves to an array of target objects at runtime."
},
"from": {
"type": "string",
"example": "+35319605860",
"description": "Number or SIP URI placing the call."
}
},
"type": "object",
"required": [
"targets",
"from"
],
"title": "TransferToolParams"
},
"CallControlWebhookToolParams": {
"properties": {
"name": {
"type": "string",
"description": "The name of the tool."
},
"description": {
"type": "string",
"description": "The description of the tool."
},
"url": {
"description": "The URL of the external tool to be called. This URL is going to be used by the assistant. The URL can be templated like: `https://example.com/api/v1/{id}`, where `{id}` is a placeholder for a value that will be provided by the assistant if `path_parameters` are provided with the `id` attribute.",
"type": "string",
"example": "https://example.com/api/v1/function"
},
"method": {
"description": "The HTTP method to be used when calling the external tool.",
"type": "string",
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"default": "POST"
},
"headers": {
"description": "The headers to be sent to the external tool.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"description": "The value of the header. Note that we support mustache templating for the value. For example you can use `Bearer {{#integration_secret}}test-secret{{/integration_secret}}` to pass the value of the integration secret as the bearer token.",
"type": "string"
}
}
}
},
"body_parameters": {
"description": "The body parameters the webhook tool accepts, described as a JSON Schema object. These parameters will be passed to the webhook as the body of the request. See the [JSON Schema reference](https://json-schema.org/understanding-json-schema) for documentation about the format",
"type": "object",
"properties": {
"properties": {
"description": "The properties of the body parameters.",
"type": "object"
},
"required": {
"description": "The required properties of the body parameters.",
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"type": "string",
"enum": [
"object"
]
}
},
"example": {
"properties": {
"age": {
"description": "The age of the customer.",
"type": "integer"
},
"location": {
"description": "The location of the customer.",
"type": "string"
}
},
"required": [
"age",
"location"
],
"type": "object"
}
},
"path_parameters": {
"description": "The path parameters the webhook tool accepts, described as a JSON Schema object. These parameters will be passed to the webhook as the path of the request if the URL contains a placeholder for a value. See the [JSON Schema reference](https://json-schema.org/understanding-json-schema) for documentation about the format",
"type": "object",
"properties": {
"properties": {
"description": "The properties of the path parameters.",
"type": "object"
},
"required": {
"description": "The required properties of the path parameters.",
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"type": "string",
"enum": [
"object"
]
}
},
"example": {
"properties": {
"id": {
"description": "The id of the customer.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
}
},
"query_parameters": {
"description": "The query parameters the webhook tool accepts, described as a JSON Schema object. These parameters will be passed to the webhook as the query of the request. See the [JSON Schema reference](https://json-schema.org/understanding-json-schema) for documentation about the format",
"type": "object",
"properties": {
"properties": {
"description": "The properties of the query parameters.",
"type": "object"
},
"required": {
"description": "The required properties of the query parameters.",
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"type": "string",
"enum": [
"object"
]
}
},
"example": {
"properties": {
"page": {
"description": "The page number.",
"type": "integer"
}
},
"required": [
"page"
],
"type": "object"
}
}
},
"type": "object",
"required": [
"url",
"name",
"description"
],
"title": "WebhookToolParams"
},
"CallCost": {
"type": "object",
"title": "Call Cost",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.cost",
"enum": [
"call.cost"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Unique identifier of the event."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"description": "Call ID used to issue commands via Call Control API."
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_leg_id": {
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command. Base64-encoded."
},
"billing_group_id": {
"type": [
"string",
"null"
],
"example": "f5586561-8ff0-4291-a0ac-84fe544797bd",
"description": "Identifies the billing group associated with the call."
},
"status": {
"type": "string",
"example": "success",
"enum": [
"success",
"error"
],
"description": "The status of the cost calculation (`success` or `error`)."
},
"total_cost": {
"type": [
"string",
"null"
],
"example": "0.0106",
"description": "The total cost of the call."
},
"billed_duration_secs": {
"type": [
"integer",
"null"
],
"example": 120,
"description": "The longest billed duration across all cost parts, in seconds."
},
"cost_parts": {
"type": "array",
"description": "Breakdown of costs by call part.",
"items": {
"$ref": "#/components/schemas/CallCostPart"
},
"example": [
{
"call_part": "sip-trunking",
"rate": "0.0050",
"cost": "0.0050",
"currency": "USD",
"billed_duration_secs": 60
},
{
"call_part": "call-recording",
"rate": "0.00190",
"cost": "0.0038",
"currency": "USD",
"billed_duration_secs": 120
},
{
"call_part": "call-control",
"rate": "0.00180",
"cost": "0.0018",
"currency": "USD",
"billed_duration_secs": 60
}
]
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.cost",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"connection_id": "7267xxxxxxxxxxxxxx",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"billing_group_id": "f5586561-8ff0-4291-a0ac-84fe544797bd",
"status": "success",
"total_cost": "0.0106",
"billed_duration_secs": 120,
"cost_parts": [
{
"call_part": "sip-trunking",
"rate": "0.0050",
"cost": "0.0050",
"currency": "USD",
"billed_duration_secs": 60
},
{
"call_part": "call-recording",
"rate": "0.00190",
"cost": "0.0038",
"currency": "USD",
"billed_duration_secs": 120
},
{
"call_part": "call-control",
"rate": "0.00180",
"cost": "0.0018",
"currency": "USD",
"billed_duration_secs": 60
}
],
"occurred_at": "2018-02-02T22:25:27.521992Z"
}
}
},
"CallCostEvent": {
"type": "object",
"title": "Call Cost Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallCost"
}
}
},
"CallCostPart": {
"type": "object",
"title": "Call Cost Part",
"properties": {
"call_part": {
"type": "string",
"example": "call-control",
"description": "The product component this cost applies to. Values are determined by the billing system (e.g. sip-trunking, call-control, call-recording). Not a fixed set \u2014 new values may appear as products evolve."
},
"rate": {
"type": "string",
"example": "0.00180",
"description": "The per-minute rate applied."
},
"cost": {
"type": "string",
"example": "0.0018",
"description": "The cost for this part of the call."
},
"currency": {
"type": "string",
"example": "USD",
"description": "The currency of the cost."
},
"billed_duration_secs": {
"type": "integer",
"example": 180,
"description": "The billed duration in seconds for this part of the call."
}
}
},
"CallDeepfakeDetectionError": {
"type": "object",
"title": "Call Deepfake Detection Error",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.deepfake_detection.error",
"enum": [
"call.deepfake_detection.error"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"description": "Call ID used to issue commands via Call Control API."
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_leg_id": {
"type": "string",
"format": "uuid",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"format": "uuid",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": [
"string",
"null"
],
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"error_message": {
"type": "string",
"enum": [
"detection_timeout",
"rtp_timeout",
"dfd_connection_error",
"dfd_stream_error"
],
"description": "The error that occurred. 'detection_timeout' = no DFD response received, 'rtp_timeout' = no RTP audio received, 'dfd_connection_error'/'dfd_stream_error' = service connectivity issues."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.deepfake_detection.error",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"connection_id": "7267xxxxxxxxxxxxxx",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"error_message": "detection_timeout"
}
}
},
"CallDeepfakeDetectionErrorEvent": {
"type": "object",
"title": "Call Deepfake Detection Error Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallDeepfakeDetectionError"
}
}
},
"CallDeepfakeDetectionResult": {
"type": "object",
"title": "Call Deepfake Detection Result",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.deepfake_detection.result",
"enum": [
"call.deepfake_detection.result"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"description": "Call ID used to issue commands via Call Control API."
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_leg_id": {
"type": "string",
"format": "uuid",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"format": "uuid",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": [
"string",
"null"
],
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"result": {
"type": "string",
"enum": [
"real",
"fake",
"silence_timeout"
],
"description": "Detection outcome. 'real' = human voice, 'fake' = AI-generated voice, 'silence_timeout' = no analyzable speech detected before timeout."
},
"score": {
"type": [
"number",
"null"
],
"format": "float",
"description": "Probability that the audio is AI-generated, from 0.0 (likely real) to 1.0 (likely deepfake). Based on the model's aggregated confidence across analyzed audio frames. Null for silence_timeout."
},
"consistency": {
"type": [
"number",
"null"
],
"format": "float",
"minimum": 0,
"maximum": 100,
"description": "Percentage (0-100) indicating how consistently the model classified the audio across frames. High consistency (>90%) means confident classification throughout; low consistency suggests mixed signals. Null for silence_timeout."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.deepfake_detection.result",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"connection_id": "7267xxxxxxxxxxxxxx",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"result": "fake",
"score": 0.87,
"consistency": 94.5
}
}
},
"CallDeepfakeDetectionResultEvent": {
"type": "object",
"title": "Call Deepfake Detection Result Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallDeepfakeDetectionResult"
}
}
},
"CallDtmfReceived": {
"type": "object",
"title": "Call DTMF Received",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.dtmf.received",
"enum": [
"call.dtmf.received"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"description": "Call ID used to issue commands via Call Control API."
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Identifies the type of resource."
},
"call_leg_id": {
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"from": {
"type": "string",
"example": "+35319605860",
"description": "Number or SIP URI placing the call."
},
"to": {
"type": "string",
"example": "+13129457420",
"description": "Destination number or SIP URI of the call."
},
"digit": {
"type": "string",
"example": "#",
"description": "The received DTMF digit or symbol."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.dtmf.received",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"connection_id": "7267xxxxxxxxxxxxxx",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"from": "+35319605860",
"to": "+35319605860",
"digit": "#"
}
}
},
"CallDtmfReceivedEvent": {
"type": "object",
"title": "Call DTMF Received Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallDtmfReceived"
}
}
},
"CallEnqueued": {
"type": "object",
"title": "Call Enqueued",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.enqueued",
"enum": [
"call.enqueued"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"description": "Call ID used to issue commands via Call Control API."
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_leg_id": {
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"queue": {
"type": "string",
"example": "support",
"description": "The name of the queue"
},
"current_position": {
"type": "integer",
"example": 7,
"description": "Current position of the call in the queue."
},
"queue_avg_wait_time_secs": {
"type": "integer",
"example": 60,
"description": "Average time call spends in the queue in seconds."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.enqueued",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"connection_id": "7267xxxxxxxxxxxxxx",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"queue": "support",
"current_position": 5
}
}
},
"CallEnqueuedEvent": {
"type": "object",
"title": "Call Enqueued Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallEnqueued"
}
}
},
"CallEvent": {
"type": "object",
"title": "Call Event",
"required": [
"record_type",
"call_leg_id",
"call_session_id",
"event_timestamp",
"name",
"type",
"metadata"
],
"properties": {
"record_type": {
"type": "string",
"enum": [
"call_event"
],
"example": "call_event"
},
"call_leg_id": {
"type": "string",
"description": "Uniquely identifies an individual call leg.",
"example": "308fe500-5213-11e9-ace7-02420a0f0668"
},
"call_session_id": {
"type": "string",
"description": "Uniquely identifies the call control session. A session may include multiple call leg events.",
"example": "308fec30-5213-11e9-9d3f-02420a0f0668"
},
"event_timestamp": {
"type": "string",
"description": "Event timestamp",
"example": "2019-03-29T11:10:19.127783Z"
},
"name": {
"type": "string",
"description": "Event name",
"example": "call.hangup"
},
"type": {
"type": "string",
"description": "Event type",
"enum": [
"command",
"webhook"
],
"example": "webhook"
},
"metadata": {
"type": "object",
"description": "Event metadata, which includes raw event, and extra information based on event type"
}
},
"example": {
"record_type": "call_event",
"call_leg_id": "308fe500-5213-11e9-ace7-02420a0f0668",
"call_session_id": "308fec30-5213-11e9-9d3f-02420a0f0668",
"event_timestamp": "2019-03-29T11:10:19.127783Z",
"name": "call.hangup",
"type": "webhook",
"metadata": {}
}
},
"CallForkStarted": {
"type": "object",
"title": "Call Fork Started",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.fork.started",
"enum": [
"call.fork.started"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_control_id": {
"type": "string",
"example": "v2:OycMASgvIjsGIAVEx8x3n9rYeKnUJx6a3V8VGhs5futnr17KZhujZA",
"description": "Unique ID for controlling the call."
},
"call_leg_id": {
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"stream_type": {
"type": "string",
"example": "decrypted",
"enum": [
"decrypted"
],
"description": "Type of media streamed. It can be either 'raw' or 'decrypted'."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.fork.started",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"connection_id": "7267xxxxxxxxxxxxxx",
"call_control_id": "v2:OycMASgvIjsGIAVEx8x3n9rYeKnUJx6a3V8VGhs5futnr17KZhujZA",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"stream_type": "decrypted"
}
}
},
"CallForkStartedEvent": {
"type": "object",
"title": "Call Fork Started Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallForkStarted"
}
}
},
"CallForkStopped": {
"type": "object",
"title": "Call Fork Stopped",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.fork.stopped",
"enum": [
"call.fork.stopped"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_control_id": {
"type": "string",
"example": "v2:OycMASgvIjsGIAVEx8x3n9rYeKnUJx6a3V8VGhs5futnr17KZhujZA",
"description": "Unique ID for controlling the call."
},
"call_leg_id": {
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"stream_type": {
"type": "string",
"example": "decrypted",
"enum": [
"decrypted"
],
"description": "Type of media streamed. It can be either 'raw' or 'decrypted'."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.fork.stopped",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"connection_id": "7267xxxxxxxxxxxxxx",
"call_control_id": "v2:OycMASgvIjsGIAVEx8x3n9rYeKnUJx6a3V8VGhs5futnr17KZhujZA",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"stream_type": "decrypted"
}
}
},
"CallForkStoppedEvent": {
"type": "object",
"title": "Call Fork Stopped Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallForkStopped"
}
}
},
"CallForwarding": {
"description": "The call forwarding settings for a phone number.",
"type": "object",
"properties": {
"call_forwarding_enabled": {
"type": "boolean",
"default": true,
"description": "Indicates if call forwarding will be enabled for this number if forwards_to and forwarding_type are filled in. Defaults to true for backwards compatibility with APIV1 use of numbers endpoints.",
"example": true
},
"forwards_to": {
"type": "string",
"description": "The phone number to which inbound calls to this number are forwarded. Inbound calls will not be forwarded if this field is left blank. If set, must be a +E.164-formatted phone number."
},
"forwarding_type": {
"type": "string",
"description": "Call forwarding type. 'forwards_to' must be set for this to have an effect.",
"enum": [
"always",
"on-failure"
],
"example": "always"
}
},
"example": {
"call_forwarding_enabled": true,
"forwards_to": "+13035559123",
"forwarding_type": "always"
}
},
"CallGatherEnded": {
"type": "object",
"title": "Call Gather Ended",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.gather.ended",
"enum": [
"call.gather.ended"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"description": "Call ID used to issue commands via Call Control API."
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_leg_id": {
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"from": {
"type": "string",
"example": "+35319605860",
"description": "Number or SIP URI placing the call."
},
"to": {
"type": "string",
"example": "+13129457420",
"description": "Destination number or SIP URI of the call."
},
"digits": {
"type": "string",
"example": "5503",
"description": "The received DTMF digit or symbol."
},
"status": {
"type": "string",
"enum": [
"valid",
"invalid",
"call_hangup",
"cancelled",
"cancelled_amd",
"timeout"
],
"example": "valid",
"description": "Reflects how command ended."
}
}
}
},
"example": {
"record_type": "event",
"event_type": "call.gather.ended",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"occurred_at": "2018-02-02T22:25:27.521992Z",
"payload": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"connection_id": "7267xxxxxxxxxxxxxx",
"call_leg_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"call_session_id": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"from": "+35319605860",
"to": "+35319605860",
"digits": "123",
"status": "valid"
}
}
},
"CallGatherEndedEvent": {
"type": "object",
"title": "Call Gather Ended Event",
"properties": {
"data": {
"$ref": "#/components/schemas/CallGatherEnded"
}
}
},
"CallHangup": {
"type": "object",
"title": "Call Hangup",
"properties": {
"record_type": {
"type": "string",
"example": "event",
"enum": [
"event"
],
"description": "Identifies the type of the resource."
},
"event_type": {
"type": "string",
"example": "call.hangup",
"enum": [
"call.hangup"
],
"description": "The type of event being delivered."
},
"id": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the type of resource."
},
"occurred_at": {
"type": "string",
"format": "date-time",
"example": "2018-02-02T22:25:27.521992Z",
"description": "ISO 8601 datetime of when the event occurred."
},
"payload": {
"type": "object",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"description": "Call ID used to issue commands via Call Control API."
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"call_leg_id": {
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1",
"description": "ID that is unique to the call and can be used to correlate webhook events."
},
"call_session_id": {
"type": "string",
"example": "428c31b6-abf3-3bc1-b7f4-5013ef9657c1",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"client_state": {
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"description": "State received from a command."
},
"custom_headers": {
"description": "Custom headers set on answer command",
"type": "array",
"example": [
{
"name": "head_1",
"value": "val_1"
},
{
"name": "head_2",
"value": "val_2"
}
],
"items": {
"$ref": "#/components/schemas/CustomSipHeader"
}
},
"sip_headers": {
"description": "User-to-User and Diversion headers from sip invite.",
"type": "array",
"example": [
{
"name": "User-to-User",
"value": "1234"
},
{
"name": "User-to-User",
"value": "android here",
"type": "string",
"enum": [
"android"
]
},
"project_account_json_file": {
"description": "Private key file in JSON format",
"type": "object",
"example": {
"private_key": "BBBB0J56jd8kda:APA91vjb11BCjvxx3Jxja...",
"client_email": "account@customer.org"
},
"additionalProperties": true
},
"alias": {
"description": "Alias to uniquely identify the credential",
"type": "string",
"example": "LucyAndroidCredential"
}
}
},
"CreateAssistantRequest": {
"properties": {
"name": {
"type": "string"
},
"model": {
"type": "string",
"description": "ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/openai-chat/get-available-models-openai-compatible) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model."
},
"instructions": {
"type": "string",
"description": "System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)"
},
"tools": {
"$ref": "#/components/schemas/AssistantTools",
"description": "Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints."
},
"mcp_servers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AssistantMCPServer"
},
"default": [],
"description": "MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here."
},
"tool_ids": {
"title": "Ids of shared tools",
"items": {
"type": "string"
},
"type": "array",
"description": "IDs of shared tools to attach to the assistant. New integrations should prefer `tool_ids` over inline `tools`."
},
"description": {
"type": "string"
},
"greeting": {
"type": "string",
"description": "Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `Latency directs Telnyx to route media through the site with the lowest round-trip time to the user's connection. Telnyx calculates this time using ICMP ping messages. This can be disabled by specifying a site to handle all media.\n",
"enum": [
"Latency",
"Chicago, IL",
"Ashburn, VA",
"San Jose, CA",
"London, UK",
"Chennai, IN",
"Amsterdam, Netherlands",
"Toronto, Canada",
"Sydney, Australia"
],
"example": "Amsterdam, Netherlands",
"default": "Latency"
},
"dtmf_type": {
"type": "string",
"description": "Sets the type of DTMF digits sent from Telnyx to this Connection. Note that DTMF digits sent to Telnyx will be accepted in all formats.",
"enum": [
"RFC 2833",
"Inband",
"SIP INFO"
],
"example": "Inband",
"default": "RFC 2833"
},
"first_command_timeout": {
"type": "boolean",
"description": "Specifies whether calls to phone numbers associated with this connection should hangup after timing out.",
"example": true,
"default": false
},
"first_command_timeout_secs": {
"type": "integer",
"description": "Specifies how many seconds to wait before timing out a dial command.",
"example": 10,
"default": 30
},
"inbound": {
"$ref": "#/components/schemas/CallControlApplicationInbound"
},
"outbound": {
"$ref": "#/components/schemas/CallControlApplicationOutbound"
},
"webhook_api_version": {
"type": "string",
"description": "Determines which webhook format will be used, Telnyx API v1 or v2.",
"enum": [
"1",
"2"
],
"example": "1",
"default": "1"
},
"webhook_event_failover_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_timeout_secs": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
},
"call_cost_in_webhooks": {
"type": "boolean",
"description": "Specifies if call cost webhooks should be sent for this Call Control Application.",
"default": false
},
"redact_dtmf_debug_logging": {
"type": "boolean",
"description": "When enabled, DTMF digits entered by users will be redacted in debug logs to protect PII data entered through IVR interactions.",
"example": true,
"default": false
}
},
"example": {
"application_name": "call-router",
"webhook_event_url": "https://example.com",
"active": false,
"anchorsite_override": "Latency",
"dtmf_type": "Inband",
"first_command_timeout": true,
"first_command_timeout_secs": 10,
"inbound": {
"channel_limit": 10,
"shaken_stir_enabled": true,
"sip_subdomain": "example",
"sip_subdomain_receive_settings": "only_my_connections"
},
"outbound": {
"channel_limit": 10,
"outbound_voice_profile_id": "1293384261075731499"
},
"webhook_api_version": "1",
"webhook_event_failover_url": "https://failover.example.com",
"webhook_timeout_secs": 25,
"call_cost_in_webhooks": true,
"redact_dtmf_debug_logging": true
}
},
"CreateConferenceRequest": {
"required": [
"call_control_id",
"name"
],
"type": "object",
"title": "Create Conference Request",
"properties": {
"call_control_id": {
"description": "Unique identifier and token for controlling the call",
"example": "v2:T02llQxIyaRkhfRKxgAP8nY511EhFLizdvdUKJiSw8d6A9BborherQczRrZvZakpWxBlpw48KyZQ==",
"type": "string"
},
"name": {
"description": "Name of the conference",
"example": "Business",
"type": "string"
},
"beep_enabled": {
"description": "Whether a beep sound should be played when participants join and/or leave the conference.",
"enum": [
"always",
"never",
"on_enter",
"on_exit"
],
"default": "never",
"example": "on_exit",
"type": "string"
},
"client_state": {
"description": "Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string. The client_state will be updated for the creator call leg and will be used for all webhooks related to the created conference.",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"type": "string"
},
"comfort_noise": {
"description": "Toggle background comfort noise.",
"example": false,
"type": "boolean",
"default": true
},
"command_id": {
"description": "Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same `command_id` as one that has already been executed.",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901",
"type": "string"
},
"duration_minutes": {
"description": "Time length (minutes) after which the conference will end.",
"example": 5,
"type": "integer"
},
"hold_audio_url": {
"type": "string",
"example": "http://example.com/message.wav",
"description": "The URL of a file to be played to participants joining the conference. The URL can point to either a WAV or MP3 file. hold_media_name and hold_audio_url cannot be used together in one request. Takes effect only when \"start_conference_on_create\" is set to \"false\"."
},
"hold_media_name": {
"type": "string",
"example": "my_media_uploaded_to_media_storage_api",
"description": "The media_name of a file to be played to participants joining the conference. The media_name must point to a file previously uploaded to api.telnyx.com/v2/media by the same user/organization. The file must either be a WAV or MP3 file. Takes effect only when \"start_conference_on_create\" is set to \"false\"."
},
"max_participants": {
"description": "The maximum number of active conference participants to allow. Must be between 2 and 800. Defaults to 250",
"example": 3,
"type": "integer"
},
"start_conference_on_create": {
"description": "Whether the conference should be started on creation. If the conference isn't started all participants that join are automatically put on hold. Defaults to \"true\".",
"example": false,
"type": "boolean"
},
"region": {
"description": "Sets the region where the conference data will be hosted. Defaults to the region defined in user's data locality settings (Europe or US).",
"example": "US",
"type": "string",
"enum": [
"Australia",
"Europe",
"Middle East",
"US"
]
}
},
"example": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"name": "Business",
"beep_enabled": "always",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"command_id": "891510ac-f3e4-11e8-af5b-de00688a4901",
"duration_minutes": 5,
"hold_audio_url": "http://www.example.com/audio.wav",
"start_conference_on_create": false,
"max_participants": 250
}
},
"CreateConversationRequest": {
"properties": {
"name": {
"type": "string"
},
"metadata": {
"type": "object",
"description": "Metadata associated with the conversation. Set `ai_disabled` to `true` to create the conversation with AI message responses disabled.",
"additionalProperties": {
"type": "string"
}
}
},
"type": "object",
"title": "CreateConversationRequest"
},
"CreateCredentialConnectionRequest": {
"type": "object",
"title": "Create Credential Connection Request",
"required": [
"user_name",
"password",
"connection_name"
],
"properties": {
"active": {
"type": "boolean",
"description": "Defaults to true"
},
"user_name": {
"type": "string",
"description": "The user name to be used as part of the credentials. Must be 4-32 characters long and alphanumeric values only (no spaces or special characters).",
"example": "myusername123"
},
"password": {
"type": "string",
"description": "The password to be used as part of the credentials. Must be 8 to 128 characters long.",
"example": "my123secure456password789"
},
"anchorsite_override": {
"$ref": "#/components/schemas/AnchorsiteOverride"
},
"connection_name": {
"$ref": "#/components/schemas/ConnectionName"
},
"sip_uri_calling_preference": {
"type": "string",
"description": "This feature enables inbound SIP URI calls to your Credential Auth Connection. If enabled for all (unrestricted) then anyone who calls the SIP URI ios here",
"type": "string",
"enum": [
"ios"
]
},
"certificate": {
"description": "Certificate as received from APNs",
"type": "string",
"example": "-----BEGIN CERTIFICATE----- MIIGVDCCBTKCAQEAsNlRJVZn9ZvXcECQm65czs... -----END CERTIFICATE-----"
},
"private_key": {
"description": "Corresponding private key to the certificate as received from APNs",
"type": "string",
"example": "-----BEGIN RSA PRIVATE KEY----- MIIEpQIBAAKCAQEAsNlRJVZn9ZvXcECQm65czs... -----END RSA PRIVATE KEY-----"
},
"alias": {
"description": "Alias to uniquely identify the credential",
"type": "string",
"example": "LucyIosCredential"
}
}
},
"CreateIpConnectionRequest": {
"title": "Create IP Connection Request",
"properties": {
"active": {
"type": "boolean",
"description": "Defaults to true",
"example": true
},
"anchorsite_override": {
"$ref": "#/components/schemas/AnchorsiteOverride"
},
"connection_name": {
"type": "string",
"example": "string"
},
"transport_protocol": {
"type": "string",
"description": "One of UDP, TLS, or TCP. Applies only to connections with IP authentication or FQDN authentication.",
"default": "UDP",
"enum": [
"UDP",
"TCP",
"TLS"
],
"example": "UDP"
},
"default_on_hold_comfort_noise_enabled": {
"type": "boolean",
"default": true,
"description": "When enabled, Telnyx will generate comfort noise when you place the call on hold. If disabled, you will need to generate comfort noise or on hold music to avoid RTP timeout.",
"example": true
},
"dtmf_type": {
"$ref": "#/components/schemas/DtmfType"
},
"encode_contact_header_enabled": {
"type": "boolean",
"default": false,
"description": "Encode the SIP contact header sent by Telnyx to avoid issues for NAT or ALG scenarios.",
"example": true
},
"encrypted_media": {
"$ref": "#/components/schemas/EncryptedMedia"
},
"onnet_t38_passthrough_enabled": {
"type": "boolean",
"default": false,
"description": "Enable on-net T38 if you prefer the sender and receiver negotiating T38 directly if both are on the Telnyx network. If this is disabled, Telnyx will be able to use T38 on just one leg of the call depending on each leg's settings.",
"example": false
},
"ios_push_credential_id": {
"$ref": "#/components/schemas/ConnectionIosPushCredentialId"
},
"android_push_credential_id": {
"$ref": "#/components/schemas/ConnectionAndroidPushCredentialId"
},
"webhook_event_url": {
"type": "string",
"format": "uri",
"description": "The URL where webhooks related to this connection will be sent. Must include a scheme, such as 'https'.",
"example": "https://example.com"
},
"webhook_event_failover_url": {
"type": [
"string",
"null"
],
"format": "uri",
"description": "The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_api_version": {
"type": "string",
"description": "Determines which webhook format will be used, Telnyx API v1 or v2.",
"enum": [
"1",
"2"
],
"example": "1",
"default": "1"
},
"webhook_timeout_secs": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
},
"call_cost_in_webhooks": {
"type": "boolean",
"description": "Specifies if call cost webhooks should be sent for this connection.",
"default": false
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags associated with the connection.",
"example": [
"tag1",
"tag2"
]
},
"rtcp_settings": {
"$ref": "#/components/schemas/ConnectionRtcpSettings"
},
"inbound": {
"$ref": "#/components/schemas/CreateInboundIpRequest"
},
"outbound": {
"$ref": "#/components/schemas/OutboundIp"
},
"noise_suppression": {
"$ref": "#/components/schemas/ConnectionNoiseSuppression"
},
"noise_suppression_details": {
"$ref": "#/components/schemas/ConnectionNoiseSuppressionDetails"
},
"jitter_buffer": {
"$ref": "#/components/schemas/ConnectionJitterBuffer"
}
},
"example": {
"active": true,
"anchorsite_override": "Latency",
"connection_name": "string",
"transport_protocol": "UDP",
"default_on_hold_comfort_noise_enabled": true,
"dtmf_type": "RFC 2833",
"encode_contact_header_enabled": true,
"encrypted_media": "SRTP",
"onnet_t38_passthrough_enabled": false,
"ios_push_credential_id": "ec0c8e5d-439e-4620-a0c1-9d9c8d02a836",
"android_push_credential_id": "06b09dfd-7154-4980-8b75-cebf7a9d4f8e",
"webhook_event_url": "https://example.com",
"webhook_event_failover_url": "https://failover.example.com",
"webhook_api_version": "1",
"webhook_timeout_secs": 25,
"call_cost_in_webhooks": false,
"tags": [
"tag1",
"tag2"
],
"rtcp_settings": {
"port": "rtcp-mux",
"capture_enabled": true,
"report_frequency_secs": 10
},
"inbound": {
"ani_number_format": "+E.164",
"dnis_number_format": "+e164",
"codecs": [
"G722"
],
"default_routing_method": "sequential",
"channel_limit": 10,
"generate_ringback_tone": true,
"isup_headers_enabled": true,
"prack_enabled": true,
"sip_compact_headers_enabled": true,
"sip_region": "US",
"sip_subdomain": "test",
"sip_subdomain_receive_settings": "only_my_connections",
"timeout_1xx_secs": 10,
"timeout_2xx_secs": 20,
"shaken_stir_enabled": true
},
"outbound": {
"call_parking_enabled": true,
"ani_override": "string",
"ani_override_type": "always",
"channel_limit": 10,
"instant_ringback_enabled": true,
"generate_ringback_tone": true,
"localization": "string",
"t38_reinvite_source": "customer",
"tech_prefix": "string",
"ip_authentication_method": "token",
"ip_authentication_token": "string",
"outbound_voice_profile_id": "1293384261075731499"
},
"noise_suppression": "both",
"noise_suppression_details": {
"engine": "deep_filter_net",
"attenuation_limit": 80
},
"jitter_buffer": {
"enable_jitter_buffer": true,
"jitterbuffer_msec_min": 60,
"jitterbuffer_msec_max": 200
}
},
"type": "object"
},
"CreateIpRequest": {
"title": "Create Ip Request",
"type": "object",
"required": [
"ip_address"
],
"properties": {
"connection_id": {
"type": "string",
"description": "ID of the IP Connection to which this IP should be attached."
},
"ip_address": {
"type": "string",
"description": "IP adddress represented by this resource.",
"example": "192.168.0.0"
},
"port": {
"type": "integer",
"description": "Port to use when connecting to this IP.",
"default": 5060,
"example": 5060
}
},
"example": {
"connection_id": "6a09cdc3-8948-47f0-aa62-74ac943d6c58",
"ip_address": "192.168.0.0",
"port": 5060
}
},
"CreateLongCodeMessageRequest": {
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"from": {
"type": "string",
"description": "Phone number, in +E.164 format, used to send the message.",
"x-format": "address"
},
"to": {
"$ref": "#/components/schemas/ToNumber"
},
"text": {
"type": "string",
"description": "Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**"
},
"subject": {
"type": "string",
"description": "Subject of multimedia message"
},
"media_urls": {
"description": "A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**",
"type": "array",
"items": {
"type": "string",
"format": "url"
}
},
"webhook_url": {
"description": "The URL where webhooks related to this message will be sent.",
"type": "string",
"format": "url"
},
"webhook_failover_url": {
"description": "The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.",
"type": "string",
"format": "url"
},
"use_profile_webhooks": {
"type": "boolean",
"description": "If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.",
"default": true
},
"type": {
"description": "The protocol for sending the message, either SMS or MMS.",
"type": "string",
"enum": [
"SMS",
"MMS"
]
},
"auto_detect": {
"description": "Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.",
"type": "boolean",
"default": false
},
"encoding": {
"type": "string",
"description": "Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.",
"enum": [
"auto",
"gsm7",
"ucs2"
],
"default": "auto"
}
},
"example": {
"from": "+18445550001",
"to": "+13125550002",
"text": "Hello, World!",
"subject": "From Telnyx!",
"media_urls": [
"http://example.com"
],
"webhook_url": "http://example.com/webhooks",
"webhook_failover_url": "https://backup.example.com/hooks",
"use_profile_webhooks": true,
"type": "MMS"
}
},
"CreateMCPServerRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"type": {
"type": "string",
"title": "Type"
},
"url": {
"type": "string",
"title": "Url"
},
"api_key_ref": {
"type": [
"string",
"null"
],
"title": "Api Key Ref"
},
"allowed_tools": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"title": "Allowed Tools"
}
},
"required": [
"name",
"type",
"url"
],
"title": "CreateMCPServerRequest"
},
"CreateManagedAccountRequest": {
"title": "Create Managed Account Request",
"required": [
"business_name"
],
"properties": {
"email": {
"type": "string",
"description": "The email address for the managed account. If not provided, the email address will be generated based on the email address of the manager account.",
"example": "new_managed_account@customer.org"
},
"password": {
"type": "string",
"description": "Password for the managed account. If a password is not supplied, the account will not be able to be signed into directly. (A password reset may still be performed later to enable sign-in via password.)",
"example": "3jVjLq!tMuWKyWx4NN*CvhnB"
},
"business_name": {
"type": "string",
"description": "The name of the business for which the new managed account is being created, that will be used as the managed accounts's organization's name.",
"example": "Larry's Cat Food Inc"
},
"managed_account_allow_custom_pricing": {
"type": "boolean",
"description": "Boolean value that indicates if the managed account is able to have custom pricing set for it or not. If false, uses the pricing of the manager account. Defaults to false. This value may be changed after creation, but there may be time lag between when the value is changed and pricing changes take effect.",
"example": false
},
"rollup_billing": {
"type": "boolean",
"description": "Boolean value that indicates if the billing information and charges to the managed account \"roll up\" to the manager account. If true, the managed account will not have its own balance and will use the shared balance with the manager account. This value cannot be changed after account creation without going through Telnyx support as changes require manual updates to the account ledger. Defaults to false.",
"example": false
}
},
"example": {
"email": "larry_cat_food@customer.org",
"password": "3jVjLq!tMuWKyWx4NN*CvhnB",
"business_name": "Larry's Cat Food Inc",
"managed_account_allow_custom_pricing": false,
"rollup_billing": false
},
"type": "object"
},
"CreateMessageRequest": {
"type": "object",
"required": [
"to"
],
"properties": {
"from": {
"type": "string",
"description": "Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short code).\n\n**Required if sending with a phone number, short code, or alphanumeric sender ID.**\n",
"x-format": "address"
},
"messaging_profile_id": {
"type": "string",
"description": "Unique identifier for a messaging profile.\n\n**Required if sending via number pool or with an alphanumeric sender ID.**\n"
},
"to": {
"$ref": "#/components/schemas/ToNumber"
},
"text": {
"type": "string",
"description": "Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**"
},
"subject": {
"type": "string",
"description": "Subject of multimedia message"
},
"media_urls": {
"description": "A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**",
"type": "array",
"items": {
"type": "string",
"format": "url"
}
},
"webhook_url": {
"description": "The URL where webhooks related to this message will be sent.",
"type": "string",
"format": "url"
},
"webhook_failover_url": {
"description": "The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.",
"type": "string",
"format": "url"
},
"use_profile_webhooks": {
"type": "boolean",
"description": "If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.",
"default": true
},
"type": {
"description": "The protocol for sending the message, either SMS or MMS.",
"type": "string",
"enum": [
"SMS",
"MMS"
]
},
"auto_detect": {
"description": "Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.",
"type": "boolean",
"default": false
},
"send_at": {
"description": "ISO 8601 formatted date indicating when to send the message - accurate up till a minute.",
"type": [
"string",
"null"
],
"format": "date-time"
},
"encoding": {
"type": "string",
"description": "Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.",
"enum": [
"auto",
"gsm7",
"ucs2"
],
"default": "auto"
}
},
"example": {
"from": "+18445550001",
"messaging_profile_id": "abc85f64-5717-4562-b3fc-2c9600000000",
"to": "+18445550001",
"text": "Hello, World!",
"subject": "From Telnyx!",
"media_urls": [
"http://example.com"
],
"webhook_url": "http://example.com/webhooks",
"webhook_failover_url": "https://backup.example.com/hooks",
"use_profile_webhooks": true,
"type": "MMS"
}
},
"CreateMessageTemplateRequest": {
"title": "CreateMessageTemplateRequest",
"description": "The request body when creating a message template.",
"required": [
"text"
],
"type": "object",
"properties": {
"text": {
"example": "Your {{app_name}} verification code is: {{code}}.",
"type": "string",
"description": "The text content of the message template."
}
}
},
"CreateMessagingHostedNumberOrderRequest": {
"type": "object",
"example": {
"messaging_profile_id": "dc8f39ac-953d-4520-b93b-786ae87db0da",
"phone_numbers": [
"+18665550001",
"+18665550002"
]
},
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"type": "string",
"x-format": "+E.164"
},
"description": "Phone numbers to be used for hosted messaging."
},
"messaging_profile_id": {
"type": "string",
"description": "Automatically associate the number with this messaging profile ID when the order is complete."
}
}
},
"CreateMessagingProfileRequest": {
"type": "object",
"required": [
"name",
"whitelisted_destinations"
],
"properties": {
"name": {
"description": "A user friendly name for the messaging profile.",
"type": "string"
},
"whitelisted_destinations": {
"description": "Destinations to which the messaging profile is allowed to send. The elements in the list must be valid ISO 3166-1 alpha-2 country codes. If set to `[\"*\"]` all destinations will be allowed.",
"type": "array",
"items": {
"description": "ISO 3166-1 alpha-2 country code.",
"type": "string",
"pattern": "^[A-Z]{2}$"
}
},
"enabled": {
"description": "Specifies whether the messaging profile is enabled or not.",
"type": "boolean",
"default": true
},
"webhook_url": {
"description": "The URL where webhooks related to this messaging profile will be sent.",
"type": [
"string",
"null"
],
"format": "url",
"default": ""
},
"webhook_failover_url": {
"description": "The failover URL where webhooks related to this messaging profile will be sent if sending to the primary URL fails.",
"type": [
"string",
"null"
],
"format": "url",
"default": ""
},
"webhook_api_version": {
"description": "Determines which webhook format will be used, Telnyx API v1, v2, or a legacy 2010-04-01 format.",
"type": "string",
"enum": [
"1",
"2",
"2010-04-01"
],
"default": "2"
},
"number_pool_settings": {
"$ref": "#/components/schemas/NumberPoolSettings"
},
"url_shortener_settings": {
"$ref": "#/components/schemas/UrlShortenerSettings"
},
"alpha_sender": {
"description": "The alphanumeric sender ID to use when sending to destinations that require an alphanumeric sender ID.",
"type": [
"string",
"null"
],
"pattern": "^[A-Za-z0-9 ]{1,11}$"
},
"daily_spend_limit": {
"description": "The maximum amount of money (in USD) that can be spent by this profile before midnight UTC.",
"type": "string",
"pattern": "^[0-9]+(?:\\.[0-9]+)?$"
},
"daily_spend_limit_enabled": {
"description": "Whether to enforce the value configured by `daily_spend_limit`.",
"type": "boolean"
},
"mms_fall_back_to_sms": {
"description": "enables SMS fallback for MMS messages.",
"type": "boolean",
"default": false
},
"mms_transcoding": {
"description": "enables automated resizing of MMS media.",
"type": "boolean",
"default": false
},
"mobile_only": {
"description": "Send messages only to mobile phone numbers.",
"type": "boolean",
"default": false
},
"smart_encoding": {
"description": "Enables automatic character encoding optimization for SMS messages. When enabled, the system automatically selects the most efficient encoding (GSM-7 or UCS-2) based on message content to maximize character limits and minimize costs.",
"type": "boolean",
"default": false
},
"resource_group_id": {
"type": [
"string",
"null"
],
"maxLength": 64,
"description": "The resource group ID to associate with this messaging profile."
},
"health_webhook_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "A URL to receive health check webhooks for numbers in this profile."
},
"ai_assistant_id": {
"type": [
"string",
"null"
],
"maxLength": 64,
"description": "The AI assistant ID to associate with this messaging profile."
}
},
"example": {
"name": "My name",
"enabled": true,
"webhook_url": "https://www.example.com/hooks",
"webhook_failover_url": "https://backup.example.com/hooks",
"webhook_api_version": "2",
"number_pool_settings": {
"toll_free_weight": 10,
"long_code_weight": 1,
"skip_unhealthy": true,
"sticky_sender": false,
"geomatch": false
},
"url_shortener_settings": {
"domain": "example.ex",
"prefix": "",
"replace_blacklist_only": true,
"send_webhooks": false
},
"whitelisted_destinations": [
"US"
]
}
},
"CreateMissionRequest": {
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"description": {
"title": "Description",
"type": "string"
},
"model": {
"title": "Model",
"type": "string"
},
"instructions": {
"title": "Instructions",
"type": "string"
},
"execution_mode": {
"$ref": "#/components/schemas/ExecutionMode",
"default": "external"
},
"metadata": {
"title": "Metadata",
"additionalProperties": true,
"type": "object"
}
},
"type": "object",
"required": [
"name"
],
"title": "CreateMissionRequest"
},
"CreateMissionRunRequest": {
"properties": {
"input": {
"title": "Input",
"additionalProperties": true,
"type": "object"
},
"metadata": {
"title": "Metadata",
"additionalProperties": true,
"type": "object"
}
},
"type": "object",
"title": "CreateMissionRunRequest"
},
"CreateMsgReq": {
"properties": {
"role": {
"type": "string",
"title": "Role"
},
"content": {
"type": "string",
"title": "Content",
"default": ""
},
"name": {
"type": "string",
"title": "Name"
},
"tool_choice": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"title": "ToolChoiceObject"
}
],
"title": "Tool Choice"
},
"tool_calls": {
"items": {
"type": "object",
"additionalProperties": true
},
"type": "array",
"title": "Tool Calls"
},
"tool_call_id": {
"type": "string",
"title": "Tool Call Id"
},
"sent_at": {
"type": "string",
"format": "date-time",
"title": "Sent At"
},
"metadata": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "boolean"
},
{
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "boolean"
}
]
},
"type": "array"
}
]
},
"title": "Metadata"
}
},
"type": "object",
"required": [
"role"
],
"title": "CreateMsgReq"
},
"CreateMultiPartDocServiceDocumentRequest": {
"type": "object",
"properties": {
"file": {
"description": "The file you are uploading.",
"type": "string",
"format": "binary"
},
"customer_reference": {
"type": "string",
"description": "Optional reference string for customer tracking.",
"example": "MY REF 001"
}
}
},
"CreateNumberBlockOrderRequest": {
"required": [
"starting_number",
"range"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "12ade33a-21c0-473b-b055-b3c836e1c292",
"readOnly": true
},
"record_type": {
"type": "string",
"example": "number_block_order",
"readOnly": true
},
"starting_number": {
"type": "string",
"description": "Starting phone number block",
"example": "+19705555000",
"writeOnly": true
},
"range": {
"type": "integer",
"description": "The phone number range included in the block.",
"example": 10,
"writeOnly": true
},
"phone_numbers_count": {
"type": "integer",
"description": "The count of phone numbers in the number order.",
"example": 10,
"readOnly": true
},
"connection_id": {
"type": "string",
"example": "346789098765567",
"description": "Identifies the connection associated with this phone number."
},
"messaging_profile_id": {
"type": "string",
"example": "abc85f64-5717-4562-b3fc-2c9600",
"description": "Identifies the messaging profile associated with the phone number."
},
"status": {
"type": "string",
"enum": [
"pending",
"success",
"failure"
],
"description": "The status of the order.",
"readOnly": true
},
"customer_reference": {
"type": "string",
"description": "A customer reference string for customer look ups.",
"example": "MY REF 001"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "An ISO 8901 datetime string denoting when the number order was created.",
"example": "2018-01-01T00:00:00.000000Z",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "An ISO 8901 datetime string for when the number order was updated.",
"example": "2018-01-01T00:00:00.000000Z",
"readOnly": true
},
"requirements_met": {
"type": "boolean",
"description": "True if all requirements are met for every phone number, false otherwise.",
"example": true,
"readOnly": true
},
"errors": {
"type": "string",
"description": "Errors the reservation could happen upon",
"example": "Number is already on hold",
"readOnly": true
}
},
"example": {
"starting_number": "+19705555000",
"range": 10
},
"type": "object"
},
"CreateNumberOrderRequest": {
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"description": "e164_phone_number",
"example": "+19705555098"
},
"requirement_group_id": {
"type": "string",
"description": "ID of requirement group to use to satisfy number requirements",
"example": "dbbd94ee-9079-488f-80ba-f566b247fd7"
},
"bundle_id": {
"type": "string",
"description": "ID of bundle to associate the number to",
"example": "bc8e4d67-33a0-4cbb-af74-7b58f05bd494"
}
},
"required": [
"phone_number"
]
},
"writeOnly": true
},
"connection_id": {
"type": "string",
"example": "346789098765567",
"description": "Identifies the connection associated with this phone number."
},
"messaging_profile_id": {
"type": "string",
"example": "abc85f64-5717-4562-b3fc-2c9600",
"description": "Identifies the messaging profile associated with the phone number."
},
"billing_group_id": {
"type": "string",
"example": "abc85f64-5717-4562-b3fc-2c9600",
"description": "Identifies the billing group associated with the phone number."
},
"customer_reference": {
"type": "string",
"description": "A customer reference string for customer look ups.",
"example": "MY REF 001"
}
},
"example": {
"phone_numbers": [
{
"phone_number": "+19705555098",
"bundle_id": "bc8e4d67-33a0-4cbb-af74-7b58f05bd494"
},
{
"phone_number": "+492111609539",
"requirement_group_id": "dbbd94ee-9079-488f-80ba-f566b247fd79"
}
],
"connection_id": "346789098765567",
"messaging_profile_id": "abc85f64-5717-4562-b3fc-2c9600",
"billing_group_id": "abc85f64-5717-4562-b3fc-2c9600",
"customer_reference": "MY REF 001"
},
"type": "object"
},
"CreateNumberPoolMessageRequest": {
"type": "object",
"required": [
"to",
"messaging_profile_id"
],
"properties": {
"messaging_profile_id": {
"type": "string",
"description": "Unique identifier for a messaging profile."
},
"to": {
"$ref": "#/components/schemas/ToNumber"
},
"text": {
"type": "string",
"description": "Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**"
},
"subject": {
"type": "string",
"description": "Subject of multimedia message"
},
"media_urls": {
"description": "A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**",
"type": "array",
"items": {
"type": "string",
"format": "url"
}
},
"webhook_url": {
"description": "The URL where webhooks related to this message will be sent.",
"type": "string",
"format": "url"
},
"webhook_failover_url": {
"description": "The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.",
"type": "string",
"format": "url"
},
"use_profile_webhooks": {
"type": "boolean",
"description": "If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.",
"default": true
},
"type": {
"description": "The protocol for sending the message, either SMS or MMS.",
"type": "string",
"enum": [
"SMS",
"MMS"
]
},
"auto_detect": {
"description": "Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.",
"type": "boolean",
"default": false
},
"encoding": {
"type": "string",
"description": "Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.",
"enum": [
"auto",
"gsm7",
"ucs2"
],
"default": "auto"
}
},
"example": {
"messaging_profile_id": "abc85f64-5717-4562-b3fc-2c9600000000",
"to": "+13125550002",
"text": "Hello, World!",
"subject": "From Telnyx!",
"media_urls": [
"http://example.com"
],
"webhook_url": "http://example.com/webhooks",
"webhook_failover_url": "https://backup.example.com/hooks",
"use_profile_webhooks": true,
"type": "MMS"
}
},
"CreateNumberReservationRequest": {
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "12ade33a-21c0-473b-b055-b3c836e1c292",
"readOnly": true
},
"record_type": {
"type": "string",
"example": "number_reservation",
"readOnly": true
},
"phone_numbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReservedPhoneNumber"
}
},
"status": {
"type": "string",
"enum": [
"pending",
"success",
"failure"
],
"description": "The status of the entire reservation.",
"readOnly": true
},
"customer_reference": {
"type": "string",
"description": "A customer reference string for customer look ups.",
"example": "MY REF 001"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "An ISO 8901 datetime string denoting when the numbers reservation was created.",
"example": "2018-01-01T00:00:00.000000Z",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "An ISO 8901 datetime string for when the number reservation was updated.",
"example": "2018-01-01T00:00:00.000000Z",
"readOnly": true
}
},
"example": {
"id": "12ade33a-21c0-473b-b055-b3c836e1c292",
"record_type": "number_reservation",
"phone_numbers": [
{
"id": "12ade33a-21c0-473b-b055-b3c836e1c292",
"record_type": "reserved_phone_number",
"phone_number": "+19705555098",
"status": "pending",
"created_at": "2018-01-01T00:00:00.000000Z",
"updated_at": "2018-01-01T00:00:00.000000Z",
"expired_at": "2018-01-01T00:00:00.000000Z",
"errors": "Number is already on hold"
}
],
"status": "pending",
"customer_reference": "MY REF 001",
"created_at": "2018-01-01T00:00:00.000000Z",
"updated_at": "2018-01-01T00:00:00.000000Z"
},
"type": "object"
},
"CreateOAuthGrantRequest": {
"type": "object",
"properties": {
"allowed": {
"type": "boolean",
"description": "Whether the grant is allowed"
},
"consent_token": {
"type": "string",
"description": "Consent token"
}
},
"required": [
"allowed",
"consent_token"
],
"additionalProperties": false
},
"CreateOutboundVoiceProfileRequest": {
"type": "object",
"title": "Outbound Voice Profile",
"required": [
"name"
],
"example": {
"name": "office",
"traffic_type": "conversational",
"service_plan": "global",
"concurrent_call_limit": 10,
"enabled": true,
"tags": [
"office-profile"
],
"usage_payment_method": "rate-deck",
"whitelisted_destinations": [
"US",
"BR",
"AU"
],
"max_destination_rate": 10,
"daily_spend_limit": "100.00",
"daily_spend_limit_enabled": true,
"billing_group_id": "6a09cdc3-8948-47f0-aa62-74ac943d6c58",
"calling_window": {
"start_time": "08:00:00.00Z",
"end_time": "20:00:00.00Z",
"calls_per_cld": 5
}
},
"properties": {
"name": {
"type": "string",
"description": "A user-supplied name to help with organization.",
"example": "office",
"minLength": 3
},
"traffic_type": {
"$ref": "#/components/schemas/TrafficType"
},
"service_plan": {
"$ref": "#/components/schemas/ServicePlan"
},
"concurrent_call_limit": {
"type": [
"integer",
"null"
],
"description": "Must be no more than your global concurrent call limit. Null means no limit.",
"example": 10
},
"enabled": {
"type": "boolean",
"description": "Specifies whether the outbound voice profile can be used. Disabled profiles will result in outbound calls being blocked for the associated Connections.",
"example": true,
"default": true
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"office-profile"
]
},
"usage_payment_method": {
"$ref": "#/components/schemas/UsagePaymentMethod"
},
"whitelisted_destinations": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of destinations you want to be able to call using this outbound voice profile formatted in alpha2.",
"example": [
"US",
"BR",
"AU"
],
"default": [
"US",
"CA"
]
},
"max_destination_rate": {
"type": "number",
"description": "Maximum rate (price per minute) for a Destination to be allowed when making outbound calls."
},
"daily_spend_limit": {
"type": "string",
"description": "The maximum amount of usage charges, in USD, you want Telnyx to allow on this outbound voice profile in a day before disallowing new calls.",
"example": "100.00"
},
"daily_spend_limit_enabled": {
"type": "boolean",
"description": "Specifies whether to enforce the daily_spend_limit on this outbound voice profile.",
"example": true,
"default": false
},
"call_recording": {
"$ref": "#/components/schemas/OutboundCallRecording"
},
"billing_group_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "The ID of the billing group associated with the outbound proflile. Defaults to null (for no group assigned).",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58",
"default": null
},
"calling_window": {
"type": "object",
"description": "(BETA) Specifies the time window and call limits for calls made using this outbound voice profile. Note that all times are UTC in 24-hour clock time.",
"example": {
"start_time": "08:00:00.00Z",
"end_time": "20:00:00.00Z",
"calls_per_cld": 5
},
"properties": {
"start_time": {
"type": "string",
"description": "(BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are allowed to start.",
"example": "08:00:00.00Z",
"format": "time"
},
"end_time": {
"type": "string",
"description": "(BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are no longer allowed to start.",
"example": "20:00:00.00Z",
"format": "time"
},
"calls_per_cld": {
"type": "integer",
"description": "(BETA) The maximum number of calls that can be initiated to a single called party (CLD) within the calling window. A null value means no limit.",
"example": 5,
"minimum": 0
}
}
}
}
},
"CreatePlanRequest": {
"properties": {
"steps": {
"items": {
"$ref": "#/components/schemas/CreatePlanStepRequest"
},
"type": "array",
"title": "Steps"
}
},
"type": "object",
"required": [
"steps"
],
"title": "CreatePlanRequest"
},
"CreatePlanStepRequest": {
"properties": {
"step_id": {
"type": "string",
"title": "Step Id"
},
"description": {
"type": "string",
"title": "Description"
},
"sequence": {
"type": "integer",
"title": "Sequence"
},
"parent_step_id": {
"title": "Parent Step Id",
"type": "string"
},
"metadata": {
"title": "Metadata",
"additionalProperties": true,
"type": "object"
}
},
"type": "object",
"required": [
"step_id",
"description",
"sequence"
],
"title": "CreatePlanStepRequest"
},
"CreatePortingOrder": {
"type": "object",
"title": "CreatePortingOrder",
"required": [
"phone_numbers"
],
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of +E.164 formatted phone numbers",
"example": [
"+13035550000",
"+13035550001",
"+13035550002"
]
},
"customer_reference": {
"type": [
"string",
"null"
],
"description": "A customer-specified reference number for customer bookkeeping purposes",
"example": "Acct 123abc"
},
"customer_group_reference": {
"type": "string",
"description": "A customer-specified group reference for customer bookkeeping purposes",
"example": "Group-456"
}
}
},
"CreatePortingOrderComment": {
"type": "object",
"properties": {
"body": {
"type": "string",
"example": "Please, let me know when the port completes"
}
}
},
"CreatePronunciationDictRequest": {
"type": "object",
"description": "Request body for creating a pronunciation dictionary.",
"required": [
"name",
"items"
],
"properties": {
"name": {
"type": "string",
"description": "Human-readable name. Must be unique within the organization.",
"minLength": 1,
"maxLength": 255,
"example": "Brand Names"
},
"items": {
"type": "array",
"description": "List of pronunciation items (alias or phoneme type). At least one item is required.",
"minItems": 1,
"maxItems": 100,
"items": {
"$ref": "#/components/schemas/PronunciationDictItem"
}
}
}
},
"CreateQueueRequest": {
"type": "object",
"title": "Create Queue Request",
"required": [
"queue_name"
],
"properties": {
"queue_name": {
"description": "The name of the queue. Must be between 1 and 255 characters.",
"type": "string",
"minLength": 1,
"maxLength": 255,
"example": "tier_1_support"
},
"max_size": {
"description": "The maximum number of calls allowed in the queue.",
"type": "integer",
"minimum": 1,
"default": 300,
"example": 100
}
},
"example": {
"queue_name": "tier_1_support",
"max_size": 100
}
},
"CreateRoomClientTokenRequest": {
"type": "object",
"properties": {
"token_ttl_secs": {
"description": "The time to live in seconds of the Client Token, after that time the Client Token is invalid and can't be used to join a Room.",
"type": "integer",
"example": 600,
"default": 600,
"minimum": 10,
"maximum": 3600
},
"refresh_token_ttl_secs": {
"description": "The time to live in seconds of the Refresh Token, after that time the Refresh Token is invalid and can't be used to refresh Client Token.",
"type": "integer",
"example": 3600,
"default": 3600,
"minimum": 60,
"maximum": 86400
}
}
},
"CreateRoomCompositionRequest": {
"type": "object",
"properties": {
"format": {
"description": "The desired format of the room composition.",
"type": "string",
"example": "mp4",
"default": "mp4"
},
"resolution": {
"description": "The desired resolution (width/height in pixels) of the resulting video of the room composition. Both width and height are required to be between 16 and 1280; and width * height should not exceed 1280 * 720",
"type": "string",
"example": "800x600",
"default": "1280x720"
},
"session_id": {
"description": "id of the room session associated with the room composition.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"video_layout": {
"description": "Describes the video layout of the room composition in terms of regions.",
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/VideoRegion"
}
},
"webhook_event_url": {
"type": "string",
"format": "uri",
"description": "The URL where webhooks related to this room composition will be sent. Must include a scheme, such as 'https'.",
"example": "https://example.com"
},
"webhook_event_failover_url": {
"type": "string",
"format": "uri",
"description": "The failover URL where webhooks related to this room composition will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_timeout_secs": {
"type": "integer",
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
}
}
},
"CreateRoomRequest": {
"type": "object",
"properties": {
"unique_name": {
"description": "The unique (within the Telnyx account scope) name of the room.",
"type": "string",
"example": "My room"
},
"max_participants": {
"description": "The maximum amount of participants allowed in a room. If new participants try to join after that limit is reached, their request will be rejected.",
"type": "integer",
"example": 10,
"default": 10,
"minimum": 2,
"maximum": 50
},
"enable_recording": {
"description": "Enable or disable recording for that room.",
"type": "boolean",
"example": true,
"default": false
},
"webhook_event_url": {
"type": "string",
"format": "uri",
"description": "The URL where webhooks related to this room will be sent. Must include a scheme, such as 'https'.",
"example": "https://example.com"
},
"webhook_event_failover_url": {
"type": "string",
"format": "uri",
"description": "The failover URL where webhooks related to this room will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_timeout_secs": {
"type": "integer",
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
}
}
},
"CreateScheduledEventRequest": {
"properties": {
"telnyx_conversation_channel": {
"$ref": "#/components/schemas/ConversationChannelType"
},
"telnyx_end_user_target": {
"type": "string",
"description": "The phone number, SIP URI, to schedule the call or text to.",
"title": "Telnyx End User Target"
},
"telnyx_agent_target": {
"type": "string",
"description": "The phone number, SIP URI, to schedule the call or text from.",
"title": "Telnyx Agent Target"
},
"scheduled_at_fixed_datetime": {
"type": "string",
"format": "date-time",
"description": "The datetime at which the event should be scheduled. Formatted as ISO 8601.",
"example": "2025-04-15T13:07:28.764Z",
"title": "Scheduled At Fixed Datetime"
},
"text": {
"type": "string",
"description": "Required for sms scheduled events. The text to be sent to the end user."
},
"conversation_metadata": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "boolean"
}
]
},
"type": "object",
"description": "Metadata associated with the conversation. Telnyx provides several pieces of metadata, but customers can also add their own.",
"title": "Conversation Metadata"
},
"dynamic_variables": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"description": "A map of dynamic variable names to values. These variables can be referenced in the assistant's instructions and messages using {{variable_name}} syntax.",
"title": "Dynamic Variables"
},
"max_retries_client_errors": {
"type": "integer",
"maximum": 10.0,
"minimum": 0.0,
"title": "Max Retries Client Errors",
"description": "Configure number of retries on client errors: busy, no-answer, failed, canceled (caller hung up before the callee answered)",
"default": 0
},
"retry_interval_secs": {
"title": "Retry Interval Secs",
"type": "integer",
"maximum": 86400.0,
"minimum": 60.0
},
"call_settings": {
"$ref": "#/components/schemas/ScheduledCallSettings"
}
},
"type": "object",
"required": [
"telnyx_conversation_channel",
"telnyx_end_user_target",
"telnyx_agent_target",
"scheduled_at_fixed_datetime"
],
"title": "CreateScheduledEventRequest"
},
"CreateScheduledMessageRequest": {
"type": "object",
"required": [
"to"
],
"properties": {
"from": {
"type": "string",
"description": "Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short code).\n\n**Required if sending with a phone number, short code, or alphanumeric sender ID.**\n",
"x-format": "address"
},
"messaging_profile_id": {
"type": "string",
"description": "Unique identifier for a messaging profile.\n\n**Required if sending via number pool or with an alphanumeric sender ID.**\n"
},
"to": {
"$ref": "#/components/schemas/ToNumber"
},
"text": {
"type": "string",
"description": "Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**"
},
"subject": {
"type": "string",
"description": "Subject of multimedia message"
},
"media_urls": {
"description": "A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**",
"type": "array",
"items": {
"type": "string",
"format": "url"
}
},
"webhook_url": {
"description": "The URL where webhooks related to this message will be sent.",
"type": "string",
"format": "url"
},
"webhook_failover_url": {
"description": "The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.",
"type": "string",
"format": "url"
},
"use_profile_webhooks": {
"type": "boolean",
"description": "If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.",
"default": true
},
"type": {
"description": "The protocol for sending the message, either SMS or MMS.",
"type": "string",
"enum": [
"SMS",
"MMS"
]
},
"auto_detect": {
"description": "Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.",
"type": "boolean",
"default": false
},
"send_at": {
"description": "ISO 8601 formatted date indicating when to send the message - accurate up till a minute.",
"type": "string",
"format": "date-time"
}
},
"example": {
"from": "+18445550001",
"messaging_profile_id": "abc85f64-5717-4562-b3fc-2c9600000000",
"to": "+18445550001",
"text": "Hello, World!",
"subject": "From Telnyx!",
"webhook_url": "http://example.com/webhooks",
"webhook_failover_url": "https://backup.example.com/hooks",
"use_profile_webhooks": true,
"type": "SMS",
"send_at": "2019-01-23T18:30:00Z"
}
},
"CreateSharedToolRequest": {
"properties": {
"type": {
"type": "string",
"title": "Type"
},
"display_name": {
"type": "string",
"title": "Display Name"
},
"function": {
"title": "Function",
"additionalProperties": true,
"type": "object"
},
"retrieval": {
"title": "Retrieval",
"additionalProperties": true,
"type": "object"
},
"handoff": {
"title": "Handoff",
"additionalProperties": true,
"type": "object"
},
"invite": {
"title": "Invite",
"additionalProperties": true,
"type": "object"
},
"webhook": {
"title": "Webhook",
"additionalProperties": true,
"type": "object"
},
"timeout_ms": {
"type": "integer",
"title": "Timeout Ms",
"default": 5000
}
},
"additionalProperties": true,
"type": "object",
"required": [
"type",
"display_name"
],
"title": "CreateSharedToolRequest",
"description": "Request model for creating a shared (org-level) tool."
},
"CreateShortCodeMessageRequest": {
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"from": {
"type": "string",
"description": "Phone number, in +E.164 format, used to send the message.",
"x-format": "address"
},
"to": {
"$ref": "#/components/schemas/ToNumber"
},
"text": {
"type": "string",
"description": "Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**"
},
"subject": {
"type": "string",
"description": "Subject of multimedia message"
},
"media_urls": {
"description": "A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**",
"type": "array",
"items": {
"type": "string",
"format": "url"
}
},
"webhook_url": {
"description": "The URL where webhooks related to this message will be sent.",
"type": "string",
"format": "url"
},
"webhook_failover_url": {
"description": "The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.",
"type": "string",
"format": "url"
},
"use_profile_webhooks": {
"type": "boolean",
"description": "If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.",
"default": true
},
"type": {
"description": "The protocol for sending the message, either SMS or MMS.",
"type": "string",
"enum": [
"SMS",
"MMS"
]
},
"auto_detect": {
"description": "Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.",
"type": "boolean",
"default": false
},
"encoding": {
"type": "string",
"description": "Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.",
"enum": [
"auto",
"gsm7",
"ucs2"
],
"default": "auto"
}
},
"example": {
"from": "+18445550001",
"to": "+18445550001",
"text": "Hello, World!",
"subject": "From Telnyx!",
"media_urls": [
"http://example.com"
],
"webhook_url": "http://example.com/webhooks",
"webhook_failover_url": "https://backup.example.com/hooks",
"use_profile_webhooks": true,
"type": "MMS"
}
},
"CreateSubNumberOrdersReportRequest": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Filter by order status",
"enum": [
"pending",
"success",
"failure"
],
"example": "success"
},
"country_code": {
"type": "string",
"description": "Filter by country code",
"example": "US"
},
"created_at_gt": {
"type": "string",
"format": "date-time",
"description": "Filter for orders created after this date",
"example": "2023-04-05T10:22:08.230549Z"
},
"created_at_lt": {
"type": "string",
"format": "date-time",
"description": "Filter for orders created before this date",
"example": "2025-06-05T10:22:08.230549Z"
},
"order_request_id": {
"type": "string",
"format": "uuid",
"description": "Filter by specific order request ID",
"example": "12ade33a-21c0-473b-b055-b3c836e1c293"
},
"customer_reference": {
"type": "string",
"description": "Filter by customer reference",
"example": "STRING"
}
},
"example": {
"status": "success",
"country_code": "US",
"created_at_gt": "2023-04-05T10:22:08.230549Z",
"created_at_lt": "2025-06-05T10:22:08.230549Z",
"order_request_id": "12ade33a-21c0-473b-b055-b3c836e1c293",
"customer_reference": "STRING"
}
},
"CreateTeXMLSecretRequest": {
"type": "object",
"title": "Create TeXML Secret request",
"required": [
"name",
"value"
],
"example": {
"name": "My Secret Name",
"value": "My Secret Value"
},
"properties": {
"name": {
"type": "string",
"description": "Name used as a reference for the secret, if the name already exists within the account its value will be replaced",
"example": "My Secret Name"
},
"value": {
"type": "string",
"description": "Secret value which will be used when rendering the TeXML template",
"example": "My Secret Value"
}
}
},
"CreateTeXMLSecretResult": {
"type": "object",
"title": "Create TeXML Secret result",
"example": {
"name": "My Secret Name",
"value": "REDACTED"
},
"properties": {
"name": {
"type": "string",
"example": "My Secret Name"
},
"value": {
"type": "string",
"enum": [
"REDACTED"
],
"example": "REDACTED"
}
}
},
"CreateTexmlApplicationRequest": {
"type": "object",
"title": "Create Texml Application Request",
"required": [
"friendly_name",
"voice_url"
],
"properties": {
"friendly_name": {
"$ref": "#/components/schemas/ApplicationName"
},
"active": {
"$ref": "#/components/schemas/ConnectionActive"
},
"anchorsite_override": {
"$ref": "#/components/schemas/AnchorsiteOverride"
},
"dtmf_type": {
"$ref": "#/components/schemas/DtmfType"
},
"first_command_timeout": {
"$ref": "#/components/schemas/FirstCommandTimeout"
},
"first_command_timeout_secs": {
"$ref": "#/components/schemas/FirstCommandTimeoutSecs"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags associated with the Texml Application.",
"example": [
"tag1",
"tag2"
]
},
"voice_url": {
"type": "string",
"description": "URL to which Telnyx will deliver your XML Translator webhooks.",
"format": "uri",
"example": "https://example.com"
},
"voice_fallback_url": {
"type": "string",
"description": "URL to which Telnyx will deliver your XML Translator webhooks if we get an error response from your voice_url.",
"default": null,
"format": "uri",
"example": "https://fallback.example.com"
},
"call_cost_in_webhooks": {
"type": "boolean",
"description": "Specifies if call cost webhooks should be sent for this TeXML Application.",
"default": false
},
"voice_method": {
"type": "string",
"description": "HTTP request method Telnyx will use to interact with your XML Translator webhooks. Either 'get' or 'post'.",
"enum": [
"get",
"post"
],
"default": "post",
"example": "get"
},
"status_callback": {
"type": "string",
"description": "URL for Telnyx to send requests to containing information about call progress events.",
"default": null,
"format": "uri",
"example": "https://example.com"
},
"status_callback_method": {
"type": "string",
"description": "HTTP request method Telnyx should use when requesting the status_callback URL.",
"enum": [
"get",
"post"
],
"default": "post",
"example": "get"
},
"inbound": {
"type": "object",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the total number of inbound calls to phone numbers associated with this connection.",
"default": null,
"example": 10
},
"shaken_stir_enabled": {
"type": "boolean",
"description": "When enabled Telnyx will include Shaken/Stir data in the Webhook for new inbound calls.",
"default": false,
"example": false
},
"sip_subdomain": {
"type": "string",
"description": "Specifies a subdomain that can be used to receive Inbound calls to a Connection, in the same way a phone number is used, from a SIP endpoint. Example: the subdomain \"example.sip.telnyx.com\" can be called from any SIP endpoint by using the SIP URI \"sip:@example.sip.telnyx.com\" where the user part can be any alphanumeric value. Please note TLS encrypted calls are not allowed for subdomain calls.",
"default": null,
"example": "example"
},
"sip_subdomain_receive_settings": {
"type": "string",
"description": "This option can be enabled to receive calls from: \"Anyone\" (any SIP endpoint in the public Internet) or \"Only my connections\" (any connection assigned to the same Telnyx user).",
"enum": [
"only_my_connections",
"from_anyone"
],
"default": "from_anyone",
"example": "only_my_connections"
}
}
},
"outbound": {
"type": "object",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the total number of outbound calls to phone numbers associated with this connection.",
"default": null,
"example": 10
},
"outbound_voice_profile_id": {
"$ref": "#/components/schemas/OutboundVoiceProfileId"
}
}
}
},
"example": {
"friendly_name": "call-router",
"active": false,
"anchorsite_override": "Amsterdam, Netherlands",
"dtmf_type": "Inband",
"first_command_timeout": true,
"first_command_timeout_secs": 10,
"voice_url": "https://example.com",
"voice_fallback_url": "https://fallback.example.com",
"call_cost_in_webhooks": false,
"voice_method": "get",
"status_callback": "https://example.com",
"status_callback_method": "get",
"tags": [
"tag1",
"tag2"
],
"inbound": {
"channel_limit": 10,
"shaken_stir_enabled": true,
"sip_subdomain": "example",
"sip_subdomain_receive_settings": "only_my_connections"
},
"outbound": {
"channel_limit": 10,
"outbound_voice_profile_id": "1293384261075731499"
}
}
},
"CreateUacConnectionRequest": {
"type": "object",
"title": "Create UAC Connection Request",
"required": [
"connection_name"
],
"properties": {
"active": {
"type": "boolean",
"description": "Defaults to true"
},
"user_name": {
"type": "string",
"description": "The user name to be used as part of the credentials. Must be 4-32 characters long and alphanumeric values only (no spaces or special characters).",
"example": "myusername123"
},
"password": {
"type": "string",
"description": "The password to be used as part of the credentials. Must be 8 to 128 characters long.",
"example": "my123secure456password789"
},
"anchorsite_override": {
"$ref": "#/components/schemas/AnchorsiteOverride"
},
"connection_name": {
"$ref": "#/components/schemas/ConnectionName"
},
"sip_uri_calling_preference": {
"type": "string",
"description": "This feature enables inbound SIP URI calls to your Credential Auth Connection. If enabled for all (unrestricted) then anyone who calls the SIP URI null when it's present in an associated resource.",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
},
"tags": {
"type": "array",
"description": "Searchable tags associated with the SIM cards",
"items": {
"type": "string"
},
"example": [
"personal",
"customers",
"active-customers"
]
},
"product": {
"type": "string",
"description": "Type of product to be purchased, specify \"whitelabel\" to use a custom SPN",
"example": "whitelabel"
},
"whitelabel_name": {
"type": "string",
"description": "Service Provider Name (SPN) for the Whitelabel eSIM product. It will be displayed as the mobile service name by operating systems of smartphones. This parameter must only contain letters, numbers and whitespaces.",
"example": "Custom SPN"
},
"amount": {
"type": "integer",
"description": "The amount of eSIMs to be purchased.",
"example": 10,
"minimum": 1
},
"status": {
"type": "string",
"description": "Status on which the SIM cards will be set after being successfully registered.",
"enum": [
"enabled",
"disabled",
"standby"
],
"example": "standby",
"default": "enabled"
}
},
"required": [
"amount"
]
},
"ElevenLabsProviderParams": {
"type": "object",
"description": "ElevenLabs provider-specific parameters.",
"properties": {
"language_code": {
"type": "string",
"description": "Language code."
},
"api_key": {
"type": "string",
"description": "Custom ElevenLabs API key. If not provided, the default Telnyx key is used."
},
"voice_settings": {
"type": "object",
"description": "ElevenLabs voice settings (stability, similarity_boost, etc.).",
"additionalProperties": true
}
}
},
"ElevenLabsVoiceSettings": {
"type": "object",
"title": "ElevenLabs Voice Settings",
"properties": {
"type": {
"type": "string",
"enum": [
"elevenlabs"
],
"description": "Voice settings provider type"
},
"api_key_ref": {
"description": "The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.",
"type": "string",
"example": "my_elevenlabs_api_key"
}
},
"required": [
"type"
]
},
"EligibilityNumberResponse": {
"type": "object",
"properties": {
"detail": {
"type": "string",
"description": "Detailed information about the eligibility status."
},
"phone_number": {
"type": "string",
"description": "The phone number in e164 format."
},
"eligible": {
"type": "boolean",
"description": "Whether the phone number is eligible for hosted messaging."
},
"eligible_status": {
"type": "string",
"description": "The eligibility status of the phone number.",
"enum": [
"NUMBER_CAN_NOT_BE_REPEATED",
"NUMBER_CAN_NOT_BE_VALIDATED",
"NUMBER_CAN_NOT_BE_WIRELESS",
"NUMBER_CAN_NOT_BE_ACTIVE_IN_YOUR_ACCOUNT",
"NUMBER_CAN_NOT_HOSTED_WITH_A_TELNYX_SUBSCRIBER",
"NUMBER_CAN_NOT_BE_IN_TELNYX",
"NUMBER_IS_NOT_A_US_NUMBER",
"NUMBER_IS_NOT_A_VALID_ROUTING_NUMBER",
"NUMBER_IS_NOT_IN_E164_FORMAT",
"BILLING_ACCOUNT_CHECK_FAILED",
"BILLING_ACCOUNT_IS_ABOLISHED",
"ELIGIBLE"
]
}
}
},
"EligibilityNumbersRequest": {
"type": "object",
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"type": "string",
"x-format": "+E.164",
"description": "Phone number to check eligibility"
},
"description": "List of phone numbers to check eligibility"
}
},
"required": [
"phone_numbers"
]
},
"EligibilityNumbersResponse": {
"type": "object",
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EligibilityNumberResponse"
},
"description": "List of phone numbers with their eligibility status."
}
}
},
"EmbeddingBucketRequest": {
"properties": {
"bucket_name": {
"type": "string",
"title": "Bucket Name"
},
"document_chunk_size": {
"type": "integer",
"title": "Document Chunk Size",
"default": 1024
},
"document_chunk_overlap_size": {
"type": "integer",
"title": "Document Chunk Overlap Size",
"default": 512
},
"embedding_model": {
"allOf": [
{
"$ref": "#/components/schemas/SupportedEmbeddingModels"
}
],
"default": "thenlper/gte-large"
},
"loader": {
"allOf": [
{
"$ref": "#/components/schemas/SupportedEmbeddingLoaders"
}
],
"default": "default"
}
},
"type": "object",
"required": [
"bucket_name"
],
"title": "EmbeddingBucketRequest"
},
"EmbeddingMetadata": {
"properties": {
"source": {
"type": "string",
"title": "Source"
},
"checksum": {
"type": "string",
"title": "Checksum"
},
"embedding": {
"type": "string",
"title": "Embedding"
},
"filename": {
"type": "string",
"title": "Filename"
},
"certainty": {
"type": "number",
"title": "Certainty"
},
"loader_metadata": {
"type": "object",
"title": "Loader Metadata",
"additionalProperties": true
}
},
"type": "object",
"required": [
"source",
"checksum",
"embedding",
"filename"
],
"title": "EmbeddingMetadata"
},
"EmbeddingResponse": {
"properties": {
"data": {
"type": "object",
"properties": {
"task_id": {
"type": "string",
"format": "uuid",
"title": "Task ID"
},
"task_name": {
"type": "string",
"title": "Task Name"
},
"status": {
"type": "string",
"title": "Status"
},
"created_at": {
"type": "string",
"title": "Created At"
},
"finished_at": {
"type": [
"string",
"null"
],
"title": "Finished At"
},
"user_id": {
"type": "string",
"format": "uuid",
"title": "User ID"
}
}
}
},
"type": "object",
"required": [
"data"
],
"title": "EmbeddingResponse"
},
"EmbeddingSimilaritySearchDocument": {
"properties": {
"document_chunk": {
"type": "string",
"title": "Document Chunk"
},
"distance": {
"type": "number",
"title": "Distance"
},
"metadata": {
"$ref": "#/components/schemas/EmbeddingMetadata"
}
},
"type": "object",
"required": [
"document_chunk",
"distance",
"metadata"
],
"title": "EmbeddingSimilaritySearchDocument",
"description": "Example document response from embedding service\n{\n \"document_chunk\": \"your status? This is Vanessa Bloome...\",\n \"distance\": 0.18607724,\n \"metadata\": {\n \"source\": \"https://us-central-1.telnyxstorage.com/scripts/bee_movie_script.txt\",\n \"checksum\": \"343054dd19bab39bbf6761a3d20f1daa\",\n \"embedding\": \"openai/text-embedding-ada-002\",\n \"filename\": \"bee_movie_script.txt\",\n \"certainty\": 0.9069613814353943,\n \"loader_metadata\": {}\n }\n}"
},
"EmbeddingSimilaritySearchRequest": {
"properties": {
"bucket_name": {
"type": "string",
"title": "Bucket Name"
},
"query": {
"type": "string",
"title": "Query"
},
"num_of_docs": {
"type": "integer",
"title": "Num Of Docs",
"default": 3
}
},
"type": "object",
"required": [
"bucket_name",
"query"
],
"title": "EmbeddingSimilaritySearchRequest"
},
"EmbeddingSimilaritySearchResponse": {
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/EmbeddingSimilaritySearchDocument"
},
"type": "array",
"title": "Data"
}
},
"type": "object",
"required": [
"data"
],
"title": "EmbeddingSimilaritySearchResponse"
},
"EmbeddingUrlRequest": {
"properties": {
"url": {
"type": "string",
"title": "URL",
"description": "The URL of the webpage to embed"
},
"bucket_name": {
"type": "string",
"title": "Bucket Name",
"description": "Name of the bucket to store the embeddings. This bucket must already exist."
}
},
"type": "object",
"required": [
"url",
"bucket_name"
],
"title": "EmbeddingUrlRequest"
},
"EmbeddingsBucketFiles": {
"properties": {
"filename": {
"type": "string",
"title": "Filename"
},
"status": {
"type": "string",
"title": "Status"
},
"created_at": {
"type": "string",
"format": "date-time",
"title": "Created At"
},
"updated_at": {
"type": "string",
"format": "date-time",
"title": "Updated At"
},
"last_embedded_at": {
"type": "string",
"format": "date-time",
"title": "Last Embedded At"
},
"error_reason": {
"type": "string",
"title": "Error Reason"
}
},
"type": "object",
"required": [
"filename",
"status",
"created_at"
],
"title": "EmbeddingsBucketFiles"
},
"EmbeddingsBucketFilesData": {
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/EmbeddingsBucketFiles"
},
"type": "array",
"title": "Data"
}
},
"type": "object",
"required": [
"data"
],
"title": "EmbeddingsBucketFilesData"
},
"EmergencySettings": {
"description": "The emergency services settings for a phone number.",
"type": "object",
"properties": {
"emergency_enabled": {
"type": "boolean",
"default": false,
"description": "Allows you to enable or disable emergency services on the phone number. In order to enable emergency services, you must also set an emergency_address_id."
},
"emergency_address_id": {
"type": "string",
"description": "Identifies the address to be used with emergency services."
},
"emergency_status": {
"type": "string",
"description": "Represents the state of the number regarding emergency activation.",
"default": "disabled",
"enum": [
"disabled",
"active",
"provisioning",
"deprovisioning",
"provisioning-failed"
]
}
},
"example": {
"emergency_enabled": true,
"emergency_address_id": "1315261609962112019",
"emergency_status": "active"
}
},
"EnabledFeatures": {
"type": "string",
"enum": [
"telephony",
"messaging"
],
"description": "If `telephony` is enabled, the assistant will be able to make and receive calls. If `messaging` is enabled, the assistant will be able to send and receive messages."
},
"EncryptedMedia": {
"type": [
"string",
"null"
],
"enum": [
"SRTP",
null
],
"example": "SRTP",
"description": "Enable use of SRTP for encryption. Cannot be set if the transport_portocol is TLS."
},
"EndConferenceRequest": {
"type": "object",
"title": "End Conference Request",
"properties": {
"command_id": {
"description": "Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same conference.",
"type": "string",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901"
}
},
"example": {}
},
"EnqueueRequest": {
"type": "object",
"title": "Enqueue Request",
"required": [
"queue_name"
],
"properties": {
"queue_name": {
"description": "The name of the queue the call should be put in. If a queue with a given name doesn't exist yet it will be created.",
"type": "string",
"example": "tier_1_support"
},
"client_state": {
"description": "Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
},
"command_id": {
"description": "Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.",
"type": "string",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901"
},
"max_wait_time_secs": {
"description": "The number of seconds after which the call will be removed from the queue.",
"type": "integer",
"example": 600
},
"max_size": {
"description": "The maximum number of calls allowed in the queue at a given time. Can't be modified for an existing queue.",
"type": "integer",
"default": 100,
"example": 200
},
"keep_after_hangup": {
"type": "boolean",
"description": "If set to true, the call will remain in the queue after hangup. In this case bridging to such call will fail with necessary information needed to re-establish the call.",
"default": false,
"example": true
}
},
"example": {
"queue_name": "support",
"max_wait_time_secs": 600,
"max_size": 20,
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"command_id": "891510ac-f3e4-11e8-af5b-de00688a4901"
}
},
"EnterpriseCreate": {
"type": "object",
"required": [
"legal_name",
"organization_type",
"country_code",
"website",
"fein",
"industry",
"number_of_employees",
"organization_legal_type",
"doing_business_as",
"jurisdiction_of_incorporation",
"organization_contact",
"billing_contact",
"organization_physical_address",
"billing_address"
],
"properties": {
"legal_name": {
"type": "string",
"example": "Acme Plumbing LLC",
"description": "Legal name of the enterprise.",
"minLength": 3,
"maxLength": 64
},
"organization_type": {
"type": "string",
"enum": [
"commercial",
"government",
"non_profit"
],
"example": "commercial",
"description": "Organization category for vetting purposes:\n- `commercial` - for-profit business entities (LLC, corp, partnership, sole proprietorship). Most callers fall here.\n- `government` - federal/state/local government bodies.\n- `non_profit` - registered 501(c)(3)/equivalent (incl. educational institutions, charities, religious organisations)."
},
"country_code": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code. Currently `US` and `CA` are supported.",
"example": "US"
},
"role_type": {
"type": "string",
"enum": [
"enterprise",
"bpo"
],
"description": "`enterprise` for an organization registering its own DIRs; `bpo` for a Business Process Outsourcer placing calls on behalf of one or more enterprises.",
"example": "enterprise",
"default": "enterprise"
},
"website": {
"type": "string",
"format": "uri",
"maxLength": 255,
"example": "https://acmeplumbing.example.com"
},
"fein": {
"type": "string",
"description": "US Federal Employer Identification Number (`NN-NNNNNNN`) or Canadian equivalent.",
"example": "12-3456789"
},
"industry": {
"type": "string",
"description": "Industry classification.",
"example": "technology",
"enum": [
"accounting",
"finance",
"billing",
"collections",
"business",
"charity",
"nonprofit",
"communications",
"telecom",
"customer service",
"support",
"delivery",
"shipping",
"logistics",
"education",
"financial",
"banking",
"government",
"public",
"healthcare",
"health",
"pharmacy",
"medical",
"insurance",
"legal",
"law",
"notifications",
"scheduling",
"real estate",
"property",
"retail",
"ecommerce",
"sales",
"marketing",
"software",
"technology",
"tech",
"media",
"surveys",
"market research",
"travel",
"hospitality",
"hotel"
]
},
"number_of_employees": {
"type": "string",
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"501-2000",
"2001-10000",
"10001+"
],
"example": "51-200",
"description": "Approximate headcount range. Used for vetting heuristics; pick the bucket that contains your current employee count."
},
"organization_legal_type": {
"type": "string",
"enum": [
"corporation",
"llc",
"partnership",
"nonprofit",
"other"
],
"example": "llc",
"description": "Legal-entity form. Pick the form that matches your incorporation documents:\n- `corporation` - C-corp or S-corp.\n- `llc` - limited liability company.\n- `partnership` - general/limited partnership.\n- `nonprofit` - non-profit corporation, charitable trust, or 501(c)(3)/equivalent.\n- `other` - anything else (sole proprietorships, government bodies, DBAs, etc.). You may be asked for additional documents during vetting."
},
"doing_business_as": {
"type": "string",
"maxLength": 255,
"example": "Acme Plumbing"
},
"jurisdiction_of_incorporation": {
"type": "string",
"maxLength": 255,
"example": "Delaware"
},
"customer_reference": {
"type": "string",
"maxLength": 255,
"description": "Optional free-form string the caller can attach for their own bookkeeping. Telnyx does not interpret it.",
"example": "internal-id-12345"
},
"primary_business_domain_sic_code": {
"type": "string",
"nullable": true,
"description": "Optional SIC code for the primary line of business."
},
"corporate_registration_number": {
"type": "string",
"nullable": true,
"description": "Optional corporate-registration / company-number identifier."
},
"professional_license_number": {
"type": "string",
"nullable": true,
"description": "Optional professional-license number for regulated industries."
},
"dun_bradstreet_number": {
"type": "string",
"nullable": true,
"description": "Optional D-U-N-S Number."
},
"organization_contact": {
"$ref": "#/components/schemas/OrganizationContact"
},
"billing_contact": {
"$ref": "#/components/schemas/BillingContact"
},
"organization_physical_address": {
"$ref": "#/components/schemas/PhysicalAddress"
},
"billing_address": {
"$ref": "#/components/schemas/BillingAddress"
}
}
},
"EnterpriseListPublic": {
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EnterprisePublic"
}
},
"meta": {
"$ref": "#/components/schemas/branded-calling_PaginationMeta"
}
}
},
"EnterprisePublic": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "4a6192a4-573d-446d-b3ce-aff9117272a6",
"readOnly": true
},
"legal_name": {
"type": "string",
"example": "Acme Plumbing LLC"
},
"organization_type": {
"type": "string",
"example": "commercial"
},
"country_code": {
"type": "string",
"example": "US"
},
"role_type": {
"type": "string",
"example": "enterprise"
},
"website": {
"type": "string",
"example": "https://acmeplumbing.example.com"
},
"fein": {
"type": "string",
"example": "12-3456789"
},
"industry": {
"type": "string",
"example": "technology"
},
"number_of_employees": {
"type": "string",
"example": "51-200"
},
"organization_legal_type": {
"type": "string",
"example": "llc"
},
"doing_business_as": {
"type": "string",
"example": "Acme Plumbing"
},
"jurisdiction_of_incorporation": {
"type": "string",
"example": "Delaware"
},
"customer_reference": {
"type": "string",
"example": "internal-id-12345"
},
"primary_business_domain_sic_code": {
"type": "string",
"nullable": true,
"description": "Optional SIC code for the primary line of business.",
"example": null
},
"corporate_registration_number": {
"type": "string",
"nullable": true,
"description": "Optional corporate-registration / company-number identifier.",
"example": null
},
"professional_license_number": {
"type": "string",
"nullable": true,
"description": "Optional professional-license number for regulated industries.",
"example": null
},
"dun_bradstreet_number": {
"type": "string",
"nullable": true,
"description": "Optional D-U-N-S Number issued by Dun & Bradstreet.",
"example": null
},
"organization_contact": {
"$ref": "#/components/schemas/OrganizationContact"
},
"billing_contact": {
"$ref": "#/components/schemas/BillingContact"
},
"organization_physical_address": {
"$ref": "#/components/schemas/PhysicalAddress"
},
"billing_address": {
"$ref": "#/components/schemas/BillingAddress"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-04-26T18:06:51.940749Z",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-04-26T18:09:24.785211Z",
"readOnly": true
},
"branded_calling_enabled": {
"type": "boolean",
"description": "True once Branded Calling has been activated on this enterprise (see `POST /enterprises/{id}/branded_calling`)."
},
"number_reputation_enabled": {
"type": "boolean",
"description": "True once Phone Number Reputation has been enabled on this enterprise (see `POST /enterprises/{id}/reputation`)."
}
}
},
"EnterprisePublicWrapped": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EnterprisePublic"
}
}
},
"EnterpriseReputationCreate": {
"type": "object",
"required": [
"loa_document_id"
],
"additionalProperties": false,
"properties": {
"loa_document_id": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Id of the signed Letter of Authorization document, returned by the Telnyx Documents API after upload (upload via `POST /v2/documents`; see https://developers.telnyx.com/api/documents).",
"example": "2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
},
"check_frequency": {
"allOf": [
{
"$ref": "#/components/schemas/ReputationCheckFrequency"
}
],
"default": "business_daily",
"description": "Refresh cadence. Defaults to `business_daily` if omitted."
}
}
},
"EnterpriseReputationLoaRender": {
"type": "object",
"description": "All fields optional. The enterprise identity, address, and authorized-representative contact are read from the enterprise record keyed by the path parameter.",
"properties": {
"agent": {
"$ref": "#/components/schemas/AgentInput"
},
"signature": {
"$ref": "#/components/schemas/LoaSignaturePayload"
}
}
},
"EnterpriseReputationLoaUpdate": {
"type": "object",
"required": [
"loa_document_id"
],
"properties": {
"loa_document_id": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Id of the new signed LOA document (from the Telnyx Documents API). Changing it resets LOA approval; the new document must be approved before more numbers can be added.",
"example": "2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
}
}
},
"EnterpriseReputationPublic": {
"type": "object",
"properties": {
"enterprise_id": {
"type": "string",
"format": "uuid",
"example": "4a6192a4-573d-446d-b3ce-aff9117272a6"
},
"status": {
"$ref": "#/components/schemas/ReputationStatus"
},
"check_frequency": {
"$ref": "#/components/schemas/ReputationCheckFrequency"
},
"loa_document_id": {
"type": "string",
"nullable": true,
"description": "Id of the signed LOA document.",
"example": "2a7e8337-e803-4057-a4ae-26c40eb0bc6c"
},
"loa_status": {
"$ref": "#/components/schemas/ReputationLoaStatusPublic"
},
"rejection_reasons": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true,
"description": "Populated when `status` is `rejected`."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-04-26T18:06:51.940749Z",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-04-26T18:09:24.785211Z",
"readOnly": true
}
}
},
"EnterpriseReputationPublicWrapped": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/EnterpriseReputationPublic"
}
}
},
"EnterpriseReputationUpdateFrequency": {
"type": "object",
"required": [
"check_frequency"
],
"additionalProperties": false,
"properties": {
"check_frequency": {
"$ref": "#/components/schemas/ReputationCheckFrequency"
}
}
},
"EnterpriseUpdate": {
"type": "object",
"description": "All fields are optional; only the ones supplied are updated. The same field-level rules from `EnterpriseCreateRequest` apply.",
"properties": {
"legal_name": {
"type": "string",
"description": "Legal name of the enterprise.",
"minLength": 3,
"maxLength": 64
},
"website": {
"type": "string",
"format": "uri",
"maxLength": 255
},
"fein": {
"type": "string"
},
"industry": {
"type": "string",
"enum": [
"accounting",
"finance",
"billing",
"collections",
"business",
"charity",
"nonprofit",
"communications",
"telecom",
"customer service",
"support",
"delivery",
"shipping",
"logistics",
"education",
"financial",
"banking",
"government",
"public",
"healthcare",
"health",
"pharmacy",
"medical",
"insurance",
"legal",
"law",
"notifications",
"scheduling",
"real estate",
"property",
"retail",
"ecommerce",
"sales",
"marketing",
"software",
"technology",
"tech",
"media",
"surveys",
"market research",
"travel",
"hospitality",
"hotel"
]
},
"number_of_employees": {
"type": "string"
},
"organization_legal_type": {
"type": "string"
},
"doing_business_as": {
"type": "string",
"maxLength": 255
},
"customer_reference": {
"type": "string",
"maxLength": 255
},
"primary_business_domain_sic_code": {
"type": "string",
"nullable": true
},
"corporate_registration_number": {
"type": "string",
"nullable": true
},
"professional_license_number": {
"type": "string",
"nullable": true
},
"dun_bradstreet_number": {
"type": "string",
"nullable": true
},
"organization_contact": {
"$ref": "#/components/schemas/OrganizationContact"
},
"billing_contact": {
"$ref": "#/components/schemas/BillingContact"
},
"organization_physical_address": {
"$ref": "#/components/schemas/PhysicalAddress"
},
"billing_address": {
"$ref": "#/components/schemas/BillingAddress"
},
"jurisdiction_of_incorporation": {
"type": "string",
"maxLength": 255,
"description": "Updated state/province/country of incorporation. Optional on update.",
"example": "Delaware"
}
}
},
"EntityType": {
"title": "EntityType",
"enum": [
"PRIVATE_PROFIT",
"PUBLIC_PROFIT",
"NON_PROFIT",
"GOVERNMENT",
"SOLE_PROPRIETOR"
],
"description": "Entity type behind the brand. This is the form of business establishment.",
"example": "PRIVATE_PROFIT",
"type": "string"
},
"EnumObjecToObjecttResponse": {
"title": "EnumObjecToObjecttResponse",
"type": "object",
"additionalProperties": true,
"example": {
"PROFESSIONAL": {
"industryId": "professional-services",
"displayName": "Professional Services",
"description": "Professional services."
},
"REAL_ESTATE": {
"industryId": "real-estate",
"displayName": "Real Estate",
"description": "Buying and Selling of residential and commercial properties."
}
}
},
"EnumObjectListResponse": {
"title": "EnumObjectListResponse",
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"example": [
{
"networkId": 10000,
"displayName": "string",
"osrBitmaskIndex": 32
}
]
},
"EnumObjectToStringResponse": {
"title": "EnumObjectToStringResponse",
"type": "object",
"additionalProperties": true,
"example": {
"AREIS": "AREIS",
"BANDW": "Bandwidth",
"SINCH": "Sinch"
}
},
"EnumPaginatedResponse": {
"title": "EnumPaginatedResponse",
"type": "object",
"required": [
"page",
"totalRecords",
"records"
],
"properties": {
"page": {
"type": "integer"
},
"totalRecords": {
"type": "integer"
},
"records": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"example": {
"page": 1,
"totalRecords": 2,
"records": [
{
"isin": "US68243Q1067",
"iso2": "US",
"symbol": "FLWS",
"exchange": "NASDAQ",
"displayName": "1-800 FLOWERS.COM, Inc."
},
{
"isin": "US88025U1097",
"iso2": "US",
"symbol": "TXG",
"exchange": "NASDAQ",
"displayName": "10X GENOMICS INC CLASS A"
}
]
}
},
"EnumStringListResponse": {
"title": "EnumStringListResponse",
"type": "array",
"items": {
"type": "string"
},
"example": [
"BASIC_ACCOUNT",
"SMALL_ACCOUNT",
"MEDIUM_ACCOUNT",
"LARGE_ACCOUNT",
"KEY_ACCOUNT"
]
},
"Error": {
"required": [
"code",
"title"
],
"properties": {
"code": {
"type": "string",
"x-format": "int64"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"pointer": {
"description": "JSON pointer (RFC6901) to the offending entity.",
"type": "string",
"format": "json-pointer"
},
"parameter": {
"description": "Indicates which query parameter caused the error.",
"type": "string"
}
}
},
"meta": {
"type": "object",
"additionalProperties": true
}
},
"example": {
"title": "Invalid street address",
"source": {
"pointer": "/street_address"
},
"code": "20207",
"description": "The street address provided is invalid."
},
"type": "object"
},
"ErrorFrame": {
"type": "object",
"description": "Server-to-client frame indicating an error during synthesis. The connection is closed shortly after.",
"properties": {
"type": {
"type": "string",
"const": "error",
"description": "Frame type identifier."
},
"error": {
"type": "string",
"description": "Error message describing what went wrong."
}
}
},
"ErrorObject": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Machine-readable error code.",
"example": "90202"
},
"title": {
"type": "string",
"description": "Short human-readable error title.",
"example": "Validation failed"
},
"detail": {
"type": "string",
"description": "Detailed error description.",
"example": "items must have at least one item"
},
"source": {
"type": "object",
"description": "Source of the error.",
"properties": {
"pointer": {
"type": "string",
"description": "JSON pointer to the field that caused the error.",
"example": "/items"
}
}
}
}
},
"ErrorRecord": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "an application-specific error code, expressed as a stringified 5-digit integer",
"example": "10003"
},
"title": {
"type": "string",
"description": "a short, human-readable summary of the problem, with NO punctuation, that SHOULD NOT CHANGE from occurrence to occurrence of the problem, except for purposes of localization",
"example": "Metrics invalid values"
},
"detail": {
"type": "string",
"description": "a human-readable explanation specific to this occurrence of the problem. Like title, this field\u2019s value can be localized",
"example": "Available metrics values for sip-trunking: connected,cost,completed,call_sec,attempted,billed_sec."
},
"source": {
"$ref": "#/components/schemas/SourceResponse"
},
"meta": {
"$ref": "#/components/schemas/MetaResponse"
}
}
},
"ErrorResponse": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"detail": {
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
}
}
},
"title": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"pointer": {
"type": "string"
}
}
}
}
}
}
}
},
"Errors": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/billing-group_Error"
}
}
}
},
"EventData": {
"properties": {
"event_id": {
"type": "string",
"title": "Event Id"
},
"run_id": {
"type": "string",
"title": "Run Id"
},
"type": {
"$ref": "#/components/schemas/EventType"
},
"summary": {
"type": "string",
"title": "Summary"
},
"timestamp": {
"type": "string",
"format": "date-time",
"title": "Timestamp"
},
"step_id": {
"title": "Step Id",
"type": "string"
},
"agent_id": {
"title": "Agent Id",
"type": "string"
},
"payload": {
"title": "Payload",
"additionalProperties": true,
"type": "object"
},
"idempotency_key": {
"title": "Idempotency Key",
"type": "string"
}
},
"type": "object",
"required": [
"event_id",
"run_id",
"type",
"summary",
"timestamp"
],
"title": "EventData"
},
"EventNode": {
"type": "object",
"required": [
"id",
"product",
"event_name",
"cost",
"links",
"record",
"children"
],
"properties": {
"id": {
"type": "string",
"description": "Event identifier."
},
"product": {
"type": "string",
"description": "Product that generated this event."
},
"event_name": {
"type": "string",
"description": "Name of the event type."
},
"relationship": {
"oneOf": [
{
"$ref": "#/components/schemas/RelationshipInfo"
},
{
"type": "null"
}
],
"description": "Relationship to the parent node, null for root."
},
"cost": {
"$ref": "#/components/schemas/CostInfo"
},
"links": {
"$ref": "#/components/schemas/Links"
},
"record": {
"type": "object",
"description": "The underlying detail record data. Contents vary by record type.",
"additionalProperties": true
},
"children": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventNode"
},
"description": "Child events in the session tree."
}
}
},
"EventResponse": {
"properties": {
"data": {
"$ref": "#/components/schemas/EventData"
}
},
"type": "object",
"required": [
"data"
],
"title": "EventResponse"
},
"EventStatus": {
"type": "string",
"enum": [
"pending",
"in_progress",
"completed",
"failed"
],
"title": "EventStatus"
},
"EventType": {
"type": "string",
"enum": [
"status_change",
"step_started",
"step_completed",
"step_failed",
"tool_call",
"tool_result",
"message",
"error",
"custom"
],
"title": "EventType"
},
"EventsListResponse": {
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/EventData"
},
"type": "array",
"title": "Data"
},
"meta": {
"$ref": "#/components/schemas/Meta"
}
},
"type": "object",
"required": [
"data",
"meta"
],
"title": "EventsListResponse"
},
"ExecutionMode": {
"type": "string",
"enum": [
"external",
"managed"
],
"title": "ExecutionMode"
},
"ExportPortingOrdersCSVReport": {
"description": "The parameters for generating a porting orders CSV report.",
"type": "object",
"required": [
"filters"
],
"properties": {
"filters": {
"type": "object",
"description": "The filters to apply to the export porting order CSV report.",
"properties": {
"status__in": {
"type": "array",
"description": "The status of the porting orders to include in the report.",
"items": {
"type": "string",
"enum": [
"draft",
"in-process",
"submitted",
"exception",
"foc-date-confirmed",
"cancel-pending",
"ported",
"cancelled"
]
}
},
"customer_reference__in": {
"type": "array",
"description": "The customer reference of the porting orders to include in the report.",
"items": {
"type": "string",
"example": "my-customer-reference"
}
},
"created_at__lt": {
"type": "string",
"description": "The date and time the porting order was created before.",
"format": "date-time"
},
"created_at__gt": {
"type": "string",
"description": "The date and time the porting order was created after.",
"format": "date-time"
}
}
}
}
},
"ExportPortoutsCSVReport": {
"description": "The parameters for generating a port-outs CSV report.",
"type": "object",
"required": [
"filters"
],
"properties": {
"filters": {
"type": "object",
"description": "The filters to apply to the export port-out CSV report.",
"properties": {
"status__in": {
"type": "array",
"description": "The status of the port-outs to include in the report.",
"items": {
"type": "string",
"enum": [
"pending",
"authorized",
"ported",
"rejected",
"rejected-pending",
"canceled"
]
}
},
"customer_reference__in": {
"type": "array",
"description": "The customer reference of the port-outs to include in the report.",
"items": {
"type": "string",
"example": "my-customer-reference"
}
},
"end_user_name": {
"type": "string",
"description": "The end user name of the port-outs to include in the report.",
"example": "McPortersen"
},
"phone_numbers__overlaps": {
"type": "array",
"description": "A list of phone numbers that the port-outs phone numbers must overlap with.",
"items": {
"type": "string",
"example": "+1234567890"
}
},
"created_at__lt": {
"type": "string",
"description": "The date and time the port-out was created before.",
"format": "date-time"
},
"created_at__gt": {
"type": "string",
"description": "The date and time the port-out was created after.",
"format": "date-time"
}
}
}
}
},
"Expression": {
"title": "Expression",
"description": "A node in a deterministic expression AST. Exactly one variant is selected by the `type` discriminator. Terminal variants (`number_literal`, `string_literal`, `bool_literal`, `variable`) bottom out the recursion; `arithmetic`, `bool_op`, and `comparison` nest further sub-expressions.\n\nExtracted into a single named schema so the recursive union is defined once (was previously inlined at every operand site).",
"oneOf": [
{
"$ref": "#/components/schemas/ComparisonExpression"
},
{
"$ref": "#/components/schemas/BooleanOpExpression"
},
{
"$ref": "#/components/schemas/ArithmeticExpression"
},
{
"$ref": "#/components/schemas/DynamicVariableExpression"
},
{
"$ref": "#/components/schemas/StringLiteralExpression"
},
{
"$ref": "#/components/schemas/NumberLiteralExpression"
},
{
"$ref": "#/components/schemas/BooleanLiteralExpression"
}
],
"discriminator": {
"mapping": {
"arithmetic": "#/components/schemas/ArithmeticExpression",
"bool_literal": "#/components/schemas/BooleanLiteralExpression",
"bool_op": "#/components/schemas/BooleanOpExpression",
"comparison": "#/components/schemas/ComparisonExpression",
"number_literal": "#/components/schemas/NumberLiteralExpression",
"string_literal": "#/components/schemas/StringLiteralExpression",
"variable": "#/components/schemas/DynamicVariableExpression"
},
"propertyName": "type"
}
},
"ExpressionCondition": {
"description": "Edge condition evaluated as a deterministic expression AST.\n\nThe expression is computed against runtime dynamic variables and must\nevaluate to a boolean. Prefer this over `LLMCondition` when the rule is\na clean function of known variables \u2014 it's cheaper and predictable.",
"example": {
"expression": {
"left": {
"name": "user_age",
"type": "variable"
},
"op": ">=",
"right": {
"type": "number_literal",
"value": 18
},
"type": "comparison"
},
"type": "expression"
},
"properties": {
"expression": {
"$ref": "#/components/schemas/Expression"
},
"type": {
"const": "expression",
"title": "Type",
"type": "string"
}
},
"required": [
"type",
"expression"
],
"title": "ExpressionCondition",
"type": "object"
},
"ExternalConnection": {
"type": "object",
"title": "External Connection",
"properties": {
"id": {
"$ref": "#/components/schemas/external-voice-integrations_IntId"
},
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"example": "external_connection"
},
"active": {
"$ref": "#/components/schemas/ConnectionActive"
},
"credential_active": {
"$ref": "#/components/schemas/CredentialActive"
},
"external_sip_connection": {
"$ref": "#/components/schemas/ExternalSipConnection"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags associated with the connection.",
"example": [
"tag1",
"tag2"
]
},
"webhook_event_url": {
"type": "string",
"format": "uri",
"description": "The URL where webhooks related to this connection will be sent. Must include a scheme, such as 'https'.",
"example": "https://example.com"
},
"webhook_event_failover_url": {
"type": [
"string",
"null"
],
"format": "uri",
"description": "The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_api_version": {
"type": "string",
"description": "Determines which webhook format will be used, Telnyx API v1 or v2.",
"enum": [
"1",
"2"
],
"example": "1",
"default": "1"
},
"webhook_timeout_secs": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
},
"inbound": {
"type": "object",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the number of concurrent inbound calls to phone numbers associated with this connection.",
"default": null,
"example": 10
}
}
},
"outbound": {
"type": "object",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the number of concurrent outbound calls to phone numbers associated with this connection.",
"default": null,
"example": 10
},
"outbound_voice_profile_id": {
"$ref": "#/components/schemas/external-voice-integrations_OutboundVoiceProfileId"
}
}
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was created.",
"example": "2018-02-02T22:25:27.521Z"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was updated.",
"example": "2018-02-02T22:25:27.521Z"
}
},
"example": {
"id": "1930241863466354012",
"record_type": "external_connection",
"external_sip_connection": "zoom",
"credential_active": false,
"active": false,
"created_at": "2022-06-29T19:23:59Z",
"updated_at": "2022-06-29T19:39:47Z",
"outbound": {
"outbound_voice_profile_id": "1911630617284445511"
}
}
},
"ExternalConnectionPhoneNumber": {
"type": "object",
"title": "Phone number details with relation to an external connection",
"properties": {
"ticket_id": {
"$ref": "#/components/schemas/UUID"
},
"telephone_number": {
"type": "string",
"description": "Phone number in E164 format."
},
"number_id": {
"type": "string",
"description": "Phone number ID from the Telnyx API."
},
"civic_address_id": {
"type": "string",
"format": "uuid",
"description": "Identifies the civic address assigned to the phone number."
},
"location_id": {
"type": "string",
"format": "uuid",
"description": "Identifies the location assigned to the phone number."
},
"displayed_country_code": {
"type": "string",
"description": "The iso country code that will be displayed to the user when they receive a call from this phone number."
},
"acquired_capabilities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"FirstPartyAppAssignment",
"InboundCalling",
"Office365",
"OutboundCalling",
"UserAssignment"
],
"description": "The capabilities that are available for this phone number on Microsoft Teams."
}
}
}
},
"ExternalLLM": {
"properties": {
"model": {
"type": "string",
"description": "Model identifier to use with the external LLM endpoint."
},
"base_url": {
"type": "string",
"description": "Base URL for the external LLM endpoint."
},
"llm_api_key_ref": {
"type": "string",
"description": "Integration secret identifier for the external LLM API key."
},
"authentication_method": {
"$ref": "#/components/schemas/AuthenticationMethod"
},
"certificate_ref": {
"type": "string",
"description": "Integration secret identifier for the client certificate used with certificate authentication."
},
"token_retrieval_url": {
"type": "string",
"description": "URL used to retrieve an access token when certificate authentication is enabled."
},
"forward_metadata": {
"type": "boolean",
"default": false,
"description": "When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits."
}
},
"type": "object",
"required": [
"model",
"base_url"
],
"title": "ExternalLLM"
},
"ExternalLLMReq": {
"properties": {
"model": {
"type": "string",
"description": "Model identifier to use with the external LLM endpoint."
},
"base_url": {
"type": "string",
"description": "Base URL for the external LLM endpoint."
},
"llm_api_key_ref": {
"type": "string",
"description": "Integration secret identifier for the external LLM API key."
},
"authentication_method": {
"$ref": "#/components/schemas/AuthenticationMethod"
},
"certificate_ref": {
"type": "string",
"description": "Integration secret identifier for the client certificate used with certificate authentication."
},
"token_retrieval_url": {
"type": "string",
"description": "URL used to retrieve an access token when certificate authentication is enabled."
},
"forward_metadata": {
"type": "boolean",
"default": false,
"description": "When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits."
}
},
"type": "object",
"required": [
"model",
"base_url"
],
"title": "ExternalLLMReq"
},
"ExternalSipConnection": {
"title": "External SIP Connection",
"type": "string",
"description": "The service that will be consuming this connection.",
"enum": [
"zoom",
"operator_connect"
],
"default": "zoom",
"example": "zoom"
},
"ExternalSipConnectionZoomOnly": {
"title": "External SIP Connection",
"type": "string",
"description": "The service that will be consuming this connection.",
"enum": [
"zoom"
],
"default": "zoom",
"example": "zoom"
},
"ExternalVetting": {
"title": "ExternalVetting",
"type": "object",
"properties": {
"evpId": {
"title": "Evpid",
"maxLength": 10,
"type": "string",
"description": "External vetting provider ID for the brand."
},
"vettingId": {
"title": "vettingId",
"type": "string",
"description": "Unique ID that identifies a vetting transaction performed by a vetting provider. This ID is provided by the vetting provider at time of vetting."
},
"vettingToken": {
"title": "vettingToken",
"type": "string",
"description": "Required by some providers for vetting record confirmation."
},
"vettingScore": {
"title": "vettingScore",
"type": "integer",
"description": "Vetting score ranging from 0-100."
},
"vettingClass": {
"title": "Vettingclass",
"type": "string",
"description": "Identifies the vetting classification."
},
"vettedDate": {
"title": "vettedDate",
"type": "string",
"description": "Vetting effective date. This is the date when vetting was completed, or the starting effective date in ISO 8601 format. If this date is missing, then the vetting was not complete or not valid."
},
"createDate": {
"title": "createDate",
"type": "string",
"description": "Vetting submission date. This is the date when the vetting request is generated in ISO 8601 format."
}
}
},
"ExternalVettingList": {
"title": "External vetting list",
"type": "array",
"items": {
"$ref": "#/components/schemas/ExternalVetting"
}
},
"ExternalWdrDetailRecordDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "WDR id",
"example": "3ca7bd3d-7d82-4e07-9df4-009123068320"
},
"created_at": {
"type": "string",
"description": "Record created time",
"format": "date-time",
"example": "2020-07-01T00:00:00-06:00"
},
"cost": {
"$ref": "#/components/schemas/WirelessCost"
},
"mcc": {
"type": "string",
"description": "Mobile country code.",
"example": "204"
},
"mnc": {
"type": "string",
"description": "Mobile network code.",
"example": "01"
},
"downlink_data": {
"$ref": "#/components/schemas/DownlinkData"
},
"duration_seconds": {
"type": "number",
"description": "Session duration in seconds.",
"example": 1
},
"imsi": {
"type": "string",
"description": "International mobile subscriber identity.",
"example": "123"
},
"rate": {
"$ref": "#/components/schemas/WirelessRate"
},
"sim_group_name": {
"type": "string",
"description": "Defined sim group name",
"example": "sim name"
},
"sim_group_id": {
"type": "string",
"description": "Sim group unique identifier",
"example": "f05a189f-7c46-4531-ac56-1460dc465a42"
},
"sim_card_id": {
"type": "string",
"description": "Sim card unique identifier",
"example": "877f80a6-e5b2-4687-9a04-88076265720f"
},
"phone_number": {
"type": "string",
"description": "Phone number",
"example": "+12345678910"
},
"uplink_data": {
"$ref": "#/components/schemas/UplinkData"
},
"record_type": {
"type": "string",
"example": "wdr"
}
}
},
"ExternalWdrGetDetailResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ExternalWdrDetailRecordDto"
}
},
"meta": {
"$ref": "#/components/schemas/wireless-public_PaginationMeta"
}
}
},
"FallbackConfig": {
"properties": {
"model": {
"type": "string",
"description": "Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable."
},
"llm_api_key_ref": {
"type": "string",
"description": "Integration secret identifier for the fallback model API key."
},
"external_llm": {
"$ref": "#/components/schemas/ExternalLLM"
}
},
"type": "object",
"title": "FallbackConfig"
},
"FallbackConfigReq": {
"properties": {
"model": {
"type": "string",
"description": "Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable."
},
"llm_api_key_ref": {
"type": "string",
"description": "Integration secret identifier for the fallback model API key."
},
"external_llm": {
"$ref": "#/components/schemas/ExternalLLMReq"
}
},
"type": "object",
"title": "FallbackConfigReq"
},
"Fax": {
"type": "object",
"properties": {
"record_type": {
"description": "Identifies the type of the resource.",
"type": "string",
"example": "fax",
"enum": [
"fax"
]
},
"id": {
"$ref": "#/components/schemas/Id"
},
"connection_id": {
"$ref": "#/components/schemas/ConnectionId"
},
"direction": {
"$ref": "#/components/schemas/Direction"
},
"media_url": {
"$ref": "#/components/schemas/MediaUrl"
},
"media_name": {
"$ref": "#/components/schemas/MediaName"
},
"to": {
"$ref": "#/components/schemas/To"
},
"from": {
"$ref": "#/components/schemas/From"
},
"from_display_name": {
"description": "The string used as the caller id name (SIP From Display Name) presented to the destination (`to` number).",
"type": "string",
"example": "Company Name"
},
"quality": {
"$ref": "#/components/schemas/Quality"
},
"status": {
"description": "Status of the fax",
"type": "string",
"example": "queued",
"enum": [
"queued",
"media.processed",
"originated",
"sending",
"delivered",
"failed",
"initiated",
"receiving",
"media.processing",
"received"
]
},
"webhook_url": {
"description": "URL that will receive fax webhooks",
"type": "string"
},
"webhook_failover_url": {
"description": "Optional failover URL that will receive fax webhooks if webhook_url doesn't return a 2XX response",
"type": "string"
},
"store_media": {
"description": "Should fax media be stored on temporary URL. It does not support media_name.",
"type": "boolean"
},
"stored_media_url": {
"description": "If store_media was set to true, this is a link to temporary location. Link expires after 10 minutes.",
"type": "string"
},
"preview_url": {
"description": "If `store_preview` was set to `true`, this is a link to temporary location. Link expires after 10 minutes.",
"type": "string"
},
"client_state": {
"description": "State received from a command.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
},
"created_at": {
"description": "ISO 8601 timestamp when resource was created",
"type": "string",
"format": "date-time"
},
"updated_at": {
"description": "ISO 8601 timestamp when resource was updated",
"type": "string",
"format": "date-time"
}
},
"example": {
"record_type": "fax",
"id": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"connection_id": "c-1",
"direction": "outbound",
"from": "+123",
"to": "+456",
"media_url": "http://www.example.com/fax.pdf",
"store_media": true,
"stored_media_url": "https://s3.amazonaws.com/faxes-dev/user-1/cf4a6b52-bf8e-4945-9f49-611d0d2b083b.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=xxxxxxxxxx%2F20200505%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200505T095917Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=fac2af40464fcc77673ad762db86e34f9c1b91a82699b5578c5327f53874df51",
"preview_url": "https://s3.amazonaws.com/faxes-dev/user-1/cf4a6b52-bf8e-4945-9f49-611d0d2b083b_preview.tiff?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=xxxxxxxxxx%2F20200505%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200505T095917Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=fac2af40464fcc77673ad762db86e34f9c1b91a82699b5578c5327f53874df51",
"quality": "high",
"webhook_url": "http://www.example.com/webhooks",
"webhook_failover_url": "",
"status": "queued",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"created_at": "2020-05-05T09:59:12Z",
"updated_at": "2020-05-05T09:59:12Z"
}
},
"FaxApplication": {
"type": "object",
"title": "Fax Application",
"properties": {
"id": {
"$ref": "#/components/schemas/IntId"
},
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"example": "fax_application"
},
"application_name": {
"$ref": "#/components/schemas/ApplicationName"
},
"active": {
"$ref": "#/components/schemas/ConnectionActive"
},
"anchorsite_override": {
"$ref": "#/components/schemas/AnchorsiteOverride"
},
"webhook_event_url": {
"$ref": "#/components/schemas/WebhookEventUrl"
},
"webhook_event_failover_url": {
"$ref": "#/components/schemas/WebhookEventFailoverUrl"
},
"webhook_timeout_secs": {
"$ref": "#/components/schemas/WebhookTimeoutSecs"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags associated with the Fax Application.",
"example": [
"tag1",
"tag2"
],
"default": []
},
"inbound": {
"type": "object",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the number of concurrent inbound calls to phone numbers associated with this connection.",
"default": null,
"example": 10
},
"sip_subdomain": {
"type": "string",
"description": "Specifies a subdomain that can be used to receive Inbound calls to a Connection, in the same way a phone number is used, from a SIP endpoint. Example: the subdomain \"example.sip.telnyx.com\" can be called from any SIP endpoint by using the SIP URI \"sip:@example.sip.telnyx.com\" where the user part can be any alphanumeric value. Please note TLS encrypted calls are not allowed for subdomain calls.",
"default": null,
"example": "example"
},
"sip_subdomain_receive_settings": {
"type": "string",
"description": "This option can be enabled to receive calls from: \"Anyone\" (any SIP endpoint in the public Internet) or \"Only my connections\" (any connection assigned to the same Telnyx user).",
"enum": [
"only_my_connections",
"from_anyone"
],
"default": "from_anyone",
"example": "only_my_connections"
}
}
},
"outbound": {
"type": "object",
"properties": {
"channel_limit": {
"type": "integer",
"description": "When set, this will limit the number of concurrent outbound calls to phone numbers associated with this connection.",
"default": null,
"example": 10
},
"outbound_voice_profile_id": {
"$ref": "#/components/schemas/OutboundVoiceProfileId"
}
}
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was created.",
"example": "2018-02-02T22:25:27.521Z"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was updated.",
"example": "2018-02-02T22:25:27.521Z"
}
},
"example": {
"id": "1293384261075731499",
"record_type": "fax_application",
"application_name": "fax-router",
"active": false,
"anchorsite_override": "Amsterdam, Netherlands",
"webhook_event_url": "https://example.com",
"webhook_event_failover_url": "https://failover.example.com",
"webhook_timeout_secs": 25,
"inbound": {
"channel_limit": 10,
"sip_subdomain": "example",
"sip_subdomain_receive_settings": "only_my_connections"
},
"outbound": {
"channel_limit": 10,
"outbound_voice_profile_id": "1293384261075731499"
},
"created_at": "2018-02-02T22:25:27.521Z",
"updated_at": "2018-02-02T22:25:27.521Z"
}
},
"FaxDelivered": {
"type": "object",
"example": {
"data": {
"event_type": "fax.delivered",
"id": "95479a2e-b947-470a-a88f-2da6dd07ae0f",
"occurred_at": "2020-05-05T13:08:22.039204Z",
"payload": {
"call_duration_secs": 25,
"connection_id": "234423",
"direction": "outbound",
"fax_id": "f8338808-3dc6-4f2b-942a-5d1f39255784",
"from": "+17733372107",
"original_media_url": "http://www.example.com/fax.pdf",
"page_count": 2,
"status": "delivered",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"to": "+15107882622",
"user_id": "19a75cea-02c6-4b9a-84fa-c9bc8341feb8"
},
"record_type": "event"
},
"meta": {
"attempt": 1,
"delivered_to": "https://www.example.com/webhooks"
}
},
"properties": {
"data": {
"type": "object",
"properties": {
"record_type": {
"$ref": "#/components/schemas/programmable-fax_RecordType"
},
"id": {
"$ref": "#/components/schemas/Id"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime of when the event occurred.",
"example": "2020-05-05T13:08:22.039204Z"
},
"event_type": {
"type": "string",
"example": "fax.delivered",
"enum": [
"fax.delivered"
],
"description": "The type of event being delivered."
},
"payload": {
"type": "object",
"properties": {
"call_duration_secs": {
"description": "The duration of the call in seconds.",
"type": "integer",
"example": 25
},
"connection_id": {
"$ref": "#/components/schemas/ConnectionId"
},
"direction": {
"$ref": "#/components/schemas/Direction"
},
"fax_id": {
"$ref": "#/components/schemas/FaxId"
},
"original_media_url": {
"$ref": "#/components/schemas/OriginalMediaUrl"
},
"media_name": {
"$ref": "#/components/schemas/MediaName"
},
"to": {
"$ref": "#/components/schemas/To"
},
"from": {
"$ref": "#/components/schemas/From"
},
"user_id": {
"$ref": "#/components/schemas/UserId"
},
"page_count": {
"description": "Number of transferred pages",
"type": "integer",
"example": 2
},
"status": {
"type": "string",
"example": "delivered",
"enum": [
"delivered"
],
"description": "The status of the fax."
},
"client_state": {
"description": "State received from a command.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
}
}
}
}
},
"meta": {
"type": "object",
"description": "Metadata about the webhook delivery.",
"properties": {
"attempt": {
"type": "integer",
"description": "The delivery attempt number.",
"example": 1
},
"delivered_to": {
"type": "string",
"format": "uri",
"description": "The URL the webhook was delivered to.",
"example": "https://www.example.com/webhooks"
}
}
}
}
},
"FaxEmailRecipient": {
"title": "Fax Email Recipient",
"type": [
"string",
"null"
],
"description": "Specifies an email address where faxes sent to this application will be forwarded to (as pdf or tiff attachments)",
"default": null,
"example": "user@example.com"
},
"FaxFailed": {
"type": "object",
"example": {
"data": {
"event_type": "fax.failed",
"id": "95479a2e-b947-470a-a88f-2da6dd07ae0f",
"occurred_at": "2020-05-05T13:08:22.039204Z",
"payload": {
"connection_id": "234423",
"direction": "outbound",
"failure_reason": "rejected",
"fax_id": "f8338808-3dc6-4f2b-942a-5d1f39255784",
"from": "+17733372107",
"original_media_url": "http://www.example.com/fax.pdf",
"status": "failed",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"to": "+15107882622",
"user_id": "19a75cea-02c6-4b9a-84fa-c9bc8341feb8"
},
"record_type": "event"
},
"meta": {
"attempt": 1,
"delivered_to": "https://www.example.com/webhooks"
}
},
"properties": {
"data": {
"type": "object",
"properties": {
"record_type": {
"$ref": "#/components/schemas/programmable-fax_RecordType"
},
"id": {
"$ref": "#/components/schemas/Id"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime of when the event occurred.",
"example": "2020-05-05T13:08:22.039204Z"
},
"event_type": {
"type": "string",
"example": "fax.failed",
"enum": [
"fax.failed"
],
"description": "The type of event being delivered."
},
"payload": {
"type": "object",
"properties": {
"connection_id": {
"$ref": "#/components/schemas/ConnectionId"
},
"direction": {
"$ref": "#/components/schemas/Direction"
},
"fax_id": {
"$ref": "#/components/schemas/FaxId"
},
"original_media_url": {
"$ref": "#/components/schemas/OriginalMediaUrl"
},
"media_name": {
"$ref": "#/components/schemas/MediaName"
},
"to": {
"$ref": "#/components/schemas/To"
},
"from": {
"$ref": "#/components/schemas/From"
},
"user_id": {
"$ref": "#/components/schemas/UserId"
},
"failure_reason": {
"type": "string",
"enum": [
"rejected"
],
"description": "Cause of the sending failure"
},
"status": {
"type": "string",
"example": "failed",
"enum": [
"failed"
],
"description": "The status of the fax."
},
"client_state": {
"description": "State received from a command.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
}
}
}
}
},
"meta": {
"type": "object",
"description": "Metadata about the webhook delivery.",
"properties": {
"attempt": {
"type": "integer",
"description": "The delivery attempt number.",
"example": 1
},
"delivered_to": {
"type": "string",
"format": "uri",
"description": "The URL the webhook was delivered to.",
"example": "https://www.example.com/webhooks"
}
}
}
}
},
"FaxId": {
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0",
"description": "Identifies the fax."
},
"FaxMediaProcessed": {
"type": "object",
"example": {
"data": {
"event_type": "fax.media.processed",
"id": "95479a2e-b947-470a-a88f-2da6dd07ae0f",
"occurred_at": "2020-05-05T13:08:22.039204Z",
"payload": {
"connection_id": "234423",
"direction": "outbound",
"fax_id": "f8338808-3dc6-4f2b-942a-5d1f39255784",
"from": "+17733372107",
"original_media_url": "http://www.example.com/fax.pdf",
"status": "media.processed",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"to": "+15107882622",
"user_id": "19a75cea-02c6-4b9a-84fa-c9bc8341feb8"
},
"record_type": "event"
},
"meta": {
"attempt": 1,
"delivered_to": "https://www.example.com/webhooks"
}
},
"properties": {
"data": {
"type": "object",
"properties": {
"record_type": {
"$ref": "#/components/schemas/programmable-fax_RecordType"
},
"id": {
"$ref": "#/components/schemas/Id"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime of when the event occurred.",
"example": "2020-05-05T13:08:22.039204Z"
},
"event_type": {
"type": "string",
"example": "fax.media.processed",
"enum": [
"fax.media.processed"
],
"description": "The type of event being delivered."
},
"payload": {
"type": "object",
"properties": {
"connection_id": {
"$ref": "#/components/schemas/ConnectionId"
},
"direction": {
"$ref": "#/components/schemas/Direction"
},
"fax_id": {
"$ref": "#/components/schemas/FaxId"
},
"original_media_url": {
"$ref": "#/components/schemas/OriginalMediaUrl"
},
"media_name": {
"$ref": "#/components/schemas/MediaName"
},
"to": {
"$ref": "#/components/schemas/To"
},
"from": {
"$ref": "#/components/schemas/From"
},
"user_id": {
"$ref": "#/components/schemas/UserId"
},
"status": {
"type": "string",
"example": "media.processed",
"enum": [
"media.processed"
],
"description": "The status of the fax."
},
"client_state": {
"description": "State received from a command.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
}
}
}
}
},
"meta": {
"type": "object",
"description": "Metadata about the webhook delivery.",
"properties": {
"attempt": {
"type": "integer",
"description": "The delivery attempt number.",
"example": 1
},
"delivered_to": {
"type": "string",
"format": "uri",
"description": "The URL the webhook was delivered to.",
"example": "https://www.example.com/webhooks"
}
}
}
}
},
"FaxQueued": {
"type": "object",
"example": {
"data": {
"event_type": "fax.queued",
"id": "95479a2e-b947-470a-a88f-2da6dd07ae0f",
"occurred_at": "2020-05-05T13:08:22.039204Z",
"payload": {
"connection_id": "234423",
"direction": "outbound",
"fax_id": "f8338808-3dc6-4f2b-942a-5d1f39255784",
"from": "+17733372107",
"original_media_url": "http://www.example.com/fax.pdf",
"status": "queued",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"to": "+15107882622",
"user_id": "19a75cea-02c6-4b9a-84fa-c9bc8341feb8"
},
"record_type": "event"
},
"meta": {
"attempt": 1,
"delivered_to": "https://www.example.com/webhooks"
}
},
"properties": {
"data": {
"type": "object",
"properties": {
"record_type": {
"$ref": "#/components/schemas/programmable-fax_RecordType"
},
"id": {
"$ref": "#/components/schemas/Id"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime of when the event occurred.",
"example": "2020-05-05T13:08:22.039204Z"
},
"event_type": {
"type": "string",
"example": "fax.queued",
"enum": [
"fax.queued"
],
"description": "The type of event being delivered."
},
"payload": {
"type": "object",
"properties": {
"connection_id": {
"$ref": "#/components/schemas/ConnectionId"
},
"direction": {
"$ref": "#/components/schemas/Direction"
},
"fax_id": {
"$ref": "#/components/schemas/FaxId"
},
"original_media_url": {
"$ref": "#/components/schemas/OriginalMediaUrl"
},
"media_name": {
"$ref": "#/components/schemas/MediaName"
},
"to": {
"$ref": "#/components/schemas/To"
},
"from": {
"$ref": "#/components/schemas/From"
},
"user_id": {
"$ref": "#/components/schemas/UserId"
},
"status": {
"type": "string",
"example": "queued",
"enum": [
"queued"
],
"description": "The status of the fax."
},
"client_state": {
"description": "State received from a command.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
}
}
}
}
},
"meta": {
"type": "object",
"description": "Metadata about the webhook delivery.",
"properties": {
"attempt": {
"type": "integer",
"description": "The delivery attempt number.",
"example": 1
},
"delivered_to": {
"type": "string",
"format": "uri",
"description": "The URL the webhook was delivered to.",
"example": "https://www.example.com/webhooks"
}
}
}
}
},
"FaxSendingStarted": {
"type": "object",
"example": {
"data": {
"event_type": "fax.sending.started",
"id": "95479a2e-b947-470a-a88f-2da6dd07ae0f",
"occurred_at": "2020-05-05T13:08:22.039204Z",
"payload": {
"connection_id": "234423",
"direction": "outbound",
"fax_id": "f8338808-3dc6-4f2b-942a-5d1f39255784",
"from": "+17733372107",
"original_media_url": "http://www.example.com/fax.pdf",
"status": "sending",
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"to": "+15107882622",
"user_id": "19a75cea-02c6-4b9a-84fa-c9bc8341feb8"
},
"record_type": "event"
},
"meta": {
"attempt": 1,
"delivered_to": "https://www.example.com/webhooks"
}
},
"properties": {
"data": {
"type": "object",
"properties": {
"record_type": {
"$ref": "#/components/schemas/programmable-fax_RecordType"
},
"id": {
"$ref": "#/components/schemas/Id"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime of when the event occurred.",
"example": "2020-05-05T13:08:22.039204Z"
},
"event_type": {
"type": "string",
"example": "fax.sending.started",
"enum": [
"fax.sending.started"
],
"description": "The type of event being delivered."
},
"payload": {
"type": "object",
"properties": {
"connection_id": {
"$ref": "#/components/schemas/ConnectionId"
},
"direction": {
"$ref": "#/components/schemas/Direction"
},
"fax_id": {
"$ref": "#/components/schemas/FaxId"
},
"original_media_url": {
"$ref": "#/components/schemas/OriginalMediaUrl"
},
"media_name": {
"$ref": "#/components/schemas/MediaName"
},
"to": {
"$ref": "#/components/schemas/To"
},
"from": {
"$ref": "#/components/schemas/From"
},
"user_id": {
"$ref": "#/components/schemas/UserId"
},
"status": {
"type": "string",
"example": "sending",
"enum": [
"sending"
],
"description": "The status of the fax."
},
"client_state": {
"description": "State received from a command.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
}
}
}
}
},
"meta": {
"type": "object",
"description": "Metadata about the webhook delivery.",
"properties": {
"attempt": {
"type": "integer",
"description": "The delivery attempt number.",
"example": 1
},
"delivered_to": {
"type": "string",
"format": "uri",
"description": "The URL the webhook was delivered to.",
"example": "https://www.example.com/webhooks"
}
}
}
}
},
"Feature": {
"properties": {
"name": {
"type": "string",
"example": "sms"
}
},
"example": {
"name": "sms"
},
"type": "object"
},
"FieldMapping": {
"type": "object",
"required": [
"local_field",
"parent_field"
],
"properties": {
"local_field": {
"type": "string",
"description": "Field name on the child record."
},
"parent_field": {
"type": "string",
"description": "Field name on the parent record."
}
}
},
"Filter": {
"type": "object",
"description": "Query filter criteria. Note: The first filter object must specify filter_type as 'and'. You cannot follow an 'or' with another 'and'.",
"properties": {
"filter_type": {
"type": "string",
"description": "Logical operator for combining filters",
"enum": [
"and",
"or"
]
},
"cli": {
"type": "string",
"description": "Calling line identification (caller ID)",
"example": "+13129457420"
},
"cli_filter": {
"type": "string",
"description": "Filter type for CLI matching",
"enum": [
"contains",
"starts_with",
"ends_with"
]
},
"cld": {
"type": "string",
"description": "Called line identification (destination number)",
"example": "+13129457420"
},
"cld_filter": {
"type": "string",
"description": "Filter type for CLD matching",
"enum": [
"contains",
"starts_with",
"ends_with"
]
},
"tags_list": {
"type": "string",
"description": "Tag name to filter by",
"example": "tag1"
},
"billing_group": {
"type": "string",
"description": "Billing group UUID to filter by",
"example": "adfaa016-f921-4b6c-97bb-e4c1dad231c5"
}
}
},
"FinalFrame": {
"type": "object",
"description": "Server-to-client frame indicating synthesis is complete for the current text.",
"properties": {
"type": {
"type": "string",
"const": "final",
"description": "Frame type identifier."
},
"audio": {
"type": "null",
"description": "Always `null` for the final frame."
},
"text": {
"type": "string",
"description": "Empty string."
},
"isFinal": {
"type": "boolean",
"description": "Always `true`.",
"const": true
},
"timeToFirstAudioFrameMs": {
"type": "integer",
"description": "Present if this was the first response frame."
}
}
},
"FineTuningJob": {
"type": "object",
"title": "FineTuningJob",
"description": "The `fine_tuning.job` object represents a fine-tuning job that has been created through the API.",
"properties": {
"id": {
"type": "string",
"description": "The name of the fine-tuned model that is being created."
},
"created_at": {
"type": "integer",
"description": "The Unix timestamp (in seconds) for when the fine-tuning job was created."
},
"finished_at": {
"type": [
"integer",
"null"
],
"description": "The Unix timestamp (in seconds) for when the fine-tuning job was finished. The value will be null if the fine-tuning job is still running."
},
"hyperparameters": {
"type": "object",
"description": "The hyperparameters used for the fine-tuning job.",
"properties": {
"n_epochs": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 3,
"description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset."
}
},
"required": [
"n_epochs"
]
},
"model": {
"type": "string",
"description": "The base model that is being fine-tuned."
},
"organization_id": {
"type": "string",
"description": "The organization that owns the fine-tuning job."
},
"status": {
"type": "string",
"description": "The current status of the fine-tuning job.",
"enum": [
"queued",
"running",
"succeeded",
"failed",
"cancelled"
]
},
"trained_tokens": {
"type": [
"integer",
"null"
],
"description": "The total number of billable tokens processed by this fine-tuning job. The value will be null if the fine-tuning job is still running."
},
"training_file": {
"type": "string",
"description": "The storage bucket or object used for training."
}
},
"required": [
"created_at",
"finished_at",
"hyperparameters",
"id",
"model",
"organization_id",
"status",
"trained_tokens",
"training_file"
]
},
"FineTuningJobsListData": {
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/FineTuningJob"
},
"type": "array"
}
},
"type": "object",
"required": [
"data"
],
"title": "FineTuningJobListData"
},
"FirstCommandTimeout": {
"title": "First Command Timeout",
"type": "boolean",
"description": "Specifies whether calls to phone numbers associated with this connection should hangup after timing out.",
"default": false,
"example": true
},
"FirstCommandTimeoutSecs": {
"title": "First Command Timeout Secs",
"type": "integer",
"description": "Specifies how many seconds to wait before timing out a dial command.",
"default": 30,
"example": 10
},
"FlowEdge": {
"description": "Directed transition from one node to a target, gated by a condition.\n\nThe target is either another node in the same flow (`NodeTarget`) or a\ndifferent assistant (`AssistantTarget`). Multiple edges may share a\n`start_node_id`; the runtime evaluates them in the order they're\ndeclared and takes the first whose condition is true.",
"properties": {
"condition": {
"description": "Condition that gates the transition. Discriminated by `type`: `llm`, `expression`.",
"discriminator": {
"mapping": {
"expression": "#/components/schemas/ExpressionCondition",
"llm": "#/components/schemas/LLMCondition",
"default": "#/components/schemas/DefaultCondition"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/components/schemas/LLMCondition"
},
{
"$ref": "#/components/schemas/ExpressionCondition"
},
{
"$ref": "#/components/schemas/DefaultCondition"
}
],
"title": "Condition"
},
"id": {
"description": "Caller-supplied unique identifier for this edge within the flow.",
"example": "e_age_gate",
"title": "Id",
"type": "string"
},
"start_node_id": {
"description": "ID of the node this edge transitions away from.",
"title": "Start Node Id",
"type": "string"
},
"target": {
"description": "Destination of the transition. Discriminated by `type`: `node` (jump to another node in this flow) or `assistant` (hand off to a different assistant).",
"discriminator": {
"mapping": {
"assistant": "#/components/schemas/AssistantTarget",
"node": "#/components/schemas/NodeTarget"
},
"propertyName": "type"
},
"oneOf": [
{
"$ref": "#/components/schemas/NodeTarget"
},
{
"$ref": "#/components/schemas/AssistantTarget"
}
],
"title": "Target"
}
},
"required": [
"id",
"start_node_id",
"target",
"condition"
],
"title": "FlowEdge",
"type": "object"
},
"FlowNode": {
"description": "One step in a conversation flow, as returned by the API.",
"properties": {
"external_llm": {
"$ref": "#/components/schemas/ExternalLLM",
"description": "Override for `Assistant.external_llm` while this node is active. Use this to route a node's turns to a different external LLM (different `model`, `base_url`, credentials). Part of the LLM bundle \u2014 see `model` for cascade semantics. Mutually exclusive with `model` on the node (a single LLM identity per node)."
},
"id": {
"description": "Caller-supplied unique identifier for this node within the flow.",
"title": "Id",
"type": "string"
},
"instructions": {
"description": "Prompt that drives the LLM while this node is active. Required.",
"title": "Instructions",
"type": "string"
},
"instructions_mode": {
"default": "replace",
"description": "How `instructions` combine with the assistant-level instructions. `replace` (default): the node's instructions are used alone. `append`: the node's instructions are concatenated after the assistant's instructions.",
"enum": [
"replace",
"append"
],
"title": "Instructions Mode",
"type": "string"
},
"llm_api_key_ref": {
"description": "Override for `Assistant.llm_api_key_ref` while this node is active. Part of the LLM bundle \u2014 see `model` for cascade semantics.",
"title": "Llm Api Key Ref",
"type": "string"
},
"model": {
"description": "Override for `Assistant.model` while this node is active. Part of the LLM bundle (`model` + `llm_api_key_ref` + `external_llm`): when any of the three is set on the node, all three are taken from the node and the assistant-level LLM identity is not consulted. When none of the three is set, the assistant's bundle cascades unchanged.",
"title": "Model",
"type": "string"
},
"name": {
"description": "Optional human-readable label, displayed in authoring UIs.",
"title": "Name",
"type": "string"
},
"position": {
"$ref": "#/components/schemas/NodePosition",
"description": "Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored by the runtime; round-trips so frontends can persist graph layout across reloads."
},
"shared_tool_ids": {
"description": "IDs of shared (org-level) tools available at this node. Knowledge bases are attached the same way \u2014 via a shared retrieval tool. Tools not listed here are not callable while this node is active.",
"items": {
"type": "string"
},
"title": "Shared Tool Ids",
"type": "array"
},
"tools": {
"description": "Full tool definitions for this node, resolved from `shared_tool_ids` server-side. Populated on responses so clients can render the flow without a follow-up fetch per shared tool. Ignored on input \u2014 set `shared_tool_ids` to configure a node's tools.",
"items": {
"$ref": "#/components/schemas/AssistantTools"
},
"title": "Tools",
"type": "array"
},
"tools_mode": {
"default": "replace",
"description": "How `shared_tool_ids` combine with the assistant-level tool set. `replace` (default): only the node's tools are callable. `append`: the node's tools are added to the assistant's tools. Ignored when `shared_tool_ids` is null.",
"enum": [
"replace",
"append"
],
"title": "Tools Mode",
"type": "string"
},
"transcription": {
"$ref": "#/components/schemas/TranscriptionSettings",
"description": "Per-node transcription override (response form)."
},
"type": {
"const": "prompt",
"default": "prompt",
"description": "Node kind discriminator. `prompt` is an LLM-driven step.",
"title": "Type",
"type": "string"
},
"voice_settings": {
"$ref": "#/components/schemas/VoiceSettings",
"description": "Per-node voice override (response form)."
}
},
"required": [
"id",
"instructions"
],
"title": "FlowNode",
"type": "object"
},
"FlowNodeReq": {
"description": "One step in a conversation flow, as supplied by API clients.\n\nEach node carries the prompt, tool scope, and optional overrides for\nmodel/voice/transcription. Unset overrides cascade from the assistant.",
"example": {
"id": "n_intake",
"instructions": "Greet the caller and ask what they're calling about.",
"name": "Intake",
"position": {
"x": 120,
"y": 80
},
"shared_tool_ids": [
"tool-faq-kb"
],
"type": "prompt"
},
"properties": {
"external_llm": {
"$ref": "#/components/schemas/ExternalLLMReq",
"description": "Override for `Assistant.external_llm` while this node is active. Use this to route a node's turns to a different external LLM (different `model`, `base_url`, credentials). Part of the LLM bundle \u2014 see `model` for cascade semantics. Mutually exclusive with `model` on the node (a single LLM identity per node)."
},
"id": {
"description": "Caller-supplied unique identifier for this node within the flow.",
"example": "n_intake",
"title": "Id",
"type": "string"
},
"instructions": {
"description": "Prompt that drives the LLM while this node is active. Required.",
"example": "Greet the caller and ask what they're calling about.",
"title": "Instructions",
"type": "string"
},
"instructions_mode": {
"default": "replace",
"description": "How `instructions` combine with the assistant-level instructions. `replace` (default): the node's instructions are used alone. `append`: the node's instructions are concatenated after the assistant's instructions.",
"enum": [
"replace",
"append"
],
"title": "Instructions Mode",
"type": "string"
},
"llm_api_key_ref": {
"description": "Override for `Assistant.llm_api_key_ref` while this node is active. Part of the LLM bundle \u2014 see `model` for cascade semantics.",
"example": "my-key-ref",
"title": "Llm Api Key Ref",
"type": "string"
},
"model": {
"description": "Override for `Assistant.model` while this node is active. Part of the LLM bundle (`model` + `llm_api_key_ref` + `external_llm`): when any of the three is set on the node, all three are taken from the node and the assistant-level LLM identity is not consulted. When none of the three is set, the assistant's bundle cascades unchanged.",
"example": "moonshotai/Kimi-K2.6",
"title": "Model",
"type": "string"
},
"name": {
"description": "Optional human-readable label, displayed in authoring UIs.",
"example": "Intake",
"title": "Name",
"type": "string"
},
"position": {
"$ref": "#/components/schemas/NodePosition",
"description": "Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored by the runtime; round-trips so frontends can persist graph layout across reloads.",
"example": {
"x": 120,
"y": 80
}
},
"shared_tool_ids": {
"description": "IDs of shared (org-level) tools available at this node. Knowledge bases are attached the same way \u2014 via a shared retrieval tool. Tools not listed here are not callable while this node is active.",
"example": [
"tool-faq-kb",
"tool-billing-lookup"
],
"items": {
"type": "string"
},
"title": "Shared Tool Ids",
"type": "array"
},
"tools_mode": {
"default": "replace",
"description": "How `shared_tool_ids` combine with the assistant-level tool set. `replace` (default): only the node's tools are callable. `append`: the node's tools are added to the assistant's tools. Ignored when `shared_tool_ids` is null.",
"enum": [
"replace",
"append"
],
"title": "Tools Mode",
"type": "string"
},
"transcription": {
"$ref": "#/components/schemas/TranscriptionSettings",
"description": "Per-node transcription override (model/language/region). Unset fields cascade from the assistant-level transcription."
},
"type": {
"const": "prompt",
"default": "prompt",
"description": "Node kind discriminator. `prompt` (default) is an LLM-driven step; `tool` is a standalone tool execution (see `ToolNodeReq`).",
"title": "Type",
"type": "string"
},
"voice_settings": {
"$ref": "#/components/schemas/VoiceSettings",
"description": "Per-node voice override. Only fields set here override the assistant-level voice settings; unset fields cascade."
}
},
"required": [
"id",
"instructions"
],
"title": "FlowNodeReq",
"type": "object"
},
"ForbiddenError": {
"allOf": [
{
"$ref": "#/components/schemas/GenericError"
},
{
"properties": {
"code": {
"example": "10010",
"type": "string"
},
"title": {
"example": "Authorization failed",
"type": "string"
},
"detail": {
"example": "You do not have permission to perform the requested action on the specified resource or resources.",
"type": "string"
},
"meta": {
"type": "object",
"properties": {
"url": {
"type": "string",
"example": "https://developers.telnyx.com/docs/overview/errors/10010"
}
}
}
},
"type": "object"
}
]
},
"Fqdn": {
"type": "object",
"title": "Fqdn",
"properties": {
"id": {
"type": "string",
"description": "Identifies the resource.",
"example": "1293384261075731499",
"x-format": "int64"
},
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"example": "fqdn"
},
"connection_id": {
"type": "string",
"description": "ID of the FQDN connection to which this FQDN is attached."
},
"fqdn": {
"type": "string",
"description": "FQDN represented by this resource.",
"example": "example.com"
},
"port": {
"type": "integer",
"description": "Port to use when connecting to this FQDN.",
"default": 5060,
"example": 5060
},
"dns_record_type": {
"type": "string",
"description": "The DNS record type for the FQDN. For cases where a port is not set, the DNS record type must be 'srv'. For cases where a port is set, the DNS record type must be 'a'. If the DNS record type is 'a' and a port is not specified, 5060 will be used.",
"example": "a"
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was created.",
"example": "2018-02-02T22:25:27.521Z"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was updated.",
"example": "2018-02-02T22:25:27.521Z"
}
},
"example": {
"id": "1293384261075731499",
"record_type": "fqdn",
"connection_id": "1516447646313612565",
"fqdn": "example.com",
"port": 5060,
"dns_record_type": "a",
"created_at": "2018-02-02T22:25:27.521Z",
"updated_at": "2018-02-02T22:25:27.521Z"
}
},
"FqdnConnection": {
"type": "object",
"title": "FQDN Connection",
"required": [
"connection_name"
],
"properties": {
"id": {
"type": "string",
"description": "Identifies the resource.",
"example": "1293384261075731499",
"x-format": "int64"
},
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"example": "fqdn_connection"
},
"active": {
"type": "boolean",
"description": "Defaults to true"
},
"anchorsite_override": {
"$ref": "#/components/schemas/AnchorsiteOverride"
},
"connection_name": {
"$ref": "#/components/schemas/ConnectionName"
},
"transport_protocol": {
"$ref": "#/components/schemas/FqdnConnectionTransportProtocol"
},
"default_on_hold_comfort_noise_enabled": {
"type": "boolean",
"default": true,
"description": "When enabled, Telnyx will generate comfort noise when you place the call on hold. If disabled, you will need to generate comfort noise or on hold music to avoid RTP timeout."
},
"dtmf_type": {
"$ref": "#/components/schemas/DtmfType"
},
"encode_contact_header_enabled": {
"type": "boolean",
"default": false,
"description": "Encode the SIP contact header sent by Telnyx to avoid issues for NAT or ALG scenarios."
},
"encrypted_media": {
"$ref": "#/components/schemas/EncryptedMedia"
},
"microsoft_teams_sbc": {
"type": "boolean",
"description": "The connection is enabled for Microsoft Teams Direct Routing.",
"default": false
},
"onnet_t38_passthrough_enabled": {
"type": "boolean",
"default": false,
"description": "Enable on-net T38 if you prefer that the sender and receiver negotiate T38 directly when both are on the Telnyx network. If this is disabled, Telnyx will be able to use T38 on just one leg of the call according to each leg's settings."
},
"ios_push_credential_id": {
"$ref": "#/components/schemas/ConnectionIosPushCredentialId"
},
"android_push_credential_id": {
"$ref": "#/components/schemas/ConnectionAndroidPushCredentialId"
},
"user_name": {
"type": "string",
"description": "The username for the FQDN connection."
},
"password": {
"type": "string",
"description": "The password for the FQDN connection."
},
"rtp_pass_codecs_on_stream_change": {
"type": "boolean",
"description": "Defines if codecs should be passed on stream change."
},
"adjust_dtmf_timestamp": {
"type": "boolean",
"description": "Indicates whether DTMF timestamp adjustment is enabled."
},
"ignore_dtmf_duration": {
"type": "boolean",
"description": "Indicates whether DTMF duration should be ignored."
},
"ignore_mark_bit": {
"type": "boolean",
"description": "Indicates whether the mark bit should be ignored."
},
"call_cost_enabled": {
"type": "boolean",
"description": "Indicates whether call cost calculation is enabled."
},
"noise_suppression": {
"$ref": "#/components/schemas/ConnectionNoiseSuppression"
},
"send_normalized_timestamps": {
"type": "boolean",
"description": "Indicates whether normalized timestamps should be sent."
},
"third_party_control_enabled": {
"type": "boolean",
"description": "Indicates whether third-party control is enabled."
},
"txt_name": {
"type": "string",
"description": "The name for the TXT record associated with the FQDN connection."
},
"txt_value": {
"type": "string",
"description": "The value for the TXT record associated with the FQDN connection."
},
"txt_ttl": {
"type": "integer",
"description": "The time to live for the TXT record associated with the FQDN connection."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags associated with the connection.",
"example": [
"tag1",
"tag2"
]
},
"call_cost_in_webhooks": {
"type": "boolean",
"description": "Specifies if call cost webhooks should be sent for this connection.",
"default": false
},
"webhook_event_url": {
"$ref": "#/components/schemas/WebhookEventUrl"
},
"webhook_event_failover_url": {
"$ref": "#/components/schemas/WebhookEventFailoverUrl"
},
"webhook_api_version": {
"$ref": "#/components/schemas/WebhookApiVersion"
},
"webhook_timeout_secs": {
"$ref": "#/components/schemas/WebhookTimeoutSecs"
},
"rtcp_settings": {
"$ref": "#/components/schemas/ConnectionRtcpSettings"
},
"created_at": {
"$ref": "#/components/schemas/CreatedAt"
},
"updated_at": {
"$ref": "#/components/schemas/UpdatedAt"
},
"inbound": {
"$ref": "#/components/schemas/InboundFqdn"
},
"outbound": {
"$ref": "#/components/schemas/OutboundFqdn"
},
"noise_suppression_details": {
"$ref": "#/components/schemas/ConnectionNoiseSuppressionDetails"
},
"jitter_buffer": {
"$ref": "#/components/schemas/ConnectionJitterBuffer"
}
},
"example": {
"id": "1293384261075731499",
"record_type": "fqdn_connection",
"active": true,
"anchorsite_override": "Latency",
"connection_name": "string",
"transport_protocol": "UDP",
"default_on_hold_comfort_noise_enabled": true,
"dtmf_type": "RFC 2833",
"encode_contact_header_enabled": true,
"encrypted_media": "SRTP",
"onnet_t38_passthrough_enabled": true,
"ios_push_credential_id": "ec0c8e5d-439e-4620-a0c1-9d9c8d02a836",
"android_push_credential_id": "06b09dfd-7154-4980-8b75-cebf7a9d4f8e",
"webhook_event_url": "https://example.com",
"webhook_event_failover_url": "https://failover.example.com",
"webhook_api_version": "1",
"webhook_timeout_secs": 25,
"call_cost_in_webhooks": false,
"tags": [
"tag1",
"tag2"
],
"rtcp_settings": {
"port": "rtcp-mux",
"capture_enabled": true,
"report_frequency_secs": 10
},
"created_at": "2018-02-02T22:25:27.521Z",
"updated_at": "2018-02-02T22:25:27.521Z",
"inbound": {
"ani_number_format": "+E.164",
"dnis_number_format": "+e164",
"codecs": [
"G722"
],
"channel_limit": 10,
"generate_ringback_tone": true,
"isup_headers_enabled": true,
"prack_enabled": true,
"sip_compact_headers_enabled": true,
"sip_region": "US",
"sip_subdomain": "string",
"sip_subdomain_receive_settings": "only_my_connections",
"timeout_1xx_secs": 10,
"timeout_2xx_secs": 10,
"shaken_stir_enabled": true
},
"outbound": {
"ani_override": "string",
"ani_override_type": "always",
"call_parking_enabled": true,
"channel_limit": 10,
"generate_ringback_tone": true,
"instant_ringback_enabled": true,
"ip_authentication_method": "credential-authentication",
"ip_authentication_token": "string",
"localization": "string",
"outbound_voice_profile_id": "1293384261075731499",
"t38_reinvite_source": "customer",
"tech_prefix": "string"
},
"noise_suppression": "both",
"noise_suppression_details": {
"engine": "deep_filter_net",
"attenuation_limit": 80
},
"jitter_buffer": {
"enable_jitter_buffer": true,
"jitterbuffer_msec_min": 60,
"jitterbuffer_msec_max": 200
}
}
},
"FqdnConnectionTransportProtocol": {
"type": "string",
"description": "One of UDP, TLS, or TCP. Applies only to connections with IP authentication or FQDN authentication.",
"default": "UDP",
"enum": [
"UDP",
"TCP",
"TLS"
]
},
"From": {
"description": "The phone number, in E.164 format, the fax will be sent from.",
"type": "string",
"example": "+13125790015"
},
"FunctionDefinition": {
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"parameters": {
"type": "object",
"additionalProperties": true
}
},
"type": "object",
"required": [
"name"
],
"title": "FunctionDefinition"
},
"GCSConfigurationData": {
"type": "object",
"title": "Google Cloud Storage Configuration Data",
"properties": {
"backend": {
"type": "string",
"enum": [
"gcs"
],
"description": "Storage backend type"
},
"credentials": {
"$ref": "#/components/schemas/Credentials"
},
"bucket": {
"$ref": "#/components/schemas/Bucket"
}
},
"required": [
"backend"
]
},
"GatherRequest": {
"type": "object",
"title": "Gather",
"properties": {
"minimum_digits": {
"description": "The minimum number of digits to fetch. This parameter has a minimum value of 1.",
"default": 1,
"type": "integer",
"example": 1,
"format": "int32"
},
"maximum_digits": {
"description": "The maximum number of digits to fetch. This parameter has a maximum value of 128.",
"default": 128,
"type": "integer",
"example": 10,
"format": "int32"
},
"timeout_millis": {
"description": "The number of milliseconds to wait to complete the request.",
"default": 60000,
"type": "integer",
"example": 60000,
"format": "int32"
},
"inter_digit_timeout_millis": {
"description": "The number of milliseconds to wait for input between digits.",
"default": 5000,
"type": "integer",
"example": 10000,
"format": "int32"
},
"initial_timeout_millis": {
"description": "The number of milliseconds to wait for the first DTMF.",
"default": 5000,
"type": "integer",
"example": 10000,
"format": "int32"
},
"terminating_digit": {
"description": "The digit used to terminate input if fewer than `maximum_digits` digits have been gathered.",
"default": "#",
"type": "string",
"example": "#"
},
"valid_digits": {
"description": "A list of all digits accepted as valid.",
"default": "0123456789#*",
"type": "string",
"example": "123"
},
"gather_id": {
"description": "An id that will be sent back in the corresponding `call.gather.ended` webhook. Will be randomly generated if not specified.",
"type": "string",
"example": "my_gather_id",
"minLength": 1,
"maxLength": 40
},
"client_state": {
"description": "Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
},
"command_id": {
"description": "Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.",
"type": "string",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901"
}
}
},
"GatherUsingAIRequest": {
"type": "object",
"title": "Gather Using AI Request",
"required": [
"parameters"
],
"properties": {
"parameters": {
"description": "The parameters described as a JSON Schema object that needs to be gathered by the voice assistant. See the [JSON Schema reference](https://json-schema.org/understanding-json-schema) for documentation about the format",
"type": "object",
"example": {
"properties": {
"age": {
"description": "The age of the customer.",
"type": "integer"
},
"location": {
"description": "The location of the customer.",
"type": "string"
}
},
"required": [
"age",
"location"
],
"type": "object"
}
},
"assistant": {
"$ref": "#/components/schemas/Assistant"
},
"transcription": {
"$ref": "#/components/schemas/TranscriptionConfig"
},
"language": {
"oneOf": [
{
"$ref": "#/components/schemas/GoogleTranscriptionLanguage"
}
]
},
"voice": {
"$ref": "#/components/schemas/VoiceConfig"
},
"voice_settings": {
"description": "The settings associated with the voice selected",
"oneOf": [
{
"$ref": "#/components/schemas/ElevenLabsVoiceSettings"
},
{
"$ref": "#/components/schemas/TelnyxVoiceSettings"
},
{
"$ref": "#/components/schemas/AWSVoiceSettings"
},
{
"$ref": "#/components/schemas/AzureVoiceSettings"
},
{
"$ref": "#/components/schemas/RimeVoiceSettings"
},
{
"$ref": "#/components/schemas/ResembleVoiceSettings"
},
{
"$ref": "#/components/schemas/XAIVoiceSettings"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"elevenlabs": "#/components/schemas/ElevenLabsVoiceSettings",
"telnyx": "#/components/schemas/TelnyxVoiceSettings",
"aws": "#/components/schemas/AWSVoiceSettings",
"azure": "#/components/schemas/AzureVoiceSettings",
"rime": "#/components/schemas/RimeVoiceSettings",
"resemble": "#/components/schemas/ResembleVoiceSettings",
"xai": "#/components/schemas/XAIVoiceSettings"
}
}
},
"greeting": {
"description": "Text that will be played when the gathering starts, if none then nothing will be played when the gathering starts. The greeting can be text for any voice or SSML for `AWS.Polly.provisioning - the Private Wireless Gateway is being provisioned.provisioned - the Private Wireless Gateway was provisioned and able to receive connections.failed - the provisioning had failed for a reason and it requires an intervention.decommissioning - the Private Wireless Gateway is being removed from the network.ios or android",
"type": "string",
"example": "ios"
},
"record_type": {
"type": "string",
"example": "push_credential",
"readOnly": true
},
"created_at": {
"description": "ISO 8601 timestamp when the room was created",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"updated_at": {
"description": "ISO 8601 timestamp when the room was updated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
}
}
},
"PushCredentialResponse": {
"description": "Success response with details about a push credential",
"properties": {
"data": {
"$ref": "#/components/schemas/PushCredential"
}
},
"type": "object"
},
"Quality": {
"description": "The quality of the fax. The `ultra` settings provides the highest quality available, but also present longer fax processing times. `ultra_light` is best suited for images, wihle `ultra_dark` is best suited for text.",
"type": "string",
"example": "high",
"default": "high",
"enum": [
"normal",
"high",
"very_high",
"ultra_light",
"ultra_dark"
]
},
"QueryParameterInfo": {
"type": "object",
"required": [
"type",
"default",
"description"
],
"properties": {
"type": {
"type": "string"
},
"default": {
"type": "string"
},
"min": {
"type": [
"integer",
"null"
]
},
"max": {
"type": [
"integer",
"null"
]
},
"enum_values": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"description": {
"type": "string"
}
}
},
"Queue": {
"type": "object",
"title": "Queue",
"required": [
"record_type",
"id",
"name",
"current_size",
"max_size",
"average_wait_time_secs",
"created_at",
"updated_at"
],
"properties": {
"record_type": {
"type": "string",
"enum": [
"queue"
],
"example": "queue"
},
"id": {
"type": "string",
"description": "Uniquely identifies the queue",
"example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"name": {
"type": "string",
"description": "Name of the queue",
"example": "support"
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date of when the queue was created",
"example": "2019-01-23T18:10:02.574Z"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date of when the queue was last updated",
"example": "2019-01-23T18:10:02.574Z"
},
"current_size": {
"type": "integer",
"description": "The number of calls currently in the queue",
"example": 20
},
"max_size": {
"type": "integer",
"description": "The maximum number of calls allowed in the queue",
"example": 50
},
"average_wait_time_secs": {
"type": "integer",
"description": "The average time that the calls currently in the queue have spent waiting, given in seconds.",
"example": 175
}
},
"example": {
"record_type": "queue",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "support",
"created_at": "2019-01-23T18:10:02.574Z",
"updated_at": "2019-01-23T18:10:02.574Z",
"current_size": 20,
"max_size": 50,
"average_wait_time_secs": 175
}
},
"QueueCall": {
"type": "object",
"title": "QueueCall",
"required": [
"call_control_id",
"call_leg_id",
"call_session_id",
"is_alive",
"record_type",
"connection_id",
"from",
"to",
"enqueued_at",
"wait_time_secs",
"queue_position",
"queue_id"
],
"example": {
"call_control_id": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"call_leg_id": "2dc6fc34-f9e0-11ea-b68e-02420a0f7768",
"call_session_id": "2dc1b3c8-f9e0-11ea-bc5a-02420a0f7768",
"record_type": "queue_call",
"connection_id": "7267xxxxxxxxxxxxxx",
"from": "+18005550101",
"to": "+18005550102",
"enqueued_at": "2019-01-23T18:10:02.574Z",
"wait_time_secs": 145,
"queue_position": 3,
"queue_id": "ae1626cc-6f42-11ea-becd-02420a0f8b69",
"is_alive": true
},
"properties": {
"record_type": {
"type": "string",
"enum": [
"queue_call"
],
"example": "queue_call"
},
"call_session_id": {
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call",
"type": "string",
"example": "428c31b6-7af4-4bcb-b68e-5013ef9657c1"
},
"call_leg_id": {
"description": "ID that is unique to the call and can be used to correlate webhook events",
"type": "string",
"example": "428c31b6-7af4-4bcb-b7f5-5013ef9657c1"
},
"call_control_id": {
"description": "Unique identifier and token for controlling the call.",
"type": "string",
"example": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg"
},
"connection_id": {
"type": "string",
"example": "7267xxxxxxxxxxxxxx",
"description": "Call Control App ID (formerly Telnyx connection ID) used in the call."
},
"from": {
"type": "string",
"example": "+35319605860",
"description": "Number or SIP URI placing the call."
},
"to": {
"type": "string",
"example": "+13129457420",
"description": "Destination number or SIP URI of the call."
},
"enqueued_at": {
"type": "string",
"description": "ISO 8601 formatted date of when the call was put in the queue",
"example": "2019-01-23T18:10:02.574Z"
},
"wait_time_secs": {
"type": "integer",
"description": "The time the call has been waiting in the queue, given in seconds",
"example": 272
},
"queue_position": {
"type": "integer",
"description": "Current position of the call in the queue",
"example": 3
},
"queue_id": {
"type": "string",
"description": "Unique identifier of the queue the call is in.",
"example": "ae1626cc-6f42-11ea-becd-02420a0f8b69"
},
"is_alive": {
"type": "boolean",
"description": "Indicates whether the call is still active in the queue.",
"example": true
}
}
},
"QueueResource": {
"type": "object",
"title": "Queue resource",
"example": {
"account_sid": "4e71926f-8f13-450e-b91c-23c2ef786aa6",
"average_wait_time": 30,
"current_size": 3,
"date_created": "Fri, 27 Oct 2023 07:41:58 +0000",
"date_updated": "Fri, 27 Oct 2023 07:41:58 +0000",
"max_size": 10,
"sid": "my-queue",
"uri": "/Accounts/4e71926f-8f13-450e-b91c-23c2ef786aa6/Queues/my-queue.json",
"subresource_uris": {
"members": "/Accounts/4e71926f-8f13-450e-b91c-23c2ef786aa6/Queues/my-queue/Members.json"
}
},
"properties": {
"account_sid": {
"type": "string",
"description": "The id of the account the resource belongs to.",
"example": "4e71926f-8f13-450e-b91c-23c2ef786aa6"
},
"average_wait_time": {
"type": "integer",
"description": "The average wait time in seconds for members in the queue.",
"example": 30
},
"current_size": {
"type": "integer",
"description": "The current number of members in the queue.",
"example": 3
},
"date_created": {
"type": "string",
"description": "The timestamp of when the resource was created.",
"example": "Fri, 27 Oct 2023 07:41:58 +0000"
},
"date_updated": {
"type": "string",
"description": "The timestamp of when the resource was last updated.",
"example": "Fri, 27 Oct 2023 07:41:58 +0000"
},
"max_size": {
"type": "integer",
"description": "The maximum size of the queue.",
"example": 10
},
"sid": {
"type": "string",
"description": "The unique identifier of the queue.",
"example": "my-queue"
},
"uri": {
"type": "string",
"description": "The relative URI for this queue.",
"example": "/Accounts/4e71926f-8f13-450e-b91c-23c2ef786aa6/Queues/my-queue.json"
},
"subresource_uris": {
"type": "object",
"description": "A list of related resources identified by their relative URIs.",
"example": {
"members": "/Accounts/4e71926f-8f13-450e-b91c-23c2ef786aa6/Queues/my-queue/Members.json"
},
"additionalProperties": true
}
}
},
"QueueResourceIndex": {
"type": "object",
"title": "Multiple queue resources",
"example": {
"queues": [],
"end": 0,
"first_page_uri": "/v2/texml/Accounts/61bf923e-5e4d-4595-a110-56190ea18a1b/Queues.json?Page=0&PageSize=1",
"next_page_uri": "/v2/texml/Accounts/61bf923e-5e4d-4595-a110-56190ea18a1b/Queues.json?Page=1&PageSize=1&PageToken=MTY4AjgyNDkwNzIxMQ",
"page": 0,
"page_size": 1,
"start": 0,
"uri": "/v2/texml/Accounts/61bf923e-5e4d-4595-a110-56190ea18a1b/Queues.json?Page=0&PageSize=1"
},
"properties": {
"queues": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QueueResource"
}
},
"end": {
"type": "integer",
"description": "The number of the last element on the page, zero-indexed.",
"example": 19
},
"first_page_uri": {
"type": "string",
"description": "/v2/texml/Accounts/61bf923e-5e4d-4595-a110-56190ea18a1b/Queues.json?Page=0&PageSize=1",
"example": "accepted"
},
"next_page_uri": {
"type": "string",
"description": "/v2/texml/Accounts/61bf923e-5e4d-4595-a110-56190ea18a1b/Queues.json?Page=1&PageSize=1&PageToken=MTY4AjgyNDkwNzIxMQ",
"example": "accepted"
},
"page": {
"type": "integer",
"description": "Current page number, zero-indexed.",
"example": 0
},
"page_size": {
"type": "integer",
"description": "The number of items on the page",
"example": 20
},
"start": {
"type": "integer",
"description": "The number of the first element on the page, zero-indexed.",
"example": 0
},
"uri": {
"type": "string",
"description": "The URI of the current page.",
"example": "/v2/texml/Accounts/61bf923e-5e4d-4595-a110-56190ea18a1b/Queues.json?Page=0&PageSize=1"
}
}
},
"RCSAction": {
"type": "object",
"description": "When tapped, initiates the corresponding native action on the device.",
"properties": {
"text": {
"type": "string",
"description": "Text that is shown in the suggested action. Maximum 25 characters.",
"example": "Hello world"
},
"postback_data": {
"type": "string",
"description": "Payload (base64 encoded) that will be sent to the agent in the user event that results when the user taps the suggested action. Maximum 2048 characters."
},
"fallback_url": {
"type": "string",
"description": "Fallback URL to use if a client doesn't support a suggested action. Fallback URLs open in new browser windows. Maximum 2048 characters.",
"format": "url"
},
"dial_action": {
"$ref": "#/components/schemas/RCSDialAction"
},
"view_location_action": {
"$ref": "#/components/schemas/RCSViewLocationAction"
},
"create_calendar_event_action": {
"$ref": "#/components/schemas/RCSCreateCalendarEventAction"
},
"open_url_action": {
"$ref": "#/components/schemas/RCSOpenUrlAction"
},
"share_location_action": {
"$ref": "#/components/schemas/RCSShareLocationAction"
}
}
},
"RCSAgent": {
"type": "object",
"properties": {
"agent_id": {
"type": "string",
"description": "RCS Agent ID",
"example": "TestAgent"
},
"user_id": {
"type": "string",
"description": "User ID associated with the RCS Agent",
"example": "2ecf295b-36c6-4d43-ad05-71eb1e560518"
},
"profile_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "Messaging profile ID associated with the RCS Agent",
"example": "4001932a-b8a3-42fc-9389-021be6388909"
},
"webhook_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "URL to receive RCS events",
"example": "http://example.com"
},
"webhook_failover_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "Failover URL to receive RCS events",
"example": "http://example.com"
},
"agent_name": {
"type": "string",
"description": "Human readable agent name",
"example": "Test Agent"
},
"enabled": {
"type": "boolean",
"description": "Specifies whether the agent is enabled",
"example": true
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date and time when the resource was created",
"example": "2024-01-01T12:00:00.000Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "Date and time when the resource was updated",
"example": "2024-01-01T12:00:00.000Z"
}
}
},
"RCSAgentMessage": {
"type": "object",
"properties": {
"content_message": {
"$ref": "#/components/schemas/RCSContentMessage"
},
"event": {
"$ref": "#/components/schemas/RCSEvent"
},
"expire_time": {
"type": "string",
"format": "date-time",
"description": "Timestamp in UTC of when this message is considered expired",
"example": "2024-10-02T15:01:23Z"
},
"ttl": {
"type": "string",
"description": "Duration in seconds ending with 's'",
"example": "10.5s"
}
}
},
"RCSAgentResponse": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/RCSAgent"
}
}
},
"RCSAgentUpdate": {
"type": "object",
"properties": {
"profile_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "Messaging profile ID associated with the RCS Agent",
"example": "4001932a-b8a3-42fc-9389-021be6388909"
},
"webhook_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "URL to receive RCS events",
"example": "http://example.com"
},
"webhook_failover_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "Failover URL to receive RCS events",
"example": "http://example.com"
}
}
},
"RCSAgentsResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RCSAgent"
}
},
"meta": {
"$ref": "#/components/schemas/messaging_PaginationMeta"
}
}
},
"RCSCapabilitiesBulk": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RCSCapabilitiesInternal"
}
}
}
},
"RCSCapabilitiesInternal": {
"type": "object",
"properties": {
"record_type": {
"type": "string",
"example": "rcs.capabilities",
"enum": [
"rcs.capabilities"
],
"description": "Identifies the type of the resource"
},
"phone_number": {
"type": "string",
"example": "+13125551234",
"description": "Phone number"
},
"agent_id": {
"type": "string",
"example": "TestAgent",
"description": "RCS agent ID"
},
"agent_name": {
"type": "string",
"example": "Testing agent",
"description": "RCS agent name"
},
"features": {
"type": "array",
"description": "List of RCS capabilities",
"items": {
"type": "string"
}
}
}
},
"RCSCapabilitiesSingle": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/RCSCapabilitiesInternal"
}
}
},
"RCSCapabilityListRequest": {
"type": "object",
"required": [
"agent_id",
"phone_numbers"
],
"properties": {
"agent_id": {
"type": "string",
"description": "RCS Agent ID",
"example": "TestAgent"
},
"phone_numbers": {
"type": "array",
"items": {
"type": "string",
"example": "+13125551234"
},
"description": "List of phone numbers to check"
}
}
},
"RCSCardContent": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the card (at most 200 characters)",
"example": "Elephant"
},
"description": {
"type": "string",
"description": "Description of the card (at most 2000 characters)"
},
"media": {
"$ref": "#/components/schemas/RCSMedia"
},
"suggestions": {
"type": "array",
"description": "List of suggestions to include in the card. Maximum 10 suggestions.",
"items": {
"$ref": "#/components/schemas/RCSSuggestion"
}
}
}
},
"RCSCarouselCard": {
"required": [
"card_width",
"card_contents"
],
"type": "object",
"description": "Carousel of cards.",
"properties": {
"card_width": {
"type": "string",
"example": "SMALL",
"description": "The width of the cards in the carousel.",
"enum": [
"CARD_WIDTH_UNSPECIFIED",
"SMALL",
"MEDIUM"
]
},
"card_contents": {
"description": "The list of contents for each card in the carousel. A carousel can have a minimum of 2 cards and a maximum 10 cards.",
"type": "array",
"items": {
"$ref": "#/components/schemas/RCSCardContent"
}
}
}
},
"RCSContentInfo": {
"required": [
"file_url"
],
"type": "object",
"properties": {
"file_url": {
"type": "string",
"format": "url",
"description": "Publicly reachable URL of the file.",
"example": "https://example.com/elephant.jpg"
},
"thumbnail_url": {
"type": "string",
"format": "url",
"description": "Publicly reachable URL of the thumbnail. Maximum size of 100 kB."
},
"force_refresh": {
"type": "boolean",
"description": "If set the URL content will not be cached."
}
}
},
"RCSContentMessage": {
"type": "object",
"properties": {
"suggestions": {
"type": "array",
"description": "List of suggested actions and replies",
"items": {
"$ref": "#/components/schemas/RCSSuggestion"
}
},
"text": {
"type": "string",
"description": "Text (maximum 3072 characters)",
"example": "Hello world!"
},
"rich_card": {
"$ref": "#/components/schemas/RCSRichCard"
},
"content_info": {
"$ref": "#/components/schemas/RCSContentInfo"
}
}
},
"RCSCreateCalendarEventAction": {
"type": "object",
"description": "Opens the user's default calendar app and starts the new calendar event flow with the agent-specified event data pre-filled.",
"properties": {
"start_time": {
"type": "string",
"format": "date-time",
"example": "2024-10-02T15:01:23Z"
},
"end_time": {
"type": "string",
"format": "date-time",
"example": "2024-10-02T15:02:31Z"
},
"title": {
"type": "string",
"description": "Event title. Maximum 100 characters."
},
"description": {
"type": "string",
"description": "Event description. Maximum 500 characters."
}
}
},
"RCSDeeplinkResponse": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The generated deeplink URL",
"example": "sms:+18445550001?service_id=my_agent_id%40rbm.goog&body=hello%20world"
}
},
"required": [
"url"
]
}
},
"required": [
"data"
]
},
"RCSDialAction": {
"required": [
"phone_number"
],
"type": "object",
"description": "Opens the user's default dialer app with the agent-specified phone number filled in.",
"properties": {
"phone_number": {
"type": "string",
"description": "Phone number in +E.164 format",
"example": "+13125551234"
}
}
},
"RCSEvent": {
"type": "object",
"description": "RCS Event to send to the recipient",
"properties": {
"event_type": {
"type": "string",
"example": "IS_TYPING",
"enum": [
"TYPE_UNSPECIFIED",
"IS_TYPING",
"READ"
]
}
}
},
"RCSFrom": {
"type": "object",
"properties": {
"agent_id": {
"type": "string",
"example": "Agent007",
"description": "agent ID"
},
"carrier": {
"type": "string",
"example": "Telnyx"
},
"agent_name": {
"type": "string",
"example": "Test Agent"
}
}
},
"RCSLatLng": {
"required": [
"latitude",
"longitude"
],
"type": "object",
"properties": {
"latitude": {
"type": "number",
"description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
"example": 41.8
},
"longitude": {
"type": "number",
"description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
"example": -87.6
}
}
},
"RCSMedia": {
"type": "object",
"description": "A media file within a rich card.",
"properties": {
"height": {
"type": "string",
"example": "MEDIUM",
"description": "The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.",
"enum": [
"HEIGHT_UNSPECIFIED",
"SHORT",
"MEDIUM",
"TALL"
]
},
"content_info": {
"$ref": "#/components/schemas/RCSContentInfo"
}
}
},
"RCSMessage": {
"required": [
"agent_id",
"to",
"messaging_profile_id",
"agent_message"
],
"type": "object",
"properties": {
"agent_id": {
"type": "string",
"description": "RCS Agent ID",
"example": "Agent007"
},
"to": {
"type": "string",
"description": "Phone number in +E.164 format",
"example": "+13125551234"
},
"messaging_profile_id": {
"type": "string",
"description": "A valid messaging profile ID"
},
"type": {
"type": "string",
"description": "Message type - must be set to \"RCS\"",
"example": "RCS",
"enum": [
"RCS"
]
},
"webhook_url": {
"description": "The URL where webhooks related to this message will be sent.",
"type": "string",
"format": "url"
},
"agent_message": {
"$ref": "#/components/schemas/RCSAgentMessage"
},
"sms_fallback": {
"$ref": "#/components/schemas/SMSFallback"
},
"mms_fallback": {
"$ref": "#/components/schemas/MMSFallback"
}
}
},
"RCSOpenUrlAction": {
"required": [
"url",
"application",
"webview_view_mode"
],
"type": "object",
"description": "Opens the user's default web browser app to the specified URL.",
"properties": {
"url": {
"type": "string",
"format": "url",
"example": "http://example.com"
},
"application": {
"type": "string",
"example": "BROWSER",
"description": "URL open application, browser or webview.",
"enum": [
"OPEN_URL_APPLICATION_UNSPECIFIED",
"BROWSER",
"WEBVIEW"
]
},
"webview_view_mode": {
"type": "string",
"example": "HALF",
"enum": [
"WEBVIEW_VIEW_MODE_UNSPECIFIED",
"FULL",
"HALF",
"TALL"
]
},
"description": {
"type": "string",
"description": "Accessbility description for webview."
}
}
},
"RCSReply": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text that is shown in the suggested reply (maximum 25 characters)"
},
"postback_data": {
"type": "string",
"description": "Payload (base64 encoded) that will be sent to the agent in the user event that results when the user taps the suggested action. Maximum 2048 characters."
}
}
},
"RCSResponse": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"record_type": {
"type": "string",
"example": "message"
},
"direction": {
"type": "string",
"example": "outbound"
},
"id": {
"type": "string",
"description": "message ID",
"example": "4031938e-60e4-4235-a8dd-0b1c55a23e7a"
},
"type": {
"type": "string",
"example": "RCS"
},
"organization_id": {
"type": "string",
"example": "9f61d8e1-7687-4d6d-9cae-9ff682985983"
},
"messaging_profile_id": {
"type": "string",
"example": "4001781e-626f-4a41-a914-b1b682150f94"
},
"from": {
"$ref": "#/components/schemas/RCSFrom"
},
"to": {
"$ref": "#/components/schemas/RCSTo"
},
"body": {
"$ref": "#/components/schemas/RCSAgentMessage"
},
"encoding": {
"type": "string",
"example": "utf-8"
},
"received_at": {
"type": "string",
"format": "date-time"
},
"wait_seconds": {
"type": [
"number",
"null"
],
"format": "float",
"description": "Seconds the message is queued due to rate limiting before being sent to the carrier. Represents the maximum wait across all applicable rate limits (account, carrier, campaign). 0.0 = no queuing delay.",
"example": 0.5
}
}
}
}
},
"RCSRichCard": {
"type": "object",
"properties": {
"carousel_card": {
"$ref": "#/components/schemas/RCSCarouselCard"
},
"standalone_card": {
"$ref": "#/components/schemas/RCSStandaloneCard"
}
}
},
"RCSShareLocationAction": {
"type": "object",
"description": "Opens the RCS app's location chooser so the user can pick a location to send back to the agent."
},
"RCSStandaloneCard": {
"required": [
"card_orientation",
"thumbnail_image_alignment",
"card_content"
],
"type": "object",
"description": "Standalone card",
"properties": {
"card_orientation": {
"type": "string",
"example": "HORIZONTAL",
"description": "Orientation of the card.",
"enum": [
"CARD_ORIENTATION_UNSPECIFIED",
"HORIZONTAL",
"VERTICAL"
]
},
"thumbnail_image_alignment": {
"type": "string",
"example": "LEFT",
"description": "Image preview alignment for standalone cards with horizontal layout.",
"enum": [
"THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED",
"LEFT",
"RIGHT"
]
},
"card_content": {
"$ref": "#/components/schemas/RCSCardContent"
}
}
},
"RCSSuggestion": {
"type": "object",
"properties": {
"reply": {
"$ref": "#/components/schemas/RCSReply"
},
"action": {
"$ref": "#/components/schemas/RCSAction"
}
}
},
"RCSTestNumberInviteResponse": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"record_type": {
"type": "string",
"example": "rcs.test_number_invite",
"enum": [
"rcs.test_number_invite"
],
"description": "Identifies the type of the resource"
},
"agent_id": {
"type": "string",
"example": "TestAgent",
"description": "RCS agent ID"
},
"phone_number": {
"type": "string",
"example": "+13125551234",
"description": "Phone number that was invited for testing"
},
"status": {
"type": "string",
"example": "PENDING",
"description": "Status of the test number invitation"
}
}
}
},
"required": [
"data"
]
},
"RCSTo": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RCSToItem"
}
},
"RCSToItem": {
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"example": "+13125551234"
},
"status": {
"type": "string",
"example": "queued"
},
"carrier": {
"type": "string",
"example": "Verizon Wireless"
},
"line_type": {
"type": "string",
"example": "Wireless"
}
}
},
"RCSViewLocationAction": {
"type": "object",
"description": "Opens the user's default map app and selects the agent-specified location.",
"properties": {
"lat_long": {
"$ref": "#/components/schemas/RCSLatLng"
},
"label": {
"type": "string",
"description": "The label of the pin dropped"
},
"query": {
"type": "string",
"description": "query string (Android only)"
}
}
},
"ReadComment": {
"$ref": "#/components/schemas/Comment"
},
"Record": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Identifies the resource.",
"readOnly": true,
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
},
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"readOnly": true,
"example": "sample_record_type"
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date-time indicating when the resource was created.",
"readOnly": true,
"example": "2018-02-02T22:25:27.521Z"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date-time indicating when the resource was updated.",
"readOnly": true,
"example": "2018-02-02T22:25:27.521Z"
}
}
},
"RecordType": {
"type": "string",
"description": "Identifies record type.",
"enum": [
"custom_storage_credentials"
]
},
"RecordTypeInfo": {
"type": "object",
"required": [
"record_type",
"aliases",
"product",
"event",
"description",
"child_relationships",
"parent_relationships"
],
"properties": {
"record_type": {
"type": "string"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"product": {
"type": "string"
},
"event": {
"type": "string"
},
"description": {
"type": "string"
},
"child_relationships": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChildRelationshipInfo"
}
},
"parent_relationships": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ParentRelationshipInfo"
}
}
}
},
"RecordTypeMetadataResponse": {
"type": "object",
"required": [
"record_type",
"aliases",
"product",
"event",
"child_relationships",
"parent_relationships",
"examples",
"meta"
],
"properties": {
"record_type": {
"type": "string"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"product": {
"type": "string"
},
"event": {
"type": "string"
},
"child_relationships": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChildRelationshipInfo"
}
},
"parent_relationships": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ParentRelationshipInfo"
}
},
"examples": {
"type": "object",
"additionalProperties": true,
"description": "Example queries and responses for this record type."
},
"meta": {
"$ref": "#/components/schemas/RelationshipMetadata"
}
}
},
"RecordingResponse": {
"type": "object",
"title": "RecordingResponse",
"properties": {
"data": {
"$ref": "#/components/schemas/RecordingResponseData"
}
}
},
"RecordingResponseData": {
"type": "object",
"title": "RecordingResponseData",
"properties": {
"call_control_id": {
"type": "string",
"example": "v3:e-31OnvjEM7Y4wvxr3TKNk8M3QyLcGZPiUIzCGtwQtOtEjY-B0urkw",
"description": "Unique identifier and token for controlling the call."
},
"call_leg_id": {
"type": "string",
"example": "84a97d76-e40f-11ed-9074-02420a0daa69",
"description": "ID unique to the call leg (used to correlate webhook events)."
},
"call_session_id": {
"type": "string",
"example": "84a97d76-e40f-11ed-9074-02420a0daa69",
"description": "ID that is unique to the call session and can be used to correlate webhook events. Call session is a group of related call legs that logically belong to the same phone call, e.g. an inbound and outbound leg of a transferred call."
},
"channels": {
"type": "string",
"enum": [
"single",
"dual"
],
"description": "When `dual`, the final audio file has the first leg on channel A, and the rest on channel B.",
"example": "dual"
},
"conference_id": {
"type": "string",
"example": "84a97d76-e40f-11ed-9074-02420a0daa69",
"description": "Uniquely identifies the conference."
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was created.",
"example": "2018-02-02T22:25:27.521Z"
},
"download_urls": {
"type": "object",
"description": "Links to download the recording files.",
"properties": {
"mp3": {
"type": "string",
"description": "Link to download the recording in mp3 format."
},
"wav": {
"type": "string",
"description": "Link to download the recording in wav format."
}
}
},
"duration_millis": {
"description": "The duration of the recording in milliseconds.",
"type": "integer",
"format": "int32",
"example": 60000
},
"id": {
"type": "string",
"description": "Uniquely identifies the recording.",
"example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"record_type": {
"type": "string",
"enum": [
"recording"
],
"example": "recording"
},
"recording_started_at": {
"type": "string",
"description": "ISO 8601 formatted date of when the recording started.",
"example": "2019-01-23T18:10:02.574Z"
},
"recording_ended_at": {
"type": "string",
"description": "ISO 8601 formatted date of when the recording ended.",
"example": "2019-01-23T18:10:02.574Z"
},
"source": {
"type": "string",
"enum": [
"conference",
"call"
],
"description": "The kind of event that led to this recording being created.",
"example": "conference"
},
"status": {
"type": "string",
"enum": [
"completed"
],
"description": "The status of the recording. Only `completed` recordings are currently supported.",
"example": "completed"
},
"from": {
"type": "string",
"description": "The `from` (caller) number for the call that generated this recording.",
"example": "+15551234567"
},
"to": {
"type": "string",
"description": "The `to` (callee) number for the call that generated this recording.",
"example": "+15557654321"
},
"connection_id": {
"type": "string",
"description": "Identifies the Telnyx application (Call Control, TeXML) or SIP connection resource associated with this recording.",
"example": "175237942907135762"
},
"initiated_by": {
"type": "string",
"description": "Indicates what triggered the recording. Possible values include `DialVerb`, `Conference`, `OutboundAPI`, `Trunking`, `RecordVerb`, `StartCallRecordingAPI`, `StartConferenceRecordingAPI`.",
"example": "StartCallRecordingAPI"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was updated.",
"example": "2018-02-02T22:25:27.521Z"
}
}
},
"RecordingSource": {
"type": "string",
"description": "Defines how the recording was created.",
"enum": [
"StartCallRecordingAPI",
"StartConferenceRecordingAPI",
"OutboundAPI",
"DialVerb",
"Conference",
"RecordVerb",
"Trunking"
]
},
"RecordingStatusCallbackEvent": {
"description": "The changes to the recording's state that should generate a call to `RecoridngStatusCallback`. Can be: `in-progress`, `completed` and `absent`. Separate multiple values with a space. Defaults to `completed`.",
"example": "in-progress completed absent",
"type": "string"
},
"RecordingTrack": {
"description": "The audio track to record for the call. The default is `both`.",
"example": "inbound",
"type": "string",
"enum": [
"inbound",
"outbound",
"both"
]
},
"RecordingTranscription": {
"type": "object",
"title": "RecordingTranscriptionsResponseData",
"properties": {
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was created.",
"example": "2018-02-02T22:25:27.521Z"
},
"duration_millis": {
"description": "The duration of the recording transcription in milliseconds.",
"type": "integer",
"format": "int32",
"example": 60000
},
"id": {
"type": "string",
"description": "Uniquely identifies the recording transcription.",
"example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"recording_id": {
"type": "string",
"description": "Uniquely identifies the recording associated with this transcription.",
"example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"record_type": {
"type": "string",
"enum": [
"recording_transcription"
],
"example": "recording_transcription"
},
"status": {
"type": "string",
"enum": [
"in-progress",
"completed"
],
"description": "The status of the recording transcription. Only `completed` has transcription text available.",
"example": "completed"
},
"transcription_text": {
"type": "string",
"description": "The recording's transcribed text.",
"example": "Good morning, how may I help you?"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was updated.",
"example": "2018-02-02T22:25:27.521Z"
}
}
},
"RecursiveCluster": {
"properties": {
"cluster_id": {
"type": "string"
},
"cluster_header": {
"type": "string"
},
"cluster_summary": {
"type": "string"
},
"nodes": {
"items": {
"$ref": "#/components/schemas/ClusterNode"
},
"type": "array"
},
"total_number_of_nodes": {
"type": "integer"
},
"subclusters": {
"items": {
"$ref": "#/components/schemas/RecursiveCluster"
},
"type": "array"
}
},
"type": "object",
"required": [
"cluster_id",
"cluster_summary",
"total_number_of_nodes"
],
"title": "RecursiveCluster"
},
"ReferRequest": {
"type": "object",
"title": "Refer request",
"required": [
"sip_address"
],
"properties": {
"sip_address": {
"description": "The SIP URI to which the call will be referred to.",
"type": "string",
"example": "sip:username@sip.non-telnyx-address.com"
},
"client_state": {
"description": "Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"type": "string"
},
"command_id": {
"description": "Use this field to avoid execution of duplicate commands. Telnyx will ignore subsequent commands with the same `command_id` as one that has already been executed.",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901",
"type": "string"
},
"custom_headers": {
"description": "Custom headers to be added to the SIP INVITE.",
"type": "array",
"example": [
{
"name": "head_1",
"value": "val_1"
},
{
"name": "head_2",
"value": "val_2"
}
],
"items": {
"$ref": "#/components/schemas/CustomSipHeader"
}
},
"sip_auth_username": {
"description": "SIP Authentication username used for SIP challenges.",
"type": "string"
},
"sip_auth_password": {
"description": "SIP Authentication password used for SIP challenges.",
"type": "string"
},
"sip_headers": {
"description": "SIP headers to be added to the request. Currently only User-to-User header is supported.",
"type": "array",
"example": [
{
"name": "User-to-User",
"value": "value"
}
],
"items": {
"$ref": "#/components/schemas/SipHeader"
}
}
},
"example": {
"sip_address": "sip:username@sip.non-telnyx-address.com"
}
},
"RefreshReputationRequest": {
"type": "object",
"required": [
"phone_numbers"
],
"additionalProperties": false,
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"type": "string",
"example": "+19493253498"
},
"minItems": 1,
"maxItems": 100,
"description": "Phone numbers to refresh reputation data for. 1\u2013100 numbers per request, each in E.164 format. Reputation refreshes are subject to per-enterprise rate limits."
}
}
},
"RefreshReputationResponse": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"results",
"total_requested",
"total_successful",
"total_failed"
],
"properties": {
"results": {
"type": "array",
"description": "Per-number outcome of the refresh.",
"items": {
"type": "object",
"required": [
"phone_number",
"success"
],
"properties": {
"phone_number": {
"type": "string",
"example": "+19493253498"
},
"success": {
"type": "boolean",
"example": true
},
"error": {
"type": "string",
"nullable": true,
"description": "`null` when `success` is `true`; carries an error message otherwise.",
"example": null
}
}
}
},
"total_requested": {
"type": "integer",
"example": 1
},
"total_successful": {
"type": "integer",
"example": 1
},
"total_failed": {
"type": "integer",
"example": 0
}
}
}
}
},
"RefreshRoomClientTokenRequest": {
"type": "object",
"properties": {
"token_ttl_secs": {
"description": "The time to live in seconds of the Client Token, after that time the Client Token is invalid and can't be used to join a Room.",
"type": "integer",
"example": 600,
"default": 600,
"minimum": 10,
"maximum": 3600
},
"refresh_token": {
"type": "string",
"example": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJ0ZWxueXhfdGVsZXBob255IiwiZXhwIjoxNTkwMDEwMTQzLCJpYXQiOjE1ODc1OTA5NDMsImlzcyI6InRlbG55eF90ZWxlcGhvbnkiLCJqdGkiOiJiOGM3NDgzNy1kODllLTRhNjUtOWNmMi0zNGM3YTZmYTYwYzgiLCJuYmYiOjE1ODc1OTA5NDIsInN1YiI6IjVjN2FjN2QwLWRiNjUtNGYxMS05OGUxLWVlYzBkMWQ1YzZhZSIsInRlbF90b2tlbiI6InJqX1pra1pVT1pNeFpPZk9tTHBFVUIzc2lVN3U2UmpaRmVNOXMtZ2JfeENSNTZXRktGQUppTXlGMlQ2Q0JSbWxoX1N5MGlfbGZ5VDlBSThzRWlmOE1USUlzenl6U2xfYURuRzQ4YU81MHlhSEd1UlNZYlViU1ltOVdJaVEwZz09IiwidHlwIjoiYWNjZXNzIn0.gNEwzTow5MLLPLQENytca7pUN79PmPj6FyqZWW06ZeEmesxYpwKh0xRtA0TzLh6CDYIRHrI8seofOO0YFGDhpQ"
}
},
"required": [
"refresh_token"
]
},
"Region": {
"description": "Region where the bucket is located.",
"type": "string",
"example": "us-east-1"
},
"RegionIn": {
"type": "object",
"properties": {
"region_code": {
"description": "The region the interface should be deployed to.",
"type": "string",
"example": "ashburn-va"
}
}
},
"RegionInformation": {
"properties": {
"region_type": {
"type": "string",
"example": "country_code",
"enum": [
"country_code",
"rate_center",
"state",
"location"
]
},
"region_name": {
"type": "string",
"example": "US"
}
},
"example": {
"region_type": "country_code",
"region_name": "US"
},
"type": "object"
},
"RegionOut": {
"type": "object",
"properties": {
"region_code": {
"description": "The region interface is deployed to.",
"type": "string",
"example": "ashburn-va"
},
"region": {
"type": "object",
"properties": {
"code": {
"description": "Region code of the interface.",
"type": "string",
"example": "ashburn-va"
},
"name": {
"description": "Region name of the interface.",
"type": "string",
"example": "Ashburn"
},
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"readOnly": true,
"example": "region"
}
}
}
}
},
"RegulatoryRequirement": {
"type": "object",
"properties": {
"record_type": {
"type": "string"
},
"requirement_id": {
"type": "string",
"format": "uuid"
},
"field_type": {
"type": "string"
}
}
},
"RegulatoryRequirements": {
"properties": {
"country_code": {
"type": "string",
"example": "DE",
"readOnly": true
},
"phone_number_type": {
"type": "string",
"example": "local",
"readOnly": true
},
"action": {
"type": "string",
"example": "ordering",
"readOnly": true
},
"regulatory_requirements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"example": "Address matching the DID area code (street, building number, postal code, city and country)",
"readOnly": true
},
"id": {
"type": "string",
"format": "uuid",
"example": "12ade33a-21c0-473b-b055-b3c836e1c292",
"readOnly": true
},
"example": {
"type": "string",
"example": "600 Congress Avenue, 14th Floor, Austin, TX 78701",
"readOnly": true
},
"name": {
"type": "string",
"example": "Address matching the DID area code"
},
"field_type": {
"type": "string",
"example": "address_id"
},
"acceptance_criteria": {
"type": "object",
"properties": {
"locality_limit": {
"type": "string",
"example": "Identical locality as the numbers desired"
},
"time_limit": {
"type": "string",
"example": "Less than 5 months old"
},
"regex": {
"type": "string",
"example": "regex field value must match"
},
"case_sensitive": {
"type": "string",
"example": "Whether field value is case sensitive"
},
"acceptable_characters": {
"type": "string",
"example": "Characters that can be included in field value"
},
"acceptable_values": {
"type": "array",
"items": {
"type": "string"
}
},
"max_length": {
"type": "string",
"example": "10"
},
"min_length": {
"type": "string",
"example": "5"
}
}
}
}
}
}
},
"type": "object"
},
"RegulatoryRequirementsPhoneNumbers": {
"properties": {
"phone_number": {
"type": "string",
"example": "+41215471644",
"readOnly": true
},
"phone_number_type": {
"type": "string",
"example": "local",
"readOnly": true
},
"region_information": {
"type": "array",
"items": {
"type": "object",
"properties": {
"region_name": {
"type": "string",
"example": "CH"
},
"region_type": {
"type": "string",
"example": "country_code"
}
}
}
},
"record_type": {
"type": "string",
"example": "phone_number_regulatory_requirements",
"readOnly": true
},
"regulatory_requirements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"example": "Address matching the DID area code (street, building number, postal code, city and country)",
"readOnly": true
},
"id": {
"type": "string",
"format": "uuid",
"example": "12ade33a-21c0-473b-b055-b3c836e1c292",
"readOnly": true
},
"example": {
"type": "string",
"example": "600 Congress Avenue, 14th Floor, Austin, TX 78701",
"readOnly": true
},
"label": {
"type": "string",
"example": "Address matching the DID area code"
},
"field_type": {
"type": "string",
"example": "address_id"
},
"acceptance_criteria": {
"type": "object",
"properties": {
"locality_limit": {
"type": "string",
"example": "Identical locality as the numbers desired"
},
"field_value": {
"type": "string",
"example": "45f45a04-b4be-4592-95b1-9306b9db2b21"
},
"field_type": {
"type": "string",
"example": "address"
}
}
},
"record_type": {
"type": "string",
"example": "regulatory_requirement",
"readOnly": true
}
}
}
}
},
"type": "object"
},
"RejectRequest": {
"type": "object",
"title": "Reject Request",
"required": [
"cause"
],
"properties": {
"client_state": {
"description": "Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
},
"command_id": {
"description": "Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.",
"type": "string",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901"
},
"cause": {
"description": "Cause for call rejection.",
"type": "string",
"enum": [
"CALL_REJECTED",
"USER_BUSY"
],
"example": "USER_BUSY"
}
},
"example": {
"client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
"command_id": "891510ac-f3e4-11e8-af5b-de00688a4901",
"cause": "USER_BUSY"
}
},
"RejectionReason": {
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "documentation_incomplete"
},
"title": {
"type": "string",
"example": "Documentation incomplete"
},
"detail": {
"type": "string",
"example": "Provided documents do not establish business identity."
},
"message": {
"type": "string",
"nullable": true,
"description": "Customer-visible free-text comment from the Telnyx vetting team. Only the first entry of `rejection_reasons` carries this; the rest are `null`.",
"example": "Please re-upload a clearer scan of the certificate."
}
}
},
"RelationshipInfo": {
"type": "object",
"required": [
"type",
"via",
"parent_id"
],
"properties": {
"type": {
"type": "string",
"description": "Relationship type identifier."
},
"via": {
"$ref": "#/components/schemas/FieldMapping"
},
"parent_id": {
"type": "string",
"description": "Identifier of the parent event."
}
}
},
"RelationshipMetadata": {
"type": "object",
"required": [
"total_children",
"total_siblings",
"total_parents",
"max_recommended_depth"
],
"properties": {
"total_children": {
"type": "integer"
},
"total_siblings": {
"type": "integer"
},
"total_parents": {
"type": "integer"
},
"max_recommended_depth": {
"type": "integer"
}
}
},
"Release": {
"type": "object",
"title": "Phone Number Release",
"properties": {
"ticket_id": {
"$ref": "#/components/schemas/UUID"
},
"tenant_id": {
"type": "string",
"format": "uuid",
"example": "ea175aba-f47c-4702-9400-efaa42688048"
},
"status": {
"type": "string",
"enum": [
"pending_upload",
"pending",
"in_progress",
"complete",
"failed",
"expired",
"unknown"
],
"description": "Represents the status of the release on Microsoft Teams.",
"example": "pending",
"default": "pending_upload"
},
"error_message": {
"type": "string",
"description": "A message set if there is an error with the upload process."
},
"telephone_numbers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TnReleaseEntry"
}
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date indicating when the resource was created.",
"example": "2018-02-02T22:25:27.521Z"
}
}
},
"RemediationPerNumberResults": {
"type": "object",
"description": "Per-category buckets of phone numbers, populated once results are available. Empty lists are kept (not omitted) so consumers can iterate without null-checking each key.",
"properties": {
"remediated": {
"type": "array",
"items": {
"type": "string",
"example": "+19493253498"
}
},
"not_flagged": {
"type": "array",
"items": {
"type": "string"
}
},
"requires_review": {
"type": "array",
"items": {
"type": "string"
}
},
"ineligible": {
"type": "array",
"items": {
"type": "string"
}
},
"refused": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"RemediationRequest": {
"type": "object",
"description": "Full detail of a remediation request, returned on submit and GET by id.",
"required": [
"id",
"status",
"phone_numbers_count",
"phone_numbers_submitted",
"phone_numbers_ineligible",
"call_purpose",
"created_at",
"updated_at"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "b7c1f1c0-7a9d-4f0a-9d3e-2f6a1c4b8e21"
},
"status": {
"$ref": "#/components/schemas/RemediationStatus"
},
"phone_numbers_count": {
"type": "integer",
"description": "Total phone numbers in this batch, including any later cancelled. May exceed the sum of the per-category result buckets, which omit cancelled numbers.",
"example": 2
},
"phone_numbers_submitted": {
"type": "integer",
"description": "Numbers accepted for remediation, i.e. not rejected as ineligible. Counts numbers still queued (pending) as well as processed ones.",
"example": 2
},
"phone_numbers_ineligible": {
"type": "integer",
"description": "Numbers rejected before submission (e.g. cooldown).",
"example": 0
},
"call_purpose": {
"type": "string",
"example": "Appointment reminders for our dental clinic."
},
"contact_email": {
"type": "string",
"format": "email",
"nullable": true,
"example": "ops@example.com"
},
"webhook_url": {
"type": "string",
"format": "uri",
"nullable": true,
"example": "https://example.com/webhooks/remediation"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-06-01T12:00:00Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-06-01T12:05:00Z"
},
"tier1_completed_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"tier2_completed_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"results": {
"$ref": "#/components/schemas/RemediationPerNumberResults",
"nullable": true,
"description": "Per-category buckets. Populated once results are available. Null while the request is still pending."
}
}
},
"RemediationRequestCreate": {
"type": "object",
"additionalProperties": false,
"required": [
"phone_numbers",
"call_purpose"
],
"properties": {
"phone_numbers": {
"type": "array",
"description": "Phone numbers in E.164 format. Each must belong to this enterprise. Maximum 2,000 per request.",
"minItems": 1,
"maxItems": 2000,
"items": {
"type": "string",
"pattern": "^\\+[1-9][0-9]{9,14}$",
"example": "+19493253498"
}
},
"call_purpose": {
"type": "string",
"description": "How the numbers are used (free text).",
"minLength": 1,
"maxLength": 2000,
"example": "Appointment reminders for our dental clinic."
},
"contact_email": {
"type": "string",
"format": "email",
"description": "Optional contact email for this remediation request.",
"maxLength": 255,
"example": "ops@example.com"
},
"webhook_url": {
"type": "string",
"format": "uri",
"description": "Optional https:// URL for status notifications.",
"maxLength": 2048,
"example": "https://example.com/webhooks/remediation"
}
}
},
"RemediationRequestList": {
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemediationRequestListItem"
}
},
"meta": {
"$ref": "#/components/schemas/number-reputation_PaginationMeta"
}
}
},
"RemediationRequestListItem": {
"type": "object",
"description": "Slim list-endpoint shape. Omits per-number results and webhook URLs to keep responses small.",
"required": [
"id",
"status",
"phone_numbers_count",
"call_purpose",
"created_at",
"updated_at"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "b7c1f1c0-7a9d-4f0a-9d3e-2f6a1c4b8e21"
},
"status": {
"$ref": "#/components/schemas/RemediationStatus"
},
"phone_numbers_count": {
"type": "integer",
"example": 2
},
"call_purpose": {
"type": "string",
"example": "Appointment reminders for our dental clinic."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-06-01T12:00:00Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-06-01T12:05:00Z"
},
"tier1_completed_at": {
"type": "string",
"format": "date-time",
"nullable": true
},
"tier2_completed_at": {
"type": "string",
"format": "date-time",
"nullable": true
}
}
},
"RemediationRequestWrapped": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/RemediationRequest"
}
}
},
"RemediationStatus": {
"type": "string",
"description": "Customer-facing status of a remediation request.",
"enum": [
"pending",
"in_progress",
"completed",
"failed",
"cancelled"
],
"example": "in_progress"
},
"ReplacedLinkClick": {
"type": "object",
"properties": {
"record_type": {
"type": "string",
"example": "link_clicked",
"description": "Identifies the type of the resource."
},
"url": {
"type": "string",
"example": "link_clicked",
"description": "The original link that was sent in the message."
},
"to": {
"type": "string",
"description": "Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short code).",
"x-format": "address"
},
"message_id": {
"type": "string",
"format": "uuid",
"description": "The message ID associated with the clicked link."
},
"time_clicked": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 formatted date indicating when the message request was received."
}
},
"example": {
"record_type": "link_clicked",
"url": "https://telnyx.com",
"to": "18445550001",
"message_id": "7ee4241c-f127-47e5-9c34-3aac291f8058",
"time_clicked": "2019-04-01T14:45:45.450Z"
}
},
"ReplacedLinkClickEvent": {
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/ReplacedLinkClick"
}
}
},
"ReputationCheckFrequency": {
"type": "string",
"enum": [
"business_daily",
"daily",
"weekly",
"biweekly",
"monthly",
"never"
],
"description": "How often Telnyx refreshes the stored reputation data for this enterprise's registered numbers."
},
"ReputationData": {
"type": "object",
"description": "Reputation snapshot for a phone number. Each metric is a 0\u2013100 score; `spam_risk` is a coarse bucket. Field set may grow over time - read by key.",
"properties": {
"spam_risk": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"nullable": true,
"description": "Overall spam-risk classification.",
"example": "low"
},
"spam_category": {
"type": "string",
"nullable": true,
"description": "Category label from the reputation feed when the number is flagged.",
"example": null
},
"maturity_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"nullable": true,
"example": 72
},
"connection_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"nullable": true,
"example": 80
},
"engagement_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"nullable": true,
"example": 64
},
"sentiment_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"nullable": true,
"example": 75
},
"last_refreshed_at": {
"type": "string",
"format": "date-time",
"nullable": true,
"example": "2026-04-26T18:09:24.785211Z"
}
}
},
"ReputationLoaStatusPublic": {
"type": "string",
"enum": [
"pending",
"approved",
"rejected"
],
"description": "Customer-facing Letter-of-Authorization verification state. `approved` is required (alongside reputation status) before phone numbers can be added.",
"example": "pending"
},
"ReputationPhoneNumber": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "8a4b1f5e-2f12-4c0c-9a98-9b3a7d8b8e62",
"readOnly": true
},
"enterprise_id": {
"type": "string",
"format": "uuid",
"example": "4a6192a4-573d-446d-b3ce-aff9117272a6"
},
"phone_number": {
"type": "string",
"description": "E.164 with leading `+`.",
"example": "+19493253498"
},
"reputation_data": {
"$ref": "#/components/schemas/ReputationData",
"nullable": true,
"description": "`null` until the first refresh has been collected for this number."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2026-04-26T18:06:51.940749Z",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2026-04-26T18:09:24.785211Z",
"readOnly": true
}
}
},
"ReputationPhoneNumberCreate": {
"type": "object",
"required": [
"phone_numbers"
],
"additionalProperties": false,
"properties": {
"phone_numbers": {
"type": "array",
"items": {
"type": "string",
"example": "+19493253498"
},
"minItems": 1,
"maxItems": 100,
"description": "1\u2013100 phone numbers in E.164 format with a leading `+`."
}
}
},
"ReputationPhoneNumberList": {
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReputationPhoneNumber"
}
},
"meta": {
"$ref": "#/components/schemas/number-reputation_PaginationMeta"
}
}
},
"ReputationPhoneNumberListWithReputation": {
"description": "List of reputation-monitored phone numbers, each carrying its current reputation data.",
"allOf": [
{
"$ref": "#/components/schemas/ReputationPhoneNumberList"
}
]
},
"ReputationPhoneNumberWithReputation": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/ReputationPhoneNumber"
}
}
},
"ReputationStatus": {
"type": "string",
"enum": [
"pending",
"approved",
"deleted",
"rejected"
],
"description": "Lifecycle status of the enterprise's Phone Number Reputation activation."
},
"RequirementGroup": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"country_code": {
"type": "string"
},
"phone_number_type": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"approved",
"unapproved",
"pending-approval",
"declined",
"expired"
]
},
"action": {
"type": "string"
},
"customer_reference": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"record_type": {
"type": "string",
"example": "requirement_group"
},
"regulatory_requirements": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UserRequirement"
}
}
}
},
"ResembleProviderParams": {
"type": "object",
"description": "Resemble AI provider-specific parameters.",
"properties": {
"api_key": {
"type": "string",
"description": "Custom Resemble API key."
},
"precision": {
"type": "string",
"description": "Synthesis precision."
},
"sample_rate": {
"type": "string",
"description": "Audio sample rate."
},
"format": {
"type": "string",
"description": "Audio output format."
}
}
},
"ResembleSampleRate": {
"type": "string",
"title": "Resemble Sample Rate",
"description": "Audio sample rate in Hz.",
"enum": [
"8000",
"16000",
"22050",
"32000",
"44100",
"48000"
],
"default": "48000"
},
"ResembleVoiceSettings": {
"type": "object",
"title": "Resemble Voice Settings",
"properties": {
"type": {
"type": "string",
"enum": [
"resemble"
],
"description": "Voice settings provider type"
},
"precision": {
"description": "Audio precision format.",
"type": "string",
"enum": [
"PCM_16",
"PCM_24",
"PCM_32",
"MULAW"
],
"default": "PCM_32"
},
"sample_rate": {
"$ref": "#/components/schemas/ResembleSampleRate"
},
"format": {
"description": "Output audio format.",
"type": "string",
"enum": [
"wav",
"mp3"
],
"default": "mp3"
}
},
"required": [
"type"
]
},
"ReservedPhoneNumber": {
"properties": {
"id": {
"type": "string",
"format": "uuid",
"example": "12ade33a-21c0-473b-b055-b3c836e1c292",
"readOnly": true
},
"errors": {
"type": "string",
"description": "Errors the reservation could happen upon",
"example": "Number is already on hold",
"readOnly": true
},
"record_type": {
"type": "string",
"example": "reserved_phone_number",
"readOnly": true
},
"phone_number": {
"type": "string",
"example": "+19705555098"
},
"status": {
"type": "string",
"enum": [
"pending",
"success",
"failure"
],
"description": "The status of the phone number's reservation.",
"example": "success",
"readOnly": true
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "An ISO 8901 datetime string denoting when the individual number reservation was created.",
"example": "2018-01-01T00:00:00.000000Z",
"readOnly": true
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "An ISO 8901 datetime string for when the the individual number reservation was updated.",
"example": "2018-01-01T00:00:00.000000Z",
"readOnly": true
},
"expired_at": {
"type": "string",
"format": "date-time",
"description": "An ISO 8901 datetime string for when the individual number reservation is going to expire",
"example": "2018-01-01T00:00:00.000000Z",
"readOnly": true
}
},
"example": {
"id": "12ade33a-21c0-473b-b055-b3c836e1c292",
"record_type": "reserved_phone_number",
"phone_number": "+19705555098",
"status": "pending",
"created_at": "2018-01-01T00:00:00.000000Z",
"updated_at": "2018-01-01T00:00:00.000000Z",
"expired_at": "2018-01-01T00:00:00.000000Z"
},
"type": "object"
},
"ResourceMetadata": {
"type": "object",
"properties": {
"resource": {
"type": "string",
"format": "uri",
"description": "Protected resource URL"
},
"authorization_servers": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "List of authorization server URLs"
}
}
},
"ResourceNotFoundError": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Error code identifying the error type."
},
"detail": {
"type": "string",
"description": "A human-readable explanation of the error."
},
"meta": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "A URL to the detailed documentation for the error."
}
}
},
"title": {
"type": "string",
"description": "A short, human-readable summary of the problem."
}
}
}
}
}
},
"ResponseMeta": {
"type": "object",
"required": [
"event_count",
"products"
],
"properties": {
"event_count": {
"type": "integer",
"description": "Total number of events in the session tree."
},
"products": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of distinct products involved in the session."
}
}
},
"ResumeConferenceRecordingRequest": {
"type": "object",
"title": "Pause Recording Request",
"properties": {
"command_id": {
"description": "Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.",
"type": "string",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901"
},
"recording_id": {
"description": "Use this field to resume specific recording.",
"type": "string",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901"
},
"region": {
"$ref": "#/components/schemas/ConferenceRegion"
}
}
},
"ResumeRecordingRequest": {
"type": "object",
"title": "Resume Recording Request",
"properties": {
"client_state": {
"description": "Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.",
"type": "string",
"example": "aGF2ZSBhIG5pY2UgZGF5ID1d"
},
"command_id": {
"description": "Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.",
"type": "string",
"example": "891510ac-f3e4-11e8-af5b-de00688a4901"
},
"recording_id": {
"description": "Uniquely identifies the resource.",
"type": "string",
"format": "uuid",
"example": "6e00ab49-9487-4364-8ad6-23965965afb2"
}
}
},
"Retrieval": {
"properties": {
"type": {
"type": "string",
"enum": [
"retrieval"
]
},
"retrieval": {
"$ref": "#/components/schemas/BucketIds"
}
},
"type": "object",
"required": [
"type",
"retrieval"
],
"title": "Retrieval"
},
"RetrievalTool": {
"properties": {
"type": {
"type": "string",
"enum": [
"retrieval"
]
},
"retrieval": {
"$ref": "#/components/schemas/BucketIds"
}
},
"type": "object",
"required": [
"type",
"retrieval"
],
"title": "RetrievalTool"
},
"RetrieveVerificationResponse": {
"title": "RetrieveVerificationResponse",
"required": [
"data"
],
"type": "object",
"properties": {
"data": {
"$ref": "#/components/schemas/Verification"
}
}
},
"RimeProviderParams": {
"type": "object",
"description": "Rime provider-specific parameters.",
"properties": {
"voice_speed": {
"type": "number",
"format": "float",
"description": "Voice speed multiplier."
},
"response_format": {
"type": "string",
"description": "Audio output format."
},
"sampling_rate": {
"type": "integer",
"description": "Audio sampling rate in Hz."
}
}
},
"RimeVoiceSettings": {
"type": "object",
"title": "Rime Voice Settings",
"properties": {
"type": {
"type": "string",
"enum": [
"rime"
],
"description": "Voice settings provider type"
},
"voice_speed": {
"description": "Speech speed multiplier. Default is 1.0.",
"type": "number",
"format": "float",
"default": 1.0,
"example": 1.0
}
},
"required": [
"type"
]
},
"RolloutSlot": {
"properties": {
"version_id": {
"type": "string",
"title": "Version Id"
},
"weight": {
"type": "number",
"title": "Weight",
"minimum": 0.0,
"maximum": 100.0
}
},
"type": "object",
"required": [
"version_id",
"weight"
],
"title": "RolloutSlot",
"description": "One slot in a percentage rollout."
},
"Room": {
"type": "object",
"properties": {
"id": {
"description": "A unique identifier for the room.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0"
},
"max_participants": {
"description": "Maximum participants allowed in the room.",
"type": "integer",
"example": 50
},
"unique_name": {
"description": "The unique (within the Telnyx account scope) name of the room.",
"type": "string",
"example": "My room"
},
"created_at": {
"description": "ISO 8601 timestamp when the room was created.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"updated_at": {
"description": "ISO 8601 timestamp when the room was updated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"active_session_id": {
"description": "The identifier of the active room session if any.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0"
},
"sessions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RoomSession"
}
},
"enable_recording": {
"description": "Enable or disable recording for that room.",
"type": "boolean",
"example": true,
"default": false
},
"webhook_event_url": {
"type": "string",
"format": "uri",
"description": "The URL where webhooks related to this room will be sent. Must include a scheme, such as 'https'.",
"example": "https://example.com"
},
"webhook_event_failover_url": {
"type": "string",
"format": "uri",
"description": "The failover URL where webhooks related to this room will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_timeout_secs": {
"type": "integer",
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
},
"record_type": {
"type": "string",
"example": "room",
"readOnly": true
}
},
"example": {
"id": "7b61621f-62e0-4aad-ab11-9fd19e272e73",
"max_participants": 50,
"unique_name": "My Room",
"created_at": "2021-04-16T09:46:20.954863Z",
"updated_at": "2021-04-16T10:24:55.962200Z",
"active_session_id": "7b61621f-62e0-4aad-ab11-9fd19e272e74",
"enable_recording": true,
"webhook_event_failover_url": "https://failover.example.com",
"webhook_timeout_secs": 25,
"webhook_event_url": "https://www.example.com",
"sessions": [
{
"id": "7b61621f-62e0-4aad-ab11-9fd19e272e74",
"room_id": "7b61621f-62e0-4aad-ab11-9fd19e272e73",
"active": true,
"created_at": "2021-04-16T09:46:20.954863Z",
"updated_at": "2021-04-16T10:24:55.962200Z",
"participants": [],
"record_type": "room_session"
}
],
"record_type": "room"
}
},
"RoomComposition": {
"type": "object",
"properties": {
"id": {
"description": "A unique identifier for the room composition.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0"
},
"room_id": {
"description": "Identify the room associated with the room composition.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"session_id": {
"description": "Identify the room session associated with the room composition.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"user_id": {
"description": "Identify the user associated with the room composition.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"status": {
"description": "Shows the room composition status.",
"type": "string",
"example": "completed",
"enum": [
"completed",
"enqueued",
"processing"
]
},
"size_mb": {
"description": "Shows the room composition size in MB.",
"type": "number",
"format": "float",
"example": 10.5
},
"download_url": {
"description": "Url to download the composition.",
"type": "string",
"example": "https://www.example.com"
},
"duration_secs": {
"description": "Shows the room composition duration in seconds.",
"type": "integer",
"example": 67
},
"format": {
"description": "Shows format of the room composition.",
"type": "string",
"example": "mp4",
"enum": [
"mp4"
]
},
"created_at": {
"description": "ISO 8601 timestamp when the room composition was created.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"updated_at": {
"description": "ISO 8601 timestamp when the room composition was updated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"ended_at": {
"description": "ISO 8601 timestamp when the room composition has ended.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"started_at": {
"description": "ISO 8601 timestamp when the room composition has stated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"completed_at": {
"description": "ISO 8601 timestamp when the room composition has completed.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"video_layout": {
"description": "Describes the video layout of the room composition in terms of regions. Limited to 2 regions.",
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/VideoRegion"
}
},
"webhook_event_url": {
"description": "The URL where webhooks related to this room composition will be sent. Must include a scheme, such as 'https'.",
"type": "string",
"format": "uri",
"example": "https://example.com"
},
"webhook_event_failover_url": {
"type": "string",
"format": "uri",
"description": "The failover URL where webhooks related to this room composition will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_timeout_secs": {
"type": "integer",
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
},
"resolution": {
"type": "string",
"description": "The resolution of the room composition.",
"example": "1280x720"
},
"record_type": {
"type": "string",
"example": "room_composition",
"readOnly": true
}
},
"example": {
"completed_at": "2022-02-25T05:39:56.377426Z",
"download_url": "https://example.com",
"duration_secs": 84,
"ended_at": "2022-02-24T23:22:24.577677Z",
"format": "mp4",
"id": "7103dc53-ee59-4b54-a58b-c77d99ceb037",
"record_type": "composition",
"resolution": "1280x720",
"room_id": "f981dbb3-228a-44e9-ac54-e87f0e2658b0",
"session_id": "8f728d7b-00e2-4c59-8c27-f564b828df87",
"size_mb": 6,
"started_at": "2022-02-24T23:21:00.077209Z",
"status": "enqueued",
"user_id": "12a04ec9-0f91-4a91-9f3a-a19d9931182e",
"video_layout": {
"first": {
"height": 720,
"video_sources": [
"7b61621f-62e0-4aad-ab11-9fd19e272e73"
],
"width": 1280,
"x_pos": 0,
"y_pos": 0,
"z_pos": 0
}
},
"webhook_event_url": "https://webhook.site/544663ce-b692-4f9c-80ed-e5ad97cd5c02"
}
},
"RoomParticipant": {
"type": "object",
"properties": {
"id": {
"description": "A unique identifier for the room participant.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0"
},
"session_id": {
"description": "Identify the room session that participant is part of.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"context": {
"description": "Context provided to the given participant through the client SDK",
"type": "string",
"example": "Alice"
},
"joined_at": {
"description": "ISO 8601 timestamp when the participant joined the session.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"updated_at": {
"description": "ISO 8601 timestamp when the participant was updated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"left_at": {
"description": "ISO 8601 timestamp when the participant left the session.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"record_type": {
"type": "string",
"example": "room_participant",
"readOnly": true
}
},
"example": {
"id": "7b61621f-62e0-4aad-ab11-9fd19e272e73",
"session_id": "7b61621f-5fe4-4aad-ab11-9fd19e272e73",
"context": "Alice",
"joined_at": "2021-04-16T09:46:20.954863Z",
"updated_at": "2021-04-16T10:24:55.962200Z",
"left_at": "2021-04-16T10:24:55.962200Z",
"record_type": "room_participant"
}
},
"RoomRecording": {
"type": "object",
"properties": {
"id": {
"description": "A unique identifier for the room recording.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0"
},
"room_id": {
"description": "Identify the room associated with the room recording.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"session_id": {
"description": "Identify the room session associated with the room recording.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"participant_id": {
"description": "Identify the room participant associated with the room recording.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"status": {
"description": "Shows the room recording status.",
"type": "string",
"example": "completed",
"enum": [
"completed",
"processing"
]
},
"type": {
"description": "Shows the room recording type.",
"type": "string",
"example": "audio",
"enum": [
"audio",
"video"
]
},
"size_mb": {
"description": "Shows the room recording size in MB.",
"type": "number",
"format": "float",
"example": 10.5
},
"download_url": {
"description": "Url to download the recording.",
"type": "string",
"example": "https://www.example.com"
},
"codec": {
"description": "Shows the codec used for the room recording.",
"type": "string",
"example": "opus"
},
"duration_secs": {
"description": "Shows the room recording duration in seconds.",
"type": "integer",
"example": 67
},
"created_at": {
"description": "ISO 8601 timestamp when the room recording was created.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"updated_at": {
"description": "ISO 8601 timestamp when the room recording was updated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"ended_at": {
"description": "ISO 8601 timestamp when the room recording has ended.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"started_at": {
"description": "ISO 8601 timestamp when the room recording has stated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"completed_at": {
"description": "ISO 8601 timestamp when the room recording has completed.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"record_type": {
"type": "string",
"example": "room_recording",
"readOnly": true
}
},
"example": {
"id": "6b61621f-62e0-4aad-ab11-9fd19e272e73",
"room_id": "7b61621f-5fe4-4aad-ab11-9fd19e272e73",
"session_id": "8b61621f-5fe4-4aad-ab11-9fd19e272e73",
"participant_id": "9b61621f-5fe4-4aad-ab11-9fd19e272e73",
"status": "completed",
"download_url": "https://www.example.com",
"type": "audio",
"duration_secs": 3660,
"size_mb": 5.6,
"codec": "opus",
"created_at": "2021-04-16T09:46:20.954863Z",
"updated_at": "2021-04-16T10:24:55.962200Z",
"started_at": "2021-04-16T09:24:55.962200Z",
"ended_at": "2021-04-16T10:24:55.962200Z",
"completed_at": "2021-04-16T10:25:55.962200Z",
"record_type": "room_session"
}
},
"RoomSession": {
"type": "object",
"properties": {
"id": {
"description": "A unique identifier for the room session.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777f0"
},
"room_id": {
"description": "Identify the room hosting that room session.",
"type": "string",
"format": "uuid",
"example": "0ccc7b54-4df3-4bca-a65a-3da1ecc777b0"
},
"active": {
"description": "Shows if the room session is active or not.",
"type": "boolean",
"example": false
},
"created_at": {
"description": "ISO 8601 timestamp when the room session was created.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"updated_at": {
"description": "ISO 8601 timestamp when the room session was updated.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"ended_at": {
"description": "ISO 8601 timestamp when the room session has ended.",
"type": "string",
"format": "date-time",
"example": "2021-03-26T17:51:59.588408Z"
},
"participants": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RoomParticipant"
}
},
"record_type": {
"type": "string",
"example": "room_session",
"readOnly": true
}
},
"example": {
"id": "7b61621f-62e0-4aad-ab11-9fd19e272e73",
"room_id": "7b61621f-5fe4-4aad-ab11-9fd19e272e73",
"active": false,
"created_at": "2021-04-16T09:46:20.954863Z",
"updated_at": "2021-04-16T10:24:55.962200Z",
"ended_at": "2021-04-16T10:24:55.962200Z",
"participants": [],
"record_type": "room_session"
}
},
"Rule-Input": {
"properties": {
"match": {
"items": {
"$ref": "#/components/schemas/Clause"
},
"type": "array",
"title": "Match"
},
"serve": {
"$ref": "#/components/schemas/Serve"
}
},
"type": "object",
"required": [
"serve"
],
"title": "Rule",
"description": "A targeting rule: ``match`` clauses (AND) gate ``serve``.\n\nAn empty ``match`` is a catch-all (always fires)."
},
"Rule-Output": {
"properties": {
"match": {
"items": {
"$ref": "#/components/schemas/Clause"
},
"type": "array",
"title": "Match"
},
"serve": {
"$ref": "#/components/schemas/Serve"
}
},
"type": "object",
"required": [
"serve"
],
"title": "Rule",
"description": "A targeting rule: ``match`` clauses (AND) gate ``serve``.\n\nAn empty ``match`` is a catch-all (always fires)."
},
"RunStatus": {
"type": "string",
"enum": [
"pending",
"running",
"paused",
"succeeded",
"failed",
"cancelled"
],
"title": "RunStatus"
},
"S3ConfigurationData": {
"type": "object",
"title": "AWS S3 Storage Configuration Data",
"properties": {
"backend": {
"type": "string",
"enum": [
"s3"
],
"description": "Storage backend type"
},
"bucket": {
"$ref": "#/components/schemas/Bucket"
},
"region": {
"$ref": "#/components/schemas/Region"
},
"aws_access_key_id": {
"$ref": "#/components/schemas/AwsAccessKeyId"
},
"aws_secret_access_key": {
"$ref": "#/components/schemas/AwsSecretAccessKey"
}
},
"required": [
"backend"
]
},
"SIMCard": {
"type": "object",
"title": "SIMCard",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Identifies the resource.",
"readOnly": true,
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
},
"record_type": {
"type": "string",
"example": "sim_card",
"readOnly": true
},
"status": {
"$ref": "#/components/schemas/SIMCardStatus"
},
"type": {
"type": "string",
"description": "The type of SIM card",
"readOnly": true,
"example": "physical",
"enum": [
"physical",
"esim"
]
},
"iccid": {
"type": "string",
"description": "The ICCID is the identifier of the specific SIM card/chip. Each SIM is internationally identified by its integrated circuit card identifier (ICCID). ICCIDs are stored in the SIM card's memory and are also engraved or printed on the SIM card body during a process called personalization.\n",
"readOnly": true,
"example": "89310410106543789301"
},
"imsi": {
"type": "string",
"description": "SIM cards are identified on their individual network operators by a unique International Mobile Subscriber Identity (IMSI). null when it's present in an associated resource.",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
},
"tags": {
"type": "array",
"description": "Searchable tags associated with the SIM card",
"items": {
"type": "string"
},
"example": [
"personal",
"customers",
"active-customers"
]
},
"authorized_imeis": {
"type": [
"array",
"null"
],
"description": "List of IMEIs authorized to use a given SIM card.",
"items": {
"type": "string"
},
"example": [
"106516771852751",
"534051870479563",
"508821468377961"
]
},
"current_imei": {
"type": "string",
"description": "IMEI of the device where a given SIM card is currently being used.",
"readOnly": true,
"example": "457032284023794"
},
"data_limit": {
"type": "object",
"description": "The SIM card individual data limit configuration.",
"properties": {
"amount": {
"type": "string",
"example": "2048.1"
},
"unit": {
"type": "string",
"example": "MB",
"enum": [
"MB",
"GB"
]
}
}
},
"current_billing_period_consumed_data": {
"type": "object",
"description": "The SIM card consumption so far in the current billing cycle.",
"readOnly": true,
"properties": {
"amount": {
"type": "string",
"example": "2049.0"
},
"unit": {
"type": "string",
"example": "MB",
"default": "MB"
}
}
},
"actions_in_progress": {
"type": "boolean",
"description": "Indicate whether the SIM card has any pending (in-progress) actions.",
"readOnly": true,
"example": true,
"default": false
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date-time indicating when the resource was created.",
"readOnly": true,
"example": "2018-02-02T22:25:27.521Z"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date-time indicating when the resource was updated.",
"readOnly": true,
"example": "2018-02-02T22:25:27.521Z"
},
"ipv4": {
"type": "string",
"description": "The SIM's address in the currently connected network. This IPv4 address is usually obtained dynamically, so it may vary according to the location or new connections.\n",
"readOnly": true,
"example": "192.168.0.0"
},
"ipv6": {
"type": "string",
"description": "The SIM's address in the currently connected network. This IPv6 address is usually obtained dynamically, so it may vary according to the location or new connections.\n",
"readOnly": true,
"example": "2001:cdba:0000:0000:0000:0000:3257:9652"
},
"current_device_location": {
"type": "object",
"description": "Current physical location data of a given SIM card. Accuracy is given in meters.",
"readOnly": true,
"properties": {
"latitude": {
"type": "string",
"example": "41.143"
},
"longitude": {
"type": "string",
"example": "-8.605"
},
"accuracy": {
"type": "integer",
"example": 1250
},
"accuracy_unit": {
"type": "string",
"example": "m",
"default": "m"
}
}
},
"current_mnc": {
"type": "string",
"readOnly": true,
"description": "Mobile Network Code of the current network to which the SIM card is connected. It's a two to three decimal digits that identify a network.enable - move the SIM card to the enabled statusenable_standby_sim_card - move a SIM card previously on the standby status to the enabled status after it consumes data.disable - move the SIM card to the disabled statusset_standby - move the SIM card to the standby statusnull for self-explanatory statuses, such as in-progress and completed but will include further information on statuses like interrupted and failed.",
"readOnly": true,
"example": "The data limit was exceeded."
}
}
},
"settings": {
"type": [
"object",
"null"
],
"description": "A JSON object representation of the action params.",
"example": {},
"readOnly": true,
"additionalProperties": true
},
"created_at": {
"$ref": "#/components/schemas/wireless_CreatedAt"
},
"updated_at": {
"$ref": "#/components/schemas/wireless_UpdatedAt"
}
}
},
"SIMCardActionsSummary": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"in-progress",
"completed",
"failed",
"interrupted"
],
"example": "in-progress"
},
"count": {
"type": "integer"
}
}
},
"SIMCardActivationCode": {
"type": "object",
"title": "SIMCardActivationCode",
"properties": {
"record_type": {
"type": "string",
"example": "sim_card_activation_code",
"readOnly": true
},
"activation_code": {
"type": "string",
"description": "Contents of the eSIM activation QR code.",
"example": "LPA:1$....",
"readOnly": true
}
}
},
"SIMCardDeviceDetails": {
"type": "object",
"title": "SIMCardDeviceDetails",
"properties": {
"record_type": {
"type": "string",
"example": "device_details",
"readOnly": true
},
"imei": {
"type": "string",
"description": "IMEI of the device where the SIM card is being used in.",
"example": "457032284023794",
"readOnly": true
},
"model_name": {
"type": "string",
"description": "Brand of the device where the SIM card is being used in.",
"example": "iPad Pro 11 2020 Cellular",
"readOnly": true
},
"brand_name": {
"type": "string",
"description": "Brand of the device where the SIM card is being used in.",
"example": "Apple",
"readOnly": true
},
"device_type": {
"type": "string",
"description": "Type of the device where the SIM card is being used in.",
"example": "Tablet",
"readOnly": true
},
"operating_system": {
"type": "string",
"description": "Operating system of the device where the SIM card is being used in.",
"example": "iOS 12",
"readOnly": true
}
}
},
"SIMCardGroup": {
"title": "SIMCardGroup",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Identifies the resource.",
"readOnly": true,
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
},
"record_type": {
"type": "string",
"description": "Identifies the type of the resource.",
"readOnly": true,
"example": "sim_card_group"
},
"default": {
"description": "Indicates whether the SIM card group is the users default group.pending - the order is waiting to be processed.processing - the order is currently being processed.ready_to_ship - the order is ready to be shipped to the specified address.shipped - the order was shipped and is on its way to be delivered to the specified address.delivered - the order was delivered to the specified address.canceled - the order was canceled.null when it's present in an associated resource.",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
},
"tags": {
"type": "array",
"description": "Searchable tags associated with the SIM card",
"items": {
"type": "string"
},
"example": [
"personal",
"customers",
"active-customers"
]
},
"registration_codes": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"0000000001",
"0000000002",
"0000000003"
]
},
"status": {
"type": "string",
"description": "Status on which the SIM card will be set after being successful registered.",
"enum": [
"enabled",
"disabled",
"standby"
],
"example": "standby",
"default": "enabled"
}
},
"required": [
"registration_codes"
]
},
"SIMCardRegistrationCodeValidation": {
"type": "object",
"properties": {
"record_type": {
"type": "string",
"example": "sim_card_registration_code_validation"
},
"registration_code": {
"type": "string",
"description": "The 10-digit SIM card registration code",
"example": "0123456789"
},
"valid": {
"type": "boolean",
"description": "The attribute that denotes whether the code is valid or not",
"example": false
},
"invalid_detail": {
"type": [
"string",
"null"
],
"description": "The validation message",
"example": "This code has already been used."
}
}
},
"SIMCardRegistrationCodeValidations": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SIMCardRegistrationCodeValidation"
}
}
}
},
"SIMCardStatus": {
"type": "object",
"properties": {
"value": {
"type": "string",
"enum": [
"registering",
"enabling",
"enabled",
"disabling",
"disabled",
"data_limit_exceeded",
"setting_standby",
"standby"
],
"description": "The current status of the SIM card. It will be one of the following: registering - the card is being registeredenabling - the card is being enabledenabled - the card is enabled and ready for usedisabling - the card is being disableddisabled - the card has been disabled and cannot be useddata_limit_exceeded - the card has exceeded its data consumption limitsetting_standby - the process to set the card in stand by is in progressstandby - the card is in stand bynull when it's present in an associated resource.",
"example": "6a09cdc3-8948-47f0-aa62-74ac943d6c58"
},
"tags": {
"type": "array",
"description": "Searchable tags associated with the SIM card",
"items": {
"type": "string"
},
"example": [
"personal",
"customers",
"active-customers"
]
},
"data_limit": {
"type": "object",
"description": "The SIM card individual data limit configuration.",
"readOnly": true,
"properties": {
"amount": {
"type": "string",
"example": "2048.0"
},
"unit": {
"type": "string",
"example": "MB",
"enum": [
"MB",
"GB"
]
}
}
},
"current_billing_period_consumed_data": {
"type": "object",
"description": "The SIM card consumption so far in the current billing cycle.",
"readOnly": true,
"properties": {
"amount": {
"type": "string",
"example": "2049.0"
},
"unit": {
"type": "string",
"example": "MB",
"default": "MB"
}
}
},
"actions_in_progress": {
"type": "boolean",
"description": "Indicate whether the SIM card has any pending (in-progress) actions.",
"readOnly": true,
"example": true,
"default": false
},
"created_at": {
"type": "string",
"description": "ISO 8601 formatted date-time indicating when the resource was created.",
"readOnly": true,
"example": "2018-02-02T22:25:27.521Z"
},
"updated_at": {
"type": "string",
"description": "ISO 8601 formatted date-time indicating when the resource was updated.",
"readOnly": true,
"example": "2018-02-02T22:25:27.521Z"
},
"esim_installation_status": {
"type": [
"string",
"null"
],
"description": "The installation status of the eSIM. Only applicable for eSIM cards.",
"readOnly": true,
"example": "released",
"enum": [
"released",
"disabled"
]
},
"version": {
"type": "string",
"description": "The version of the SIM card.",
"readOnly": true,
"example": "4.3"
},
"resources_with_in_progress_actions": {
"type": "array",
"description": "List of resources with actions in progress.",
"readOnly": true,
"items": {
"type": "object"
},
"example": []
},
"eid": {
"type": [
"string",
"null"
],
"description": "The Embedded Identity Document (eID) for eSIM cards.",
"readOnly": true,
"example": null
},
"authorized_imeis": {
"type": [
"array",
"null"
],
"description": "List of IMEIs authorized to use a given SIM card.",
"items": {
"type": "string"
},
"example": [
"106516771852751",
"534051870479563",
"508821468377961"
]
},
"voice_enabled": {
"type": "boolean",
"description": "Indicates whether voice services are enabled for the SIM card.",
"readOnly": true,
"example": false,
"default": false
}
}
},
"SimplifiedOTAUpdate": {
"type": "object",
"title": "OTAUpdate",
"description": "This object represents an Over the Air (OTA) update request. It allows tracking the current status of a operation that apply settings in a particular SIM card. Latency directs Telnyx to route media through the site with the lowest round-trip time to the user's connection. Telnyx calculates this time using ICMP ping messages. This can be disabled by specifying a site to handle all media.\n",
"enum": [
"Latency",
"Chicago, IL",
"Ashburn, VA",
"San Jose, CA",
"London, UK",
"Chennai, IN",
"Amsterdam, Netherlands",
"Toronto, Canada",
"Sydney, Australia"
],
"example": "Amsterdam, Netherlands",
"default": "Latency"
},
"dtmf_type": {
"type": "string",
"description": "Sets the type of DTMF digits sent from Telnyx to this Connection. Note that DTMF digits sent to Telnyx will be accepted in all formats.",
"enum": [
"RFC 2833",
"Inband",
"SIP INFO"
],
"example": "Inband",
"default": "RFC 2833"
},
"first_command_timeout": {
"type": "boolean",
"description": "Specifies whether calls to phone numbers associated with this connection should hangup after timing out.",
"example": true,
"default": false
},
"first_command_timeout_secs": {
"type": "integer",
"description": "Specifies how many seconds to wait before timing out a dial command.",
"example": 10,
"default": 30
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags assigned to the Call Control Application.",
"example": [
"tag1",
"tag2"
]
},
"inbound": {
"$ref": "#/components/schemas/CallControlApplicationInbound"
},
"outbound": {
"$ref": "#/components/schemas/CallControlApplicationOutbound"
},
"webhook_api_version": {
"type": "string",
"description": "Determines which webhook format will be used, Telnyx API v1 or v2.",
"enum": [
"1",
"2"
],
"example": "1",
"default": "1"
},
"webhook_event_failover_url": {
"type": [
"string",
"null"
],
"format": "url",
"description": "The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.",
"example": "https://failover.example.com",
"default": ""
},
"webhook_timeout_secs": {
"type": [
"integer",
"null"
],
"minimum": 0,
"maximum": 30,
"description": "Specifies how many seconds to wait before timing out a webhook.",
"example": 25,
"default": null
},
"redact_dtmf_debug_logging": {
"type": "boolean",
"description": "When enabled, DTMF digits entered by users will be redacted in debug logs to protect PII data entered through IVR interactions.",
"example": true,
"default": false
}
},
"example": {
"application_name": "call-router",
"webhook_event_url": "https://example.com",
"active": false,
"anchorsite_override": "Latency",
"dtmf_type": "Inband",
"first_command_timeout": true,
"first_command_timeout_secs": 10,
"inbound": {
"channel_limit": 10,
"shaken_stir_enabled": true,
"sip_subdomain": "example",
"sip_subdomain_receive_settings": "only_my_connections"
},
"outbound": {
"channel_limit": 10,
"outbound_voice_profile_id": "1293384261075731499"
},
"webhook_api_version": "1",
"webhook_event_failover_url": "https://failover.example.com",
"webhook_timeout_secs": 25,
"call_cost_in_webhooks": true,
"redact_dtmf_debug_logging": true
}
},
"UpdateCallRequest": {
"type": "object",
"title": "Update Call Request",
"properties": {
"Status": {
"description": "The value to set the call status to. Setting the status to completed ends the call.",
"example": "completed",
"type": "string"
},
"Url": {
"description": "The URL where TeXML will make a request to retrieve a new set of TeXML instructions to continue the call flow.",
"example": "https://www.example.com/intruction-b.xml",
"type": "string"
},
"Method": {
"description": "HTTP request type used for `Url`.",
"example": "GET",
"type": "string",
"enum": [
"GET",
"POST"
]
},
"FallbackUrl": {
"description": "A failover URL for which Telnyx will retrieve the TeXML call instructions if the Url is not responding.",
"example": "https://www.example.com/intruction-c.xml",
"type": "string"
},
"FallbackMethod": {
"description": "HTTP request type used for `FallbackUrl`.",
"example": "GET",
"type": "string",
"enum": [
"GET",
"POST"
]
},
"StatusCallback": {
"description": "URL destination for Telnyx to send status callback events to for the call.",
"example": "https://www.example.com/callback",
"type": "string"
},
"StatusCallbackMethod": {
"description": "HTTP request type used for `StatusCallback`.",
"example": "GET",
"type": "string",
"enum": [
"GET",
"POST"
]
},
"Texml": {
"description": "TeXML to replace the current one with.",
"example": "