---
title: "Search for media entities using rule triplets"
method: GET
path: "/albums/search"
tags: ["Albums", "Search"]
---

# Search for media entities using rule triplets

`GET /albums/search`

Provide operator plus one or more rule triplets. At minimum, rule_1, rule_1_operator, rule_1_input are required. Additional rules may be supplied as rule_2, rule_2_operator, rule_2_input, etc.

## Query parameters

- `operator` 'and' | 'or', required
- `random` boolean
- `offset` integer
- `limit` integer
- `rule_1` string, required
- `rule_1_operator` string, required
- `rule_1_input` string, required
- `rule_2` string
- `rule_2_operator` string
- `rule_2_input` string
- `rule_3` string
- `rule_3_operator` string
- `rule_3_input` string

## Response `200`

Search results

- AlbumsResponse
  - `total_count` integer, required
  - `md5` string, required
  - `album` AlbumObject[], required
    - `id` string, required
    - `name` string, nullable, required
    - `prefix` string, nullable, required
    - `basename` string, nullable, required
    - `artist` object, nullable
      - `id` string, required
      - `name` string, nullable, required
      - `prefix` string, nullable, required
      - `basename` string, nullable, required
    - `artists` NamedReference[]
      - `id` string, required
      - `name` string, nullable, required
      - `prefix` string, nullable, required
      - `basename` string, nullable, required
    - `songartists` NamedReference[]
      - `id` string, required
      - `name` string, nullable, required
      - `prefix` string, nullable, required
      - `basename` string, nullable, required
    - `time` integer, required
    - `year` integer, required
    - `tracks` SongObject[], required
      - `id` string, required
      - `title` string, nullable, required
      - `name` string, nullable, required
      - `artist` NamedReference, required
        - `id` string, required
        - `name` string, nullable, required
        - `prefix` string, nullable, required
        - `basename` string, nullable, required
      - `artists` NamedReference[], required
        - `id` string, required
        - `name` string, nullable, required
        - `prefix` string, nullable, required
        - `basename` string, nullable, required
      - `album` NamedReference, required
        - `id` string, required
        - `name` string, nullable, required
        - `prefix` string, nullable, required
        - `basename` string, nullable, required
      - `albumartist` NamedReference
        - `id` string, required
        - `name` string, nullable, required
        - `prefix` string, nullable, required
        - `basename` string, nullable, required
      - `disk` integer, required
      - `disksubtitle` string, nullable, required
      - `bpm` number, nullable, required
      - `track` integer, required
      - `filename` string, nullable, required
      - `genre` GenreReference[], required
        - `id` string, required
        - `name` string, required
      - `mood` 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
      - `last_played` string, nullable, 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
    - `songcount` integer, required
    - `diskcount` integer, required
    - `type` string, nullable, required
    - `genre` GenreReference[], required
      - `id` string, required
      - `name` string, required
    - `art` string, nullable, required
    - `has_art` boolean, required
    - `flag` boolean, required
    - `rating` integer, nullable, required
    - `averagerating` number, nullable, required
    - `mbid` string, nullable, required
    - `mbid_group` string, nullable, required
    - `catalog` string, 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).
- `500` — HTTP 500 Internal Server Error (error 4702).

---

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