{
  "status": true,
  "code": 200,
  "creator": "Epann",
  "service": "EpannStream API",
  "version": "1.0.0",
  "endpoint": "/api/v1/endpoints",
  "cached": false,
  "durationMs": 0,
  "timestamp": "2026-09-12T13:43:53.921Z",
  "result": [
    {
      "id": "manhwa",
      "name": "Manhwa / Manga",
      "description": "Scraper komik: populer terbaru, pencarian judul, detail seri lengkap dengan daftar chapter, dan panel gambar per chapter.",
      "baseUrl": "https://manwhaku.my.id",
      "icon": "book-open",
      "tags": [
        "manhwa",
        "manga",
        "comic",
        "reader"
      ],
      "stability": "stable",
      "basePath": "/api/v1/manhwa",
      "file": "manhwa.js",
      "totalEndpoints": 5,
      "endpoints": [
        {
          "key": "manhwa.home",
          "name": "Home",
          "method": "GET",
          "path": "/home",
          "route": "/api/v1/manhwa/home",
          "description": "Daftar komik yang tampil di halaman utama (update terbaru & populer).",
          "group": "Discovery",
          "cache": 180,
          "deprecated": false,
          "params": [],
          "responseShape": {
            "count": "number",
            "data": "[{ title, slug, url, cover, rating, chapter, type }]"
          },
          "exampleUrl": "/api/v1/manhwa/home",
          "hits": {
            "total": 10,
            "cached": 5,
            "failed": 0
          }
        },
        {
          "key": "manhwa.list",
          "name": "List",
          "method": "GET",
          "path": "/list",
          "route": "/api/v1/manhwa/list",
          "description": "Katalog komik dengan pagination.",
          "group": "Discovery",
          "cache": 180,
          "deprecated": false,
          "params": [
            {
              "name": "page",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 1,
              "example": 1,
              "enum": null,
              "description": "Nomor halaman katalog."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/manhwa/list?page=1",
          "hits": {
            "total": 2,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "manhwa.search",
          "name": "Search",
          "method": "GET",
          "path": "/search",
          "route": "/api/v1/manhwa/search",
          "description": "Cari komik berdasarkan judul / keyword.",
          "group": "Discovery",
          "cache": 120,
          "deprecated": false,
          "params": [
            {
              "name": "q",
              "in": "query",
              "type": "string",
              "required": true,
              "default": null,
              "example": "lookism",
              "enum": null,
              "description": "Kata kunci pencarian."
            },
            {
              "name": "page",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 1,
              "example": 1,
              "enum": null,
              "description": "Nomor halaman hasil."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/manhwa/search?q=lookism&page=1",
          "hits": {
            "total": 1,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "manhwa.detail",
          "name": "Detail",
          "method": "GET",
          "path": "/detail/:slug",
          "route": "/api/v1/manhwa/detail/:slug",
          "description": "Detail seri: judul, cover, sinopsis, dan seluruh daftar chapter.",
          "group": "Content",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "slug",
              "in": "path",
              "type": "string",
              "required": true,
              "default": null,
              "example": "lookism",
              "enum": null,
              "description": "Slug seri komik."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/manhwa/detail/lookism",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "manhwa.chapter",
          "name": "Chapter",
          "method": "GET",
          "path": "/chapter/:slug",
          "route": "/api/v1/manhwa/chapter/:slug",
          "description": "Ambil seluruh panel gambar dari satu chapter beserta navigasi prev/next.",
          "group": "Content",
          "cache": 600,
          "deprecated": false,
          "params": [
            {
              "name": "slug",
              "in": "path",
              "type": "string",
              "required": true,
              "default": null,
              "example": "lookism-chapter-623",
              "enum": null,
              "description": "Slug chapter."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/manhwa/chapter/lookism-chapter-623",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        }
      ]
    },
    {
      "id": "dracin",
      "name": "Drama Pendek (WebDracin)",
      "description": "Scraper drama pendek / short drama: daftar platform, daftar drama per platform, pencarian, detail drama, detail episode dengan URL video, dan full detail (dengan sample video).",
      "baseUrl": "https://webdracin.com",
      "icon": "clapperboard",
      "tags": [
        "drama",
        "short-drama",
        "streaming",
        "webdracin"
      ],
      "stability": "beta",
      "basePath": "/api/v1/dracin",
      "file": "drachin.js",
      "totalEndpoints": 8,
      "endpoints": [
        {
          "key": "dracin.platforms",
          "name": "Platforms",
          "method": "GET",
          "path": "/platforms",
          "route": "/api/v1/dracin/platforms",
          "description": "Daftar semua platform drama pendek yang tersedia.",
          "group": "Discovery",
          "cache": 3600,
          "deprecated": false,
          "params": [],
          "responseShape": {
            "data": "[string]"
          },
          "exampleUrl": "/api/v1/dracin/platforms",
          "hits": {
            "total": 1,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "dracin.list",
          "name": "List",
          "method": "GET",
          "path": "/list",
          "route": "/api/v1/dracin/list",
          "description": "Daftar drama terbaru dari halaman utama atau platform tertentu.",
          "group": "Discovery",
          "cache": 180,
          "deprecated": false,
          "params": [
            {
              "name": "platform",
              "in": "query",
              "type": "string",
              "required": false,
              "default": null,
              "example": "dramabox",
              "enum": null,
              "description": "Nama platform (tanpa akhiran \"gratis\"). Kosongkan untuk halaman utama."
            },
            {
              "name": "limit",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 50,
              "example": 20,
              "enum": null,
              "description": "Jumlah maksimal hasil."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/dracin/list?platform=dramabox&limit=20",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "dracin.all-platforms",
          "name": "All Platforms",
          "method": "GET",
          "path": "/all",
          "route": "/api/v1/dracin/all",
          "description": "Scrape semua platform sekaligus (paralel).",
          "group": "Discovery",
          "cache": 600,
          "deprecated": false,
          "params": [
            {
              "name": "limitPerPlatform",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 10,
              "example": 10,
              "enum": null,
              "description": "Jumlah maksimal drama per platform."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/dracin/all?limitPerPlatform=10",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "dracin.search",
          "name": "Search",
          "method": "GET",
          "path": "/search",
          "route": "/api/v1/dracin/search",
          "description": "Cari drama berdasarkan judul.",
          "group": "Discovery",
          "cache": 120,
          "deprecated": false,
          "params": [
            {
              "name": "q",
              "in": "query",
              "type": "string",
              "required": true,
              "default": null,
              "example": "drama cinta",
              "enum": null,
              "description": "Kata kunci pencarian."
            },
            {
              "name": "limit",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 50,
              "example": 30,
              "enum": null,
              "description": "Jumlah maksimal hasil."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/dracin/search?q=drama%20cinta&limit=30",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "dracin.detail",
          "name": "Detail",
          "method": "GET",
          "path": "/detail/:slug",
          "route": "/api/v1/dracin/detail/:slug",
          "description": "Detail drama dari halaman statis (title, sinopsis, cover, jumlah episode, watch URL).",
          "group": "Content",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "slug",
              "in": "path",
              "type": "string",
              "required": true,
              "default": null,
              "example": "drama-cinta",
              "enum": null,
              "description": "Slug drama."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/dracin/detail/drama-cinta",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "dracin.watch-detail",
          "name": "Watch Detail",
          "method": "GET",
          "path": "/watch/:slug",
          "route": "/api/v1/dracin/watch/:slug",
          "description": "Detail drama lengkap termasuk daftar episode dengan metadata dari RSC payload.",
          "group": "Content",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "slug",
              "in": "path",
              "type": "string",
              "required": true,
              "default": null,
              "example": "drama-cinta",
              "enum": null,
              "description": "Slug drama dari URL /watch/."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/dracin/watch/drama-cinta",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "dracin.episode",
          "name": "Episode",
          "method": "GET",
          "path": "/episode",
          "route": "/api/v1/dracin/episode",
          "description": "Ambil URL streaming untuk satu episode.",
          "group": "Content",
          "cache": 600,
          "deprecated": false,
          "params": [
            {
              "name": "dramaId",
              "in": "query",
              "type": "string",
              "required": true,
              "default": null,
              "example": "abc123",
              "enum": null,
              "description": "ID drama dari watch detail."
            },
            {
              "name": "ep",
              "in": "query",
              "type": "number",
              "required": true,
              "default": null,
              "example": 1,
              "enum": null,
              "description": "Nomor episode."
            },
            {
              "name": "eid",
              "in": "query",
              "type": "string",
              "required": true,
              "default": null,
              "example": "ep123",
              "enum": null,
              "description": "ID episode dari watch detail."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/dracin/episode?dramaId=abc123&ep=1&eid=ep123",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "dracin.full-detail",
          "name": "Full Detail",
          "method": "GET",
          "path": "/full/:slug",
          "route": "/api/v1/dracin/full/:slug",
          "description": "Detail lengkap + sample video URL untuk beberapa episode pertama.",
          "group": "Content",
          "cache": 600,
          "deprecated": false,
          "params": [
            {
              "name": "slug",
              "in": "path",
              "type": "string",
              "required": true,
              "default": null,
              "example": "drama-cinta",
              "enum": null,
              "description": "Slug drama."
            },
            {
              "name": "eps",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 3,
              "example": 3,
              "enum": null,
              "description": "Jumlah episode sample yang diambil videonya."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/dracin/full/drama-cinta?eps=3",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        }
      ]
    },
    {
      "id": "idlix",
      "name": "IDLIX Streaming",
      "description": "Scraper film bioskop, series TV, drama pendek & shorts dari IDLIX dengan resolusi direct HLS m3u8 stream link dan multi-bahasa subtitle.",
      "baseUrl": "https://z2.idlixku.com",
      "icon": "video",
      "tags": [
        "film",
        "series",
        "shorts",
        "streaming",
        "idlix",
        "m3u8"
      ],
      "stability": "stable",
      "basePath": "/api/v1/idlix",
      "file": "idlix.js",
      "totalEndpoints": 4,
      "endpoints": [
        {
          "key": "idlix.homepage",
          "name": "Homepage",
          "method": "GET",
          "path": "/home",
          "route": "/api/v1/idlix/home",
          "description": "Daftar kurasi film & series dari beranda IDLIX (Trending, Popular, Latest update).",
          "group": "Discovery",
          "cache": 180,
          "deprecated": false,
          "params": [],
          "responseShape": null,
          "exampleUrl": "/api/v1/idlix/home",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "idlix.search",
          "name": "Search",
          "method": "GET",
          "path": "/search",
          "route": "/api/v1/idlix/search",
          "description": "Pencarian film, serial, dan drama pendek.",
          "group": "Discovery",
          "cache": 120,
          "deprecated": false,
          "params": [
            {
              "name": "q",
              "in": "query",
              "type": "string",
              "required": true,
              "default": null,
              "example": "avatar",
              "enum": null,
              "description": "Kata kunci pencarian."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/idlix/search?q=avatar",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "idlix.detail-stream",
          "name": "Detail & Stream",
          "method": "GET",
          "path": "/detail",
          "route": "/api/v1/idlix/detail",
          "description": "Detail komprehensif film atau series beserta direct streaming URL (HLS m3u8) & subtitle.",
          "group": "Content",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "url",
              "in": "query",
              "type": "string",
              "required": true,
              "default": null,
              "example": "libang-libu-2026",
              "enum": null,
              "description": "Slug atau URL target (contoh: avatar-the-way-of-water-2022 atau libang-libu-2026)."
            },
            {
              "name": "season",
              "in": "query",
              "type": "number",
              "required": false,
              "default": null,
              "example": 1,
              "enum": null,
              "description": "Nomor season (khusus serial)."
            },
            {
              "name": "episode",
              "in": "query",
              "type": "number",
              "required": false,
              "default": null,
              "example": 1,
              "enum": null,
              "description": "Nomor episode (khusus serial)."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/idlix/detail?url=libang-libu-2026&season=1&episode=1",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "idlix.shorts",
          "name": "Shorts",
          "method": "GET",
          "path": "/shorts",
          "route": "/api/v1/idlix/shorts",
          "description": "Koleksi video shorts & short drama dari IDLIX.",
          "group": "Discovery",
          "cache": 300,
          "deprecated": false,
          "params": [],
          "responseShape": null,
          "exampleUrl": "/api/v1/idlix/shorts",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        }
      ]
    },
    {
      "id": "tmdb",
      "name": "Film & TV (TMDB + LK21)",
      "description": "Scraper berbasis TMDB API untuk film & TV Series dengan embed streaming dari vidsrc.me, embed.su, dan vidsrc.pro.",
      "baseUrl": "https://api.themoviedb.org/3",
      "icon": "film",
      "tags": [
        "film",
        "tv",
        "movie",
        "streaming",
        "tmdb",
        "embed"
      ],
      "stability": "stable",
      "basePath": "/api/v1/tmdb",
      "file": "tmdb.js",
      "totalEndpoints": 12,
      "endpoints": [
        {
          "key": "tmdb.search",
          "name": "Search",
          "method": "GET",
          "path": "/search",
          "route": "/api/v1/tmdb/search",
          "description": "Cari film atau TV Series berdasarkan judul.",
          "group": "Discovery",
          "cache": 120,
          "deprecated": false,
          "params": [
            {
              "name": "q",
              "in": "query",
              "type": "string",
              "required": true,
              "default": null,
              "example": "avengers",
              "enum": null,
              "description": "Kata kunci pencarian."
            },
            {
              "name": "page",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 1,
              "example": 1,
              "enum": null,
              "description": "Halaman hasil."
            }
          ],
          "responseShape": {
            "total": "number",
            "data": "[{ id, title, year, type, rating, poster, overview }]"
          },
          "exampleUrl": "/api/v1/tmdb/search?q=avengers&page=1",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.detail",
          "name": "Detail",
          "method": "GET",
          "path": "/detail/:id",
          "route": "/api/v1/tmdb/detail/:id",
          "description": "Detail lengkap film/TV: judul, sinopsis, genre, cast, crew, server streaming.",
          "group": "Content",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "id",
              "in": "path",
              "type": "number",
              "required": true,
              "default": null,
              "example": 299536,
              "enum": null,
              "description": "ID TMDB."
            },
            {
              "name": "type",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "movie",
              "example": "movie",
              "enum": [
                "movie",
                "tv"
              ],
              "description": "Tipe konten."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/detail/299536?type=movie",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.stream-url",
          "name": "Stream URL",
          "method": "GET",
          "path": "/stream",
          "route": "/api/v1/tmdb/stream",
          "description": "Ambil URL embed streaming dari server pilihan.",
          "group": "Content",
          "cache": 600,
          "deprecated": false,
          "params": [
            {
              "name": "id",
              "in": "query",
              "type": "number",
              "required": true,
              "default": null,
              "example": 299536,
              "enum": null,
              "description": "ID TMDB."
            },
            {
              "name": "type",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "movie",
              "example": "movie",
              "enum": [
                "movie",
                "tv"
              ],
              "description": "Tipe konten."
            },
            {
              "name": "server",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "vidsrc",
              "example": "vidsrc",
              "enum": [
                "vidsrc",
                "embedsu",
                "vidsrcpro"
              ],
              "description": "Server streaming."
            },
            {
              "name": "season",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 1,
              "example": 1,
              "enum": null,
              "description": "Nomor season (TV)."
            },
            {
              "name": "episode",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 1,
              "example": 1,
              "enum": null,
              "description": "Nomor episode (TV)."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/stream?id=299536&type=movie&server=vidsrc&season=1&episode=1",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.trending",
          "name": "Trending",
          "method": "GET",
          "path": "/trending",
          "route": "/api/v1/tmdb/trending",
          "description": "Film & TV trending dari TMDB.",
          "group": "Discovery",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "window",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "week",
              "example": "week",
              "enum": [
                "day",
                "week"
              ],
              "description": "Jendela waktu."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/trending?window=week",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.trending-movies",
          "name": "Trending Movies",
          "method": "GET",
          "path": "/trending/movies",
          "route": "/api/v1/tmdb/trending/movies",
          "description": "Film trending.",
          "group": "Discovery",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "window",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "week",
              "example": "week",
              "enum": [
                "day",
                "week"
              ],
              "description": "Jendela waktu."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/trending/movies?window=week",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.trending-tv",
          "name": "Trending TV",
          "method": "GET",
          "path": "/trending/tv",
          "route": "/api/v1/tmdb/trending/tv",
          "description": "TV Series trending.",
          "group": "Discovery",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "window",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "week",
              "example": "week",
              "enum": [
                "day",
                "week"
              ],
              "description": "Jendela waktu."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/trending/tv?window=week",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.recommendations",
          "name": "Recommendations",
          "method": "GET",
          "path": "/recommendations/:id",
          "route": "/api/v1/tmdb/recommendations/:id",
          "description": "Rekomendasi film/TV serupa.",
          "group": "Content",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "id",
              "in": "path",
              "type": "number",
              "required": true,
              "default": null,
              "example": 299536,
              "enum": null,
              "description": "ID TMDB."
            },
            {
              "name": "type",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "movie",
              "example": "movie",
              "enum": [
                "movie",
                "tv"
              ],
              "description": "Tipe konten."
            },
            {
              "name": "limit",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 12,
              "example": 12,
              "enum": null,
              "description": "Maksimal hasil."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/recommendations/299536?type=movie&limit=12",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.top-rated",
          "name": "Top Rated",
          "method": "GET",
          "path": "/top-rated",
          "route": "/api/v1/tmdb/top-rated",
          "description": "Film dengan rating tertinggi.",
          "group": "Discovery",
          "cache": 600,
          "deprecated": false,
          "params": [
            {
              "name": "limit",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 20,
              "example": 20,
              "enum": null,
              "description": "Maksimal hasil."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/top-rated?limit=20",
          "hits": {
            "total": 1,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.popular",
          "name": "Popular",
          "method": "GET",
          "path": "/popular",
          "route": "/api/v1/tmdb/popular",
          "description": "Film populer saat ini.",
          "group": "Discovery",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "limit",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 20,
              "example": 20,
              "enum": null,
              "description": "Maksimal hasil."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/popular?limit=20",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.discover",
          "name": "Discover",
          "method": "GET",
          "path": "/discover/:type",
          "route": "/api/v1/tmdb/discover/:type",
          "description": "Cari konten dengan filter canggih: genre, tahun, rating minim, pengurutan.",
          "group": "Discovery",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "type",
              "in": "path",
              "type": "string",
              "required": true,
              "default": null,
              "example": "movie",
              "enum": [
                "movie",
                "tv"
              ],
              "description": "Tipe konten."
            },
            {
              "name": "withGenres",
              "in": "query",
              "type": "number",
              "required": false,
              "default": null,
              "example": 28,
              "enum": null,
              "description": "ID genre TMDB."
            },
            {
              "name": "sortBy",
              "in": "query",
              "type": "string",
              "required": false,
              "default": "popularity.desc",
              "example": "popularity.desc",
              "enum": [
                "popularity.asc",
                "popularity.desc",
                "vote_average.asc",
                "vote_average.desc",
                "release_date.asc",
                "release_date.desc"
              ],
              "description": "Pengurutan."
            },
            {
              "name": "year",
              "in": "query",
              "type": "number",
              "required": false,
              "default": null,
              "example": 2024,
              "enum": null,
              "description": "Filter tahun."
            },
            {
              "name": "ratingGte",
              "in": "query",
              "type": "number",
              "required": false,
              "default": null,
              "example": 7,
              "enum": null,
              "description": "Rating minimum (0-10)."
            },
            {
              "name": "page",
              "in": "query",
              "type": "number",
              "required": false,
              "default": 1,
              "example": 1,
              "enum": null,
              "description": "Halaman."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/discover/movie?withGenres=28&sortBy=popularity.desc&year=2024&ratingGte=7&page=1",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.genres",
          "name": "Genres",
          "method": "GET",
          "path": "/genres",
          "route": "/api/v1/tmdb/genres",
          "description": "Daftar genre film & TV dari TMDB.",
          "group": "Metadata",
          "cache": 3600,
          "deprecated": false,
          "params": [],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/genres",
          "hits": {
            "total": 0,
            "cached": 0,
            "failed": 0
          }
        },
        {
          "key": "tmdb.episode-detail",
          "name": "Episode Detail",
          "method": "GET",
          "path": "/episode/:id/:season/:episode",
          "route": "/api/v1/tmdb/episode/:id/:season/:episode",
          "description": "Detail satu episode TV Series + URL streaming.",
          "group": "Content",
          "cache": 300,
          "deprecated": false,
          "params": [
            {
              "name": "id",
              "in": "path",
              "type": "number",
              "required": true,
              "default": null,
              "example": 1399,
              "enum": null,
              "description": "ID TV Series."
            },
            {
              "name": "season",
              "in": "path",
              "type": "number",
              "required": true,
              "default": null,
              "example": 1,
              "enum": null,
              "description": "Nomor season."
            },
            {
              "name": "episode",
              "in": "path",
              "type": "number",
              "required": true,
              "default": null,
              "example": 1,
              "enum": null,
              "description": "Nomor episode."
            }
          ],
          "responseShape": null,
          "exampleUrl": "/api/v1/tmdb/episode/1399/1/1",
          "hits": {
            "total": 1,
            "cached": 0,
            "failed": 0
          }
        }
      ]
    }
  ]
}