Call2Me SIP Trunks API

The SIP Trunks API from Call2Me — 4 operation(s) for sip trunks.

Operations 7

GET /v1/sip-trunks List Sip Trunks #
POST /v1/sip-trunks Create Sip Trunk #
GET /v1/sip-trunks/{trunk_id} Get Sip Trunk #
PATCH /v1/sip-trunks/{trunk_id} Update Sip Trunk #
DELETE /v1/sip-trunks/{trunk_id} Delete Sip Trunk #
POST /v1/sip-trunks/{trunk_id}/sync Sync Trunk To Livekit #
POST /v1/sip-trunks/{trunk_id}/test Test Sip Trunk #

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/call2me-app:call2me-app-sip-trunks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

call2me-app-sip-trunks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Call2Me SIP Trunks API
  description: '# Call2Me Voice AI Platform API


    Programmatic interface to build, deploy and operate voice AI agents that can place

    and receive phone calls in real time. Designed to be consumed by humans **and** by

    AI agent frameworks (function-calling LLMs, MCP servers, automation platforms like

    Composio, Pipedream, Zapier, n8n).


    ## What you can do


    - **Place outbound calls** — give an agent a phone number to dial; the AI handles

    the conversation end-to-end and returns a transcript + recording.

    - **Manage AI agents** — create personalities, attach voices, system prompts,

    knowledge bases and post-call actions.

    - **Schedule calls** — one-shot or recurring (cron-like) outbound calls.

    - **Knowledge base (RAG)** — upload documents/URLs so the agent answers from your

    data with reduced hallucination.

    - **Inbound** — provision phone numbers that route to your agents.


    ## Common LLM tool-calling use cases


    | Goal | Endpoint |

    |------|----------|

    | "Call this person and read them this script" | `POST /v1/calls` |

    | "Schedule a follow-up tomorrow at 14:00" | `POST /v1/schedules` |

    | "Get the transcript of last call" | `GET /v1/calls/{id}` |

    | "Add this PDF to the agent''s brain" | `POST /v1/knowledge-base/{id}/sources` |


    ## Authentication


    Every request requires a Bearer token issued from the dashboard:


    ```

    Authorization: Bearer c2m_sk_xxxxxxxxxxxxxxxx

    ```


    Get your API key from the API Keys page.

    Keys are scoped per-workspace and can be rotated/revoked any time.


    ## Rate Limits


    | Plan | Requests/min | Concurrent Calls |

    |------|-------------|------------------|

    | Free | 60 | 1 |

    | Pro | 600 | 10 |

    | Enterprise | Unlimited | Unlimited |


    ## SDKs & Integrations


    - Python SDK

    - Node.js SDK

    - OpenAPI 3.1 spec: `/openapi.json` (use it to generate clients or register the

    service with AI tool platforms)


    ## Support


    - Email: support@call2me.app

    - Docs: https://docs.call2me.app

    - Discord: https://discord.gg/call2me'
  version: 1.0.0
  x-logo:
    url: https://call2me.app/logo.png
    altText: Call2Me Logo
  contact:
    name: Call2Me Support
    url: https://call2me.app/support
    email: support@call2me.app
  license:
    name: Commercial — see Terms of Service
    url: https://call2me.app/terms
  termsOfService: https://call2me.app/terms
servers:
- url: https://api.call2me.app
  description: Production
- url: http://localhost:8000
  description: Local Development
