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

# List SIP trunk options

> List the organisation's inbound and outbound SIP trunks as assignment options
for this agent. Each option reports whether it is currently selectable and,
when it is not, the reason (for example, the trunk is inactive or already
assigned to another agent).




## OpenAPI

````yaml /api-reference/agents/agents.oas.yaml get /v1/agents/{agent_id}/sip-trunk-options
openapi: 3.0.3
info:
  title: SLNG Voice Agents API
  version: 1.0.0
  description: >
    Public API for managing Voice Agents, dispatching outbound calls, and
    creating web (non-telephony) sessions.


    Base URL: `https://api.agents.slng.ai`
  contact:
    name: SLNG Support
    email: support@slng.ai
servers:
  - url: https://api.agents.slng.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Agents
    description: Voice agent CRUD.
  - name: Versions
    description: Agent configuration version history and restore.
  - name: Calls
    description: Call dispatch and status.
  - name: Sessions
    description: Web (non-telephony) sessions.
paths:
  /v1/agents/{agent_id}/sip-trunk-options:
    parameters:
      - $ref: '#/components/parameters/AgentIdPath'
    get:
      tags:
        - Agents
      summary: List SIP trunk options
      description: >
        List the organisation's inbound and outbound SIP trunks as assignment
        options

        for this agent. Each option reports whether it is currently selectable
        and,

        when it is not, the reason (for example, the trunk is inactive or
        already

        assigned to another agent).
      operationId: getAgentSipTrunkOptions
      responses:
        '200':
          description: SIP trunk assignment options.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SipTrunkAssignmentOptionsOut'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    AgentIdPath:
      name: agent_id
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/UUID'
      description: Voice agent ID.
  schemas:
    SipTrunkAssignmentOptionsOut:
      type: object
      additionalProperties: false
      required:
        - inbound
        - outbound
      properties:
        inbound:
          type: array
          items:
            $ref: '#/components/schemas/SipTrunkAssignmentOptionOut'
        outbound:
          type: array
          items:
            $ref: '#/components/schemas/SipTrunkAssignmentOptionOut'
    UUID:
      type: string
      format: uuid
      example: 550e8400-e29b-41d4-a716-446655440000
    SipTrunkAssignmentOptionOut:
      type: object
      additionalProperties: false
      required:
        - id
        - name
        - livekit_trunk_id
        - numbers
        - status
        - selectable
        - is_current
      properties:
        id:
          $ref: '#/components/schemas/UUID'
        name:
          type: string
        livekit_trunk_id:
          type: string
          nullable: true
          description: Internal runtime trunk identifier.
        numbers:
          type: array
          items:
            type: string
          description: Phone numbers attached to the trunk.
        status:
          type: string
        selectable:
          type: boolean
          description: Whether the trunk can currently be assigned to this agent.
        is_current:
          type: boolean
          description: Whether the trunk is currently assigned to this agent.
        unavailable_reason:
          type: string
          enum:
            - inactive
            - not_synced
            - different_livekit_project
            - assigned_to_another_agent
          nullable: true
          description: >-
            Why the trunk is not selectable. Only set when `selectable` is
            `false`.
    ErrorResponse:
      type: object
      additionalProperties: true
      description: >
        Error payloads can vary depending on where the error is raised (edge
        gateway vs backend).


        Common shapes include:

        - `{ "error": "message" }`

        - `{ "detail": "message" }`

        - `{ "detail": [ { "loc": [...], "msg": "...", "type": "..." } ] }`
        (validation)
      properties:
        error:
          type: string
        detail:
          oneOf:
            - type: string
            - type: array
              items:
                type: object
  responses:
    UnauthorizedError:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unauthorized:
              summary: Authentication failed
              value:
                detail: Authentication is required for this endpoint.
    ForbiddenError:
      description: Forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            forbidden:
              summary: Access denied
              value:
                detail: You do not have access to this resource.
    NotFoundError:
      description: Not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            not-found:
              summary: Resource not found
              value:
                detail: The requested resource was not found.
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internal-server-error:
              summary: Unexpected application error
              value:
                detail: An unexpected internal error occurred.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key

````