diff --git a/public/docs.html b/public/docs.html new file mode 100644 index 0000000..37f12e7 --- /dev/null +++ b/public/docs.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + MiruroAPI — Swagger UI + + + + + + +
+
+ + + MiruroAPI + + Swagger UI Documentation +
+ +
+ + +
+ + + + + diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..684d0cb --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + M + + + diff --git a/public/index.html b/public/index.html index b1b008b..0e86b56 100644 --- a/public/index.html +++ b/public/index.html @@ -1,206 +1,548 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MiruroAPI — Free Anime Streaming API - - + -
-
- -

MiruroAPI

-
Decrypted, bypassed, and reverse-engineered anime streaming API
-
v1.1.0 — Full Data, Streaming & Pagination
+ + + -
- 16 Endpoints — Powered by AniList GraphQL + Miruro streaming pipe. M3U8 URLs, subtitles, intro/outro timestamps. + +
+
+ + All systems operational
- - -
Search & Discovery
- -
-
GET /api/search?query={name}
-
Full-text anime search with rich metadata — title, cover, genres, studios, scores, airing status. 20+ fields per result.
- Try it +

MiruroAPI

+

Free RESTful API for anime streaming data. 16 endpoints, 12 providers, M3U8 streaming URLs with subtitles and skip timestamps. Powered by AniList GraphQL and Miruro.

+ +
-
-
GET /api/suggestions?query={name} NEW
-
Lightweight autocomplete for dropdowns — id, title, poster, format, status, year. Max 8 results.
- Try it + +
+
+
16
+
API Endpoints
- -
-
GET /api/filter NEW
-
Advanced filter by genre, tag, year, season, format, status, sort. All params optional.
- - - - - - - - - -
ParamValues
genreAction, Romance, Comedy, Drama, Fantasy, Sci-Fi, etc.
tagIsekai, Time Skip, Reincarnation, etc.
year2025, 2024, etc.
seasonWINTER · SPRING · SUMMER · FALL
formatTV · MOVIE · OVA · ONA · SPECIAL
statusRELEASING · FINISHED · NOT_YET_RELEASED · CANCELLED
sortSCORE_DESC · POPULARITY_DESC · TRENDING_DESC · START_DATE_DESC
- Try it +
+
12
+
Providers
- - -
Collections (All Paginated)
- -
-
GET /api/trending
-
Currently trending anime across the community.
- Try it +
+
5000+
+
Anime Indexed
- -
-
GET /api/popular
-
Most popular anime of all time by total user count.
- Try it -
- -
-
GET /api/upcoming
-
Most anticipated anime that haven't aired yet.
- Try it -
- -
-
GET /api/recent
-
Currently airing / this season's anime.
- Try it -
- -
-
GET /api/spotlight HOT
-
Top 10 trending + popular anime. Perfect for hero banners.
- Try it -
- -
-
GET /api/schedule
-
Upcoming episodes with UNIX timestamps and full anime metadata.
- Try it -
- - -
Anime Details
- -
-
GET /api/info/{anilist_id}
-
Complete anime page — everything AniList has to offer. Characters (25), staff, relations, recommendations, trailer, stats, external links.
- Try it (One Piece) -
- -
-
GET /api/anime/{id}/characters
-
Paginated character list with Japanese voice actors, images, roles.
- Try it (Naruto) -
- -
-
GET /api/anime/{id}/relations
-
Sequels, prequels, side stories, spin-offs, source material.
- Try it -
- -
-
GET /api/anime/{id}/recommendations
-
Community recommendations sorted by highest rating.
- Try it -
- - -
Streaming (3-Step Flow)
- -
- How streaming works: To get a video URL, follow these 3 steps in order. Each step's output feeds into the next. -
- -
-
1GET /api/episodes/{anilist_id}
-
Get all episodes from multiple providers (kiwi, bee, bonk, ally, moo, etc.) organized by sub/dub. Returns episode IDs for Step 2.
-
{
-  "providers": {
-    "kiwi": { "episodes": { "sub": [{ "id": "watch/kiwi/20/sub/animepahe-1", "number": 1, ... }] } },
-    "bee": { ... },
-    "bonk": { ... }
-  }
-}
- Try it (Naruto) -
- -
-
2 /api/watch/{provider}/{anilistId}/{category}/{slug} RECOMMENDED
-
Take the id from Step 1 and use it as the URL. Returns M3U8 streams, subtitles, intro/outro timestamps.
-
{
-  "streams": [
-    { "url": "https://.../master.m3u8", "type": "hls", "quality": "1080p" }
-  ],
-  "subtitles": [ { "file": "...", "label": "English" } ],
-  "intro": { "start": 0, "end": 90 },
-  "outro": { "start": 1300, "end": 1420 }
-}
- Try it -
- -
-
3 Play the stream
-
Feed streams[0].url into any HLS player (Video.js, hls.js, VLC, mpv). Use intro/outro timestamps for skip buttons.
-
- - + + +
+

