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.
| Param | Values |
| genre | Action, Romance, Comedy, Drama, Fantasy, Sci-Fi, etc. |
| tag | Isekai, Time Skip, Reincarnation, etc. |
| year | 2025, 2024, etc. |
| season | WINTER · SPRING · SUMMER · FALL |
| format | TV · MOVIE · OVA · ONA · SPECIAL |
| status | RELEASING · FINISHED · NOT_YET_RELEASED · CANCELLED |
| sort | SCORE_DESC · POPULARITY_DESC · TRENDING_DESC · START_DATE_DESC |
| page / per_page | Pagination (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
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.
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.