UNIBOXAPI Developer Reference
Clean, standardized REST API proxy delivering comprehensive metadata for movies, TV series, seasons, episodes, and franchise collections. Built with automated TMDB image resolution, in-memory caching, and clean JSON responses.
Master Admin API Key
Kredensial Master Admin yang dikonfigurasi langsung di file environment (.env) dengan hak akses penuh tanpa batasan (Unlimited).
Proxy/.env pada baris API_KEY=kunci_rahasia_kamu. Server akan menolak permintaan tanpa kunci yang valid dengan status 401 Unauthorized saat REQUIRE_API_KEY=true.
💡 Kunci yang disimpan akan tersimpan di browser session dan otomatis dilampirkan ke semua pengujian cURL dan Interactive Explorer.
| Metode Pengiriman | Sintaks Penggunaan | Keterangan |
|---|---|---|
| HTTP Header | x-api-key: <API_KEY> |
Metode standar rekomendasi untuk backend service dan REST client. |
| Bearer Token | Authorization: Bearer <API_KEY> |
Kompatibel dengan standar RFC 6750 authorization headers. |
| Query Parameter | ?api_key=<API_KEY> |
Sangat praktis untuk tag <video src="..."> atau pengetesan cepat di browser URL bar. |
Memverifikasi status kredensial Master Admin API Key dan memeriksa apakah hak akses unlimited aktif.
Smart Persistent Caching System
Sistem cache pintar yang aktif di setiap endpoint dengan penyimpanan hybrid (Memory + Persistent Disk) dan durasi pintar hingga token kadaluarsa pada endpoint video stream.
Proxy/data/cache.json). Khusus untuk endpoint GET Stream, sistem membaca timestamp expiresAt dari upstream dan menjaga cache tetap valid secara pintar persis hingga token tersebut kadaluarsa, bahkan setelah server direstart!
| Category | Adaptive TTL | Cache Strategy | Scope |
|---|---|---|---|
| Taxonomy | 24 Hours (86,400s) | Memory + Disk with SWR | Genres, Countries, Years, Networks, Languages |
| Collections | 12 Hours (43,200s) | Memory + Disk with SWR | Franchises (Marvel, Star Wars, Pixar, etc.) |
| Catalog | 4 Hours (14,400s) | Memory + Disk with SWR | Movie & TV Series lists, search results, details |
| Homepage | 15 Minutes (900s) | Memory + Disk | Featured carousel, recently added movies and series |
| Video Streams | Dynamic (Upstream Expiry) | Memory + Disk | Direct .m3u8 URLs, video UUIDs, subtitles (survives restart) |
View real-time cache performance metrics, hit rate percentage, active item count, and persistent disk size.
Invalidate all cache entries or selectively target a namespace via ?namespace=streams (or taxonomy, movies, series, browse).
Standard Response Envelope & Errors
Every response follows a uniform envelope containing status, statusCode, data, optional pagination, and timestamp.
{
"status": "success",
"statusCode": 200,
"data": { ... },
"pagination": {
"page": 1,
"limit": 24,
"total": 120,
"totalPages": 5,
"hasNextPage": true,
"hasPrevPage": false
},
"timestamp": "2026-11-08T07:00:00.000Z"
}
| Status Code | Meaning | Description |
|---|---|---|
| 200 OK | Success | Request succeeded and data returned in standard envelope. |
| 400 Bad Request | Validation Error | Missing required query or path parameter (e.g. missing ?q= in search). |
| 404 Not Found | Resource Missing | Specified slug, season number, or route does not exist. |
| 502 Bad Gateway | Upstream Error | Failed connection or invalid JSON response from upstream streaming host. |
| 504 Gateway Timeout | Upstream Timeout | Upstream host took longer than 15,000ms to answer. |
Pagination & Infinite Scroll Guide
Learn how to load subsequent pages, implement infinite scroll (like the original site), and batch retrieve thousands of movies and TV shows.
https://z2.idlixku.com/ website, when you scroll down to browse movies, series, or genres, the frontend automatically requests subsequent pages in the background using query parameters ?page=2, ?page=3, etc. You can implement the exact same seamless experience in your own client application using our standardized pagination object.
1. Query Parameters for Pagination
All catalog endpoints (/api/v1/movies, /api/v1/series, /api/v1/browse, and dedicated category displays) accept these parameters:
| Parameter | Type | Default | Allowed Range | Description |
|---|---|---|---|---|
| page optional | number | 1 |
1 to totalPages |
Target page number to retrieve. Increment this value as the user scrolls down. |
| limit optional | number | 24 |
1 to 50 |
Number of records per page. Set up to 50 to fetch larger batches in a single request. |
| sort optional | string | latest |
latest, popular, rating |
Sort order of items across all paginated records. |
2. Understanding the Pagination Response Object
Every paginated response includes this standardized object at the root of the JSON payload:
| Field | Type | Example | Usage in Client Code |
|---|---|---|---|
| page | number | 1 |
Current active page index. |
| limit | number | 24 |
Items returned in this response batch. |
| total | number | 7693 |
Total count of matching items across the entire library. |
| totalPages | number | 321 |
Total number of pages available (Math.ceil(total / limit)). |
| hasNextPage | boolean | true |
Primary condition for Infinite Scroll. If true, continue fetching when the user scrolls down; if false, display an "End of catalog" notice. |
| hasPrevPage | boolean | false |
Indicates whether earlier pages exist (useful for numbered page navigation buttons). |
3. Client Implementation Snippets
// Infinite Scroll implementation with Vanilla JavaScript
let currentPage = 1;
let isFetching = false;
let hasMore = true;
let allMovies = [];
async function loadNextPage() {
if (isFetching || !hasMore) return;
isFetching = true;
try {
const res = await fetch(`http://localhost:3000/api/v1/movies?page=${currentPage}&limit=24&sort=popular`);
const json = await res.json();
// Append new items to existing list
allMovies = [...allMovies, ...json.data];
renderMovies(allMovies);
// Update pagination state
hasMore = json.pagination.hasNextPage;
currentPage++;
} catch (err) {
console.error('Failed to load page:', err);
} finally {
isFetching = false;
}
}
// Trigger next page when scrolling within 300px of page bottom
window.addEventListener('scroll', () => {
const { scrollTop, scrollHeight, clientHeight } = document.documentElement;
if (scrollTop + clientHeight >= scrollHeight - 300) {
loadNextPage();
}
});
// Initial load
loadNextPage();
Telegram Bot Notifier untuk Film Baru
Layanan bot Telegram otomatis yang memantau rilis film bioskop baru di IDLIX dan mengirim notifikasi lengkap dengan poster dan link streaming langsung ke channel atau grup pribadimu.
Proxy/.env lalu isi variabel:
1.
TELEGRAM_BOT_TOKEN=... (Dapatkan token dari @BotFather di Telegram)
2.
TELEGRAM_CHAT_ID=... (ID user atau ID channel kamu dari @userinfobot)
3.
ENABLE_TELEGRAM_NOTIFIER=true (Aktifkan scheduler otomatis berkala)
Memeriksa status bot Telegram, scheduler otomatis, interval pengecekan, dan total film yang telah disiarkan.
Mengirim notifikasi tes format HTML langsung ke akun atau channel Telegram untuk memastikan bot token dan chat ID berfungsi.
Memindai film terbaru dari IDLIX secara manual dan langsung menyiarkannya ke Telegram tanpa menunggu jadwal otomatis.
System Endpoints
Health inspection and service directory endpoints.
Check proxy server health, uptime in seconds, and configured upstream target.
curl -X GET "http://localhost:3000/health" \
-H "Accept: application/json"
Discover the API index catalog and all available routes in machine-readable JSON format.
curl -X GET "http://localhost:3000/api/v1" \
-H "Accept: application/json"
Homepage Modules
Access the curated featured carousel and categorised content modules.
Retrieves top featured carousel items and section lists (Recently Added Movies, TV Series, and Latest Episodes).
curl -X GET "http://localhost:3000/api/v1/homepage" \
-H "Accept: application/json"
Movie Endpoints
Search, filter, inspect details, and fetch recommendations for full-length movies.
Get paginated movies with optional multi-facet filtering (genre, year, country, quality, sort).
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| page optional | number | 1 |
Page number for pagination. |
| limit optional | number | 24 |
Number of movie records to retrieve per page. |
| genre optional | string | - |
Filter by genre slug (e.g. action, horror, comedy). |
| year optional | string | - |
Filter by 4-digit release year (e.g. 2024, 2023). |
| country optional | string | - |
Filter by ISO 3166-1 country code (e.g. US, KR, JP, ID). |
| quality optional | string | - |
Filter by video resolution (e.g. 4K, BLU-RAY, HD, WEB-DL). |
| sort optional | string | latest |
Sorting order: latest, popular, or rating. |
curl -X GET "http://localhost:3000/api/v1/movies?page=1&limit=10&genre=action&year=2024&sort=popular" \
-H "Accept: application/json"
Retrieve all valid genres, country codes, years, and video qualities applicable for movie search filters.
curl -X GET "http://localhost:3000/api/v1/movies/filter-options" \
-H "Accept: application/json"
Get complete movie metadata including cast, director profile, trailer URL, backdrop gallery, and TMDB IDs.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Unique slug of the movie (e.g. the-odyssey-2026). |
curl -X GET "http://localhost:3000/api/v1/movies/the-odyssey-2026" \
-H "Accept: application/json"
All-in-one streaming resolver. Automatically extracts the movie internal UUID, handles the gate countdown, claims the session, and returns the direct video stream URL (.m3u8), multi-language subtitles (.vtt), quality, duration, and expiration timestamp. Results are cached until expiration.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Target movie slug identifier (e.g. the-odyssey-2026). |
curl -X GET "http://localhost:3000/api/v1/movies/the-odyssey-2026/stream" \
-H "Accept: application/json"
TV Series Endpoints
Query television series, season rosters, individual episodes, and recommendations.
List TV series with pagination and filter criteria (genre, year, country, sort).
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| page optional | number | 1 |
Current pagination page number. |
| limit optional | number | 24 |
Record limit per page. |
| genre optional | string | - |
Filter by TV series genre slug (e.g. drama, animation). |
| year optional | string | - |
Filter by first air date year. |
| country optional | string | - |
Country of origin code (e.g. US, KR). |
| sort optional | string | latest |
Sort by latest, popular, or rating. |
curl -X GET "http://localhost:3000/api/v1/series?page=1&limit=10&genre=drama&sort=popular" \
-H "Accept: application/json"
Retrieve filter parameters applicable specifically to TV series catalogs.
curl -X GET "http://localhost:3000/api/v1/series/filter-options" \
-H "Accept: application/json"
Get comprehensive TV series metadata, creators, broadcast networks, cast members, and seasons roster.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Unique slug of the series (e.g. american-dad-2005). |
curl -X GET "http://localhost:3000/api/v1/series/american-dad-2005" \
-H "Accept: application/json"
Get the complete episode directory, air dates, runtime, still poster images, and overview for a specific season.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Unique slug of the series. |
| seasonNumber | number | required | Index number of the season (e.g. 1, 2). |
curl -X GET "http://localhost:3000/api/v1/series/american-dad-2005/season/1" \
-H "Accept: application/json"
Get specific episode information including air date, runtime in minutes, still images, and episode overview.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Series slug identifier. |
| seasonNumber | number | required | Season number. |
| episodeNumber | number | required | Episode number. |
curl -X GET "http://localhost:3000/api/v1/series/american-dad-2005/season/1/episode/1" \
-H "Accept: application/json"
All-in-one television episode streaming resolver. Resolves episode details to obtain internal UUID, handles gate countdown, claims the session, and returns the direct video stream URL (.m3u8), multi-language subtitles (.vtt), quality, runtime duration, and expiration timestamp. Results are cached until expiration.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Series slug identifier (e.g. american-dad-2005). |
| seasonNumber | number | required | Target season number (e.g. 1). |
| episodeNumber | number | required | Target episode number within the season (e.g. 1). |
curl -X GET "http://localhost:3000/api/v1/series/american-dad-2005/season/1/episode/1/stream" \
-H "Accept: application/json"
Search Endpoints
Search through movies and TV series by title, or inspect trending search queries.
Perform search across titles, synopsis, and keywords. Supports filtering by content type.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search keyword string (e.g. batman, avatar). |
| type | string | optional | Filter results strictly to movie or series. |
curl -X GET "http://localhost:3000/api/v1/search?q=batman" \
-H "Accept: application/json"
Get current trending search terms and most visited movie and series titles.
curl -X GET "http://localhost:3000/api/v1/search/trending" \
-H "Accept: application/json"
Browse & Category Endpoints
Unified multi-filter catalog search and dedicated endpoints to list and display movies and TV series by genre, country, release year, streaming network, and language.
Search and browse the unified catalog across both movies and TV series. Filter by genre, origin country, release year, streaming network, or original audio language.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| genre | string | - | Filter by genre slug (e.g. action, horror, drama). |
| country | string | - | Filter by origin country code (e.g. KR, JP, US, ID). |
| year | number | - | Filter by release calendar year (e.g. 2026, 2025). |
| network | string | - | Filter by streaming network slug (e.g. netflix, hbo, disney-plus). |
| language | string | - | Filter by original audio language code (e.g. ko, ja, en, id). |
| sort | string | latest | Sort results: latest, popular, or rating. |
| page | number | 1 | Pagination page number. |
| limit | number | 24 | Items per page. |
curl -X GET "http://localhost:3000/api/v1/browse?genre=action&sort=popular&page=1&limit=10" \
-H "Accept: application/json"
List all content genres with id, TMDB id, display name, and slug. (Also accessible via alias /api/v1/genres).
curl -X GET "http://localhost:3000/api/v1/browse/genres" \
-H "Accept: application/json"
Display all movies and TV series under a specific genre classification (e.g. action, horror, comedy, romance). (Also accessible via /api/v1/genres/:slug).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Target genre slug identifier (e.g. action, horror, drama). |
curl -X GET "http://localhost:3000/api/v1/browse/genres/action?page=1&limit=10&sort=popular" \
-H "Accept: application/json"
List all country origin classifications with ISO country code and English country name.
curl -X GET "http://localhost:3000/api/v1/browse/countries" \
-H "Accept: application/json"
Display all movies and TV series originating from a specific country (e.g. KR for Korean Drama / K-Movie, JP for Anime, ID for Indonesia, US for Hollywood).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| code | string | required | Two-letter country code (e.g. KR, JP, US, ID). |
curl -X GET "http://localhost:3000/api/v1/browse/countries/KR?page=1&limit=10&sort=popular" \
-H "Accept: application/json"
List all available release years represented in the streaming library.
curl -X GET "http://localhost:3000/api/v1/browse/years" \
-H "Accept: application/json"
Display all movies and TV series released in a specific calendar year (e.g. 2026, 2025, 2024).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| year | number | required | Release year (e.g. 2026, 2025). |
curl -X GET "http://localhost:3000/api/v1/browse/years/2026?page=1&limit=10&sort=popular" \
-H "Accept: application/json"
List all television broadcast networks and streaming providers (HBO, Netflix, Disney+, Apple TV+, etc.).
curl -X GET "http://localhost:3000/api/v1/browse/networks" \
-H "Accept: application/json"
Display all TV series and movies produced or distributed by a specific streaming network (e.g. netflix, hbo, disney-plus, apple-tv).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Streaming network slug (e.g. netflix, hbo, disney-plus). |
curl -X GET "http://localhost:3000/api/v1/browse/networks/netflix?page=1&limit=10&sort=popular" \
-H "Accept: application/json"
List all available original audio language classifications in the streaming library.
curl -X GET "http://localhost:3000/api/v1/browse/languages" \
-H "Accept: application/json"
Display all titles available in a specific original audio language (e.g. ko for Korean, ja for Japanese, id for Indonesian, en for English).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| code | string | required | Two-letter language code (e.g. ko, ja, id, en). |
curl -X GET "http://localhost:3000/api/v1/browse/languages/ko?page=1&limit=10&sort=popular" \
-H "Accept: application/json"
Franchise & Universe Collections
Access curated cinematic universes (MCU, Star Wars, Harry Potter, Monsterverse).
List all curated franchises and universes with posters, banners, and title counts.
curl -X GET "http://localhost:3000/api/v1/collections" \
-H "Accept: application/json"
Get specific collection structure, chronology sections, phases, and included movie and series titles.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Collection slug identifier (e.g. marvel-cinematic-universe). |
curl -X GET "http://localhost:3000/api/v1/collections/marvel-cinematic-universe" \
-H "Accept: application/json"
Watch & Stream Endpoints
Proxy playback claims directly to Majorplay streaming backend, bypassing browser CORS restrictions.
Exchange a playback claim token for direct stream URL (.m3u8), subtitle tracks (.vtt), and expiration timestamp.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| claim | string | required | Playback session claim token obtained from upstream session claim. |
| redeemUrl | string | optional | Target redemption URL (defaults to /watch/session/redeem). |
curl -X POST "http://localhost:3000/api/v1/watch/play" \
-H "Content-Type: application/json" \
-d '{"claim": "YOUR_CLAIM_TOKEN"}'
Periksa status autentikasi akun IDLIX upstream aktif, paket akun (Regular 1080p), dan masa berlaku token.
curl -X GET "http://localhost:3000/api/v1/watch/account" \
-H "X-API-Key: YOUR_API_KEY"
Masuk dengan kredensial akun IDLIX kustom untuk membuka resolusi streaming 1080p Full HD secara dinamis.
curl -X POST "http://localhost:3000/api/v1/watch/account/login" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"email":"[email protected]","password":"asyu2424"}'