Telnyx Billing & Reporting API

Billing, payments, notifications and usage reporting.

OpenAPI Specification

telnyx-openapi.yml Raw ↑
components:
  callbacks: {}
  examples:
    Maximum20JobsAllowed:
      value:
        errors:
        - code: '10015'
          detail: You can have at most 20 pending or in progress jobs
          meta:
            url: https://developers.telnyx.com/docs/overview/errors/10015
          source:
            pointer: /base
          title: Bad Request
    MaximumAllowedPhoneNumbers:
      value:
        errors:
        - code: '10015'
          detail: 1000 numbers is the maximum allowed.
          meta:
            url: https://developers.telnyx.com/docs/overview/errors/10015
          source:
            pointer: /phone_numbers
          title: Bad Request
    MinimumAllowedPhoneNumbers:
      value:
        errors:
        - code: '10015'
          detail: You must provide at least 1 phone number.
          meta:
            url: https://developers.telnyx.com/docs/overview/errors/10015
          source:
            pointer: /phone_numbers
          title: Bad Request
    MixedIdsAndE164Values:
      value:
        errors:
        - code: '10015'
          detail: You must specify either all phone numbers in the e164 format or
            all as phone number ids
          meta:
            url: https://developers.telnyx.com/docs/overview/errors/10015
          source:
            pointer: /phone_numbers
          title: Bad Request
    NotAuthorized:
      value:
        errors:
        - code: '10006'
          detail: You are not authorized to access the requested resource.
          meta:
            url: https://developers.telnyx.com/docs/overview/errors/10006
          title: Not authorized
    PhoneNumberOwnership:
      value:
        errors:
        - code: '10015'
          detail: You must own every number in the bulk request
          meta:
            url: https://developers.telnyx.com/docs/overview/errors/10015
          source:
            pointer: /phone_numbers
          title: Bad Request
    PhoneNumbersMustBePresent:
      value:
        errors:
        - code: '10015'
          detail: must be present
          meta:
            url: https://developers.telnyx.com/docs/overview/errors/10015
          source:
            pointer: /phone_numbers
          title: Bad Request
  headers: {}
  links: {}
  parameters:
    10dlc_FilterConsolidated:
      description: 'Consolidated filter parameter (deepObject style). Originally:
        filter[telnyx_campaign_id], filter[telnyx_brand_id], filter[tcr_campaign_id],
        filter[tcr_brand_id]'
      explode: true
      in: query
      name: filter
      schema:
        properties:
          tcr_brand_id:
            description: Filter results by the TCR Brand id
            example: BRANDID
            type: string
          tcr_campaign_id:
            description: Filter results by the TCR Campaign id
            example: CAMPID3
            type: string
          telnyx_brand_id:
            description: Filter results by the Telnyx Brand id
            example: f3575e15-32ce-400e-a4c0-dd78800c20b0
            format: uuid
            type: string
          telnyx_campaign_id:
            description: Filter results by the Telnyx Campaign id
            example: f3575e15-32ce-400e-a4c0-dd78800c20b0
            format: uuid
            type: string
        type: object
      style: deepObject
    AccountSid:
      description: The id of the account the resource belongs to.
      in: path
      name: account_sid
      required: true
      schema:
        type: string
    AuthorizationBearer:
      description: 'Format: Bearer <TOKEN>'
      in: header
      name: authorization_bearer
      schema:
        description: Authenticates the request with your Telnyx API V2 KEY
        type: string
    BundleId:
      in: path
      name: bundle_id
      required: true
      schema:
        description: Billing bundle's ID, this is used to identify the billing bundle
          in the API.
        example: 8661948c-a386-4385-837f-af00f40f111a
        format: uuid
        title: Bundle Id
        type: string
    CallControlId:
      description: Unique identifier and token for controlling the call
      in: path
      name: call_control_id
      required: true
      schema:
        type: string
    CallSid:
      description: The CallSid that identifies the call to update.
      in: path
      name: call_sid
      required: true
      schema:
        type: string
    CallSidOrParticipantLabel:
      description: CallSid or Label of the Participant to update.
      in: path
      name: call_sid_or_participant_label
      required: true
      schema:
        type: string
    ConferenceRegion:
      description: Region where the conference data is located
      in: query
      name: region
      required: false
      schema:
        enum:
        - Australia
        - Europe
        - Middle East
        - US
        type: string
    ConferenceSid:
      description: The ConferenceSid that uniquely identifies a conference.
      in: path
      name: conference_sid
      required: true
      schema:
        type: string
    ConferenceStatus:
      description: Filters conferences by status.
      example: in-progress
      in: query
      name: Status
      required: false
      schema:
        enum:
        - init
        - in-progress
        - completed
        type: string
    ConnectionId:
      description: Telnyx connection id
      in: path
      name: connection_id
      required: true
      schema:
        example: '1293384261075731461'
        type: string
    DateCreated:
      description: Filters conferences by the creation date. Expected format is YYYY-MM-DD.
        Also accepts inequality operators, e.g. DateCreated>=2023-05-22.
      example: '>=2023-05-22'
      in: query
      name: DateCreated
      required: false
      schema:
        type: string
    DateUpdated:
      description: Filters conferences by the time they were last updated. Expected
        format is YYYY-MM-DD. Also accepts inequality operators, e.g. DateUpdated>=2023-05-22.
      example: '>=2023-05-22'
      in: query
      name: DateUpdated
      required: false
      schema:
        type: string
    DocReqsRequirementId:
      description: Uniquely identifies the requirement_type record
      example: a9dad8d5-fdbd-49d7-aa23-39bb08a5ebaa
      in: path
      name: id
      required: true
      schema:
        format: uuid
        type: string
    DocReqsRequirementTypeId:
      description: Uniquely identifies the requirement_type record
      example: a38c217a-8019-48f8-bff6-0fdd9939075b
      in: path
      name: id
      required: true
      schema:
        format: uuid
        type: string
    EndTime:
      description: Filters calls by their end date. Expected format is YYYY-MM-DD
      example: '2023-05-22'
      in: query
      name: EndTime
      required: false
      schema:
        type: string
    EndTime_gt:
      description: Filters calls by their end date (after). Expected format is YYYY-MM-DD
      example: '2023-05-22'
      in: query
      name: EndTime_gt
      required: false
      schema:
        type: string
    EndTime_lt:
      description: Filters calls by their end date (before). Expected format is YYYY-MM-DD
      example: '2023-05-22'
      in: query
      name: EndTime_lt
      required: false
      schema:
        type: string
    EnterpriseId:
      description: Unique identifier of the enterprise (UUID)
      in: path
      name: enterprise_id
      required: true
      schema:
        example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
        format: uuid
        type: string
    FilterBasicStatusLifecycle:
      description: Filter by a specific status of the resource's lifecycle.
      in: query
      name: filter[status]
      required: false
      schema:
        enum:
        - in-progress
        - completed
        - failed
        example: in-progress
        type: string
    FilterCivicAddressesConsolidated:
      description: Filter parameter for civic addresses (deepObject style). Supports
        filtering by country.
      explode: true
      in: query
      name: filter
      schema:
        properties:
          country:
            description: The country (or countries) to filter addresses by.
            example:
            - US
            - CA
            - MX
            - BR
            items:
              description: The ISO 3166-1 alpha-2 country code (2 characters)
              type: string
            type: array
        type: object
      style: deepObject
    FilterConnectionsConsolidated:
      description: Filter parameter for external connections (deepObject style). Supports
        filtering by connection_name, external_sip_connection, id, created_at, and
        phone_number.
      explode: true
      in: query
      name: filter
      schema:
        properties:
          connection_name:
            properties:
              contains:
                default: null
                description: If present, connections with <code>connection_name</code>
                  containing the given value will be returned. Matching is not case-sensitive.
                  Requires at least three characters.
                example: My Connection
                type: string
            type: object
          created_at:
            default: null
            description: If present, connections with <code>created_at</code> date
              matching the given YYYY-MM-DD date will be returned.
            example: '2022-12-31'
            type: string
          external_sip_connection:
            description: If present, connections with <code>external_sip_connection</code>
              matching the given value will be returned.
            enum:
            - zoom
            - operator_connect
            example: zoom
            type: string
          id:
            default: null
            description: If present, connections with <code>id</code> matching the
              given value will be returned.
            example: '1930241863466354012'
            type: string
          phone_number:
            description: 'Phone number filter for connections. Note: Despite the ''contains''
              name, this requires a full E164 match per the original specification.'
            properties:
              contains:
                description: If present, connections associated with the given phone_number
                  will be returned. A full match is necessary with a e164 format.
                example: '+15555555555'
                type: string
            type: object
        type: object
      style: deepObject
    FilterConsolidated:
      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]'
      explode: true
      in: query
      name: filter
      schema:
        properties:
          address_book:
            properties:
              eq:
                description: If present, only returns results with the <code>address_book</code>
                  flag equal to the given value.
                type: string
            type: object
          customer_reference:
            oneOf:
            - description: If present, addresses with <code>customer_reference</code>
                containing the given value will be returned. Matching is not case-sensitive.
              type: string
            - properties:
                contains:
                  description: Partial match for customer_reference. Matching is not
                    case-sensitive.
                  type: string
                eq:
                  description: Exact match for customer_reference.
                  type: string
              type: object
          street_address:
            properties:
              contains:
                description: If present, addresses with <code>street_address</code>
                  containing the given value will be returned. Matching is not case-sensitive.
                  Requires at least three characters.
                type: string
            type: object
          used_as_emergency:
            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.'
            type: string
        type: object
      style: deepObject
    FilterDocumentLinksConsolidated:
      description: 'Consolidated filter parameter for document links (deepObject style).
        Originally: filter[linked_record_type], filter[linked_resource_id]'
      explode: true
      in: query
      name: filter
      required: false
      schema:
        additionalProperties: false
        properties:
          linked_record_type:
            description: The linked_record_type of the document to filter on.
            example: porting_order
            type: string
          linked_resource_id:
            description: The linked_resource_id of the document to filter on.
            example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
            format: uuid
            type: string
        type: object
      style: deepObject
    FilterDocumentsConsolidated:
      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]'
      explode: true
      in: query
      name: filter
      required: false
      schema:
        additionalProperties: false
        example:
          created_at:
            gt: '2021-01-01T00:00:00Z'
          customer_reference:
            in:
            - REF001
            - REF002
          filename:
            contains: invoice
        properties:
          created_at:
            additionalProperties: false
            properties:
              gt:
                description: Filter by created at greater than provided value.
                example: '2021-04-09T22:25:27.521Z'
                format: date-time
                type: string
              lt:
                description: Filter by created at less than provided value.
                example: '2021-04-09T22:25:27.521Z'
                format: date-time
                type: string
            type: object
          customer_reference:
            additionalProperties: false
            properties:
              eq:
                description: Filter documents by a customer reference.
                example: MY REF 001
                type: string
              in:
                description: Filter documents by a list of customer references.
                example:
                - MY REF 001
                - MY REF 002
                items:
                  type: string
                type: array
            type: object
          filename:
            additionalProperties: false
            properties:
              contains:
                description: Filter by string matching part of filename.
                example: invoice
                type: string
            type: object
        type: object
      style: deepObject
    FilterLogMessagesConsolidated:
      description: Filter parameter for log messages (deepObject style). Supports
        filtering by external_connection_id and telephone_number with eq/contains
        operations.
      explode: true
      in: query
      name: filter
      schema:
        properties:
          external_connection_id:
            description: The external connection ID to filter by or "null" to filter
              for logs without an external connection ID
            example: 67ea7693-9cd5-4a68-8c76-abb3aa5bf5d2
            type: string
          telephone_number:
            description: Telephone number filter operations for log messages. Use
              'eq' for exact matches or 'contains' for partial matches.
            properties:
              contains:
                description: The partial phone number to filter log messages for.
                  Requires 3-15 digits.
                example: '+123'
                type: string
              eq:
                description: The phone number to filter log messages for or "null"
                  to filter for logs without a phone number
                example: '+1234567890'
                type: string
                x-format: E164
            type: object
        type: object
      style: deepObject
    FilterMobileNetworkOperatorsConsolidated:
      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]'
      explode: true
      in: query
      name: filter
      schema:
        properties:
          country_code:
            description: Filter by exact country_code.
            example: US
            type: string
          mcc:
            description: Filter by exact MCC.
            example: '310'
            type: string
          mnc:
            description: Filter by exact MNC.
            example: '410'
            type: string
          name:
            description: Advanced name filtering operations
            properties:
              contains:
                description: Filter by name containing match.
                example: T&T
                type: string
              ends_with:
                description: Filter by name ending with.
                example: T
                type: string
              starts_with:
                description: Filter by name starting with.
                example: AT
                type: string
            type: object
          network_preferences_enabled:
            description: Filter by network_preferences_enabled.
            example: true
            type: boolean
          tadig:
            description: Filter by exact TADIG.
            example: USACG
            type: string
        type: object
    FilterName:
      description: Case-insensitive substring filter on the name field.
      in: query
      name: filter[name]
      required: false
      schema:
        type: string
    FilterOTAUpdatesConsolidated:
      description: 'Consolidated filter parameter for OTA updates (deepObject style).
        Originally: filter[status], filter[sim_card_id], filter[type]'
      explode: true
      in: query
      name: filter
      schema:
        properties:
          sim_card_id:
            description: The SIM card identification UUID.
            type: string
          status:
            description: Filter by a specific status of the resource's lifecycle.
            enum:
            - in-progress
            - completed
            - failed
            example: in-progress
            type: string
          type:
            description: Filter by type.
            enum:
            - sim_card_network_preferences
            example: sim_card_network_preferences
            type: string
        type: object
    FilterOrganizationUserEmail:
      description: Filter by email address (partial match)
      in: query
      name: filter[email]
      schema:
        type: string
    FilterOrganizationUserStatus:
      description: Filter by user status
      in: query
      name: filter[user_status]
      schema:
        enum:
        - enabled
        - disabled
        - blocked
        type: string
    FilterPhoneNumbersConsolidated:
      description: Filter parameter for phone numbers (deepObject style). Supports
        filtering by phone_number, civic_address_id, and location_id with eq/contains
        operations.
      explode: true
      in: query
      name: filter
      required: false
      schema:
        properties:
          civic_address_id:
            properties:
              eq:
                description: The civic address ID to filter by
                example: '19990261512338516954'
                type: string
            type: object
          location_id:
            properties:
              eq:
                description: The location ID to filter by
                example: '19995665508264022121'
                type: string
            type: object
          phone_number:
            properties:
              contains:
                description: The phone number to filter by (partial match)
                example: '+1970'
                type: string
              eq:
                description: The phone number to filter by (exact match)
                example: '+19705555098'
                type: string
            type: object
        type: object
      style: deepObject
    FilterProvider:
      description: Filter by voice synthesis provider. Case-insensitive.
      in: query
      name: filter[provider]
      required: false
      schema:
        enum:
        - telnyx
        - minimax
        - Telnyx
        - Minimax
        type: string
    FilterReleasesConsolidated:
      description: Filter parameter for releases (deepObject style). Supports filtering
        by status, civic_address_id, location_id, and phone_number with eq/contains
        operations.
      explode: true
      in: query
      name: filter
      schema:
        properties:
          civic_address_id:
            properties:
              eq:
                description: The civic address ID to filter by
                example: '19990261512338516954'
                type: string
            type: object
          location_id:
            properties:
              eq:
                description: The location ID to filter by
                example: '19995665508264022121'
                type: string
            type: object
          phone_number:
            description: Phone number filter operations. Use 'eq' for exact matches
              or 'contains' for partial matches.
            properties:
              contains:
                description: The partial phone number to filter by. Requires 3-15
                  digits.
                example: '+123'
                type: string
              eq:
                description: The phone number to filter by
                example: '+1234567890'
                type: string
                x-format: E164
            type: object
          status:
            properties:
              eq:
                description: The status of the release to filter by
                example:
                - pending
                - in_progress
                items:
                  enum:
                  - pending_upload
                  - pending
                  - in_progress
                  - complete
                  - failed
                  - expired
                  - unknown
                  type: string
                type: array
            type: object
        type: object
      style: deepObject
    FilterRequirementTypesConsolidated:
      description: 'Consolidated filter parameter for requirement types (deepObject
        style). Originally: filter[name]'
      explode: true
      in: query
      name: filter
      required: false
      schema:
        additionalProperties: false
        properties:
          name:
            additionalProperties: false
            properties:
              contains:
                description: Filters requirement types to those whose name contains
                  a certain string.
                example: utility bill
                type: string
            type: object
        type: object
      style: deepObject
    FilterRequirementsConsolidated:
      description: 'Consolidated filter parameter for requirements (deepObject style).
        Originally: filter[country_code], filter[phone_number_type], filter[action]'
      explode: true
      in: query
      name: filter
      required: false
      schema:
        additionalProperties: false
        properties:
          action:
            description: Filters requirements to those applying to a specific action.
            enum:
            - branded_calling
            - ordering
            - porting
            example: porting
            type: string
          country_code:
            description: Filters results to those applying to a 2-character (ISO 3166-1
              alpha-2) country code
            example: US
            type: string
          phone_number_type:
            description: Filters results to those applying to a specific phone_number_type
            enum:
            - local
            - national
            - toll_free
            example: local
            type: string
        type: object
      style: deepObject
    FilterSIMCardActionsConsolidated:
      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]'
      explode: true
      in: query
      name: filter
      schema:
        properties:
          action_type:
            description: Filter by action type.
            enum:
            - enable
            - enable_standby_sim_card
            - disable
            - set_standby
            - remove_public_ip
            - set_public_ip
            example: disable
            type: string
          bulk_sim_card_action_id:
            description: Filter by a bulk SIM card action ID.
            example: 47a1c2b0-cc7b-4ab1-bb98-b33fb0fc61b9
            format: uuid
            type: string
          sim_card_id:
            description: A valid SIM card ID.
            example: 47a1c2b0-cc7b-4ab1-bb98-b33fb0fc61b9
            format: uuid
            type: string
          status:
            description: Filter by a specific status of the resource's lifecycle.
            enum:
            - in-progress
            - completed
            - failed
            example: in-progress
            type: string
        type: object
    FilterSIMCardConsolidated:
      description: 'Consolidated filter parameter for SIM cards (deepObject style).
        Originally: filter[iccid], filter[msisdn], filter[status], filter[tags]'
      explode: true
      in: query
      name: filter
      schema:
        properties:
          iccid:
            description: A search string to partially match for the SIM card's ICCID.
            example: '89310410106543789301'
            type: string
          msisdn:
            description: A search string to match for the SIM card's MSISDN.
            example: '+13109976224'
            type: string
          status:
            description: Filter by a SIM card's status.
            items:
              enum:
              - enabled
              - disabled
              - standby
              - data_limit_exceeded
              - unauthorized_imei
              type: string
            type: array
          tags:
            description: "A list of SIM card tags to filter on.<br/><br/>\n If the\
              \ SIM card contains <b><i>all</i></b> of the given <code>tags</code>\
              \ they will be found.<br/><br/>\nFor example, if the SIM cards have\
              \ the following tags: <ul>\n  <li><code>['customers', 'staff', 'test']</code>\n\
              \  <li><code>['test']</code></li>\n  <li><code>['customers']</code></li>\n\
              </ul>\nSearching for <code>['customers', 'test']</code> returns only\
              \ the first because it's the only one with both tags.<br/> Searching\
              \ for <code>test</code> returns the first two SIMs, because both of\
              \ them have such tag.<br/> Searching for <code>customers</code> returns\
              \ the first and last SIMs.<br/>\n"
            example:
            - personal
            - customers
            - active-customers
            items:
              type: string
            type: array
        type: object
    FilterSIMCardGroupId:
      description: A valid SIM card group ID.
      in: query
      name: filter[sim_card_group_id]
      schema:
        example: 47a1c2b0-cc7b-4ab1-bb98-b33fb0fc61b9
        format: uuid
        type: string
    FilterSIMCardId:
      description: A valid SIM card ID.
      in: query
      name: filter[sim_card_id]
      schema:
        example: 47a1c2b0-cc7b-4ab1-bb98-b33fb0fc61b9
        format: uuid
        type: string
    FilterSIMCardOrdersConsolidated:
      description: 'Consolidated filter parameter for SIM card orders (deepObject
        style). Originally: filter[created_at], filter[updated_at], filter[quantity],
        filter[cost.amount], filter[cost.currency], filter[address.id], filter[address.street_address],
        filter[address.extended_address], filter[address.locality], filter[address.administrative_area],
        filter[address.country_code], filter[address.postal_code]'
      explode: true
      in: query
      name: filter
      schema:
        properties:
          address.administrative_area:
            description: Filter by state or province where the address is located.
            example: TX
            type: string
          address.country_code:
            description: Filter by the mobile operator two-character (ISO 3166-1 alpha-2)
              origin country code.
            example: US
            type: string
          address.extended_address:
            description: Returns entries with matching name of the supplemental field
              for address information.
            example: 14th Floor
            type: string
          address.id:
            description: Uniquely identifies the address for the order.
            example: '1293384261075731499'
            type: string
          address.locality:
            description: Filter by the name of the city where the address is located.
            example: Austin
            type: string
          address.postal_code:
            description: Filter by postal code for the address.
            example: '78701'
            type: string
          address.street_address:
            description: Returns entries with matching name of the street where the
              address is located.
            example: 600 Congress Avenue
            type: string
          cost.amount:
            description: The total monetary amount of the order.
            example: '2.53'
            type: string
          cost.currency:
            description: Filter by ISO 4217 currency string.
            example: USD
            type: string
          created_at:
            description: Filter by ISO 8601 formatted date-time string matching resource
              creation date-time.
            example: '2018-02-02T22:25:27.521Z'
            format: date-time
            type: string
          quantity:
            description: Filter orders by how many SIM cards were ordered.
            example: 21
            type: integer
          updated_at:
            description: Filter by ISO 8601 formatted date-time string matching resource
              last update date-time.
            example: '2018-02-02T22:25:27.521Z'
            format: date-time
            type: string
        type: object
    FilterUploadsConsolidated:
      description: Filter parameter for uploads (deepObject style). Supports filtering
        by status, civic_address_id, location_id, and phone_number with eq/contains
        operations.
      explode: true
      in: query
      name: filter
      required: false
      schema:
        properties:
          civic_address_id:
            properties:
              eq:
                description: The civic address ID to filter by
                example: '19990261512338516954'
                type: string
            type: object
          location_id:
            properties:
              eq:
                description: The location ID to filter by
                example: '19995665508264022121'
                type: string
            type: object
          phone_number:
            properties:
              contains:
                description: The phone number to filter by (partial match)
                example: '+1970'
                type: string
              eq:
                description: The phone number to filter by (exact match)
                example: '+19705555098'
                type: string
            type: object
          st

# --- truncated at 32 KB (3538 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/telnyx/refs/heads/main/openapi/telnyx-openapi.yml