Base URL
All endpoints are accessed relative to your application’s domain:Authentication
Most endpoints require authentication using Laravel’s session-based authentication system. All routes except the home page are protected by theauth and verified middleware.
Required Middleware:
auth- User must be authenticatedverified- User’s email must be verified
can:server-download- Server download operationscan:auto-download-schedules- Auto-download schedulingcan:download-operations,model- Download management operations
Response Format
This application uses Inertia.js for responses, which renders server-side data through client-side components.Inertia Responses
Most GET endpoints return Inertia responses:Redirect Responses
POST, PATCH, and DELETE operations typically return redirects:Response Messages
Success Messages:- Returned via
->with('success', 'message') - Available in session flash data
- Returned via
->withErrors('message')or->withErrors(['field' => 'message']) - Accessible through Laravel’s error bag
Route Parameters
Common Parameters
The numeric ID of the resource (movie, series, or download)
- Must be a positive integer
- Validated with
whereNumber('model')
Season number for series endpoints
- Must be a positive integer
- Validated with
whereNumber('season')
Episode number for series endpoints
- Must be a positive integer
- Validated with
whereNumber('episode')
Query Parameters
Filter results by category ID
Pagination cursor timestamp
Pagination cursor ID
Return URL after download operations (must match
/downloads pattern)Rate Limiting
The application uses Laravel’s default rate limiting. Specific operations have cooldown periods:- Series monitoring run-now: Configurable cooldown (default: 300 seconds)
- Configured via
auto_episodes.run_now_cooldown_seconds
- Configured via
Pagination
List endpoints use cursor-based pagination with the following parameters:- Movies: 20 items per page, ordered by
added(desc) andstream_id(desc) - Series: 20 items per page, ordered by
last_modified(desc) andseries_id(desc) - Downloads: 10 items per page, ordered by
created_at(desc)
as_of and as_of_id query parameters.
Error Handling
HTTP Status Codes
200- Success302- Redirect (after POST/PATCH/DELETE)404- Resource not found or feature disabled403- Unauthorized (missing permissions)
Common Error Scenarios
Category Not Found:Next Steps
Authentication
Learn about authentication and session management
Movies
Browse and stream VOD content
Series
Access TV series and episodes
Downloads
Manage media downloads