> ## Documentation Index
> Fetch the complete documentation index at: https://rockboxzig.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# API overview

> Four protocols, one source of truth — pick whichever fits your client.

`rockboxd` exposes the same in-process state through four independent
servers. They are all started by `start_servers()` in
`crates/server/src/lib.rs` and all share one set of mutexes around the
firmware, so a change made via gRPC is immediately visible over GraphQL,
HTTP and MPD.

| Protocol | Default port | Use it for |
| - | - | - |
| **HTTP REST** | 6063 | `curl`-able. Simple integrations, scripts, webhooks. |
| **GraphQL** | 6062 | Best fit for UIs. Subscriptions for real-time events. |
| **gRPC** | 6061 | Strongly-typed, multi-language. gRPC-Web supported. |
| **MPD** | 6600 | Existing MPD clients (`mpc`, `ncmpcpp`, MALP, …). |
| **Subsonic** | 4533 | Cassette, Symfonium, DSub, Ultrasonic, play:sub, … |
| **Jellyfin** | 8096 (opt-in) | Finamp, Findroid, Streamyfin, Amcfy Music, Symfonium. |
| **S3** | 9000 (opt-in) | Upload / delete tracks with `awscli`, `mc`, `rclone`. |

> [card] [HTTP REST](https://rockboxzig.mintlify.site/api-reference/rest/overview.md)
>
> Open `http://localhost:6063` and explore.

> [card] [GraphQL](https://rockboxzig.mintlify.site/api-reference/graphql/overview.md)
>
> GraphiQL at `http://localhost:6062/graphiql`.

> [card] [gRPC](https://rockboxzig.mintlify.site/api-reference/grpc/overview.md)
>
> Schema published on Buf.

> [card] [MPD](https://rockboxzig.mintlify.site/api-reference/mpd/overview.md)
>
> Anything that speaks MPD on `localhost:6600`.

> [card] [Jellyfin](https://rockboxzig.mintlify.site/api-reference/jellyfin/overview.md)
>
> Native Jellyfin clients on `localhost:8096`.

> [card] [S3](https://rockboxzig.mintlify.site/api-reference/s3/overview.md)
>
> Upload tracks via the S3 protocol on `localhost:9000`.

## Auto-generated REST pages

Every endpoint in the [HTTP REST API](https://rockboxzig.mintlify.site/api-reference/rest/overview.md) has its
own page generated from the canonical OpenAPI spec
([`openapi.json`](https://github.com/tsirysndr/rockboxd/blob/master/crates/server/openapi.json)).
The spec is also served live at `http://localhost:6063/openapi.json` while
rockboxd is running.

## Authentication

All four servers are unauthenticated. They are intended for use on a
trusted LAN. If you expose Rockbox publicly, put it behind a reverse
proxy with TLS and HTTP basic auth.

## Pick a client SDK

We maintain six first-party SDKs. They wrap the GraphQL transport with
typed methods, real-time subscriptions and a plugin system.

> [card] [TypeScript](https://rockboxzig.mintlify.site/sdks/typescript.md)

> [card] [Python](https://rockboxzig.mintlify.site/sdks/python.md)

> [card] [Ruby](https://rockboxzig.mintlify.site/sdks/ruby.md)

> [card] [Elixir](https://rockboxzig.mintlify.site/sdks/elixir.md)

> [card] [Clojure](https://rockboxzig.mintlify.site/sdks/clojure.md)

> [card] [Gleam](https://rockboxzig.mintlify.site/sdks/gleam.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.