SignalWire Short Codes API

Manage short codes for SMS and MMS messaging.

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/signalwire-short-codes-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 email required.

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

OpenAPI Specification

signalwire-short-codes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SignalWire REST Short Codes API
  version: 1.0.0
  contact:
    name: SignalWire
    url: https://support.signalwire.com/portal/en/newticket?departmentId=1029313000000006907&layoutId=1029313000000074011
    email: support@signalwire.com
  license:
    name: MIT
    url: https://github.com/signalwire/docs/blob/main/LICENSE
  termsOfService: https://signalwire.com/legal/signalwire-cloud-agreement
  description: Manage short codes for SMS and MMS messaging.
servers:
- url: https://{space_name}.signalwire.com
  description: SignalWire API
  variables:
    space_name:
      default: '{Your_Space_Name}'
      description: Your SignalWire Space name
security:
- SignalWireBasicAuth: []
tags:
- name: Short Codes
  description: Manage short codes for SMS and MMS messaging.
  externalDocs:
    url: https://signalwire.com/docs/apis
    description: Developer documentation on SignalWire REST APIs
paths:
  /api/relay/rest/short_codes:
    get:
      operationId: list_short_codes
      summary: List short codes
      description: 'Returns a list of your short codes. The short codes are returned sorted

        by creation date, with the most recent appearing first.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Numbers_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/ListShortCodesQuery.filter_name'
      - $ref: '#/components/parameters/ListShortCodesQuery.filter_number'
      - $ref: '#/components/parameters/ListShortCodesQuery.page_number'
      - $ref: '#/components/parameters/ListShortCodesQuery.page_size'
      - $ref: '#/components/parameters/ListShortCodesQuery.page_token'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShortCodeListResponse'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode400'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Short Codes
  /api/relay/rest/short_codes/{id}:
    get:
      operationId: retrieve_short_code
      summary: Get short code
      description: 'Retrieves the details of a short code.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Numbers_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/ShortCodePathID'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShortCodeResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode404'
        '422':
          description: The request failed validation. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.ValidationError'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Short Codes
    put:
      operationId: update_short_code
      summary: Update short code
      description: 'Updates a short code''s configuration.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Numbers_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/ShortCodePathID'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShortCodeResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode404'
        '422':
          description: The request failed validation. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.ValidationError'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Short Codes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateShortCodeRequest'
