Synthflow Phone Numbers API

The phoneNumbers API from Synthflow — 3 operation(s) for phonenumbers.

Operations 5

GET /numbers List phone numbers #
GET /numbers/{phone_number_slug} Get a phone number #
PATCH /numbers/{phone_number_slug} Update a phone number #
DELETE /numbers/{phone_number_slug} Delete a phone number #
POST /custom-numbers Import phone number #

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/synthflow-phonenumbers-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

synthflow-phonenumbers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PLATFORM Phone Numbers API
  version: 1.0.0
servers:
- url: https://api.synthflow.ai/v2
  description: Global
- url: https://api.us.synthflow.ai/v2
  description: United States
- url: https://api.eu.synthflow.ai/v2
  description: European Union
tags:
- name: phoneNumbers
paths:
  /numbers:
    get:
      operationId: get-numbers
      summary: List phone numbers
      description: Lists all phone numbers assigned to a workspace.
      tags:
      - phoneNumbers
      parameters:
      - name: workspace
        in: query
        description: Workspace ID.
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: Phone numbers displayed per page.
        required: false
        schema:
          type: integer
          default: 20
      - name: offset
        in: query
        description: Index of the first phone number to be returned.
        required: false
        schema:
          type: integer
          default: 0
      - name: is_available
        in: query
        description: 'Filters phone numbers by inbound availability.

          - `true`: only numbers not assigned to inbound agents

          - `false`: only numbers assigned to inbound agents

          '
        required: false
        schema:
          type: boolean
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Phone-Numbers_get-numbers_Response_200'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get-numbersRequestBadRequestError'
  /numbers/{phone_number_slug}:
    get:
      operationId: get-phone-number
      summary: Get a phone number
      description: Retrieves detailed information about a specific phone number.
      tags:
      - phoneNumbers
      parameters:
      - name: phone_number_slug
        in: path
        description: The phone number slug (phone number without the leading +).
        required: true
        schema:
          type: string
      - name: workspace
        in: query
        description: Workspace ID.
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Phone-Numbers_get-phone-number_Response_200'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get-phone-numberRequestBadRequestError'
    patch:
      operationId: update-phone-number
      summary: Update a phone number
      description: Updates the configuration of a phone number.
      tags:
      - phoneNumbers
      parameters:
      - name: phone_number_slug
        in: path
        description: The phone number slug (phone number without the leading +).
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Phone-Numbers_update-phone-number_Response_200'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Update-phone-numberRequestBadRequestError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                friendly_name:
                  type: string
                  description: A human-readable name for the phone number.
                sip_auth_username:
                  type: string
                  description: SIP authentication username.
                sip_outbound_proxy:
                  type: string
                  description: SIP outbound proxy.
                sip_term_uri:
                  type: string
                  description: SIP termination URI / SIP domain. Required when changing the SIP domain for providers other than `five9`, `ringcx`, and `zoom`. You may also send `termination_uri` as an alias; it is mapped to `sip_term_uri`.
                termination_uri:
                  type: string
                  description: Alias for `sip_term_uri` (SIP domain). Required when setting the domain for providers other than `five9`, `ringcx`, and `zoom`.
                provider_name:
                  $ref: '#/components/schemas/NumbersPhoneNumberSlugPatchRequestBodyContentApplicationJsonSchemaProviderName'
                  description: Telephony provider. When set to a non-auto provider without a SIP domain, the request fails with 400.
                trunk_username:
                  type: string
                  description: SIP trunk username for authentication. Required when enabling `uac_enabled`.
                trunk_pwd:
                  type: string
                  description: SIP trunk password for authentication. Required when enabling `uac_enabled`.
                uac_enabled:
                  type: boolean
                  description: When true, Synthflow sends outbound SIP REGISTER traffic to your carrier or PBX. Requires `trunk_username` and `trunk_pwd` when enabling registration.
                uac_register_expires:
                  type: integer
                  description: SIP registration refresh interval in seconds. Whole numbers only, between 60 and 3600. Defaults to 300.
    delete:
      operationId: delete-phone-number
      summary: Delete a phone number
      description: Deletes a phone number from your workspace. This will detach the phone number from any agents it is linked to. For phone numbers purchased through Synthflow, this also cancels the monthly subscription.
      tags:
      - phoneNumbers
      parameters:
      - name: phone_number_slug
        in: path
        description: The phone number slug (phone number without the leading +).
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Phone-Numbers_delete-phone-number_Response_200'
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Delete-phone-numberRequestBadRequestError'
  /custom-numbers:
    post:
      operationId: create-custom-number
      summary: Import phone number
      description: Imports a phone number into your workspace for direct SIP dialing when your telephony provider does not offer elastic SIP trunking. Set `provider_name` to select the provider. For `five9`, `ringcx`, and `zoom`, Synthflow auto-fills the SIP domain (and for Five9, the outbound TLS proxy) from the deployment region, so you only need `workspace_id`, `phone_number`, `provider_name`, and optionally `friendly_name`. Credentials are not required for those providers. For `custom` trunks, set `uac_enabled` to true when your carrier or PBX requires outbound SIP REGISTER traffic, and optionally set `uac_register_expires` (60 to 3600 seconds, default 300).
      tags:
      - phoneNumbers
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Phone-Numbers_create-custom-number_Response_200'
        '400':
          description: Invalid request. Returned when `termination_uri` is missing for a provider that requires it, or when UAC registration fields are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Create-custom-numberRequestBadRequestError'
        '403':
          description: The selected provider import is not enabled for this workspace.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Create-custom-numberRequestForbiddenError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                workspace_id:
                  type: string
                  description: The workspace ID to associate the phone number with.
                phone_number:
                  type: string
                  description: The phone number to import. For most providers use E.164. Five9 and Zoom also accept non-E.164 integration or extension identifiers.
                friendly_name:
                  type: string
                  description: A human-readable name for the phone number.
                provider_name:
                  $ref: '#/components/schemas/CustomNumbersPostRequestBodyContentApplicationJsonSchemaProviderName'
                  description: Telephony provider for the imported number. Omit or use `custom` for a bring-your-own SIP trunk. Use `five9`, `ringcx`, or `zoom` for those integrations; SIP domain defaults are applied automatically for those three only.
                trunk_username:
                  type: string
                  description: Optional SIP trunk username for authentication. Required when `uac_enabled` is true. Not used for `five9`, `ringcx`, or `zoom`.
                trunk_pwd:
                  type: string
                  description: Optional SIP trunk password for authentication. Required when `uac_enabled` is true. Not used for `five9`, `ringcx`, or `zoom`.
                termination_uri:
                  type: string
                  description: SIP domain or termination URI used for outbound calls (maps to `sip_term_uri`). Required for `custom`, `twilio`, `telnyx`, `vonage`, and `ring_central`. Optional for `five9` (regional IP), `ringcx` (`sip.ringcentral.com`), and `zoom` (`sip.zoom.com`), which are filled automatically when omitted. Requests that omit it for a non-auto provider return 400.
                sip_outbound_proxy:
                  type: string
                  description: Optional outbound proxy used for outbound calls and SIP REGISTER requests. For `five9`, Synthflow sets the regional TLS proxy automatically when omitted.
                sip_auth_username:
                  type: string
                  description: Optional auth username used for SIP REGISTER requests when it differs from `trunk_username`.
                uac_enabled:
                  type: boolean
                  default: false
                  description: When true, Synthflow sends outbound SIP REGISTER traffic to your carrier or PBX so it can authenticate outbound calls. Requires `trunk_username` and `trunk_pwd`. Defaults to false.
                uac_register_expires:
                  type: integer
                  default: 300
                  description: SIP registration refresh interval in seconds. Only used when `uac_enabled` is true (or for providers that register implicitly, such as RingCentral). Whole numbers only, between 60 and 3600. Defaults to 300.
              required:
              - workspace_id
              - phone_number
