API Documentation
Base URL
All API endpoints are prefixed with /api
Authentication
Most endpoints are publicly accessible. Protected endpoints require a JWT token in the Authorization header:
Get a token by calling POST /api/auth/login with admin credentials.
Health Check
1Returns the current API status and timestamp.
Authentication
3Authenticate with admin username and password to get a JWT token.
Authenticate with Google ID token. Requires Google OAuth to be configured.
Verify if the provided JWT token is valid. Send token in Authorization header.
Anime
10Get all anime with pagination, search, and filters.
| Parameter | Type | Description |
|---|---|---|
| page | number optional | Page number (default: 1) |
| limit | number optional | Items per page (default: 20, max: 100) |
| search | string optional | Search by anime title |
| status | string optional | Filter by status: ongoing, completed |
| genre | string optional | Filter by genre |
Browse anime directly from Anoboy source (live scraping).
| Parameter | Type | Description |
|---|---|---|
| letter | string optional | Filter by first letter (A-Z, 0-9) |
Get anime details by ID (number) or slug (string). Includes episode list.
| Parameter | Type | Description |
|---|---|---|
| identifier | string|number required | Anime ID or slug |
Get all episodes for a specific anime.
Scrape and save anime from Anoboy URL. Automatically downloads poster and scrapes episodes in background.
Bulk import all anime from Anoboy A-Z index. Runs in background.
If not specified, imports all letters A-Z and 0-9.
Download and save poster images for anime that don't have local copies. Runs in background.
Scrape all episodes for an anime from Anoboy. Runs in background.
Create a new anime entry manually. Requires authentication.
Update an existing anime. Requires authentication.
Delete an anime and all its episodes. Requires authentication.
Episodes
4Get episode details including video source URL and parent anime info.
Create a new episode for an anime. Requires authentication.
Update an existing episode. Requires authentication.
Delete an episode. Requires authentication.
Response Format
Rate Limiting
API requests are rate limited to prevent abuse:
| Limit | Window | Description |
|---|---|---|
| 100 requests | 15 minutes | Per IP address |
When rate limited, you'll receive a 429 Too Many Requests response.