---
title: Audio API - Find and Manage Audio Tracks
description: List and delete the audio files in your PostNitro workspace, and resolve the audioId used by video generation and reel scheduling.
canonical: https://postnitro.ai/docs/embed/api/audio
---

# Audio

Video posts and scheduled reels reference their soundtrack by **id**, never by URL —
`videoSettings.audioId` on [generate](https://postnitro.ai/docs/embed/api/initiate/generate#video-posts) /
[import](https://postnitro.ai/docs/embed/api/initiate/import#video-posts), and
`postSettings.audioId` when [scheduling](https://postnitro.ai/docs/embed/api/schedule/platform-settings#postsettings).
These endpoints are how you resolve that id, and how you clean up files you no longer need.

> **Uploading is done in the PostNitro app.** The API lists and deletes audio; it does not
> upload it. Add tracks in the video maker, then read their ids here.

## List audio

**GET** `https://embed-api.postnitro.ai/audio`

Returns the audio files in the workspace attached to your API key, newest first.

#### Headers
- `embed-api-key: your-api-key-here` (required)

#### Query Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | No | Page number (default `1`) |
| `limit` | number | No | Results per page (default `10`, max `100`) |

#### Example Request

```bash
curl --location 'https://embed-api.postnitro.ai/audio' \
--header 'embed-api-key: pn-your-api-key'
```

#### Response

```json
{
    "success": true,
    "data": {
        "audios": [
            {
                "id": "cmskuke0u0001v0pl4zwi5pc4",
                "name": "kontraa-water-afro-pop-music",
                "url": "https://<storage-host>/media/audio/f23bd7ad-...-kontraa-water-afro-pop-music.mp3",
                "duration": 69.87,
                "artistName": "User Upload",
                "source": "upload",
                "createdAt": "2026-08-08T20:49:38.814Z"
            }
        ]
    }
}
```

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | The value to pass as `videoSettings.audioId` / `postSettings.audioId` |
| `name` | string | Track title, falling back to the original filename |
| `url` | string | Public URL of the file. Useful for previewing — the API still wants the `id` |
| `duration` | number \| null | Track length in seconds; `null` when the uploader didn't record one |
| `artistName` | string \| null | Artist, when the source provided one |
| `source` | string | Where the file came from, e.g. `"upload"` |
| `createdAt` | string | ISO-8601 upload time |

An empty library returns `200` with `"audios": []` — it isn't an error.

> A track's `duration` is independent of `videoSettings.videoDuration`: the video is
> rendered to the duration you ask for, and a longer track is simply cut off at that point.

## Delete audio

**DELETE** `https://embed-api.postnitro.ai/audio/{id}`

Permanently deletes the audio record **and the stored file**. This cannot be undone.

#### Headers
- `embed-api-key: your-api-key-here` (required)

#### Path Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The audio id (from [List audio](#list-audio)) |

#### Example Request

```bash
curl --location --request DELETE 'https://embed-api.postnitro.ai/audio/cmskuke0u0001v0pl4zwi5pc4' \
--header 'embed-api-key: pn-your-api-key'
```

#### Response

```json
{
    "success": true,
    "message": "Audio deleted successfully"
}
```

#### Errors

| Status | Message | When |
|--------|---------|------|
| `404` | `Audio not found` | No such id in your workspace, or the id points at an image or other non-audio file |
| `400` | `Audio is used in scheduled posts and cannot be deleted. Remove it from those posts first.` | A scheduled post's `postSettings.audioId` still references it |
| `500` | `Error deleting audio file` | The stored file could not be removed; nothing was deleted, so the call can be retried |

**Why a scheduled post blocks deletion:** a reel resolves its audio when it publishes, so
deleting the track first would leave that post silently without a soundtrack. Videos already
rendered to `MP4` are unaffected — their audio is baked into the file, so deleting the source
track never changes an existing render.
