---
title: "List songs"
method: GET
path: "/music"
tags: ["Music"]
---

# List songs

`GET /music`

Lists tracks in your music library: songs you generated with `POST /music` and audio you uploaded with `POST /uploads` (purpose `music`). Pick one to score a music video: use a generated song as `musicId` or an uploaded track as `musicAssetId` in `POST /music-videos`.

## Response `200`

OK

- object[]
  - `id` string, uuid, required — For generated songs, use as `musicId`; for uploaded tracks, use as `musicAssetId` in POST /music-videos.
  - `title` string, nullable, required — Track title, if known.
  - `durationSeconds` number, nullable, required — Track length in seconds, if known.
  - `status` 'pending' | 'processing' | 'completed' | 'failed', required — Generated songs report progress; uploaded tracks are always `completed`.
  - `source` 'generated' | 'uploaded', required — `generated` (from POST /music) or `uploaded` (from POST /uploads).
  - `audioUrl` string, nullable, required — The audio URL when the track is ready.

## Other responses

- `401` — 401
- `402` — 402
- `403` — 403

---

[API](https://skmtc.net/aituber/apis/aituber-api.md) · [All operations](https://skmtc.net/aituber/apis/aituber-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aituber/aituber-api/revisions/35448566f143/schema)
