---
title: "Control democratic play"
method: POST
path: "/democratic/{object_id}"
tags: ["Playback Control"]
---

# Control democratic play

`POST /democratic/{object_id}`

## Path parameters

- `object_id` string, required

## Query parameters

- `method` 'vote' | 'devote' | 'playlist' | 'play', required

## Response `200`

Democratic response

- union — Depends on the `method` parameter: `play` returns the stream url, `vote`/`devote` return the applied method and its result, and `playlist` returns the current democratic song list.
  - DemocraticPlayResponse — Returned by `method=play`: the stream URL of the democratic playlist.
    - `url` string, required
  - DemocraticVoteResponse — Returned by `method=vote` and `method=devote`.
    - `method` string, required
    - `result` boolean, required
  - DemocraticSongsResponse
    - `song` DemocraticSongObject[], required
      - `id` string, required
      - `title` string, nullable, required
      - `artist` object, required
        - `id` string, required
        - `name` string, nullable, required
        - `prefix` string, nullable, required
        - `basename` string, nullable, required
      - `album` object, required
        - `id` string, required
        - `name` string, nullable, required
        - `prefix` string, nullable, required
        - `basename` string, nullable, required
      - `genre` object[], required
        - `id` string, required
        - `name` string, required
      - `track` integer, required
      - `time` integer, required
      - `format` string, nullable, required
      - `bitrate` integer, nullable, required
      - `mime` string, nullable, required
      - `url` string, required
      - `size` integer, required
      - `art` string, nullable, required
      - `has_art` boolean, required
      - `rating` integer, nullable, required
      - `averagerating` number, nullable, required
      - `playcount` integer, required
      - `vote` integer, required

## Other responses

- `400` — Ampache API error response payload.

## Changes

- **2026-07-21** `2ff18e50dcc1` — 2 breaking
  - added `#/components/schemas/DemocraticPlayResponse, #/components/schemas/DemocraticVoteResponse, #/components/schemas/DemocraticSongsResponse` to the response body `oneOf` list for the response status `200`
  - the response's body type/format changed from `object`/`` to ``/`` for status `200`
- **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/democratic/:object_id/post.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/2ff18e50dcc1/schema)
