API Reference
Internal APIs
Mydia exposes HTTP and GraphQL APIs primarily for internal use by the Flutter player and the web UI. These APIs are not yet stable or documented for third-party consumption.
Current State
Mydia includes several internal API surfaces used by its own components:
| Area | Description |
|---|---|
| Downloads | Download client management and status |
| Indexers | Search queries to configured indexers |
| Media | Library browsing, metadata, and management |
| Playback | Playback session control |
| Streaming | HLS streaming session lifecycle |
| Subtitles | Subtitle search and download |
| Admin/Config | Server configuration and settings |
| GraphQL | Absinthe-based GraphQL API (used by the Flutter player) |
GraphQL API
The GraphQL endpoint is available at /api/graphql and is used by the Flutter player for:
- Browsing movies and TV shows
- Managing streaming sessions
- Fetching media metadata and files
The schema uses Absinthe with connection/edges/node pagination for collections.
REST Endpoints
REST-style endpoints handle:
- HLS manifest and segment serving
- Subtitle file delivery
- Download client webhooks
- Admin configuration
Stability
These APIs are internal and may change between versions without notice. If you're interested in a stable public API for third-party integrations, please open a feature request.
Integration Options
Currently, you can integrate with Mydia through:
- Download Clients - Configure in Admin UI
- Indexers - Configure in Admin UI
- OIDC/SSO - Authenticate via external identity providers
Contributing
If you're interested in API development, check the Development documentation and consider contributing to the project.