security:
- BearerAuth: []
tags:
- name: SIP Trunks
paths:
  /v1/sip-trunks:
    get:
      tags:
      - SIP Trunks
      summary: List Sip Trunks
      description: List all SIP trunks for the current user.
      operationId: list_sip_trunks_v1_sip_trunks_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/SIPTrunkResponse'
                type: array
                title: Response List Sip Trunks V1 Sip Trunks Get
    post:
      tags:
      - SIP Trunks
      summary: Create Sip Trunk
      description: 'Create a new SIP trunk.


        The trunk''s SIP host is DNS-checked first: an unresolvable host (e.g. a typo

        or garbage value) creates the trunk as INACTIVE and skips the LiveKit sync,

        so it never enters the sync loop where it would fail on every run. Fix the

        server and PATCH active=true (or re-test) to bring it live.'
      operationId: create_sip_trunk_v1_sip_trunks_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SIPTrunkCreate'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SIPTrunkResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/sip-trunks/{trunk_id}:
    get:
      tags:
      - SIP Trunks
      summary: Get Sip Trunk
      description: Get a SIP trunk by ID.
      operationId: get_sip_trunk_v1_sip_trunks__trunk_id__get
      parameters:
      - name: trunk_id
        in: path
        required: true
        schema:
          type: string
          title: Trunk Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SIPTrunkResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - SIP Trunks
      summary: Update Sip Trunk
      description: Update a SIP trunk.
      operationId: update_sip_trunk_v1_sip_trunks__trunk_id__patch
      parameters:
      - name: trunk_id
        in: path
        required: true
        schema:
          type: string
          title: Trunk Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SIPTrunkUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SIPTrunkResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - SIP Trunks
      summary: Delete Sip Trunk
      description: Delete a SIP trunk.
      operationId: delete_sip_trunk_v1_sip_trunks__trunk_id__delete
      parameters:
      - name: trunk_id
        in: path
        required: true
        schema:
          type: string
          title: Trunk Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/sip-trunks/{trunk_id}/sync:
    post:
      tags:
      - SIP Trunks
      summary: Sync Trunk To Livekit
      description: Manually sync trunk to LiveKit.
      operationId: sync_trunk_to_livekit_v1_sip_trunks__trunk_id__sync_post
      parameters:
      - name: trunk_id
        in: path
        required: true
        schema:
          type: string
          title: Trunk Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SIPTrunkTestResult'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/sip-trunks/{trunk_id}/test:
    post:
      tags:
      - SIP Trunks
      summary: Test Sip Trunk
      description: Test SIP trunk connection.
      operationId: test_sip_trunk_v1_sip_trunks__trunk_id__test_post
      parameters:
      - name: trunk_id
        in: path
        required: true
        schema:
          type: string
          title: Trunk Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SIPTrunkTestResult'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    SIPTrunkCreate:
      properties:
        name:
          type: string
          maxLength: 100
          minLength: 1
          title: Name
        sip_server:
          type: string
          maxLength: 255
          minLength: 1
          pattern: ^[\w.-]+(:\d+)?$
          title: Sip Server
        sip_username:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Sip Username
        sip_password:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Sip Password
        sip_transport:
          type: string
          pattern: ^(udp|tcp|tls)$
          title: Sip Transport
          default: udp
        outbound_caller_id:
          anyOf:
          - type: string
            maxLength: 50
          - type: 'null'
          title: Outbound Caller Id
      type: object
      required:
      - name
      - sip_server
      title: SIPTrunkCreate
      description: Request model for creating a SIP trunk.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    SIPTrunkUpdate:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 100
            minLength: 1
          - type: 'null'
          title: Name
        sip_server:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
            pattern: ^[\w.-]+(:\d+)?$
          - type: 'null'
          title: Sip Server
        sip_username:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Sip Username
        sip_password:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Sip Password
        sip_transport:
          anyOf:
          - type: string
            pattern: ^(udp|tcp|tls)$
          - type: 'null'
          title: Sip Transport
        outbound_caller_id:
          anyOf:
          - type: string
            maxLength: 50
          - type: 'null'
          title: Outbound Caller Id
        active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Active
      type: object
      title: SIPTrunkUpdate
      description: Request model for updating a SIP trunk.
    SIPTrunkTestResult:
      properties:
        success:
          type: boolean
          title: Success
        message:
          type: string
          title: Message
      type: object
      required:
      - success
      - message
      title: SIPTrunkTestResult
      description: Result of SIP trunk connection test.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SIPTrunkResponse:
      properties:
        trunk_id:
          type: string
          title: Trunk Id
        name:
          type: string
          title: Name
        sip_server:
          type: string
          title: Sip Server
        sip_username:
          anyOf:
          - type: string
          - type: 'null'
          title: Sip Username
        sip_transport:
          type: string
          title: Sip Transport
        outbound_caller_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Outbound Caller Id
        active:
          type: boolean
          title: Active
        phone_number_count:
          type: integer
          title: Phone Number Count
          default: 0
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - trunk_id
      - name
      - sip_server
      - sip_username
      - sip_transport
      - outbound_caller_id
      - active
      - created_at
      - updated_at
      title: SIPTrunkResponse
      description: Response model for SIP trunk (password hidden).
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: Enter your API key
externalDocs:
  description: Full developer documentation
  url: https://docs.call2me.app