SignalWire Calls API

Manage voice calls and call recordings.

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-calls-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-calls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Signalwire Calls API
  version: 1.0.0
  description: 'Operations tagged Calls across 2 of this provider''s published API definitions: signalwire-compatibility-openapi.yml, signalwire-rest-openapi.yml. Each path carries the servers of the definition it was published in.'
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
- url: https://{space_name}.signalwire.com
  description: SignalWire API
  variables:
    space_name:
      default: '{Your_Space_Name}'
      description: Your SignalWire Space name
security:
- SignalWireBasicAuth: []
tags:
- name: Calls
  description: Manage voice calls and call recordings.
  externalDocs:
    url: https://signalwire.com/docs/compatibility-api/rest
    description: Developer documentation on the Compatibility REST API
paths:
  /Accounts/{AccountSid}/Calls:
    get:
      operationId: list_all_calls
      summary: List all Calls
      description: 'List all calls.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/CallsAccountSidPath'
      - name: EndTime
        in: query
        required: false
        description: The time, in RFC 2822 GMT format, on which the call was terminated.
        schema:
          type: string
        explode: false
      - name: EndTime<
        in: query
        required: false
        description: The time before which the call was terminated.
        schema:
          type: string
        explode: false
      - name: EndTime>
        in: query
        required: false
        description: The time after which the call was terminated.
        schema:
          type: string
        explode: false
      - name: From
        in: query
        required: false
        description: The address that initiated the call.
        schema:
          type: string
        explode: false
      - name: ParentCallSid
        in: query
        required: false
        description: The unique identifier for the call that created this call.
        schema:
          $ref: '#/components/schemas/uuid'
        explode: false
      - name: StartTime
        in: query
        required: false
        description: The time, in RFC 2822 GMT format, on which the call began.
        schema:
          type: string
        explode: false
      - name: StartTime<
        in: query
        required: false
        description: The time before which the call began.
        schema:
          type: string
        explode: false
      - name: StartTime>
        in: query
        required: false
        description: The time after which the call began.
        schema:
          type: string
        explode: false
      - name: Status
        in: query
        required: false
        description: The status of the call.
        schema:
          type: string
          enum:
          - queued
          - ringing
          - in-progress
          - canceled
          - completed
          - busy
          - failed
          - no-answer
        explode: false
      - name: To
        in: query
        required: false
        description: The address that received the call.
        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. Must start with PA or PB.
        schema:
          type: string
        explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallListResponse'
        '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:
      - Calls
    post:
      operationId: create_a_call
      summary: Create a Call
      description: 'Create a call.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/CallsAccountSidPath'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResponse'
        '400':
          description: The request was invalid. Review the errors array for specific issues with your request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorArrayResponse'
        '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:
      - Calls
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateCallRequest'
    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
  /Accounts/{AccountSid}/Calls/{Sid}:
    get:
      operationId: retrieve_a_call
      summary: Retrieve a Call
      description: 'Retrieve a call.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/CallsAccountSidPath'
      - $ref: '#/components/parameters/CallSidPath'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResponse'
        '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:
      - Calls
    post:
      operationId: update_a_call
      summary: Update a Call
      description: 'Update a call.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/CallsAccountSidPath'
      - $ref: '#/components/parameters/CallSidPath'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResponse'
        '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'
        '503':
          description: The service is temporarily unavailable. Please try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Calls
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateCallRequest'
    delete:
      operationId: delete_a_call
      summary: Delete a Call
      description: 'Delete a call record from your account. If the delete is successful, a 204 response, with no body, will be returned.


        #### Permissions


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


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/CallsAccountSidPath'
      - $ref: '#/components/parameters/CallSidPath'
      responses:
        '204':
          description: 204 No Content response.
        '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:
      - Calls
    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
  /api/calling/calls:
    post:
      operationId: call-commands
      summary: Send call commands
      description: "Unified JSON-RPC style endpoint for executing call methods through command-based dispatch.\nSend a request with the appropriate `command` field to invoke the desired call operation.\nOnly the commands listed below are supported. Most operate on an already-active call; `dial` creates a new one. All commands are sent over HTTP (no persistent WebSocket connection required) and return immediately; operations that continue asynchronously deliver their results to your `status_url` webhooks.\n\n## Supported Commands\n\nUse one of the following commands in the `command` field of the request body to perform the corresponding action on an active call. \nFor more details on each command, refer to the individual API reference documentation linked below.\n\n| Command | Description |\n|---------|-------------|\n| `dial` | Create and initiate a new outbound call |\n| `update` | Modify an active call's dialplan in real-time |\n| `calling.end` | Terminate an active call immediately |\n| `calling.transfer` | Transfer a call to a new destination (SIP URI, phone number, or inline SWML) |\n| `calling.disconnect` | Disconnect bridged calls without hanging up either leg |\n| `calling.play` | Play audio, TTS, silence, or ringtone to a call |\n| `calling.play.pause` | Pause active playback |\n| `calling.play.resume` | Resume paused playback |\n| `calling.play.stop` | Stop active playback |\n| `calling.play.volume` | Adjust playback volume |\n| `calling.record` | Start recording a call |\n| `calling.record.pause` | Pause active recording |\n| `calling.record.resume` | Resume paused recording |\n| `calling.record.stop` | Stop active recording |\n| `calling.collect` | Collect DTMF or speech input |\n| `calling.collect.stop` | Stop active collection |\n| `calling.collect.start_input_timers` | Start input timers on active collect |\n| `calling.detect` | Start a detector (answering machine, fax, or digit) |\n| `calling.detect.stop` | Stop active detector |\n| `calling.tap` | Tap call audio to an RTP or WebSocket endpoint |\n| `calling.tap.stop` | Stop active tap |\n| `calling.transcribe` | Start background transcription of a call |\n| `calling.transcribe.stop` | Stop active transcription |\n| `calling.stream` | Stream call audio to a WebSocket endpoint |\n| `calling.stream.stop` | Stop active stream |\n| `calling.denoise` | Start noise reduction on a call |\n| `calling.denoise.stop` | Stop noise reduction |\n| `calling.ai_hold` | Place an AI call on hold |\n| `calling.ai_unhold` | Resume an AI call from hold |\n| `calling.ai_message` | Inject a message into an active AI conversation |\n| `calling.ai.stop` | Stop an active AI session |\n| `calling.ai_sidecar` | Attach a real-time AI observer (sidecar) to a call, or summarize the conversation |\n| `calling.ai_sidecar.poke` | Send a message to the sidecar and prompt an immediate response |\n| `calling.ai_sidecar.ask` | Ask the sidecar a one-off question (answered via an `ask_answer` callback) |\n| `calling.ai_sidecar.stop` | Stop and detach the AI sidecar |\n| `calling.ai_sidecar.status` | Get a snapshot of the sidecar's activity counters |\n| `calling.live_transcribe` | Start, stop, or summarize real-time transcription |\n| `calling.live_translate` | Start, stop, summarize, or inject real-time translation |\n| `calling.send_fax.stop` | Stop active fax send |\n| `calling.receive_fax.stop` | Stop active fax receive |\n| `calling.refer` | Transfer a SIP call via SIP REFER |\n| `calling.user_event` | Fire a custom user event on the call |\n\n#### Permissions\n\nThe API token used to authenticate must have the following scope(s) enabled to make a successful request: _Voice_.\n\n[Learn more about API scopes](/docs/platform/your-signalwire-api-space)."
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Calling.CallResponse'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode400'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode404'
        '422':
          description: The request contains invalid parameters. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Calling.CallCreate422Error'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Calls
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Calling.CallRequest'
            examples:
              dial:
                summary: dial
                description: Initiate a new outbound call with the dial command
                value:
                  command: dial
                  params:
                    from: '+15551234567'
                    to: '+15557654321'
                    url: https://example.com/swml
              update:
                summary: update
                description: Modify an existing call's parameters in real-time
                value:
                  command: update
                  params:
                    id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                    url: https://example.com/swml
              calling.end:
                summary: calling.end
                description: Terminate an active call immediately
                value:
                  command: calling.end
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    reason: hangup
              calling.ai_hold:
                summary: calling.ai_hold
                description: Put an active AI call on hold, pausing the conversation
                value:
                  command: calling.ai_hold
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    timeout: '300'
              calling.ai_unhold:
                summary: calling.ai_unhold
                description: Resume an AI call that was previously put on hold
                value:
                  command: calling.ai_unhold
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params: {}
              calling.ai_message:
                summary: calling.ai_message
                description: Send a message to the AI conversation to modify behavior or add context
                value:
                  command: calling.ai_message
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    role: system
                    message_text: You are now in expert mode. Provide detailed technical responses and use industry terminology.
              calling.live_transcribe:
                summary: calling.live_transcribe
                description: Start real-time speech-to-text transcription on an active call
                value:
                  command: calling.live_transcribe
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    action:
                      start:
                        lang: en-US
                        direction:
                        - local-caller
                        - remote-caller
                        webhook: https://example.com/transcription-events
                        live_events: true
                        ai_summary: true
                        ai_summary_prompt: Summarize the key points of this conversation.
                        speech_engine: deepgram
              calling.live_translate:
                summary: calling.live_translate
                description: Start real-time language translation between call participants
                value:
                  command: calling.live_translate
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    action:
                      start:
                        from_lang: en-US
                        to_lang: es-ES
                        direction:
                        - local-caller
                        - remote-caller
                        from_voice: elevenlabs.josh
                        to_voice: elevenlabs.josh
                        filter_from: professional
                        webhook: https://example.com/translation-events
                        live_events: true
                        ai_summary: true
                        speech_engine: deepgram
              calling.transfer:
                summary: calling.transfer
                description: Transfer an active call to a new destination
                value:
                  command: calling.transfer
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    dest: https://example.com/swml
              calling.disconnect:
                summary: calling.disconnect
                description: Disconnect a call leg
                value:
                  command: calling.disconnect
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params: {}
              calling.play:
                summary: calling.play
                description: Play media on an active call
                value:
                  command: calling.play
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: play-control-1
                    play:
                    - type: audio
                      params:
                        url: https://example.com/audio.mp3
                    volume: 0
                    direction: listen
                    loop: 1
              calling.play.pause:
                summary: calling.play.pause
                description: Pause an active play operation
                value:
                  command: calling.play.pause
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: play-control-1
              calling.play.resume:
                summary: calling.play.resume
                description: Resume a paused play operation
                value:
                  command: calling.play.resume
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: play-control-1
              calling.play.stop:
                summary: calling.play.stop
                description: Stop an active play operation
                value:
                  command: calling.play.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: play-control-1
              calling.play.volume:
                summary: calling.play.volume
                description: Adjust the volume of an active play operation
                value:
                  command: calling.play.volume
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: play-control-1
                    volume: 5
              calling.record:
                summary: calling.record
                description: Start recording an active call
                value:
                  command: calling.record
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: record-control-1
                    record:
                      audio:
                        format: mp3
                        direction: speak
                        stereo: false
              calling.record.pause:
                summary: calling.record.pause
                description: Pause an active recording
                value:
                  command: calling.record.pause
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: record-control-1
              calling.record.resume:
                summary: calling.record.resume
                description: Resume a paused recording
                value:
                  command: calling.record.resume
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: record-control-1
              calling.record.stop:
                summary: calling.record.stop
                description: Stop an active recording
                value:
                  command: calling.record.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: record-control-1
              calling.collect:
                summary: calling.collect
                description: Collect user input (digits or speech) during a call
                value:
                  command: calling.collect
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: collect-control-1
                    initial_timeout: 5
                    digits:
                      max: 4
                      terminators: '#'
                    continuous: false
                    partial_results: false
                    send_start_of_input: false
                    start_input_timers: false
                    status_url: https://example.com/collect_callback
              calling.collect.stop:
                summary: calling.collect.stop
                description: Stop an active collect operation
                value:
                  command: calling.collect.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: collect-control-1
              calling.collect.start_input_timers:
                summary: calling.collect.start_input_timers
                description: Start input timers for an active collect operation
                value:
                  command: calling.collect.start_input_timers
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: collect-control-1
              calling.detect:
                summary: calling.detect
                description: Start detection (machine, fax, or digit) on an active call
                value:
                  command: calling.detect
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: detect-control-1
                    detect:
                      type: machine
                      params:
                        initial_timeout: 4.5
                        end_silence_timeout: 1
                    timeout: 30
              calling.detect.stop:
                summary: calling.detect.stop
                description: Stop an active detection operation
                value:
                  command: calling.detect.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: detect-control-1
              calling.tap:
                summary: calling.tap
                description: Start tapping (capturing audio) on an active call
                value:
                  command: calling.tap
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: tap-control-1
                    tap:
                      type: audio
                      params:
                        direction: both
                    device:
                      type: rtp
                      params:
                        addr: 198.51.100.42
                        port: 5060
              calling.tap.stop:
                summary: calling.tap.stop
                description: Stop an active tap operation
                value:
                  command: calling.tap.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: tap-control-1
              calling.transcribe:
                summary: calling.transcribe
                description: Start background transcription on an active call
                value:
                  command: calling.transcribe
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: transcribe-control-1
                    status_url: https://example.com/transcribe-status
              calling.transcribe.stop:
                summary: calling.transcribe.stop
                description: Stop an active transcription operation
                value:
                  command: calling.transcribe.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: transcribe-control-1
              calling.stream:
                summary: calling.stream
                description: Start streaming call audio to a WebSocket endpoint
                value:
                  command: calling.stream
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: stream-control-1
                    url: wss://example.com/stream
                    track: inbound_track
              calling.stream.stop:
                summary: calling.stream.stop
                description: Stop an active audio stream
                value:
                  command: calling.stream.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params:
                    control_id: stream-control-1
              calling.denoise:
                summary: calling.denoise
                description: Enable noise reduction on an active call
                value:
                  command: calling.denoise
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params: {}
              calling.denoise.stop:
                summary: calling.denoise.stop
                description: Disable noise reduction on an active call
                value:
                  command: calling.denoise.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params: {}
              calling.ai_sidecar.status:
                summary: calling.ai_sidecar.status
                description: Get a snapshot of the sidecar's activity counters
                value:
                  command: calling.ai_sidecar.status
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                  params: {}
              calling.ai_sidecar.stop:
                summary: calling.ai_sidecar.stop
                description: Stop and detach the AI sidecar
                value:
                  command: calling.ai_sidecar.stop
                  id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
             

# --- truncated at 32 KB (232 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/signalwire/refs/heads/main/openapi/signalwire-calls-api-openapi.yml