# List Audio

`GET /v1/audio`

Your audio clips, uploaded and generated, newest first.

Uploads from `POST /v1/audio` and speech from `POST /v1/audio/speech`. These are exactly the URLs accepted as `audio_url` and `audio_urls` on video generation.

Base URL: `https://api.spicyapi.com`

## Authorizations

- `Authorization` (string, header, required): Bearer authentication header of the form `Bearer <token>`, where `<token>` is your SpicyAPI key (`sk-spicy-…`). Create one in the dashboard under API Keys.

## Query parameters

- `limit` (integer, optional): How many to return, 1 to 100. Defaults to 50.

## Request

```bash
curl --request GET \
  --url 'https://api.spicyapi.com/v1/audio?limit=50' \
  --header 'Authorization: Bearer $SPICYAPI_KEY'
```

## Response: 200 application/json

Successful Response

- `data` (Audio · object[], required): Clips, newest first.
  - `id` (string, required): Clip id, `au_...`.
  - `object` (string, required): Always `audio`.
  - `url` (string, required): CDN URL of the clip. Pass it byte-for-byte as `audio_url` (or in `audio_urls`) on `POST /v1/videos/generations`.
  - `duration_s` (number, required): Length in seconds, to one decimal.
  - `mime` (string, required): `audio/wav` or `audio/mpeg`, sniffed from the bytes.
  - `bytes` (integer, required): File size.
  - `transcript` (string, required): What the screen heard (first 500 characters).
  - `source` (string, required): `upload` for `POST /v1/audio`, `speech` for `POST /v1/audio/speech`.
  - `created` (integer | null, optional): Unix timestamp.

```json
{
  "object": "list",
  "data": [
    {
      "id": "au_3c9f1e7a2b4d6f80a1c2",
      "object": "audio",
      "url": "https://cdn.spicyapi.com/audio/a1b2c3d4e5f6a7b8/au_3c9f1e7a2b4d6f80a1c2.wav",
      "duration_s": 6.4,
      "mime": "audio/wav",
      "bytes": 1128492,
      "transcript": "Come here. I have been waiting all evening.",
      "source": "upload",
      "created": 1758553200
    }
  ]
}
```
