---
title: "Get lyrics from DB or plugins by song id"
method: GET
path: "/songs/{song_id}/lyrics"
tags: ["Songs", "Utilities"]
---

# Get lyrics from DB or plugins by song id

`GET /songs/{song_id}/lyrics`

## Request

- Base URL: `https://develop.ampache.dev/rest/8/json`
- URL: `https://develop.ampache.dev/rest/8/json/songs/{song_id}/lyrics`
- Auth: one of:
  - HTTP bearer
  - API key in header `auth`
  - API key in query parameter `auth`

Return Database lyrics or search with plugins by Song id

## Path parameters

- `song_id` string, required

## Query parameters

- `plugins` 0 | 1, required

## Response `200`

Lyrics/plugins response

- LyricsResponse: `plugin` is keyed by lyric source (`database` plus any lyric-retriever plugin that answered). When nothing answered it is serialized as an empty array, not an empty object.
  - `object_id` string, required
  - `object_type` string, required: The kind of object referenced, as a bare string. The set is intentionally open so a new media type is not a breaking change; values seen today include `song`, `album`, `artist`, `playlist`, `podcast`, `podcast_episode` and `video`.
  - `plugin` PluginMap, required

## Other responses

- `400`: HTTP 400 Bad Request (errors 4705, 4710).
- `401`: HTTP 401 Unauthorized (error 4701).
- `403`: HTTP 403 Forbidden (errors 4700, 4703, 4742).
- `404`: HTTP 404 Not Found (error 4704).
- `500`: HTTP 500 Internal Server Error (error 4702).

## Changes

- **2026-07-31** `e8e6b266ea29`: 5 info
  - api operation id `getLyricsSongs` was added
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`
  - added the non-success response with the status `404`
  - …1 more
- **2026-07-31** `2ff18e50dcc1`: 3 info
  - added the required property `object_id` to the response with the `200` status
  - added the required property `object_type` to the response with the `200` status
  - added the required property `plugin` to the response with the `200` status
- **2026-07-31** `7ed7a764efd9`: 1 info
  - added the non-success response with the status `400`
- **2026-02-24** `3c57979a295f`: 1 info
  - endpoint added
- **2026-02-19** `07f53972fdd7`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/ampache/apis/ampache-rest-api/changes/songs/:song_id/lyrics/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.dev/ampache/apis/ampache-rest-api/revisions/7e3d431e8627?raw)