components:
  schemas:
    Types.StatusCodes.StatusCode401:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Unauthorized
      unevaluatedProperties:
        not: {}
      description: Access is unauthorized.
    ShortCodeType:
      type: string
      enum:
      - vanity
      - random
      description: Short code type.
    Types.StatusCodes.StatusCode400:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Bad Request
      unevaluatedProperties:
        not: {}
      description: The request is invalid.
    HttpMethod:
      type: string
      enum:
      - GET
      - POST
      description: HTTP method type.
    uuid:
      type: string
      format: uuid
      description: Universal Unique Identifier.
    Types.StatusCodes.StatusCode404:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Not Found
      unevaluatedProperties:
        not: {}
      description: The server cannot find the requested resource.
    UpdateShortCodeRequest:
      type: object
      required:
      - name
      - message_handler
      properties:
        name:
          type: string
          maxLength: 255
          description: The name given to the short code.
          examples:
          - My Short Code
        message_handler:
          allOf:
          - $ref: '#/components/schemas/ShortCodeMessageHandler'
          description: The message handler type for incoming messages.
        message_request_url:
          type: string
          description: The URL to send message requests to when using laml_webhooks handler.
          examples:
          - https://example.com/message
        message_request_method:
          allOf:
          - $ref: '#/components/schemas/HttpMethod'
          description: The HTTP method to use for message requests. Defaults to POST.
          default: POST
        message_fallback_url:
          type: string
          description: The fallback URL for message requests.
          examples:
          - https://example.com/fallback
        message_fallback_method:
          allOf:
          - $ref: '#/components/schemas/HttpMethod'
          description: The HTTP method to use for fallback requests. Defaults to POST.
          default: POST
        message_laml_application_id:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The ID of the LāML application to handle messages when using laml_application handler.
          examples:
          - 3fa85f64-5717-4562-b3fc-2c963f66afa6
        message_relay_context:
          type: string
          description: The Relay context to use when using relay_context handler.
          examples:
          - my-context
      unevaluatedProperties:
        not: {}
      description: Request body for updating a short code.
    Types.StatusCodes.StatusCode500:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          enum:
          - Internal Server Error
      unevaluatedProperties:
        not: {}
      description: An internal server error occurred.
    PaginationLinks:
      type: object
      required:
      - self
      - first
      properties:
        self:
          type: string
          description: Link to the current page.
        first:
          type: string
          description: Link to the first page.
        next:
          type: string
          description: Link to the next page. Only present when there are more results.
        prev:
          type: string
          description: Link to the previous page. Only present when not on the first page.
      unevaluatedProperties:
        not: {}
      description: Pagination links for list responses.
    ShortCodeResponse:
      type: object
      required:
      - id
      - name
      - number
      - capabilities
      - number_type
      - code_type
      - country_code
      - created_at
      - updated_at
      - next_billed_at
      - lease_duration
      - message_handler
      - message_request_url
      - message_request_method
      - message_fallback_url
      - message_fallback_method
      - message_laml_application_id
      - message_relay_context
      properties:
        id:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier of the short code.
          examples:
          - 3fa85f64-5717-4562-b3fc-2c963f66afa6
        name:
          anyOf:
          - type: string
          - type: 'null'
          description: The name given to the short code.
          examples:
          - My Short Code
        number:
          type: string
          description: The short code number.
          examples:
          - '12345'
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/ShortCodeCapability'
          description: The messaging capabilities of the short code.
        number_type:
          type: string
          enum:
          - shortcode
          description: The type of number (always 'shortcode').
          examples:
          - shortcode
        code_type:
          allOf:
          - $ref: '#/components/schemas/ShortCodeType'
          description: The type of short code.
        country_code:
          type: string
          description: The ISO 3166-1 alpha-2 country code.
          examples:
          - US
        created_at:
          type: string
          description: The date and time when the short code was created.
          examples:
          - '2023-01-15T10:30:00Z'
        updated_at:
          type: string
          description: The date and time when the short code was last updated.
          examples:
          - '2023-01-15T10:30:00Z'
        next_billed_at:
          anyOf:
          - type: string
          - type: 'null'
          description: The date and time when the short code will next be billed.
          examples:
          - '2024-01-15T10:30:00Z'
        lease_duration:
          anyOf:
          - type: string
          - type: 'null'
          description: The lease duration of the short code (e.g., '12 months').
          examples:
          - 12 months
        message_handler:
          anyOf:
          - $ref: '#/components/schemas/ShortCodeMessageHandler'
          - type: 'null'
          description: The message handler type for incoming messages.
        message_request_url:
          anyOf:
          - type: string
          - type: 'null'
          description: The URL to send message requests to when using laml_webhooks handler.
          examples:
          - https://example.com/message
        message_request_method:
          anyOf:
          - $ref: '#/components/schemas/HttpMethod'
          - type: 'null'
          description: The HTTP method to use for message requests.
        message_fallback_url:
          anyOf:
          - type: string
          - type: 'null'
          description: The fallback URL for message requests.
          examples:
          - https://example.com/fallback
        message_fallback_method:
          anyOf:
          - $ref: '#/components/schemas/HttpMethod'
          - type: 'null'
          description: The HTTP method to use for fallback requests.
        message_laml_application_id:
          anyOf:
          - $ref: '#/components/schemas/uuid'
          - type: 'null'
          description: The ID of the LāML application to handle messages when using laml_application handler.
          examples:
          - 3fa85f64-5717-4562-b3fc-2c963f66afa6
        message_relay_context:
          anyOf:
          - type: string
          - type: 'null'
          description: The Relay context to use when using relay_context handler.
          examples:
          - my-context
      unevaluatedProperties:
        not: {}
      description: Response containing a single short code.
    Types.StatusCodes.ValidationError:
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Types.StatusCodes.SpaceApiErrorItem'
          description: List of validation errors.
      unevaluatedProperties:
        not: {}
      description: The request failed validation. See errors for details.
    ShortCodeListResponse:
      type: object
      required:
      - links
      - data
      properties:
        links:
          allOf:
          - $ref: '#/components/schemas/PaginationLinks'
          description: Pagination links.
        data:
          type: array
          items:
            $ref: '#/components/schemas/ShortCode'
          description: List of short codes.
      unevaluatedProperties:
        not: {}
      description: Response containing a list of short codes.
    Types.StatusCodes.SpaceApiErrorItem:
      type: object
      required:
      - detail
      - status
      - title
      - code
      properties:
        detail:
          type: string
          description: A description of what caused the error.
          examples:
          - Label can't be blank
        status:
          type: string
          description: The HTTP status code.
          examples:
          - '422'
        title:
          type: string
          description: A short summary of the error type.
          examples:
          - Invalid Attribute
        code:
          type: string
          description: The error code.
          examples:
          - '422'
      unevaluatedProperties:
        not: {}
      description: Details about a specific validation error.
    ShortCodeCapability:
      type: string
      enum:
      - sms
      - mms
      description: Short code capabilities.
    ShortCodeMessageHandler:
      type: string
      enum:
      - relay_context
      - laml_webhooks
      - laml_application
      description: Message handler type for short codes.
    ShortCode:
      type: object
      required:
      - id
      - name
      - number
      - capabilities
      - number_type
      - code_type
      - country_code
      - created_at
      - updated_at
      - next_billed_at
      - lease_duration
      - message_handler
      - message_request_url
      - message_request_method
      - message_fallback_url
      - message_fallback_method
      - message_laml_application_id
      - message_relay_context
      properties:
        id:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier of the short code.
          examples:
          - 3fa85f64-5717-4562-b3fc-2c963f66afa6
        name:
          anyOf:
          - type: string
          - type: 'null'
          description: The name given to the short code.
          examples:
          - My Short Code
        number:
          type: string
          description: The short code number.
          examples:
          - '12345'
        capabilities:
          type: array
          items:
            $ref: '#/components/schemas/ShortCodeCapability'
          description: The messaging capabilities of the short code.
        number_type:
          type: string
          enum:
          - shortcode
          description: The type of number (always 'shortcode').
          examples:
          - shortcode
        code_type:
          allOf:
          - $ref: '#/components/schemas/ShortCodeType'
          description: The type of short code.
        country_code:
          type: string
          description: The ISO 3166-1 alpha-2 country code.
          examples:
          - US
        created_at:
          type: string
          description: The date and time when the short code was created.
          examples:
          - '2023-01-15T10:30:00Z'
        updated_at:
          type: string
          description: The date and time when the short code was last updated.
          examples:
          - '2023-01-15T10:30:00Z'
        next_billed_at:
          anyOf:
          - type: string
          - type: 'null'
          description: The date and time when the short code will next be billed.
          examples:
          - '2024-01-15T10:30:00Z'
        lease_duration:
          anyOf:
          - type: string
          - type: 'null'
          description: The lease duration of the short code (e.g., '12 months').
          examples:
          - 12 months
        message_handler:
          anyOf:
          - $ref: '#/components/schemas/ShortCodeMessageHandler'
          - type: 'null'
          description: The message handler type for incoming messages.
        message_request_url:
          anyOf:
          - type: string
          - type: 'null'
          description: The URL to send message requests to when using laml_webhooks handler.
          examples:
          - https://example.com/message
        message_request_method:
          anyOf:
          - $ref: '#/components/schemas/HttpMethod'
          - type: 'null'
          description: The HTTP method to use for message requests.
        message_fallback_url:
          anyOf:
          - type: string
          - type: 'null'
          description: The fallback URL for message requests.
          examples:
          - https://example.com/fallback
        message_fallback_method:
          anyOf:
          - $ref: '#/components/schemas/HttpMethod'
          - type: 'null'
          description: The HTTP method to use for fallback requests.
        message_laml_application_id:
          anyOf:
          - $ref: '#/components/schemas/uuid'
          - type: 'null'
          description: The ID of the LāML application to handle messages when using laml_application handler.
          examples:
          - 3fa85f64-5717-4562-b3fc-2c963f66afa6
        message_relay_context:
          anyOf:
          - type: string
          - type: 'null'
          description: The Relay context to use when using relay_context handler.
          examples:
          - my-context
      unevaluatedProperties:
        not: {}
      description: Short code model.
  parameters:
    ListShortCodesQuery.page_number:
      name: page_number
      in: query
      required: false
      description: The page number to retrieve.
      schema:
        type: integer
        format: int32
        default: 0
      explode: false
    ListShortCodesQuery.page_size:
      name: page_size
      in: query
      required: false
      description: The number of results per page.
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 1000
        default: 50
      explode: false
    ListShortCodesQuery.page_token:
      name: page_token
      in: query
      required: false
      description: Token for cursor-based pagination.
      schema:
        type: string
      explode: false
    ShortCodePathID:
      name: id
      in: path
      required: true
      description: Unique ID of the short code.
      schema:
        $ref: '#/components/schemas/uuid'
    ListShortCodesQuery.filter_number:
      name: filter_number
      in: query
      required: false
      description: Filter by number. Returns all short codes containing this value as a substring.
      schema:
        type: string
      explode: false
    ListShortCodesQuery.filter_name:
      name: filter_name
      in: query
      required: false
      description: Filter by name. Returns all short codes containing this value as a substring.
      schema:
        type: string
      explode: false
  securitySchemes:
    SignalWireBasicAuth:
      type: http
      scheme: Basic
      description: 'SignalWire Basic Authentication using Project ID and API Token.


        The client sends HTTP requests with the Authorization header containing

        the word Basic followed by a space and a base64-encoded string of project_id:token.

        The project ID will be used as the username and the API token as the password.


        Example:

        ```

        Authorization: Basic base64(project_id:token)

        ```'
      x-fern-basic:
        username:
          name: project_id
          env: SIGNALWIRE_PROJECT_ID
        password:
          name: api_token
          env: SIGNALWIRE_API_TOKEN
    SignalWireBearerAuth:
      type: http
      scheme: Bearer
      description: 'SignalWire Bearer Token Authentication for subscriber endpoints.

        The client sends HTTP requests with the Authorization header containing

        the word Bearer followed by a space and the subscriber token.


        Example:

        ```

        Authorization: Bearer <subscriber_token>

        ```'