API Reference Overview
The Kinema Server exposes a clean, high-performance REST API over HTTP/HTTPS.
Base URL & Authentication
All API endpoints reside under the /api prefix:
https://<server-ip>:3000/api
Passing Authentication
You can authenticate requests using either:
- Bearer Token in HTTP Header:
Authorization: Bearer <token>
- HttpOnly Cookie:
Cookie: kinema_session=<token>
Response Formats & Error Handling
All JSON endpoints return data with standard HTTP status codes:
200 OK: Request succeeded.400 Bad Request: Invalid parameters or validation failure.401 Unauthorized: Missing or invalid session token.403 Forbidden: Account lacks permissions or admin privileges.404 Not Found: Media item, library, or file not found.429 Too Many Requests: Account locked out due to brute-force protection (5 failed attempts within 60s).503 Service Unavailable: Server reached its maximum concurrent transcoding limit (KINEMA_MAX_TRANSCODES).
Standard Error Object
{
"error": "auth.locked",
"message": "Too many failed login attempts. Account locked for 60 seconds."
}
Endpoints Summary
- Authentication API: Setup, login, profiles, sessions.
- Media & Streaming API: Playback plan, stream transport, subtitles, artwork.
- Library Management API: Libraries, items, scan jobs, metadata matching.
- Server Admin API: System health, transcoding stats, settings, cache controls.