API Overview
Base URL defaults to: http://<host>:<port> (usually http://localhost:2333).
All endpoints reside under /v0. Authentication: include Authorization: <password> header if configured.
Resources
| Resource | Methods |
|---|---|
| Players | Create, list, control playback, delete |
| Queue | Enqueue, fetch, loop modes, skip |
| Filters | Update volume & EQ |
| Metadata | Merge or replace JSON payload |
| Resolver | Convert page URL to direct (if enabled) |
| Track Encoding Helpers | Encode/decode base64 track identifiers (compat layer) |
| WebSocket Streams | Audio frames & events |
Conventions
- JSON bodies for POST/PATCH
- 204 No Content for successful state changes without a body
- 201 Created for resource creation (player, track enqueue)
- 4xx codes for client errors (403 blocked source, 404 unknown player, 409 duplicate id)
- 5xx for unexpected internal errors
Player Lifecycle
POST /v0/playerswith{ id, uri, metadata? }- Connect
GET /v0/players/{id}/wsfor audio - (Optional) Connect
GET /v0/players/{id}/eventsfor JSON event stream - Queue more tracks:
POST /v0/players/{id}/queue - Control playback (play/pause/skip/loop/filters)
- Delete player:
DELETE /v0/players/{id}
Status Snapshot
GET /v0/players returns array of player objects each embedding current track info + metadata.
