- Full index.html rewrite with AniKotoAPI-style features: * Canvas particle effects (cyan particles) * Scroll-reveal animations (IntersectionObserver) * Animated stat counters (count up on scroll) * Infinite scrolling marquee (8 feature badges) * Live interactive API console (5 presets: Search, Trending, Episodes, Info, Health) * Sidebar endpoint explorer (16 endpoints, multi-language tabs: cURL/JS/Python) * 4 interactive playground cards (Search, Info, Episodes, Trending) * Custom scrollbar, JetBrains Mono font * 4-column grid footer with API/Resources/Legal * Fixed header with scroll-aware glass blur * Ambient orb gradient animations * CTA section with gradient overlay - Added public/404.html (glitch animation error page) - Added public/manifest.json (PWA, theme: #38bdf8) - Added public/robots.txt (Allow /, Disallow /api) - Added public/sitemap.xml (4 URLs) - Added public/tos.html (13 sections) - Added public/privacy.html (8 sections) - Added .env.example, CONTRIBUTING.md, LICENSE, render.yaml, test.js - Added docs/ (5 files: index, endpoints, streaming, examples, architecture) - Updated server.js: clean URL routes (/tos, /privacy), 404.html fallback - Updated package.json: devDependencies nodemon, repository, dev script - All branding: AniKotoAPI → MiruroAPI, cyan color scheme (#38bdf8)
2.5 KiB
MiruroAPI Documentation
Free REST API for anime streaming data. 18 endpoints, 12 providers, M3U8 URLs. No API key required.
Overview
MiruroAPI is a free, open-source REST API that provides anime data by aggregating from AniList GraphQL and Miruro streaming providers. It's built with Node.js and Express, and deployed on Vercel.
Base URL: https://mirurotvapi.vercel.app/api
Quick Start
# Search for anime
curl "https://mirurotvapi.vercel.app/api/search?query=naruto"
# Get anime info
curl "https://mirurotvapi.vercel.app/api/info/20"
# Get episodes
curl "https://mirurotvapi.vercel.app/api/episodes/20"
Live Response — Search:
{
"success": true,
"results": {
"page": 1,
"perPage": 20,
"total": 5000,
"hasNextPage": true,
"results": [
{
"id": 20,
"title": { "romaji": "NARUTO", "english": "Naruto" },
"coverImage": { "large": "https://s4.anilist.co/file/..." },
"format": "TV",
"episodes": 220,
"status": "FINISHED",
"averageScore": 80
}
]
}
}
Features
- 18 Endpoints — Search, info, episodes, streaming, characters, relations, and more
- 12 Streaming Providers — M3U8 URLs with resolution, codec, fansub info
- No API Key — Just make requests, no registration needed
- In-Memory Cache — 1-5 minute TTL for fast responses
- CORS Enabled — Access from any domain
- JSON Responses — Standardized
{success, results}format
Documentation
- API Endpoints Reference — Complete endpoint documentation with real responses
- Streaming Flow Guide — How to get stream URLs step by step
- Code Examples — cURL, JavaScript, Python (all tested and working)
- Architecture — Project structure and design decisions
Response Format
All endpoints return JSON in this format:
{
"success": true,
"results": { ... }
}
Error responses:
{
"success": false,
"message": "Error description"
}
Rate Limiting
Rate limiting is enforced at 100 requests per minute per IP address. The API also uses a 1-5 minute in-memory cache. Repeated requests for the same data will be served from cache.
Disclaimer
This API is for educational purposes only. It fetches data from AniList GraphQL and Miruro streaming providers. We are not affiliated with or endorsed by Miruro. All content belongs to its respective owners.