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 M3U8 streaming URLs for any anime episode in 3 simple API calls.
Fetch all episodes from multiple providers
GET /api/episodes/{anilistId}
Get M3U8 URL from episode ID
GET /api/watch/{provider}/{id}/{cat}/{slug}
Feed M3U8 URL to any HLS player
hls.js / Video.js / VLC / mpv
Full-text search, autocomplete, and advanced filtering powered by AniList GraphQL.
Browse trending, popular, upcoming, and currently airing anime. All paginated.
Complete anime metadata — characters, staff, relations, recommendations, trailer, stats.
12 providers with different strengths — sub, dub, download, skip times, thumbnails.
Get started in seconds. No API key required.
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"
// 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 "https://mirurotvapi.vercel.app/api/search?query=one+piece&per_page=3"