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

# Stream the audio of a call recording

> Streams the audio of the call recording, authenticated with the same API key as every other endpoint (no public or pre-signed link). Defaults to mp3 (`audio/mpeg`); `?format=wav` returns `audio/wav` and any other value falls back to mp3. Served inline unless `?download=true`, which sets `Content-Disposition: attachment`. Limited to 10 requests per minute. Returns 403 `RECORDING_DISABLED` when call recording is disabled for the workspace of the call. Returns 404 if the call does not exist, is outside the API key scope, has no recording, or its audio is no longer available.



## OpenAPI

````yaml https://api-public.skipcall.app/docs-json get /v1/calls/{id}/recording/audio
openapi: 3.0.0
info:
  title: Skipcall Public API
  description: >-
    ## Overview

    The Skipcall Public API allows you to integrate Skipcall with your
    applications, CRM, or automation tools.


    ## Plan Requirements

    API access is available for **STARTER**, **INTERMÉDIAIRE**, **EXPERT** and
    **VOIP** plans.


    ## Authentication

    All API requests require authentication using an API Key. Include your API
    key in the `Authorization` header:


    ```

    Authorization: Bearer sk_live_your_api_key_here

    ```


    You can generate API keys from your Skipcall dashboard under Settings > API
    Keys.


    ## Rate Limiting

    Rate limits vary by subscription plan:


    | Plan | Rate Limit |

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

    | STARTER | 100 requests/minute |

    | INTERMÉDIAIRE | 100 requests/minute |

    | EXPERT | 1000 requests/minute |

    | VOIP | 100 requests/minute |


    Rate limit headers are included in every response:

    - `X-RateLimit-Limit`: Maximum requests per minute for your plan

    - `X-RateLimit-Remaining`: Remaining requests in the current window

    - `X-RateLimit-Reset`: Unix timestamp when the rate limit resets


    ## Errors

    The API uses standard HTTP status codes:

    - `200` - Success

    - `400` - Bad Request (invalid parameters)

    - `401` - Unauthorized (invalid or missing API key)

    - `403` - Forbidden (subscription required, plan not eligible, or call
    recording disabled for the workspace)

    - `404` - Not Found

    - `429` - Too Many Requests (rate limit exceeded)

    - `500` - Internal Server Error


    ### Subscription Errors

    | Code | Description |

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

    | `SUBSCRIPTION_REQUIRED` | An active subscription is required to access the
    API |

    | `PLAN_NOT_ELIGIBLE` | API access requires STARTER, INTERMÉDIAIRE, EXPERT
    or VOIP plan |


    ### Recording Errors

    | Code | Description |

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

    | `RECORDING_DISABLED` | Call recording is disabled for the workspace of the
    call (`GET /v1/calls/{id}/recording` and `GET
    /v1/calls/{id}/recording/audio`) |
  version: '1.0'
  contact: {}
servers:
  - url: https://api-public.skipcall.app
    description: Production
security: []
tags:
  - name: Contacts
    description: Manage your contacts
  - name: Calls
    description: Access call history and recordings
paths:
  /v1/calls/{id}/recording/audio:
    get:
      tags:
        - Calls
      summary: Stream the audio of a call recording
      description: >-
        Streams the audio of the call recording, authenticated with the same API
        key as every other endpoint (no public or pre-signed link). Defaults to
        mp3 (`audio/mpeg`); `?format=wav` returns `audio/wav` and any other
        value falls back to mp3. Served inline unless `?download=true`, which
        sets `Content-Disposition: attachment`. Limited to 10 requests per
        minute. Returns 403 `RECORDING_DISABLED` when call recording is disabled
        for the workspace of the call. Returns 404 if the call does not exist,
        is outside the API key scope, has no recording, or its audio is no
        longer available.
      operationId: CallController_getRecordingAudio
      parameters:
        - name: id
          required: true
          in: path
          description: Call UUID
          schema:
            type: string
            format: uuid
        - name: download
          required: false
          in: query
          description: >-
            Set to `true` to receive the file as an attachment instead of
            inline.
          schema:
            enum:
              - 'true'
              - 'false'
            type: string
        - name: format
          required: false
          in: query
          description: 'Audio format (default: mp3). Any other value falls back to mp3.'
          schema:
            enum:
              - mp3
              - wav
            type: string
      responses:
        '200':
          description: >-
            Audio stream, with `Content-Disposition: inline|attachment;
            filename="recording-<callId>.mp3|wav"`
          content:
            audio/mpeg:
              schema:
                type: string
                format: binary
            audio/wav:
              schema:
                type: string
                format: binary
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        example: UNAUTHORIZED
                      message:
                        type: string
                        example: Invalid or revoked API key
                      status:
                        type: number
                        example: 401
        '403':
          description: >-
            `RECORDING_DISABLED`: call recording is disabled for the workspace
            of this call
        '404':
          description: >-
            Call not found, outside API key scope, without recording, or audio
            no longer available
      security:
        - ApiKey: []
components:
  securitySchemes:
    ApiKey:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: Enter your API Key (sk_live_xxx or sk_test_xxx)

````

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