SignalWire Recording Transcriptions API

Manage transcriptions of 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-recording-transcriptions-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-recording-transcriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Compatibility Recording Transcriptions API
  version: 1.0.0
  description: Manage transcriptions of recordings.
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
security:
- SignalWireBasicAuth: []
tags:
- name: Recording Transcriptions
  description: Manage transcriptions of recordings.
  externalDocs:
    url: https://signalwire.com/docs/compatibility-api/rest
    description: Developer documentation on the Compatibility REST API
paths:
  /Accounts/{AccountSid}/Transcriptions:
    get:
      operationId: list_transcriptions
      summary: List all Transcriptions
      description: 'List all transcriptions. Results are returned as a paginated list ordered by creation date (newest first).


        #### 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/TranscriptionsAccountSidPath'
      - name: DateCreated
        in: query
        required: false
        description: Filter by transcriptions created on this exact date (RFC 2822 format).
        schema:
          type: string
        explode: false
      - name: DateCreated<
        in: query
        required: false
        description: Filter by transcriptions created before this date (RFC 2822 format).
        schema:
          type: string
        explode: false
      - name: DateCreated>
        in: query
        required: false
        description: Filter by transcriptions created after this date (RFC 2822 format).
        schema:
          type: string
        explode: false
      - name: Page
        in: query
        required: false
        description: The page number to retrieve (zero-indexed).
        schema:
          type: integer
          format: int32
          minimum: 0
          default: 0
        explode: false
      - name: PageSize
        in: query
        required: false
        description: The number of results per page. Default is 50, maximum is 1000.
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 1000
          default: 50
        explode: false
      - name: PageToken
        in: query
        required: false
        description: Token for cursor-based pagination. Required when navigating to pages beyond the first.
        schema:
          type: string
        explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptionListResponse'
        '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:
      - Recording Transcriptions
  /Accounts/{AccountSid}/Transcriptions/{Sid}:
    get:
      operationId: retrieve_transcription
      summary: Retrieve a Transcription
      description: 'Retrieve a single recording transcription.


        #### 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/TranscriptionsAccountSidPath'
      - $ref: '#/components/parameters/TranscriptionSidPath'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptionResponse'
        '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:
      - Recording Transcriptions
    delete:
      operationId: delete_transcription
      summary: Delete a Recording Transcription
      description: 'Delete a recording transcription 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/TranscriptionsAccountSidPath'
      - $ref: '#/components/parameters/TranscriptionSidPath'
      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:
      - Recording Transcriptions
