milmilmilmil
API Reference

System

Health, system info, storage stats, and first-run setup status

GET
/api/v1/settings

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

curl -X GET "https://example.com/api/v1/settings"
Empty
GET
/api/v1/settings/export

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/settings/export"
{}
POST
/api/v1/settings/import

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/api/v1/settings/import" \  -H "Content-Type: application/json" \  -d '{}'
Empty
POST
/api/v1/settings/reset

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

curl -X POST "https://example.com/api/v1/settings/reset"
Empty
PUT
/api/v1/settings/{section}

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Path Parameters

section*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X PUT "https://example.com/api/v1/settings/string" \  -H "Content-Type: application/json" \  -d '{}'
Empty
GET
/api/v1/setup/status

Public endpoint consumed by the front-end's first-run setup wizard loaders. Reports whether an admin user exists and how many libraries are configured, so the UI can decide between admin signup, library creation, or skipping into the app.

Response Body

application/json

curl -X GET "https://example.com/api/v1/setup/status"
{  "has_admin": true,  "library_count": 0}
GET
/api/v1/system/downloader-status

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/system/downloader-status"
{  "engine": "string",  "healthy": true}
GET
/api/v1/system/info

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/system/info"
{  "version": "string",  "uptime": 0,  "go_version": "string",  "platform": "string"}
GET
/api/v1/system/storage

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/system/storage"
{  "total_size": 0,  "file_count": 0}
DELETE
/api/v1/system/transcode-cache

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

curl -X DELETE "https://example.com/api/v1/system/transcode-cache"
Empty
GET
/api/v1/system/update-check

Results are cached; stale reports that the cached answer could not be refreshed.

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/system/update-check"
{  "current": "string",  "latest": "string",  "has_update": true,  "release_url": "string",  "published_at": "2019-08-24T14:15:22Z",  "stale": true}
GET
/api/v1/ws/ticket

A WebSocket handshake cannot carry an Authorization header, so clients exchange their API token for a short-lived, single-use ticket and pass it as ?ticket= when opening /ws.

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/ws/ticket"
{  "ticket": "string",  "expires_in": 0}
GET
/health

Response Body

application/json

curl -X GET "https://example.com/health"
{  "status": "string",  "version": "string"}
GET
/api/v1/system/services

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/system/services"
{  "services": [    {      "id": "string",      "kind": "api",      "name": "string",      "enabled": true,      "controllable": true,      "runnable": true,      "running": true,      "interval_seconds": 0,      "last_run_at": "2019-08-24T14:15:22Z",      "last_duration_ms": 0,      "last_error": "string",      "next_run_at": "2019-08-24T14:15:22Z",      "summary": "string",      "extra": {}    }  ],  "system": {    "version": "string",    "uptime_seconds": 0,    "started_at": "2019-08-24T14:15:22Z"  }}
PATCH
/api/v1/system/services/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PATCH "https://example.com/api/v1/system/services/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "string",  "kind": "api",  "name": "string",  "enabled": true,  "controllable": true,  "runnable": true,  "running": true,  "interval_seconds": 0,  "last_run_at": "2019-08-24T14:15:22Z",  "last_duration_ms": 0,  "last_error": "string",  "next_run_at": "2019-08-24T14:15:22Z",  "summary": "string",  "extra": {}}
POST
/api/v1/system/services/{id}/run

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Path Parameters

id*string

Response Body

application/json

curl -X POST "https://example.com/api/v1/system/services/string/run"
{  "started": true}
GET
/api/v1/system/services/jellyfin/devices

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/system/services/jellyfin/devices"
{  "devices": [    {      "device_id": "string",      "client": "string",      "device_name": "string",      "first_seen": "2019-08-24T14:15:22Z",      "last_seen": "2019-08-24T14:15:22Z",      "revoked": true    }  ]}
DELETE
/api/v1/system/services/jellyfin/devices/{deviceId}

Authorization

bearerAuth
AuthorizationBearer <token>

Pass an API token obtained from POST /api/v1/auth/login or POST /api/v1/api-tokens. Tokens have the prefix mlml_.

In: header

Path Parameters

deviceId*string

Response Body

curl -X DELETE "https://example.com/api/v1/system/services/jellyfin/devices/string"
Empty