openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 951 kB
JSON
{"openapi":"3.0.0","servers":[{"description":"Version 2.0.0 of the Telnyx API","url":"https://api.telnyx.com/v2"}],"info":{"contact":{"email":"support@telnyx.com"},"description":"SIP trunking, SMS, MMS, Call Control and Telephony Data Services.","license":{"name":"MIT"},"title":"Telnyx API","version":"2.0.0","x-apisguru-categories":["telecom"],"x-endpoint-cost":"light","x-origin":[{"format":"openapi","url":"https://raw.githubusercontent.com/team-telnyx/openapi/master/openapi/spec3.yml","version":"3.0"}],"x-providerName":"telnyx.com"},"security":[{"BearerAuth":[]}],"tags":[{"description":"Access Tokens creation","name":"Access Tokens"},{"description":"Address operations","name":"Addresses"},{"description":"Authentication Provider operations","name":"Authentication Providers"},{"description":"Billing operations","name":"Billing"},{"description":"Billing groups operations","name":"Billing Groups"},{"description":"Bulk operations over Credentials","name":"Bulk Credentials"},{"description":"Call Control command operations","name":"Call Commands"},{"description":"Call Control applications operations","name":"Call Control Applications"},{"description":"Call information","name":"Call Information"},{"description":"Conference command operations","name":"Conference Commands"},{"description":"Connections operations","name":"Connections"},{"description":"Credential connection operations","name":"Credential Connections"},{"description":"Credentials operations","name":"Credentials"},{"description":"Call Control debugging","name":"Debugging"},{"description":"Detail Records operations","name":"Detail Records"},{"description":"Documents","name":"Documents"},{"description":"FQDN connection operations","name":"FQDN Connections"},{"description":"FQDN operations","name":"FQDNs"},{"description":"IP connection operations","name":"IP Connections"},{"description":"IP operations","name":"IPs"},{"description":"Inbound channels operations","name":"Inbound Channels"},{"description":"Inventory Level","name":"Inventory Level"},{"description":"Search messaging detail records","name":"MDR Search (Beta)"},{"description":"Managed Accounts operations","name":"Managed Accounts"},{"description":"Media Storage operations","name":"Media Storage API"},{"description":"Messages","name":"Messages"},{"description":"Manage your messaging hosted numbers","name":"Messaging Hosted Number"},{"description":"Messaging profiles","name":"Messaging Profiles"},{"description":"Messaging URL Domains","name":"Messaging URL Domains"},{"description":"Mobile operator networks operations","name":"Mobile Operator Networks"},{"description":"Notification settings operations","name":"Notifications"},{"description":"Background jobs performed over a batch of phone numbers","name":"Number Background Jobs"},{"description":"Background jobs performed over a phone-numbers block's phone numbers","name":"Number Blocks Background Jobs"},{"description":"Configure your phone numbers","name":"Number Configurations"},{"description":"Look up phone number data","name":"Number Lookup"},{"description":"Number order documents","name":"Number Order Documents"},{"description":"Number orders","name":"Number Orders"},{"description":"Number portout operations","name":"Number Portout"},{"description":"Number reservations","name":"Number Reservations"},{"description":"Number search","name":"Number Search"},{"description":"OTA updates operations","name":"OTA updates"},{"description":"Outbound voice profiles operations","name":"Outbound Voice Profiles"},{"description":"Determining portability of phone numbers","name":"Phone Number Porting"},{"description":"Porting Order operation","name":"Porting Order"},{"description":"Private Wireless Gateways operations","name":"Private Wireless Gateways"},{"description":"Fax Applications operations","name":"Programmable Fax Applications"},{"description":"Programmable fax command operations","name":"Programmable Fax Commands"},{"description":"Queue commands operations","name":"Queue Commands"},{"description":"Recordings commands operations","name":"Recordings Commands"},{"description":"Wireless reporting operations","name":"Reporting"},{"description":"Types of requirements for international numbers and porting orders","name":"Requirement Types"},{"description":"Requirements for international numbers and porting orders","name":"Requirements"},{"description":"Rooms Participants operations.","name":"Room Participants"},{"description":"Rooms Sessions operations.","name":"Room Sessions"},{"description":"Rooms operations.","name":"Rooms"},{"description":"Rooms Client Tokens operations.","name":"Rooms Client Tokens"},{"description":"SIM Card Group actions operations","name":"SIM Card Group Actions"},{"description":"SIM Card Groups operations","name":"SIM Card Groups"},{"description":"SIM Card Orders operations","name":"SIM Card Orders"},{"description":"SIM Cards operations","name":"SIM Cards"},{"description":"Short codes","name":"Short Codes"},{"description":"TeXML Applications operations","name":"TeXML Applications"},{"description":"Two factor authentication API","name":"Verify"},{"description":"Webhooks operations","name":"Webhooks"},{"description":"WhatsApp contacts","name":"WhatsApp Contacts"},{"description":"WhatsApp media files","name":"WhatsApp Media"},{"description":"WhatsApp messages","name":"WhatsApp Messages"},{"description":"WhatsApp user info","name":"WhatsApp Users"},{"description":"Wireless operations","name":"Wireless"}],"paths":{"/actions/bulk/telephony_credentials":{"delete":{"description":"Delete several credentials in bulk.","operationId":"DeleteBulkTelephonyCredential","parameters":[{"$ref":"#/components/parameters/RequiredTag"}],"responses":{"201":{"$ref":"#/components/responses/BulkCredentialResponse"},"422":{"description":"Bad request"}},"summary":"Delete several credentials","tags":["Bulk Credentials"],"x-latency-category":"responsive"},"patch":{"description":"Update several credentials in bulk.","operationId":"UpdateBulkTelephonyCredential","parameters":[{"$ref":"#/components/parameters/RequiredTag"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCredentialRequest"}}},"description":"Parameters to update credentials on bulk","required":true},"responses":{"201":{"$ref":"#/components/responses/BulkCredentialResponse"},"422":{"description":"Bad request"}},"summary":"Update several credentials","tags":["Bulk Credentials"],"x-latency-category":"responsive"},"post":{"description":"Creates several credentials in bulk.","operationId":"CreateBulkTelephonyCredential","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCredentialRequest"}}},"description":"Requested parameters to create credentials on bulk","required":true},"responses":{"201":{"$ref":"#/components/responses/BulkCredentialResponse"},"422":{"description":"Bad request"}},"summary":"Creates several credentials","tags":["Bulk Credentials"],"x-latency-category":"responsive"}},"/actions/network_preferences/sim_cards":{"put":{"description":"This API allows dispatching the same operation described for the PUT sim_cards/:sim_card_id/network_preferences API for multiple SIM cards at once.<br/><br/>\nAlthough, a SIM card network preference may fail individually under any validation triggered as a consequence of its state. For example, a SIM can't have an in-progress OTA update for applying a Network Preference, so they'll fail when requested in this API. In that scenario, the specific error will be present in the response along with the successful definitions in the \"errors\" response node.\n","operationId":"BulkSIMCardNetworkPreferences","requestBody":{"content":{"application/json":{"schema":{"properties":{"mobile_operator_networks_preferences":{"$ref":"#/components/schemas/MobileOperatorNetworksPreferencesRequest"},"sim_card_ids":{"example":["6b14e151-8493-4fa1-8664-1cc4e6d14158","6b14e151-8493-4fa1-8664-1cc4e6d14158"],"items":{"format":"uuid","type":"string"},"type":"array"}},"type":"object"}}}},"responses":{"202":{"$ref":"#/components/responses/BulkSIMCardNetworkPreferenceResponse"},"422":{"$ref":"#/components/responses/UnprocessableEntity"}},"summary":"Bulk Network Preferences for SIM cards","tags":["SIM Cards"],"x-latency-category":"background"}},"/actions/register/sim_cards":{"post":{"description":"Register the SIM cards associated with the provided registration codes to the current user's account.<br/><br/>\nIf <code>sim_card_group_id</code> is provided, the SIM cards will be associated with that group. Otherwise, the default group for the current user will be used.<br/><br/>\n","operationId":"SimCardRegister","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SIMCardRegistration"}}},"required":true},"responses":{"202":{"$ref":"#/components/responses/RegisterSimCardsResponse"}},"summary":"Register SIM cards","tags":["SIM Cards"],"x-latency-category":"background"}},"/actions/{action}/telephony_credentials":{"post":{"description":"Perform activate or deactivate action on all credentials filtered by the provided tag. Activate action will change the status to active, making it possible to connect calls with the credential. Deactivate action will change the status to inactive, making it impossible to connect calls with the credential.","operationId":"BulkCredentialAction","parameters":[{"description":"Identifies the action to be taken. Activate will change the status to active. Deactivate will change the status to inactive.","in":"path","name":"action","required":true,"schema":{"enum":["activate","deactivate"],"type":"string"}},{"$ref":"#/components/parameters/RequiredTag"}],"responses":{"200":{"$ref":"#/components/responses/BulkCredentialResponse"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Perform activate or deactivate action on all credentials filtered by the provided tag.","tags":["Bulk Credentials"],"x-latency-category":"responsive"}},"/addresses":{"get":{"description":"Returns a list of your addresses.","operationId":"findAddresss","parameters":[{"$ref":"#/components/parameters/PageNumber"},{"$ref":"#/components/parameters/PageSize"},{"$ref":"#/components/parameters/FilterCustomerReferenceEquals"},{"$ref":"#/components/parameters/FilterCustomerReferenceContains"},{"$ref":"#/components/parameters/FilterUsedAsEmergency"},{"$ref":"#/components/parameters/FilterStreetAddress"},{"$ref":"#/components/parameters/FilterAddressBook"},{"$ref":"#/components/parameters/SortAddress"}],"responses":{"200":{"$ref":"#/components/responses/GetAllAddressResponse"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"}},"summary":"List all addresses","tags":["Addresses"],"x-endpoint-cost":"medium","x-latency-category":"responsive"},"post":{"description":"Creates an address.","operationId":"CreateAddress","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressCreate"}}},"description":"Parameters that can be defined during address creation","required":true},"responses":{"200":{"$ref":"#/components/responses/AddressResponse"},"422":{"description":"Bad request"}},"summary":"Creates an address","tags":["Addresses"],"x-endpoint-cost":"medium","x-latency-category":"responsive"}},"/addresses/actions/validate":{"post":{"description":"Validates an address for emergency services.","operationId":"validateAddress","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAddressRequest"}}},"description":"Parameters that can be defined during address validation","required":true},"responses":{"200":{"$ref":"#/components/responses/ValidateAddressResponse"},"422":{"description":"Bad request"}},"summary":"Validate an address","tags":["Addresses"],"x-latency-category":"responsive"}},"/addresses/{id}":{"delete":{"description":"Deletes an existing address.","operationId":"DeleteAddress","parameters":[{"description":"address ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/AddressResponse"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Deletes an address","tags":["Addresses"],"x-latency-category":"responsive"},"get":{"description":"Retrieves the details of an existing address.","operationId":"getAddress","parameters":[{"description":"address ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/AddressResponse"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Retrieve an address","tags":["Addresses"],"x-latency-category":"responsive"}},"/authentication_providers":{"get":{"description":"Returns a list of your SSO authentication providers.","operationId":"findAuthenticationProviders","parameters":[{"$ref":"#/components/parameters/PageNumber"},{"$ref":"#/components/parameters/PageSize"},{"$ref":"#/components/parameters/SortAuthenticationProvider"}],"responses":{"200":{"$ref":"#/components/responses/GetAllAuthenticationProviderResponse"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"}},"summary":"List all SSO authentication providers","tags":["Authentication Providers"],"x-latency-category":"responsive"},"post":{"description":"Creates an authentication provider.","operationId":"CreateAuthenticationProvider","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationProviderCreate"}}},"description":"Parameters that can be defined during authentication provider creation","required":true},"responses":{"200":{"$ref":"#/components/responses/AuthenticationProviderResponse"},"422":{"description":"Bad request"}},"summary":"Creates an authentication provider","tags":["Authentication Providers"],"x-latency-category":"responsive"}},"/authentication_providers/{id}":{"delete":{"description":"Deletes an existing authentication provider.","operationId":"DeleteAuthenticationProvider","parameters":[{"description":"authentication provider ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/AuthenticationProviderResponse"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Deletes an authentication provider","tags":["Authentication Providers"],"x-latency-category":"responsive"},"get":{"description":"Retrieves the details of an existing authentication provider.","operationId":"getAuthenticationProvider","parameters":[{"description":"authentication provider ID","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/AuthenticationProviderResponse"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Retrieve an authentication provider","tags":["Authentication Providers"],"x-latency-category":"responsive"},"patch":{"description":"Updates settings of an existing authentication provider.","operationId":"updateAuthenticationProvider","parameters":[{"description":"Identifies the resource.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAuthenticationProviderRequest"}}},"description":"Parameters that can be updated in a authentication provider","required":true},"responses":{"200":{"$ref":"#/components/responses/AuthenticationProviderResponse"},"401":{"description":"Unauthorized"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Update a authentication provider","tags":["Authentication Providers"],"x-latency-category":"responsive"}},"/available_phone_number_blocks":{"get":{"operationId":"listAvailablePhoneNumberBlocks","parameters":[{"description":"Filter number blocks that start with a pattern (meant to be used after `national_destination_code` filter has been set).","in":"query","name":"filter[phone_number][starts_with]","schema":{"example":"201","type":"string"}},{"description":"Filter numbers ending with a pattern.","in":"query","name":"filter[phone_number][ends_with]","schema":{"example":"8000","type":"string"}},{"description":"Filter numbers containing a pattern.","in":"query","name":"filter[phone_number][contains]","schema":{"example":"456","type":"string"}},{"description":"Filter phone numbers by city.","examples":{"AU":{"value":"Canberra"},"CA":{"value":"Toronto"},"US":{"value":"Chicago"}},"in":"query","name":"filter[locality]","schema":{"type":"string"}},{"description":"Filter phone numbers by US state/CA province.","in":"query","name":"filter[administrative_area]","schema":{"example":"IL","type":"string"}},{"description":"Filter phone numbers by ISO alpha-2 country code.","in":"query","name":"filter[country_code]","schema":{"example":"US","type":"string"}},{"description":"Filter by the national destination code of the number. This filter is only applicable to North American numbers.","examples":{"AU":{"value":"0251"},"CA":{"value":"437"},"US":{"value":"312"}},"in":"query","name":"filter[national_destination_code]","schema":{"type":"string"}},{"description":"Filter phone numbers by NANP rate center. This filter is only applicable to North American numbers.","in":"query","name":"filter[rate_center]","schema":{"example":"CHICAGO HEIGHTS","type":"string"}},{"description":"Filter phone numbers by number type.","in":"query","name":"filter[number_type]","schema":{"enum":["toll-free"],"example":"toll-free","type":"string"}},{"description":"Filter if the phone number should be used for voice, fax, mms, sms, emergency.","in":"query","name":"filter[features]","schema":{"example":"voice,sms","items":{"enum":["sms","mms","voice","fax","emergency"],"type":"string"},"type":"array"}},{"description":"Filter number blocks by minimum blocks size","in":"query","name":"filter[minimum_block_size]","schema":{"example":100,"type":"integer"}},{"description":"Limits the number of results.","in":"query","name":"filter[limit]","schema":{"example":100,"type":"integer"}}],"responses":{"200":{"$ref":"#/components/responses/ListAvailablePhoneNumbersBlockResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"List available phone number blocks","tags":["Number Search"],"x-latency-category":"responsive"}},"/available_phone_numbers":{"get":{"operationId":"listAvailablePhoneNumbers","parameters":[{"description":"Filter numbers starting with a pattern (meant to be used after `national_destination_code` filter has been set).","examples":{"generic":{"summary":"Find numbers starting with the prefix 'FREE'","value":"FOO"}},"in":"query","name":"filter[phone_number][starts_with]","schema":{"type":"string"}},{"description":"Filter numbers ending with a pattern.","examples":{"generic":{"summary":"Find numbers ending with the suffix 'CALL'","value":"CALL"}},"in":"query","name":"filter[phone_number][ends_with]","schema":{"type":"string"}},{"description":"Filter numbers containing a pattern.","examples":{"generic":{"summary":"Find numbers that contain the word 'TELNYX' in any position","value":"TELNYX"}},"in":"query","name":"filter[phone_number][contains]","schema":{"type":"string"}},{"description":"Filter phone numbers by city.","examples":{"AU":{"value":"Canberra"},"CA":{"value":"Toronto"},"US":{"value":"Chicago"}},"in":"query","name":"filter[locality]","schema":{"type":"string"}},{"description":"Filter phone numbers by US state/CA province.","in":"query","name":"filter[administrative_area]","schema":{"example":"IL","type":"string"}},{"description":"Filter phone numbers by ISO alpha-2 country code.","in":"query","name":"filter[country_code]","schema":{"example":"US","type":"string"}},{"description":"Filter by the national destination code of the number. This filter is only applicable to North American numbers.","examples":{"AU":{"value":"0251"},"CA":{"value":"437"},"US":{"value":"312"}},"in":"query","name":"filter[national_destination_code]","schema":{"type":"string"}},{"description":"Filter phone numbers by NANP rate center. This filter is only applicable to North American numbers.","in":"query","name":"filter[rate_center]","schema":{"example":"CHICAGO HEIGHTS","type":"string"}},{"description":"Filter phone numbers by number type.","in":"query","name":"filter[number_type]","schema":{"enum":["toll-free","national","mobile","local"],"example":"local","type":"string"}},{"description":"Filter if the phone number should be used for voice, fax, mms, sms, emergency.","in":"query","name":"filter[features]","schema":{"example":"voice,sms","items":{"enum":["sms","mms","voice","fax","emergency"],"type":"string"},"type":"array"}},{"description":"Limits the number of results.","in":"query","name":"filter[limit]","schema":{"example":100,"type":"integer"}},{"description":"Filter to determine if best effort results should be included.","in":"query","name":"filter[best_effort]","schema":{"example":false,"type":"boolean"}},{"description":"Filter to exclude phone numbers that need additional time after to purchase to receive phone calls.","in":"query","name":"filter[quickship]","schema":{"example":true,"type":"boolean"}},{"description":"Filter to exclude phone numbers that cannot be reserved before purchase.","in":"query","name":"filter[reservable]","schema":{"example":true,"type":"boolean"}},{"description":"Filter to exclude phone numbers that are currently on hold for your account.","in":"query","name":"filter[exclude_held_numbers]","schema":{"example":false,"type":"boolean"}}],"responses":{"200":{"$ref":"#/components/responses/ListAvailablePhoneNumbersResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"List available phone numbers","tags":["Number Search"],"x-endpoint-cost":"heavy","x-group-parameters":"true","x-latency-category":"responsive"}},"/balance":{"get":{"operationId":"getUserBalance","responses":{"200":{"$ref":"#/components/responses/UserBalanceResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Retrieve user balance details","tags":["Billing"],"x-latency-category":"responsive"}},"/billing_groups":{"get":{"operationId":"listBillingGroups","parameters":[{"$ref":"#/components/parameters/PageNumber"},{"$ref":"#/components/parameters/PageSize"}],"responses":{"200":{"$ref":"#/components/responses/ListBillingGroupsResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"List all billing groups","tags":["Billing Groups"],"x-latency-category":"responsive"},"post":{"operationId":"createBillingGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewBillingGroup"}}},"description":"New billing group object","required":true},"responses":{"200":{"$ref":"#/components/responses/CreateBillingGroupResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Create a billing group","tags":["Billing Groups"],"x-latency-category":"responsive"}},"/billing_groups/{id}":{"delete":{"operationId":"deleteBillingGroup","parameters":[{"$ref":"#/components/parameters/BillingGroupId"}],"responses":{"200":{"$ref":"#/components/responses/DeleteBillingGroupResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Delete a billing group","tags":["Billing Groups"],"x-latency-category":"responsive"},"get":{"operationId":"retrieveBillingGroup","parameters":[{"$ref":"#/components/parameters/BillingGroupId"}],"responses":{"200":{"$ref":"#/components/responses/RetrieveBillingGroupResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Retrieve a billing group","tags":["Billing Groups"],"x-latency-category":"responsive"},"patch":{"operationId":"updateBillingGroup","parameters":[{"$ref":"#/components/parameters/BillingGroupId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBillingGroup"}}},"description":"Update billing group object","required":true},"responses":{"200":{"$ref":"#/components/responses/UpdateBillingGroupResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Update a billing group","tags":["Billing Groups"],"x-latency-category":"responsive"}},"/call_control_applications":{"get":{"description":"Return a list of call control applications.","operationId":"listCallControlApplications","parameters":[{"$ref":"#/components/parameters/PageNumber"},{"$ref":"#/components/parameters/PageSize"},{"$ref":"#/components/parameters/FilterApplicationName"},{"$ref":"#/components/parameters/FilterOutboundVoiceProfileId"},{"$ref":"#/components/parameters/SortConnection"}],"responses":{"200":{"$ref":"#/components/responses/ListCallControlApplicationsResponse"},"400":{"description":"Bad request"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"404":{"description":"Resource not found"}},"summary":"List call control applications","tags":["Call Control Applications"],"x-endpoint-cost":"medium","x-group-parameters":"true","x-latency-category":"interactive"},"post":{"description":"Create a call control application.","operationId":"createCallControlApplication","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCallControlApplicationRequest"}}},"description":"Create call control application request.","required":true},"responses":{"201":{"$ref":"#/components/responses/CallControlApplicationResponse"},"422":{"description":"Bad Request"}},"summary":"Create a call control application","tags":["Call Control Applications"],"x-endpoint-cost":"medium","x-latency-category":"interactive"}},"/call_control_applications/{id}":{"delete":{"description":"Deletes a call control application.","operationId":"deleteCallControlApplication","parameters":[{"description":"Identifies the resource.","in":"path","name":"id","required":true,"schema":{"example":"1293384261075731499","format":"int64","type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/CallControlApplicationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Delete a call control application","tags":["Call Control Applications"],"x-latency-category":"interactive"},"get":{"description":"Retrieves the details of an existing call control application.","operationId":"retrieveCallControlApplication","parameters":[{"description":"Identifies the resource.","in":"path","name":"id","required":true,"schema":{"example":"1293384261075731499","format":"int64","type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/CallControlApplicationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Retrieve a call control application","tags":["Call Control Applications"],"x-latency-category":"interactive"},"patch":{"description":"Updates settings of an existing call control application.","operationId":"updateCallControlApplication","parameters":[{"description":"Identifies the resource.","in":"path","name":"id","required":true,"schema":{"example":"1293384261075731499","format":"int64","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCallControlApplicationRequest"}}},"description":"Update call control application request.","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlApplicationResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"404":{"description":"Resource not found"},"422":{"description":"Bad request"}},"summary":"Update a call control application","tags":["Call Control Applications"],"x-latency-category":"interactive"}},"/call_events":{"get":{"description":"Filters call events by given filter parameters. Events are ordered by `event_timestamp`. If filter for `call_leg_id` or `call_session_id` is not present, it only filters events from the last 24 hours.\n\n**Note**: Only one `filter[event_timestamp]` can be passed.\n","operationId":"listCallEvents","parameters":[{"$ref":"#/components/parameters/FilterCallLegId"},{"$ref":"#/components/parameters/FilterCallSessionId"},{"$ref":"#/components/parameters/FilterCallEventStatus"},{"$ref":"#/components/parameters/FilterCallEventType"},{"$ref":"#/components/parameters/FilterCallEventTimestampGreaterThan"},{"$ref":"#/components/parameters/FilterCallEventTimestampGreaterThanOrEqualTo"},{"$ref":"#/components/parameters/FilterCallEventTimestampLessThan"},{"$ref":"#/components/parameters/FilterCallEventTimestampLessThanOrEqualTo"},{"$ref":"#/components/parameters/FilterCallEventTimestampEqualTo"},{"$ref":"#/components/parameters/PageNumber"},{"$ref":"#/components/parameters/PageSize"}],"responses":{"200":{"$ref":"#/components/responses/ListCallEventsResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"List call events","tags":["Debugging"],"x-group-parameters":"true","x-latency-category":"responsive"}},"/calls":{"post":{"callbacks":{"callAnswered":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallAnsweredEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callHangup":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallHangupEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callInitiated":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallInitiatedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callMachineDetectionEnded":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallMachineDetectionEndedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callMachineGreetingEnded":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallMachineGreetingEndedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"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.machine.detection.ended` if `answering_machine_detection` was requested\n- `call.machine.greeting.ended` if `answering_machine_detection` was set to `detect_beep`, `greeting_end` or `detect_words`","operationId":"callDial","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallRequest"}}},"description":"Call request","required":true},"responses":{"200":{"$ref":"#/components/responses/RetrieveCallStatusResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Dial","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}":{"get":{"description":"Returns the status of a call (data is available 10 minutes after call ended).","operationId":"retrieveCallStatus","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"responses":{"200":{"$ref":"#/components/responses/RetrieveCallStatusResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Retrieve a call status","tags":["Call Information"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/answer":{"post":{"callbacks":{"callAnswered":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallAnsweredEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"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","operationId":"callAnswer","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerRequest"}}},"description":"Answer call request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Answer call","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/bridge":{"post":{"callbacks":{"callBridged":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallBridgedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"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":"callBridge","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeRequest"}}},"description":"Bridge call request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Bridge calls","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/enqueue":{"post":{"callbacks":{"callEnqueued":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallEnqueuedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callLeftQueue":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallLeftQueueEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"description":"Put the call in a queue.","operationId":"callEnqueue","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnqueueRequest"}}},"description":"Enqueue call request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Enqueue call","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/fork_start":{"post":{"callbacks":{"callForkStarted":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallForkStartedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callForkStopped":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallForkStoppedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"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**Simple Telnyx RTP Encapsulation Protocol (STREP)**\n\n*Note: This header/encapsulation is not used when the `rx` and `tx`\nparameters have been specified; it only applies when media is forked\nusing the `target` attribute.*\n\nIf the destination for forked media is specified using the \"target\"\nattribute, the RTP will be encapsulated in an extra Telnyx protocol,\nwhich adds a 24 byte header to the RTP payload in each packet. The STREP\nheader includes the Call Control `call_leg_id` for stream\nidentification, along with bits that represent the direction (inbound or\noutbound) of the media. This 24-byte header sits between the UDP header\nand the RTP header.\n\nThe STREP header makes it possible to fork RTP for multiple calls (or\ntwo RTP streams for the same call) to the same IP:port, where the\nstreams can be demultiplexed by your application using the information\nin the header. Of course, it's still possible to ignore this header\ncompletely, for example, if sending forked media for different calls to\ndifferent ports or IP addresses. In this case, simply strip 24 bytes\n(or use the second byte to find the header length) from the received UDP\npayload to get the RTP (RTP header and payload).\n\n```\nSTREP Specification\n\n 0 1 2 3\n 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n |1 1|Version|L|D| HeaderLen | reserved (2 bytes) |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n | reserved (4 bytes, for UDP ports or anything else) |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n | The call_leg_id |\n | from Call Control |\n | (128 bits / 16 bytes) |\n | (this is binary data) |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\n 11\n Static bits 11, always set to 11 to easily distinguish forked media\n from RTP (10) and T.38 media (usually 00) and SIP (which begins\n with a capital letter, so begins with bits 01). This is a magic number.\n\n Version\n Four bits to indicate the version number of the protocol, starting at 0001.\n\n L\n One bit to represent the leg of the call (A or B).\n 0 represents the A (first) leg of the call.\n 1 represents the B (second) leg of the call.\n\n D\n One bit to represent the direction of this RTP stream.\n 0 represents media received by Telnyx.\n 1 represents media transmitted by Telnyx.\n\n HeaderLen (1 byte)\n The length of the header in bytes.\n Note that this value does not include the length of the payload. The total\n size of the RTP can be calculated by subtracting the HeaderLen from the UDP\n length (minus 8 for the UDP header).\n In version 1, this value will always be 24.\n\n Reserved (6 bytes)\n Reserved for future use and to make sure that the header is a multiple of 32 bits\n\n Call Leg ID\n A 128-bit identifier for the call leg.\n This is the call_leg_id from Call Control.\n```\n","operationId":"callForkStart","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartForkingRequest"}}},"description":"Fork media request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Forking start","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/fork_stop":{"post":{"callbacks":{"callForkStopped":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallForkStoppedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"description":"Stop forking a call.\n\n**Expected Webhooks:**\n\n- `call.fork.stopped`\n","operationId":"callForkStop","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopForkingRequest"}}},"description":"Stop forking media request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Forking stop","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/gather_stop":{"post":{"callbacks":{"callGatherEnded":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallGatherEndedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"description":"Stop current gather.\n\n**Expected Webhooks:**\n\n- `call.gather.ended`\n","operationId":"callGatherStop","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopGatherRequest"}}},"description":"Stop current gather","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Gather stop","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/gather_using_audio":{"post":{"callbacks":{"callDtmfReceived":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallDtmfReceivedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callGatherEnded":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallGatherEndedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callPlaybackEnded":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallPlaybackEndedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callPlaybackStarted":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallPlaybackStartedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"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](/docs/api/v2/call-control/Call-Commands#CallControlAnswer) 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":"callGatherUsingAudio","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatherUsingAudioRequest"}}},"description":"Gather using audio request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Gather using audio","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/gather_using_speak":{"post":{"callbacks":{"callDtmfReceived":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallDtmfReceivedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callGatherEnded":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallGatherEndedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"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](/docs/api/v2/call-control/Call-Commands#CallControlAnswer) 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":"callGatherUsingSpeak","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatherUsingSpeakRequest"}}},"description":"Gather using speak request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Gather using speak","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/hangup":{"post":{"callbacks":{"callHangup":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallHangupEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callRecordingSaved":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallRecordingSavedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"description":"Hang up the call.\n\n**Expected Webhooks:**\n\n- `call.hangup`\n- `call.recording.saved`\n","operationId":"callHangup","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HangupRequest"}}},"description":"Hangup request","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Hangup call","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/leave_queue":{"post":{"callbacks":{"callLeftQueue":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallLeftQueueEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}}},"description":"Removes the call from a queue.","operationId":"leaveQueue","parameters":[{"$ref":"#/components/parameters/CallControlId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaveQueueRequest"}}},"description":"Removes the call from the queue, the call currently is enqueued in.","required":true},"responses":{"200":{"$ref":"#/components/responses/CallControlCommandResponse"},"default":{"$ref":"#/components/responses/GenericErrorResponse"}},"summary":"Remove call from a queue","tags":["Call Commands"],"x-latency-category":"interactive"}},"/calls/{call_control_id}/actions/playback_start":{"post":{"callbacks":{"callPlaybackEnded":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallPlaybackEndedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL."}}}}},"callPlaybackStarted":{"{$request.body#/webhook_url}":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallPlaybackStartedEvent"}}},"required":true},"responses":{"200":{"description":"The server must return an HTTP 200, otherwise we will reattempt del