Miruro Native API

Decrypted, bypassed, and reverse-engineered anime streaming API
v2.0 — Full Data & Pagination
Global Image Proxying: All images (covers, banners, posters) are now automatically proxied via serveproxy.com to prevent ISP blocking and CORS issues.
🔍 Search & Discovery
GET /search
Search anime by name. Returns full metadata per result — title (romaji / english / native), cover art, banner, genres, studios, scores, airing status, and more.
Params: query (required), page=1, per_page=20
Returns: page, perPage, total, hasNextPage, results[] — each with 20+ fields
GET /suggestions NEW
Lightweight search for autocomplete / dropdown. Returns only the essentials: id, title, poster, format, status, year, and episode count. Max 8 results.
Params: query (required)
Returns: suggestions[] — each with: id, title, title_romaji, poster, format, status, year, episodes
GET /spotlight HOT
The ultra-curated "What's Hot" list. Fetches the top 10 anime currently trending and popular across the globe. Perfect for hero banners and home carousels.
GET /filter NEW
Advanced filter / browse. Combine any filters — all params are 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
page / per_pagePagination (default 1 / 20)
📊 Collections (Paginated)
GET /trending
Currently trending anime across the community.
Params: page=1, per_page=20
GET /popular
Most popular anime of all time by total user count.
Params: page=1, per_page=20
GET /upcoming
Most anticipated anime that haven't aired yet.
Params: page=1, per_page=20
GET /recent
Currently airing / this season's anime.
Params: page=1, per_page=20
Try: /recent
GET /schedule
Next episodes airing soon. Each result includes the full anime info plus airingAt (UNIX timestamp), timeUntilAiring (seconds), and next_episode (episode number).
Params: page=1, per_page=20
📖 Anime Details
GET /info/{anilist_id}
Complete anime page — everything you need to build an anime detail page in one request.
Returns all of: title (romaji/english/native), description, coverImage, bannerImage, format, season, seasonYear, episodes, duration, status, averageScore, meanScore, popularity, favourites, genres, tags (with rank), studios, characters (25, with voice actors), staff (25, with roles), relations (sequels/prequels/etc.), recommendations (10), trailer, externalLinks (MAL, official site), streamingEpisodes, stats (score & status distribution), synonyms, siteUrl, idMal, and more.
Try: /info/20 (Naruto) · /info/21 (One Piece)
GET /anime/{id}/characters
Paginated character list. Each character includes name, image, role (MAIN/SUPPORTING), and Japanese voice actors with images.
Params: page=1, per_page=25
GET /anime/{id}/relations
All related media — sequels, prequels, side stories, spin-offs, source material. Each entry has type (SEQUEL/PREQUEL/etc.), format, and basic metadata.
GET /anime/{id}/recommendations
Community recommendations — "if you liked X, you'll like Y". Sorted by highest rating.
Params: page=1, per_page=10
▶️ 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 /episodes/{anilist_id}
Get all available episodes for an anime. Returns episodes from multiple providers (kiwi, arc, zoro, jet, etc.) organized by audio type (sub / dub).
Returns: mappings (cross-reference IDs for AniList, MAL, Kitsu) + providers (episode lists per provider)
{
  "mappings": { "anilistId": 178005, "malId": 56885, ... },
  "providers": {
    "kiwi": {
      "episodes": {
        "sub": [
          {
            "id": "watch/kiwi/178005/sub/animepahe-1",   ← use this strictly
            "number": 1,
            "title": "Episode Title",
            "image": "https://...",
            "airDate": "2026-01-04",
            "duration": 1420,
            "description": "...",
            "filler": false
          }
        ],
        "dub": [ ... ]
      }
    },
    "arc": { ... },
    "zoro": { ... }
  }
}
2 /watch/{provider}/{anilistId}/{category}/{slug} RECOMMENDED
The super simple way to get sources. Just take the direct id from the Step 1 response and use it as the URL. No manual parameters needed!
{
  "streams": [
    { "url": "https://.../master.m3u8", "type": "hls", "quality": "1080p" }
  ],
  "subtitles": [ { "file": "...", "label": "English" } ],
  "intro": { "start": 0, "end": 90 },
  "outro": { "start": 1300, "end": 1420 }
}
DETAILED OPTION:
GET /sources?episodeId=...&provider=...&anilistId=...&category=...
3 Play the stream
Take the streams[0].url from Step 2 and feed it into any HLS-compatible player (Video.js, hls.js, VLC, mpv, etc.). Subtitles are either hard-subbed (kiwi/pahe) or provided in the subtitles array (zoro/arc). Use intro/outro timestamps for skip buttons.