Telnyx Phone Number Reservations API

Number reservations

Operations 4

GET /number_reservations List number reservations #
POST /number_reservations Create a number reservation #
GET /number_reservations/{number_reservation_id} Retrieve a number reservation #
POST /number_reservations/{number_reservation_id}/actions/extend Extend a number reservation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/telnyx-phone-number-reservations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

telnyx-phone-number-reservations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@telnyx.com
  description: Telnyx provides global communications and connectivity APIs for developers — 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.
  title: Telnyx Phone Number Reservations API
  version: 2.0.0
  x-endpoint-cost: light
servers:
- description: Version 2.0.0 of the Telnyx API
  url: https://api.telnyx.com/v2
security:
- bearerAuth: []
tags:
- description: Number reservations
  name: Phone Number Reservations
paths:
  /number_reservations:
    get:
      description: Gets a paginated list of phone number reservations.
      operationId: ListNumberReservations
      parameters:
      - $ref: '#/components/parameters/numbers_PageConsolidated'
      - description: 'Consolidated filter parameter (deepObject style). Originally: filter[status], filter[created_at], filter[phone_numbers.phone_number], filter[customer_reference]'
        explode: true
        in: query
        name: filter
        schema:
          properties:
            created_at:
              additionalProperties: false
              description: Filter number reservations by date range.
              properties:
                gt:
                  description: Filter number reservations later than this value.
                  type: string
                lt:
                  description: Filter number reservations earlier than this value.
                  type: string
              type: object
            customer_reference:
              description: Filter number reservations via the customer reference set.
              type: string
            phone_numbers.phone_number:
              description: Filter number reservations having these phone numbers.
              type: string
            status:
              description: Filter number reservations by status.
              type: string
          type: object
        style: deepObject
      responses:
        '200':
          $ref: '#/components/responses/ListNumberReservationsResponse'
        '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'
      summary: List number reservations
      tags:
      - Phone Number Reservations
      x-group-parameters: 'true'
      x-latency-category: responsive
    post:
      description: Creates a Phone Number Reservation for multiple numbers.
      operationId: CreateNumberReservation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNumberReservationRequest'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/NumberReservationResponse'
        '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'
      summary: Create a number reservation
      tags:
      - Phone Number Reservations
      x-latency-category: responsive
  /number_reservations/{number_reservation_id}:
    get:
      description: Gets a single phone number reservation.
      operationId: RetrieveNumberReservation
      parameters:
      - description: The number reservation ID.
        in: path
        name: number_reservation_id
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/NumberReservationResponse'
        '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'
      summary: Retrieve a number reservation
      tags:
      - Phone Number Reservations
      x-latency-category: responsive
  /number_reservations/{number_reservation_id}/actions/extend:
    post:
      description: Extends reservation expiry time on all phone numbers.
      operationId: ExtendNumberReservationExpiryTime
      parameters:
      - description: The number reservation ID.
        in: path
        name: number_reservation_id
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/NumberReservationResponse'
        '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'
      summary: Extend a number reservation
      tags:
      - Phone Number Reservations
      x-latency-category: responsive
