SignalWire Accounts API

Manage SignalWire projects and subprojects.

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-accounts-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-accounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Compatibility Accounts API
  version: 1.0.0
  description: Manage SignalWire projects and subprojects.
servers:
- url: https://{space_name}.signalwire.com/api/laml/2010-04-01
  description: SignalWire Compatibility API
  variables:
    space_name:
      default: YOUR_SPACE
      description: Your SignalWire Space name
security:
- SignalWireBasicAuth: []
tags:
- name: Accounts
  description: Manage SignalWire projects and subprojects.
  externalDocs:
    url: https://signalwire.com/docs/compatibility-api/rest
    description: Developer documentation on the Compatibility REST API
paths:
  /Accounts:
    get:
      operationId: list_accounts
      summary: List Accounts
      description: 'This endpoint will return a list that contains Project you are connecting as and any subprojects.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - name: FriendlyName
        in: query
        required: false
        description: 'A named unique identifier for the resource. Allowed characters: `A-Za-z0-9_-`. Maximum of 100 characters.'
        schema:
          type: string
        explode: false
      - name: Page
        in: query
        required: false
        description: The page number to retrieve. Page numbers are zero-indexed, so the first page is 0.
        schema:
          type: integer
          format: int32
          minimum: 0
          default: 0
        explode: false
      - name: PageSize
        in: query
        required: false
        description: The number of results to return per page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 1000
          default: 50
        explode: false
      - name: PageToken
        in: query
        required: false
        description: A token used to retrieve a specific page of results. The token is returned in the response of a previous request.
        schema:
          type: string
        explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountListResponse'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '422':
          description: The request could not be processed due to validation errors. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Accounts
    post:
      operationId: create_subprojects
      summary: Create Subprojects
      description: 'This endpoint creates a subproject on the Project you are connecting as.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters: []
      responses:
        '201':
          description: Response containing a newly created subproject account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '422':
          description: The request could not be processed due to validation errors. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Accounts
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateSubprojectRequest'
  /Accounts/{Sid}:
    get:
      operationId: get_account
      summary: Find an Account by ID
      description: 'Find a Project (also referred to as _Account_) by ID.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/AccountPathSid'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponse'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '404':
          description: The requested resource was not found. Please verify the resource identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Accounts
    post:
      operationId: update_account
      summary: Update an Account
      description: 'Update a Project (also referred to as _Account_).


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/AccountPathSid'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountResponse'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '404':
          description: The requested resource was not found. Please verify the resource identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '422':
          description: The request could not be processed due to validation errors. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Accounts
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateAccountRequest'
components:
  schemas:
    AccountType:
      type: string
      enum:
      - Full
      description: The type of the Project.
    Account:
      type: object
      required:
      - sid
      - friendly_name
      - status
      - auth_token
      - date_created
      - date_updated
      - type
      - owner_account_sid
      - region_preference
      - uri
      - subproject
      - signing_key
      - subresource_uris
      properties:
        sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for this Project.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472af
        friendly_name:
          type: string
          description: The name of the Project.
          examples:
          - My Project
        status:
          allOf:
          - $ref: '#/components/schemas/AccountStatus'
          description: The status of the Project. Always 'active'.
        auth_token:
          type: string
          description: The authorization token for this Project. Always returns 'redacted' for security.
          examples:
          - redacted
        date_created:
          type: string
          description: The date and time this Project was created, in RFC 2822 format.
          examples:
          - Sat, 15 Sep 2018 10:00:00 +0000
        date_updated:
          type: string
          description: The date and time this Project was last updated, in RFC 2822 format.
          examples:
          - Sat, 16 Sep 2018 10:00:00 +0000
        type:
          allOf:
          - $ref: '#/components/schemas/AccountType'
          description: The type of the Project. Always 'Full'.
        owner_account_sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The Project ID of the parent project. For parent projects, this is the same as sid.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472af
        region_preference:
          type: string
          description: The preferred region for the Project.
          examples:
          - us-east
        uri:
          type: string
          description: The URI for the Project.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af
        subproject:
          type: boolean
          description: Whether this project is a sub-project of another project.
          examples:
          - false
        signing_key:
          anyOf:
          - type: string
          - type: 'null'
          description: The signing key for the Project. Only returned once when a subproject is created. Subsequent requests return null.
          examples:
          - null
        subresource_uris:
          allOf:
          - $ref: '#/components/schemas/SubresourceUris'
          description: A map of URIs for sub-resources linked to this Project.
      unevaluatedProperties:
        not: {}
      description: Account/Project model representing a SignalWire project.
    UpdateAccountRequest:
      type: object
      required:
      - FriendlyName
      properties:
        FriendlyName:
          type: string
          maxLength: 250
          description: The new name for the Project.
          examples:
          - My Project
      unevaluatedProperties:
        not: {}
      description: Request body for updating an account.
    AccountListResponse:
      type: object
      required:
      - uri
      - first_page_uri
      - next_page_uri
      - previous_page_uri
      - page
      - page_size
      - accounts
      properties:
        uri:
          type: string
          description: The URI of the current page.
          examples:
          - /api/laml/2010-04-01/Accounts?Page=0&PageSize=50
        first_page_uri:
          type: string
          description: The URI of the first page.
          examples:
          - /api/laml/2010-04-01/Accounts?Page=0&PageSize=50
        next_page_uri:
          anyOf:
          - type: string
          - type: 'null'
          description: The URI of the next page. Null if there are no more results.
          examples:
          - /api/laml/2010-04-01/Accounts?Page=1&PageSize=50
        previous_page_uri:
          anyOf:
          - type: string
          - type: 'null'
          description: The URI of the previous page. Null if this is the first page.
          examples:
          - null
        page:
          type: integer
          format: int32
          description: The current page number (zero-indexed).
          examples:
          - 0
        page_size:
          type: integer
          format: int32
          description: The number of results per page.
          examples:
          - 50
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/Account'
          description: List of accounts.
      unevaluatedProperties:
        not: {}
      description: Response containing a list of accounts.
    AccountStatus:
      type: string
      enum:
      - active
      description: The status of the Project.
    uuid:
      type: string
      format: uuid
      description: Universal Unique Identifier.
    CreateSubprojectRequest:
      type: object
      required:
      - FriendlyName
      properties:
        FriendlyName:
          type: string
          maxLength: 250
          description: The name of the Project, up to 250 characters long.
          examples:
          - My Project
      unevaluatedProperties:
        not: {}
      description: Request body for creating a subproject.
    CompatibilityErrorResponse:
      type: object
      required:
      - code
      - message
      - more_info
      - status
      properties:
        code:
          type: integer
          format: int32
          description: Error code.
          examples:
          - 20003
        message:
          type: string
          description: Error message.
          examples:
          - Authentication failed
        more_info:
          type: string
          description: URL for more information about the error.
          examples:
          - https://signalwire.com/docs/compatibility-api/reference/errors
        status:
          type: integer
          format: int32
          description: HTTP status code.
          examples:
          - 401
      unevaluatedProperties:
        not: {}
      description: Error response model.
    SubresourceUris:
      type: object
      required:
      - addresses
      - available_phone_numbers
      - applications
      - authorized_connect_apps
      - calls
      - conferences
      - connect_apps
      - incoming_phone_numbers
      - keys
      - notifications
      - outgoing_caller_ids
      - queues
      - recordings
      - sandbox
      - sip
      - short_codes
      - messages
      - transcriptions
      - usage
      properties:
        addresses:
          type: 'null'
          description: URI for addresses. Not supported.
          examples:
          - null
        available_phone_numbers:
          type: string
          description: URI for available phone numbers.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/AvailablePhoneNumbers
        applications:
          type: string
          description: URI for applications.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Applications
        authorized_connect_apps:
          type: 'null'
          description: URI for authorized connect apps. Not supported.
          examples:
          - null
        calls:
          type: string
          description: URI for calls.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Calls
        conferences:
          type: string
          description: URI for conferences.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Conferences
        connect_apps:
          type: 'null'
          description: URI for connect apps. Not supported.
          examples:
          - null
        incoming_phone_numbers:
          type: string
          description: URI for incoming phone numbers.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/IncomingPhoneNumbers
        keys:
          type: 'null'
          description: URI for keys. Not supported.
          examples:
          - null
        notifications:
          type: 'null'
          description: URI for notifications. Not supported.
          examples:
          - null
        outgoing_caller_ids:
          type: 'null'
          description: URI for outgoing caller IDs. Not supported.
          examples:
          - null
        queues:
          type: string
          description: URI for queues.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Queues
        recordings:
          type: string
          description: URI for recordings.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Recordings
        sandbox:
          type: 'null'
          description: URI for sandbox. Not supported.
          examples:
          - null
        sip:
          type: 'null'
          description: URI for SIP. Not supported.
          examples:
          - null
        short_codes:
          type: 'null'
          description: URI for short codes. Not supported.
          examples:
          - null
        messages:
          type: string
          description: URI for messages.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Messages
        transcriptions:
          type: string
          description: URI for transcriptions.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Transcriptions
        usage:
          type: 'null'
          description: URI for usage. Not supported.
          examples:
          - null
      unevaluatedProperties:
        not: {}
      description: A Map of sub-resources that are linked to the given Project.
    AccountResponse:
      type: object
      required:
      - sid
      - friendly_name
      - status
      - auth_token
      - date_created
      - date_updated
      - type
      - owner_account_sid
      - region_preference
      - uri
      - subproject
      - signing_key
      - subresource_uris
      properties:
        sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for this Project.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472af
        friendly_name:
          type: string
          description: The name of the Project.
          examples:
          - My Project
        status:
          allOf:
          - $ref: '#/components/schemas/AccountStatus'
          description: The status of the Project. Always 'active'.
        auth_token:
          type: string
          description: The authorization token for this Project. Always returns 'redacted' for security.
          examples:
          - redacted
        date_created:
          type: string
          description: The date and time this Project was created, in RFC 2822 format.
          examples:
          - Sat, 15 Sep 2018 10:00:00 +0000
        date_updated:
          type: string
          description: The date and time this Project was last updated, in RFC 2822 format.
          examples:
          - Sat, 16 Sep 2018 10:00:00 +0000
        type:
          allOf:
          - $ref: '#/components/schemas/AccountType'
          description: The type of the Project. Always 'Full'.
        owner_account_sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The Project ID of the parent project. For parent projects, this is the same as sid.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472af
        region_preference:
          type: string
          description: The preferred region for the Project.
          examples:
          - us-east
        uri:
          type: string
          description: The URI for the Project.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af
        subproject:
          type: boolean
          description: Whether this project is a sub-project of another project.
          examples:
          - false
        signing_key:
          anyOf:
          - type: string
          - type: 'null'
          description: The signing key for the Project. Only returned once when a subproject is created. Subsequent requests return null.
          examples:
          - null
        subresource_uris:
          allOf:
          - $ref: '#/components/schemas/SubresourceUris'
          description: A map of URIs for sub-resources linked to this Project.
      unevaluatedProperties:
        not: {}
      description: Response containing a single account.
  parameters:
    AccountPathSid:
      name: Sid
      in: path
      required: true
      description: The Project ID that uniquely identifies the Project to retrieve.
      schema:
        $ref: '#/components/schemas/uuid'
  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