canonical: https://jentic.com/apis/moodeaudio.org/moodeaudio

# Moode Audio API

Jentic publishes the only available OpenAPI specification for Moode Audio API, keeping it validated and agent-ready. Moode is an audiophile-quality music player for Raspberry Pi that exposes a simple HTTP command interface for control and inspection. All 16 operations are GETs against the single /command/ endpoint, with the command name carried in a cmd query parameter, covering the current song, transport control, volume and clearing the queue. The base URL is the device's own local hostname (moode.local by default), so this is a LAN interface on hardware you run rather than a hosted service, and the specification declares no authentication scheme for any of its operations.

## For AI agents

Read what is playing, control playback and volume, and clear the queue on a local Moode Audio Raspberry Pi player through simple HTTP commands.

## Scope

Does not stream music itself; use it for local control and inspection of a Moode-based Raspberry Pi audio player only, covering the current song, transport, volume and the queue rather than any hosted or cloud media service.

## Capabilities

- Read the currently playing file, artist, album, title, track, bitrate and play state with the get_currentsong command
- Control transport on the local player using the play, pause, stop, next and previous commands
- Set the player volume through the set_volume command's level argument
- Clear the current playback queue with the clear_queue command
- Issue any supported command through the single /command/ endpoint by naming it in the cmd query parameter

## Use cases

### Voice or Chat Control of a Local Hi-Fi

An owner adds voice or chat control to their Moode-based hi-fi by exposing the local Moode endpoints behind a simple agent. The agent can read the current song, pause, skip to the next track, adjust the volume, or clear the queue, all through plain GET commands against the player's local hostname. Moode runs entirely on the Pi, so nothing is routed through a hosted service.

Example prompt: Read the currently playing song from Moode and return artist, album, and title.

### Home Dashboard Now-Playing Card

Home dashboards (Home Assistant, custom panels) poll Moode for the current song and its play state to show a media card next to other smart-home tiles. Because the Moode endpoints are GETs the specification declares no authentication for, integration is just an HTTP fetch on a schedule.

Example prompt: Poll Moode every 10 seconds and update a now-playing card with the current song, artist, and play state.

### Remote Transport and Volume Control

A remote app or agent drives the player rather than only reading from it: start or pause playback, skip tracks, set the volume through the set_volume level argument, and clear the queue before loading something new. These write-side commands sit on the same /command/ endpoint as the read commands, so a controller needs no second integration.

Example prompt: Pause Moode, set the volume to 15, then clear the playback queue.

### AI Agent Audiophile Assistant

An on-device AI agent uses Jentic to discover Moode's command endpoints, runs them against the local Pi, and answers natural-language questions like 'what's playing' or 'pause the music' without exposing a hosted service. Moode documents its commands as prose and publishes no OpenAPI specification, so Jentic's spec is what gives the agent input and output schemas for them.

Example prompt: Search Jentic for 'control my Moode player', load the schema for the get_currentsong command, and execute it against the local player.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/command/` | Generic command endpoint; the command name travels in the cmd query parameter |
| GET | `/command/?cmd=get_currentsong` | Get the currently playing song with artist, album, title, track and bitrate |
| GET | `/command/?cmd=play` | Start playback |
| GET | `/command/?cmd=pause` | Pause playback |
| GET | `/command/?cmd=next` | Skip to the next track |
| GET | `/command/?cmd=set_volume` | Set the volume through the level argument |
| GET | `/command/?cmd=clear_queue` | Clear the playback queue |

## Key resources

- **Commands** — Single /command/ endpoint that drives every operation, selected by the cmd query parameter
- **Playback** — Current song metadata and transport control with play, pause, stop, next and previous
- **Volume** — Set the player volume through the set_volume level argument
- **Queue** — Clear the current playback queue

## Why Jentic

- **Setup:** Wiring Moode by hand means pointing at the right local base URL on your network and remembering its cmd= query-string conventions for each command call. Through Jentic you install once, import the Moode Audio API from the API Directory, and your agent calls it against the configured local player.
- **Permission scoping:** This API carries its command in a cmd= query string rather than a resource path, so limit the agent to the operations it needs, such as reading the current song. You choose the operations it may call, so player control commands are not included unless you add them.
- **Credential handling:** Moode's command interface is unauthenticated, so you have no credential to store for it and none is injected at execution time. Nothing sensitive enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'show what my Moode player is playing' or 'turn the volume down', and Jentic returns the matching command operation with its input schema, so the agent calls the right endpoint without memorising Moode's cmd= query strings.

## Related APIs

- **Spotify Web API** — Cloud streaming control rather than local Pi-based playback
- **Jellyfin API** — Self-hosted media server with broader video and audio support
- **Plex API** — Cross-platform media server with strong remote streaming features

## FAQ

### Why is there no official OpenAPI spec for Moode Audio API?

Moode Audio does not publish an OpenAPI specification; its REST command interface is documented as prose in the project's setup guide on GitHub. Jentic generates and maintains the machine-readable version so that AI agents and developers can call Moode Audio API via structured tooling. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Moode Audio API use?

None. The specification declares no authentication scheme and no security requirement on any of its 16 operations, and Moode's own documented curl example passes no credentials. You have no key to obtain and no account to create, because Moode is software running on your own device: access is governed by who can reach the player on your network. Keep the Pi on a trusted network, or put a reverse proxy in front of it if you need authentication.

### Can I read the currently playing song with the Moode API?

Yes. Call GET /command/?cmd=get_currentsong to receive the current song's title, artist, album, track number and bitrate. The same response carries a state field, so one call also tells you whether the player is playing, paused or stopped. Moode requires the Metadata file option to be enabled in Audio Config for this command to return data.

### What are the rate limits for the Moode Audio API?

Moode publishes none. It is software you run on your own Raspberry Pi, so requests never cross a vendor gateway and no quota is applied to them, and the project's documentation defines no limit. Throughput is bounded by your own hardware and network, so poll at a rate your device is comfortable with.

### How do I change the volume through Jentic?

Search Jentic for 'set the Moode volume', load the schema for GET /command/?cmd=set_volume, and execute it with the level argument and your player's local base URL. Jentic returns the volume and mute state Moode reports back.

### Does the Moode API work over the internet?

By default no. The player answers on your own network at its local hostname (moode.local) or its IP address, and Moode operates no hosted endpoint you could call from outside. To control Moode remotely, put the Pi behind a reverse proxy that adds TLS and authentication, or use a VPN back to the home network.

### Can I limit what my agent is allowed to do with the Moode Audio API?

Yes. Because you run Jentic One yourself, your own rules decide which of Moode's command operations the agent may call. Moode carries the command name in a cmd query parameter rather than in the URL path, so rules bound the agent by operation: you can give it get_currentsong and withhold the commands that change the player. Transport, volume and queue commands are reachable only if you add them to the agent's allowed set.

### Is there a Moode Audio MCP server?

You don't need an MCP server to give your agent Moode Audio API. Jentic connects it directly from the API Directory: import Moode Audio API, point it at your player's local base URL, and your agent can read what is playing and control playback, without loading another server's tool definitions into its context. Moode is unauthenticated on your own network, so you have no credential to configure either.