components:
  schemas:
    numbers_Error:
      properties:
        code:
          example: '10007'
          type: string
        detail:
          example: An unexpected error occured.
          type: string
        meta:
          properties:
            url:
              description: URL with additional information on the error.
              example: https://developers.telnyx.com/docs/overview/errors/10015
              type: string
          type: object
        source:
          properties:
            parameter:
              description: Indicates which query parameter caused the error.
              type: string
            pointer:
              description: JSON pointer (RFC6901) to the offending entity.
              example: /base
              type: string
          type: object
        title:
          example: Unexpected error
          type: string
      type: object
    numbers_Errors:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/numbers_Error'
          type: array
      type: object
    NumberReservation:
      example:
        created_at: '2018-01-01T00:00:00.000000Z'
        customer_reference: MY REF 001
        id: 12ade33a-21c0-473b-b055-b3c836e1c292
        phone_numbers:
        - created_at: '2018-01-01T00:00:00.000000Z'
          errors: Number is already on hold
          expired_at: '2018-01-01T00:00:00.000000Z'
          id: 12ade33a-21c0-473b-b055-b3c836e1c292
          phone_number: '+19705555098'
          record_type: reserved_phone_number
          status: pending
          updated_at: '2018-01-01T00:00:00.000000Z'
        record_type: number_reservation
        status: pending
        updated_at: '2018-01-01T00:00:00.000000Z'
      properties:
        created_at:
          description: An ISO 8901 datetime string denoting when the numbers reservation was created.
          example: '2018-01-01T00:00:00.000000Z'
          format: date-time
          readOnly: true
          type: string
        customer_reference:
          description: A customer reference string for customer look ups.
          example: MY REF 001
          type: string
        errors:
          description: Errors the reservation could happen upon
          example: Number is already on hold
          readOnly: true
          type: string
        id:
          example: 12ade33a-21c0-473b-b055-b3c836e1c292
          format: uuid
          readOnly: true
          type: string
        phone_numbers:
          items:
            $ref: '#/components/schemas/ReservedPhoneNumber'
          type: array
        record_type:
          example: number_reservation
          readOnly: true
          type: string
        status:
          description: The status of the entire reservation.
          enum:
          - pending
          - success
          - failure
          readOnly: true
          type: string
        updated_at:
          description: An ISO 8901 datetime string for when the number reservation was updated.
          example: '2018-01-01T00:00:00.000000Z'
          format: date-time
          readOnly: true
          type: string
      type: object
    PaginationMeta:
      properties:
        page_number:
          example: 2
          type: integer
        page_size:
          example: 25
          type: integer
        total_pages:
          example: 3
          type: integer
        total_results:
          example: 55
          type: integer
      type: object
    CreateNumberReservationRequest:
      example:
        created_at: '2018-01-01T00:00:00.000000Z'
        customer_reference: MY REF 001
        id: 12ade33a-21c0-473b-b055-b3c836e1c292
        phone_numbers:
        - created_at: '2018-01-01T00:00:00.000000Z'
          errors: Number is already on hold
          expired_at: '2018-01-01T00:00:00.000000Z'
          id: 12ade33a-21c0-473b-b055-b3c836e1c292
          phone_number: '+19705555098'
          record_type: reserved_phone_number
          status: pending
          updated_at: '2018-01-01T00:00:00.000000Z'
        record_type: number_reservation
        status: pending
        updated_at: '2018-01-01T00:00:00.000000Z'
      properties:
        created_at:
          description: An ISO 8901 datetime string denoting when the numbers reservation was created.
          example: '2018-01-01T00:00:00.000000Z'
          format: date-time
          readOnly: true
          type: string
        customer_reference:
          description: A customer reference string for customer look ups.
          example: MY REF 001
          type: string
        id:
          example: 12ade33a-21c0-473b-b055-b3c836e1c292
          format: uuid
          readOnly: true
          type: string
        phone_numbers:
          items:
            $ref: '#/components/schemas/ReservedPhoneNumber'
          type: array
        record_type:
          example: number_reservation
          readOnly: true
          type: string
        status:
          description: The status of the entire reservation.
          enum:
          - pending
          - success
          - failure
          readOnly: true
          type: string
        updated_at:
          description: An ISO 8901 datetime string for when the number reservation was updated.
          example: '2018-01-01T00:00:00.000000Z'
          format: date-time
          readOnly: true
          type: string
      type: object
    ReservedPhoneNumber:
      example:
        created_at: '2018-01-01T00:00:00.000000Z'
        expired_at: '2018-01-01T00:00:00.000000Z'
        id: 12ade33a-21c0-473b-b055-b3c836e1c292
        phone_number: '+19705555098'
        record_type: reserved_phone_number
        status: pending
        updated_at: '2018-01-01T00:00:00.000000Z'
      properties:
        created_at:
          description: An ISO 8901 datetime string denoting when the individual number reservation was created.
          example: '2018-01-01T00:00:00.000000Z'
          format: date-time
          readOnly: true
          type: string
        errors:
          description: Errors the reservation could happen upon
          example: Number is already on hold
          readOnly: true
          type: string
        expired_at:
          description: An ISO 8901 datetime string for when the individual number reservation is going to expire
          example: '2018-01-01T00:00:00.000000Z'
          format: date-time
          readOnly: true
          type: string
        id:
          example: 12ade33a-21c0-473b-b055-b3c836e1c292
          format: uuid
          readOnly: true
          type: string
        phone_number:
          example: '+19705555098'
          type: string
        record_type:
          example: reserved_phone_number
          readOnly: true
          type: string
        status:
          description: The status of the phone number's reservation.
          enum:
          - pending
          - success
          - failure
          example: success
          readOnly: true
          type: string
        updated_at:
          description: An ISO 8901 datetime string for when the the individual number reservation was updated.
          example: '2018-01-01T00:00:00.000000Z'
          format: date-time
          readOnly: true
          type: string
      type: object
  responses:
    numbers_BadRequestResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/numbers_Errors'
      description: Bad request, the request was unacceptable, often due to missing a required parameter.
    numbers_GenericErrorResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/numbers_Errors'
      description: Unexpected error
    numbers_NotFoundResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/numbers_Errors'
      description: The requested resource doesn't exist.
    NumberReservationResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                $ref: '#/components/schemas/NumberReservation'
            title: Number Reservation Response
            type: object
      description: Successful response with details about a number reservation.
    numbers_UnprocessableEntity:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/numbers_Errors'
      description: Unprocessable entity. Check the 'detail' field in response for details.
    numbers_UnauthorizedResponse:
      content:
        application/json:
          examples:
            Authentication Failed:
              value:
                errors:
                - code: '10009'
                  detail: Could not understand the provided credentials.
                  meta:
                    url: https://developers.telnyx.com/docs/overview/errors/10009
                  title: Authentication failed
          schema:
            $ref: '#/components/schemas/numbers_Errors'
      description: Unauthorized
    ListNumberReservationsResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                items:
                  $ref: '#/components/schemas/NumberReservation'
                type: array
              meta:
                $ref: '#/components/schemas/PaginationMeta'
            title: List Number Reservations Response
            type: object
      description: Successful response with a list of number reservations.
  parameters:
    numbers_PageConsolidated:
      description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
      explode: true
      in: query
      name: page
      schema:
        properties:
          number:
            default: 1
            description: The page number to load
            minimum: 1
            type: integer
          size:
            default: 20
            description: The size of the page
            maximum: 250
            minimum: 1
            type: integer
        type: object
      style: deepObject
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    branded-calling_bearerAuth:
      description: API key passed as a Bearer token in the Authorization header
      scheme: bearer
      type: http
    oauthClientAuth:
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
      flows:
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
        clientCredentials:
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
      type: oauth2
    outbound-voice-profiles_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    pronunciation-dicts_bearerAuth:
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
      scheme: bearer
      type: http
    stored-payment-transactions_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http