Streaming in 3 Steps

+

Get M3U8 streaming URLs for any anime episode in 3 simple API calls.

+ +
+
+

Get Episodes

+

Fetch all episodes from multiple providers

+ GET /api/episodes/{anilistId} +
+
+

Get Sources

+

Get M3U8 URL from episode ID

+ GET /api/watch/{provider}/{id}/{cat}/{slug} +
+
+

Play

+

Feed M3U8 URL to any HLS player

+ hls.js / Video.js / VLC / mpv +
+
+
+ + +
+

Search & Discovery

+

Full-text search, autocomplete, and advanced filtering powered by AniList GraphQL.

+ +
+
+ GET +
/api/search?query={name}
+
Full-text anime search with 20+ fields per result. Paginated.
+
+
+ GET +
/api/suggestions?query={name}
+
Lightweight autocomplete for dropdowns. Max 8 results.
+
+
+ GET +
/api/filter?genre=Action&format=TV
+
Advanced filter by genre, tag, year, season, format, status, sort.
+
+
+
+ + +
+

Collections

+

Browse trending, popular, upcoming, and currently airing anime. All paginated.

+ +
+
+ GET +
/api/trending
+
Currently trending anime across the community.
+
+
+ GET +
/api/popular
+
Most popular anime of all time by user count.
+
+
+ GET +
/api/upcoming
+
Most anticipated anime that haven't aired yet.
+
+
+ GET +
/api/recent
+
Currently airing / this season's anime.
+
+
+ GET +
/api/spotlight
+
Top 10 trending + popular. Perfect for hero banners.
+
+
+ GET +
/api/schedule
+
Upcoming episodes with UNIX timestamps.
+
+
+
+ + +
+

Anime Details

+

Complete anime metadata — characters, staff, relations, recommendations, trailer, stats.

+ +
+
+ GET +
/api/info/{anilistId}
+
Everything AniList has to offer. 25 characters, staff, relations, recommendations, trailer, stats.
+
+
+ GET +
/api/anime/{id}/characters
+
Paginated characters with Japanese voice actors.
+
+
+ GET +
/api/anime/{id}/relations
+
Sequels, prequels, side stories, spin-offs.
+
+
+ GET +
/api/anime/{id}/recommendations
+
Community recommendations sorted by rating.
+
+
+
+ + +
+

Streaming Providers

+

12 providers with different strengths — sub, dub, download, skip times, thumbnails.

+ +
+
kiwi
+
pewe
+
bee
+
bonk
+
bun
+
ally
+
nun
+
twin
+
cog
+
moo
+
hop
+
telli
+
+
+ + +
+

Quick Start

+

Get started in seconds. No API key required.

+ +
+
JavaScript — Fetch search results
+
const res = await fetch("https://mirurotvapi.vercel.app/api/search?query=naruto");
+const { success, results } = await res.json();
+console.log(results.total); // 5000+
+console.log(results.results[0].title.romaji); // "NARUTO"
+
+ +
+
JavaScript — Get streaming sources
+
// Step 1: Get episodes
+const eps = await fetch("https://mirurotvapi.vercel.app/api/episodes/20");
+const { results } = await eps.json();
+const firstEp = results.providers.kiwi.episodes.sub[0];
+
+// Step 2: Get M3U8 URL
+const stream = await fetch(`https://mirurotvapi.vercel.app${firstEp.id}`);
+const { results: sources } = await stream.json();
+console.log(sources.streams[0].url); // "https://.../master.m3u8"
+
+ +
+
cURL — Quick test
+
curl "https://mirurotvapi.vercel.app/api/search?query=one+piece&per_page=3"
+
+
+ + + + diff --git a/public/share.svg b/public/share.svg new file mode 100644 index 0000000..4507d2e --- /dev/null +++ b/public/share.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + MiruroAPI + Free Anime Streaming API + AniList GraphQL + Miruro Streaming Providers + M3U8 + + 16 Endpoints + + 12 Providers + + M3U8 Streaming + + v1.1.0 + + M + mirurotvapi.vercel.app + diff --git a/server.js b/server.js index a238b0e..3767fb0 100644 --- a/server.js +++ b/server.js @@ -76,31 +76,7 @@ app.use(express.static(path.join(__dirname, "public"), { redirect: false })); // ---- FEATURE: Interactive Swagger UI documentation at /docs ---- app.get("/docs", (req, res) => { - res.send(` - - - - - MiruroAPI — Swagger UI - - - - -
- - - -`); + res.sendFile(path.join(__dirname, "public", "docs.html")); }); // ══════════════════════════════════════════════════════════════