> ## Documentation Index
> Fetch the complete documentation index at: https://docs.support.onclarity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List inbound SIP trunks

> Returns the project's inbound SIP trunks, oldest first. An inbound SIP trunk accepts calls from your own SIP infrastructure, from the IP ranges it allows, to the phone numbers bound to it.



## OpenAPI

````yaml api-reference/voice-openapi.json GET /v1/projects/{projectId}/telephony/sip-trunks
openapi: 3.0.3
info:
  title: Clarity Voice API
  version: '1.0'
  description: >-
    Voice agents and their tools, outbound calls, conversations, campaigns,
    telephony, and evals.
servers:
  - url: https://voice-api.onclarity.com
security:
  - organizationApiKey: []
tags:
  - name: Projects
    description: >-
      The projects your organization owns. Every other resource lives in a
      project.
  - name: Agents
    description: Create, configure, version and publish voice agents.
  - name: Outbound calls
    description: Have a published agent phone a number now.
  - name: Conversations
    description: >-
      One record per call session, with its calls, recordings, transcripts and
      artifacts.
  - name: Calls
    description: The calls of a project, with their status, direction, timing and outcome.
  - name: Campaigns
    description: Outbound calling campaigns that phone a list of numbers on a schedule.
  - name: Eval suites
    description: >-
      Reusable sets of eval scenarios and test cases to measure an agent
      against.
  - name: Eval judges
    description: The LLM judges that score eval calls against your test cases.
  - name: Eval scenarios
    description: The simulated-caller scenarios of your eval suites.
  - name: Eval test cases
    description: The checks a judge applies to each eval call.
  - name: Eval submissions
    description: Run an eval suite against an agent and read the verdicts.
  - name: Phone numbers
    description: >-
      The phone numbers of a project, where their calls come from, and how
      agents call out from them.
  - name: Inbound SIP trunks
    description: Bring calls from your own SIP infrastructure to Clarity agents.
  - name: Outbound SIP trunks
    description: >-
      The SIP endpoints Clarity dials through for outbound calls from your
      numbers.
  - name: Tools
    description: The tools agents call during a conversation, and which agents use them.
