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

# List songs

`GET /songs`

## Query parameters

- `filter` string
- `exact` boolean
- `add` string, date
- `update` string, date
- `offset` integer
- `limit` integer
- `cond` string
- `sort` string

## Response `200`

Songs list

- SongsResponse
  - `total_count` integer, required
  - `md5` string, required
  - `song` SongObject[], required
    - `id` string, required
    - `title` string, nullable, required
    - `name` string, nullable, required
    - `artist` object, required
      - `id` string, required
      - `name` string, required
      - `prefix` string, required
      - `basename` string, required
    - `artists` object[], required
      - `id` string, required
      - `name` string, required
      - `prefix` string, required
      - `basename` string, required
    - `album` object, required
      - `id` string, required
      - `name` string, required
      - `prefix` string, required
      - `basename` string, required
    - `albumartist` object
      - `id` string, required
      - `name` string, required
      - `prefix` string, required
      - `basename` string, required
    - `disk` integer, required
    - `disksubtitle` string, nullable, required
    - `track` integer, required
    - `filename` string, nullable, required
    - `genre` object[], required
      - `id` string, required
      - `name` string, required
    - `playlisttrack` integer, required
    - `time` integer, required
    - `year` integer, required
    - `format` string, nullable, required
    - `stream_format` string, nullable, required
    - `bitrate` integer, nullable, required
    - `stream_bitrate` integer, nullable, required
    - `rate` integer, required
    - `mode` string, nullable, required
    - `mime` string, nullable, required
    - `stream_mime` string, nullable, required
    - `url` string, required
    - `size` integer, required
    - `mbid` string, nullable, required
    - `art` string, nullable, required
    - `has_art` boolean, required
    - `flag` boolean, required
    - `rating` integer, nullable, required
    - `averagerating` number, nullable, required
    - `playcount` integer, required
    - `catalog` string, required
    - `composer` string, nullable, required
    - `channels` integer, nullable, required
    - `comment` string, nullable, required
    - `license` string, nullable, required
    - `publisher` string, nullable, required
    - `language` string, nullable, required
    - `lyrics` string, nullable, required
    - `replaygain_album_gain` number, nullable, required
    - `replaygain_album_peak` number, nullable, required
    - `replaygain_track_gain` number, nullable, required
    - `replaygain_track_peak` number, nullable, required
    - `r128_album_gain` number, nullable, required
    - `r128_track_gain` number, nullable, required
    - `metadata` object

## Other responses

- `400` — Ampache API error response payload.

## Changes

- **2026-07-18** `0366bc42fb8f` — 3 info
  - added the required property `md5` to the response with the `200` status
  - added the required property `song` to the response with the `200` status
  - added the required property `total_count` to the response with the `200` status
- **2026-07-17** `9abb9bf6d3bf` — 1 info
  - removed the non-success response with the status `400`
- **2026-06-25** `7ed7a764efd9` — 1 info
  - added the non-success response with the status `400`

[Change history](https://skmtc.dev/ampache/apis/ampache-rest-api/changes/songs/get.md)

---

[API](https://skmtc.dev/ampache/apis/ampache-rest-api.md) · [All operations](https://skmtc.dev/ampache/apis/ampache-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ampache/ampache-rest-api/revisions/0366bc42fb8f/schema)