webhooks:
  transcriptionStatusCallback:
    post:
      operationId: transcription_status_callback
      summary: Transcription status callback
      description: 'Payload sent by SignalWire to your Transcription Status Callback URL when the status of a transcription changes.


        Configure this callback by enabling transcription on a recording via the

        [Record](/docs/compatibility-api/cxml/reference/voice/record) verb (`transcribe=true`) and setting `transcribeCallback`

        to your webhook URL.


        Your app can use these parameters to handle the transcription — for example, uploading the text to

        your CRM, sending it via email, or forwarding the body via SignalWire SMS.


        Status callbacks are advisory, best-effort notifications — delivery can be delayed or fail silently, so don''t gate time-critical actions on receiving one. See [Status callback reliability](/docs/platform/webhooks#status-callback-reliability).'
      parameters: []
      responses:
        '200':
          description: Webhook received
      tags:
      - Recording Transcriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TranscriptionStatusCallbackPayload'
      security:
      - {}
components:
  schemas:
    Transcription:
      type: object
      required:
      - sid
      - account_sid
      - api_version
      - recording_sid
      - date_created
      - date_updated
      - duration
      - price
      - price_unit
      - status
      - transcription_text
      - type
      - uri
      properties:
        sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for the transcription.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472tr
        account_sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for the account that created this transcription.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472ac
        api_version:
          type: string
          description: The version of the SignalWire API.
          examples:
          - '2010-04-01'
        recording_sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for the recording that this transcription was created from.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472re
        date_created:
          type: string
          description: The date, in RFC 2822 format, this transcription was created.
          examples:
          - Thu, 27 Sep 2018 02:00:00 +0000
        date_updated:
          type: string
          description: The date, in RFC 2822 format, this transcription was updated.
          examples:
          - Fri, 28 Sep 2018 03:00:00 +0000
        duration:
          type: integer
          format: int32
          minimum: 0
          description: The duration, in seconds, of the transcribed audio.
          examples:
          - 60
        price:
          anyOf:
          - type: string
          - type: 'null'
          description: The charge for the transcription. Null if cost has not been calculated.
          examples:
          - '-0.00025'
        price_unit:
          type: string
          description: The currency, in ISO 4217 format, for the price of the transcription.
          examples:
          - USD
        status:
          type: string
          description: The status of the transcription. Always 'completed' for transcriptions returned by the API.
          examples:
          - completed
        transcription_text:
          anyOf:
          - type: string
          - type: 'null'
          description: The text content of the transcription. Null if transcription text is not available.
          examples:
          - Hello, this is a test transcription.
        type:
          type: string
          description: The type of the transcription. Currently always an empty string.
          examples:
          - ''
        uri:
          type: string
          description: The URI of this resource, relative to the API base URL.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions/b3877c40-da60-4998-90ad-b792e98472tr.json
      unevaluatedProperties:
        not: {}
      description: Transcription model.
    TranscriptionStatusCallbackPayload:
      type: object
      required:
      - TranscriptionSid
      - TranscriptionText
      - TranscriptionStatus
      - TranscriptionUrl
      - RecordingSid
      - RecordingUrl
      properties:
        TranscriptionSid:
          type: string
          description: The unique, 34-character ID of the transcription.
          examples:
          - b3877c40-da60-4998-90ad-b792e984tr01
        TranscriptionText:
          type: string
          description: The text of the transcription.
          examples:
          - Hello, I'd like to schedule an appointment for next Tuesday.
        TranscriptionStatus:
          type: string
          enum:
          - completed
          - failed
          description: The status of the transcription.
          examples:
          - completed
        TranscriptionUrl:
          type: string
          description: The URL for the transcription's REST API resource.
          examples:
          - https://example.signalwire.com/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Transcriptions/b3877c40-da60-4998-90ad-b792e984tr01
        RecordingSid:
          type: string
          description: The unique, 34-character identifier for the recording from which the transcription was generated.
          examples:
          - b3877c40-da60-4998-90ad-b792e984re01
        RecordingUrl:
          type: string
          description: The URL for the audio recording from which the transcription was generated.
          examples:
          - https://example.signalwire.com/api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472af/Recordings/b3877c40-da60-4998-90ad-b792e984re01
      unevaluatedProperties:
        not: {}
    uuid:
      type: string
      format: uuid
      description: Universal Unique Identifier.
    TranscriptionResponse:
      type: object
      required:
      - sid
      - account_sid
      - api_version
      - recording_sid
      - date_created
      - date_updated
      - duration
      - price
      - price_unit
      - status
      - transcription_text
      - type
      - uri
      properties:
        sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for the transcription.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472tr
        account_sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for the account that created this transcription.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472ac
        api_version:
          type: string
          description: The version of the SignalWire API.
          examples:
          - '2010-04-01'
        recording_sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier for the recording that this transcription was created from.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472re
        date_created:
          type: string
          description: The date, in RFC 2822 format, this transcription was created.
          examples:
          - Thu, 27 Sep 2018 02:00:00 +0000
        date_updated:
          type: string
          description: The date, in RFC 2822 format, this transcription was updated.
          examples:
          - Fri, 28 Sep 2018 03:00:00 +0000
        duration:
          type: integer
          format: int32
          minimum: 0
          description: The duration, in seconds, of the transcribed audio.
          examples:
          - 60
        price:
          anyOf:
          - type: string
          - type: 'null'
          description: The charge for the transcription. Null if cost has not been calculated.
          examples:
          - '-0.00025'
        price_unit:
          type: string
          description: The currency, in ISO 4217 format, for the price of the transcription.
          examples:
          - USD
        status:
          type: string
          description: The status of the transcription. Always 'completed' for transcriptions returned by the API.
          examples:
          - completed
        transcription_text:
          anyOf:
          - type: string
          - type: 'null'
          description: The text content of the transcription. Null if transcription text is not available.
          examples:
          - Hello, this is a test transcription.
        type:
          type: string
          description: The type of the transcription. Currently always an empty string.
          examples:
          - ''
        uri:
          type: string
          description: The URI of this resource, relative to the API base URL.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions/b3877c40-da60-4998-90ad-b792e98472tr.json
      unevaluatedProperties:
        not: {}
      description: Response containing a single transcription.
    TranscriptionListResponse:
      type: object
      required:
      - uri
      - first_page_uri
      - next_page_uri
      - previous_page_uri
      - page
      - page_size
      - transcriptions
      properties:
        uri:
          type: string
          description: The URI of the current page.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions?Page=0&PageSize=50
        first_page_uri:
          type: string
          description: The URI of the first page.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions
        next_page_uri:
          anyOf:
          - type: string
          - type: 'null'
          description: The URI of the next page. Null if there are no more pages.
          examples:
          - /api/laml/2010-04-01/Accounts/b3877c40-da60-4998-90ad-b792e98472ac/Transcriptions?Page=1&PageSize=50&PageToken=PAb3877c40-da60-4998-90ad-b792e98472tr
        previous_page_uri:
          anyOf:
          - type: string
          - type: 'null'
          description: The URI of the previous page. Null if this is the first page.
          examples:
          - null
        page:
          type: integer
          format: int32
          description: The current page number (zero-indexed).
          examples:
          - 0
        page_size:
          type: integer
          format: int32
          description: The number of items per page.
          examples:
          - 50
        transcriptions:
          type: array
          items:
            $ref: '#/components/schemas/Transcription'
          description: List of transcriptions.
      unevaluatedProperties:
        not: {}
      description: Response containing a list of transcriptions.
    CompatibilityErrorResponse:
      type: object
      required:
      - code
      - message
      - more_info
      - status
      properties:
        code:
          type: integer
          format: int32
          description: Error code.
          examples:
          - 20003
        message:
          type: string
          description: Error message.
          examples:
          - Authentication failed
        more_info:
          type: string
          description: URL for more information about the error.
          examples:
          - https://signalwire.com/docs/compatibility-api/reference/errors
        status:
          type: integer
          format: int32
          description: HTTP status code.
          examples:
          - 401
      unevaluatedProperties:
        not: {}
      description: Error response model.
  parameters:
    TranscriptionSidPath:
      name: Sid
      in: path
      required: true
      description: The unique identifier for the transcription.
      schema:
        $ref: '#/components/schemas/uuid'
    TranscriptionsAccountSidPath:
      name: AccountSid
      in: path
      required: true
      description: The unique identifier for the account that created this transcription.
      schema:
        $ref: '#/components/schemas/uuid'
  securitySchemes:
    SignalWireBasicAuth:
      type: http
      scheme: Basic
      description: 'SignalWire Basic Authentication using Project ID and API Token.


        The client sends HTTP requests with the Authorization header containing

        the word Basic followed by a space and a base64-encoded string of project_id:token.

        The project ID will be used as the username and the API token as the password.


        Example:

        ```

        Authorization: Basic base64(project_id:token)

        ```'
      x-fern-basic:
        username:
          name: project_id
          env: SIGNALWIRE_PROJECT_ID
        password:
          name: api_token
          env: SIGNALWIRE_API_TOKEN