paths:
  /v1/projects/{projectId}/telephony/sip-trunks:
    parameters:
      - $ref: '#/components/parameters/ProjectIdPath'
    get:
      tags:
        - Inbound SIP trunks
      summary: List inbound SIP trunks
      description: >-
        Returns the project's inbound SIP trunks, oldest first. An inbound SIP
        trunk accepts calls from your own SIP infrastructure, from the IP ranges
        it allows, to the phone numbers bound to it.
      operationId: listTelephonySipTrunks
      responses:
        '200':
          description: The project's inbound SIP trunks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelephonySipTrunksListResponse'
              example:
                sip_trunks:
                  - id: 2d4f6a8c-0e1b-4c3d-8e5f-7a9b1c2d3e4f
                    project_id: 3f6c1a52-8d0e-4b8f-9a51-2c7d4e0b9f13
                    name: Head office PBX
                    whitelist_cidrs:
                      - 203.0.113.10/32
                      - 198.51.100.0/24
                    allowed_e164s:
                      - '14155550123'
                    status: active
                    secure_media: disabled
                    livekit_trunk_id: ST_a1b2c3d4e5f6
                    livekit_dispatch_rule_id: SDR_f6e5d4c3b2a1
                    sip_headers:
                      - header: X-Customer-Id
                        identifies_caller: true
                    created_at: >-
                      Mon Nov 09 2026 14:00:02 GMT+0000 (Coordinated Universal
                      Time)
                    updated_at: >-
                      Mon Nov 09 2026 14:05:40 GMT+0000 (Coordinated Universal
                      Time)
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: The project does not exist or your key cannot reach it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    ProjectIdPath:
      name: projectId
      in: path
      required: true
      schema:
        type: string
      description: Project id
  schemas:
    TelephonySipTrunksListResponse:
      type: object
      required:
        - sip_trunks
      properties:
        sip_trunks:
          type: array
          items:
            $ref: '#/components/schemas/TelephonySipTrunk'
    Error:
      type: object
      required:
        - error
      additionalProperties: true
      properties:
        error:
          type: string
          description: Error message
        code:
          type: string
          description: >-
            A stable machine-readable reason, present on the refusals a client
            may branch on. Among them: `PUBLISH_CAPABILITY_REQUIRED` (403, the
            credential may not change what is live), `AGENT_NOT_PUBLISHED` (409,
            the agent has no published version yet),
            `AGENT_TYPE_NOT_DISPATCHABLE` (422, a Voice Assist agent named where
            an agent must place a call or answer one itself — a campaign, an
            outbound caller ID, a dispatched call, an eval; a number's inbound
            dispatch rule accepts one; the body carries `agent_type` and
            `agent_id`), `ASSIST_FLEET_NOT_CONFIGURED` (422 on a dispatch rule
            naming a Voice Assist agent in a project whose LiveKit has no Voice
            Assist listener), `NOT_APPLICABLE_TO_AGENT_TYPE` (422, a voice-only
            setting written on a Voice Assist agent), `AGENT_TYPE_BOUNDARY`
            (409), `AGENT_TYPE_NOT_SUPPORTED` (400), `INVALID_CUSTOMER_TIMEZONE`
            (400, `customer_timezone` is not a time zone name; the body carries
            the value), `VOICE_ASSISTANT_REQUIRED` (403, the organization is not
            licensed for Voice Assist), `ORGANIZATION_UNAVAILABLE` (503),
            `REGION_PROFILE_CONFLICT` (503), `LLM_SERVICE_TIER_UNAVAILABLE`
            (422, an agent's processing speed is not offered by its model or not
            enabled for the organization; `reason` says which) and
            `AUTH_UPSTREAM_UNAVAILABLE` (503 on any endpoint, with
            `Retry-After`: the credential could not be checked right now; it was
            not rejected and the request was not carried out).
    TelephonySipTrunk:
      type: object
      description: >-
        An inbound SIP trunk: calls from your SIP infrastructure, from the IP
        ranges it allows, to the phone numbers bound to it, are answered by
        Clarity agents.
      required:
        - id
        - project_id
        - name
        - whitelist_cidrs
        - allowed_e164s
        - status
        - secure_media
        - sip_headers
        - created_at
        - updated_at
      properties:
        id:
          type: string
          description: Inbound SIP trunk id.
        project_id:
          type: string
        name:
          type: string
          description: Unique within the project.
        sip_headers:
          $ref: '#/components/schemas/TelephonySipTrunkHeaders'
        whitelist_cidrs:
          type: array
          items:
            type: string
          description: The IP ranges, in CIDR notation, the trunk accepts calls from.
        allowed_e164s:
          type: array
          items:
            type: string
          description: >-
            The numbers bound to the trunk, as E.164 digits with no `+`. Read
            only: bind a number by setting its `sip_trunk_id`.
        status:
          $ref: '#/components/schemas/TelephonySipTrunkStatus'
        secure_media:
          type: string
          enum:
            - disabled
            - enabled
            - required
          description: >-
            Media encryption (SRTP). `disabled`: not offered. `enabled`:
            offered, with a fallback to plain media. `required`: calls without
            it are refused.
        livekit_trunk_id:
          type: string
          nullable: true
          description: >-
            The trunk's id in Clarity's telephony layer, for support
            conversations. `null` while the trunk is not registered, which is
            when it is not active.
        livekit_dispatch_rule_id:
          type: string
          nullable: true
          description: >-
            The id of the rule that routes the trunk's calls to agents in
            Clarity's telephony layer, for support conversations. `null` while
            the trunk is not registered. Activating the trunk creates it.
        created_at:
          type: string
          description: >-
            When the trunk was created. A date string such as `Mon Nov 09 2026
            14:00:02 GMT+0000 (Coordinated Universal Time)`, not ISO 8601.
        updated_at:
          type: string
          description: When the trunk was last changed. A date string, as `created_at`.
    TelephonySipTrunkHeaders:
      type: array
      maxItems: 10
      description: >-
        The SIP headers the trunk passes to the agent as `sip.*` call variables.
        On update, the list you send replaces the stored one.
      items:
        $ref: '#/components/schemas/TelephonySipTrunkHeader'
    TelephonySipTrunkStatus:
      type: string
      enum:
        - active
        - inactive
        - draft
      description: >-
        `active`: the trunk is registered and takes calls. `inactive`: it takes
        no calls; a new trunk starts here, and a trunk returns here when it is
        deactivated or loses its last phone number. `draft` is reserved and not
        set by this API.
    TelephonySipTrunkHeader:
      type: object
      additionalProperties: false
      required:
        - header
      properties:
        header:
          type: string
          pattern: ^[A-Za-z][A-Za-z0-9-]{0,63}$
          description: >-
            The SIP header name, such as `X-Customer-Id`, matched without regard
            to case. Unique within the trunk; `X-Clarity-*` is reserved. Its
            value reaches the agent as the call variable `sip.` plus the name in
            lower case with `-` turned into `_` (`sip.x_customer_id`).
        identifies_caller:
          type: boolean
          default: false
          description: >-
            When the header carries a value, the call starts with the caller
            already verified, as after a successful verification tool. At most
            one header of a trunk.
  responses:
    Unauthorized:
      description: >-
        No credential was sent, or the API key is invalid or revoked. A key that
        could not be checked at all answers 503 `AUTH_UPSTREAM_UNAVAILABLE`
        instead (see Errors).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Invalid or revoked token
  securitySchemes:
    organizationApiKey:
      type: http
      scheme: bearer
      description: >-
        Your organization API key (it starts with `anek_org_`). The same key
        works on the Voice API and the Support API. See
        [Authentication](/authentication).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.