components:
  schemas:
    Create-custom-numberRequestForbiddenError:
      type: object
      properties: {}
      title: Create-custom-numberRequestForbiddenError
    NumbersPhoneNumberSlugPatchRequestBodyContentApplicationJsonSchemaProviderName:
      type: string
      enum:
      - twilio
      - telnyx
      - vonage
      - ring_central
      - ringcx
      - custom
      - zoom
      - five9
      description: Telephony provider. When set to a non-auto provider without a SIP domain, the request fails with 400.
      title: NumbersPhoneNumberSlugPatchRequestBodyContentApplicationJsonSchemaProviderName
    Create-custom-numberRequestBadRequestError:
      type: object
      properties: {}
      title: Create-custom-numberRequestBadRequestError
    NumbersGetResponsesContentApplicationJsonSchemaResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/NumbersGetResponsesContentApplicationJsonSchemaResponsePagination'
        phone_numbers:
          type: array
          items:
            $ref: '#/components/schemas/NumbersGetResponsesContentApplicationJsonSchemaResponsePhoneNumbersItems'
      title: NumbersGetResponsesContentApplicationJsonSchemaResponse
    Phone-Numbers_get-numbers_Response_200:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/status'
        response:
          $ref: '#/components/schemas/NumbersGetResponsesContentApplicationJsonSchemaResponse'
      title: Phone-Numbers_get-numbers_Response_200
    Phone-Numbers_delete-phone-number_Response_200:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/status'
      title: Phone-Numbers_delete-phone-number_Response_200
    Phone-Numbers_create-custom-number_Response_200:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/status'
        response:
          $ref: '#/components/schemas/CustomNumbersPostResponsesContentApplicationJsonSchemaResponse'
      title: Phone-Numbers_create-custom-number_Response_200
    Update-phone-numberRequestBadRequestError:
      type: object
      properties: {}
      title: Update-phone-numberRequestBadRequestError
    NumbersGetResponsesContentApplicationJsonSchemaResponsePhoneNumbersItems:
      type: object
      properties:
        number:
          type: string
          description: Phone number.
        sid:
          type:
          - string
          - 'null'
          description: Phone number SID. May be null for custom numbers.
        is_available:
          type: boolean
          description: Whether the number is available for inbound assignment.
      title: NumbersGetResponsesContentApplicationJsonSchemaResponsePhoneNumbersItems
    Get-numbersRequestBadRequestError:
      type: object
      properties: {}
      title: Get-numbersRequestBadRequestError
    status:
      type: string
      description: Whether the request was successful.
      title: status
    Phone-Numbers_get-phone-number_Response_200:
      type: object
      properties:
        slug:
          type: string
          description: The phone number slug (phone number without the leading +).
        address_requirement:
          type: string
          description: Address requirement for the phone number.
        phone_number:
          type: string
          description: The full phone number in E.164 format.
        friendly_name:
          type: string
          description: A human-readable name for the phone number.
        is_sms_capable:
          type: boolean
          description: Whether the phone number can send and receive SMS.
        is_voice_capable:
          type: boolean
          description: Whether the phone number can make and receive voice calls.
        iso_country:
          type: string
          description: ISO country code for the phone number.
        locality:
          type: string
          description: The locality or city associated with the phone number.
        sip_auth_username:
          type:
          - string
          - 'null'
          description: SIP authentication username, if configured.
        sip_outbound_proxy:
          type:
          - string
          - 'null'
          description: SIP outbound proxy, if configured.
        sip_term_uri:
          type: string
          description: SIP termination URI.
        uac_enabled:
          type: boolean
          description: Whether outbound SIP registration (REGISTER) is enabled for this number.
        uac_register_expires:
          type:
          - integer
          - 'null'
          description: SIP registration refresh interval in seconds when registration is enabled.
        sid:
          type: string
          description: Phone number SID from the provider.
        provider_name:
          type: string
          description: Name of the telephony provider. Common values include `twilio`, `telnyx`, `vonage`, `ring_central`, `ringcx`, `custom`, `zoom`, and `five9`.
        region:
          type: string
          description: The region associated with the phone number.
        is_available:
          type: boolean
          description: Whether the number is available for inbound assignment.
        agency_workspace_id:
          type:
          - string
          - 'null'
          description: Agency workspace ID, if applicable.
        workspace_id:
          type: string
          description: The workspace ID the phone number belongs to.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the phone number was created.
        updated_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Timestamp when the phone number was last updated.
        assistants:
          type: array
          items:
            type: string
            format: uuid
          description: List of assistant IDs attached to this phone number.
      title: Phone-Numbers_get-phone-number_Response_200
    CustomNumbersPostResponsesContentApplicationJsonSchemaResponse:
      type: object
      properties:
        key:
          type: string
          format: uuid
          description: Unique identifier for the custom phone number.
        phone_number:
          type: string
          description: The imported phone number.
      title: CustomNumbersPostResponsesContentApplicationJsonSchemaResponse
    Delete-phone-numberRequestBadRequestError:
      type: object
      properties: {}
      title: Delete-phone-numberRequestBadRequestError
    Phone-Numbers_update-phone-number_Response_200:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/status'
      title: Phone-Numbers_update-phone-number_Response_200
    Get-phone-numberRequestBadRequestError:
      type: object
      properties: {}
      title: Get-phone-numberRequestBadRequestError
    CustomNumbersPostRequestBodyContentApplicationJsonSchemaProviderName:
      type: string
      enum:
      - twilio
      - telnyx
      - vonage
      - ring_central
      - ringcx
      - custom
      - zoom
      - five9
      description: Telephony provider for the imported number. Omit or use `custom` for a bring-your-own SIP trunk. Use `five9`, `ringcx`, or `zoom` for those integrations; SIP domain defaults are applied automatically for those three only.
      title: CustomNumbersPostRequestBodyContentApplicationJsonSchemaProviderName
    NumbersGetResponsesContentApplicationJsonSchemaResponsePagination:
      type: object
      properties:
        total_records:
          type: integer
          description: Total number of phone numbers.
        limit:
          type: integer
          description: Number of phone numbers per page.
        offset:
          type: integer
          description: Index of the first phone number returned.
      title: NumbersGetResponsesContentApplicationJsonSchemaResponsePagination
  securitySchemes:
    sec0:
      type: http
      scheme: bearer