{ "openapi": "3.0.3", "info": { "title": "MiruroAPI", "description": "Free RESTful API for anime streaming data. Powered by AniList GraphQL and Miruro streaming providers.", "version": "2.3.0", "contact": { "name": "Shineii86", "url": "https://github.com/Shineii86/MiruroAPI" }, "license": { "name": "MIT" } }, "servers": [ { "url": "https://mirurotvapi.vercel.app", "description": "Production" } ], "tags": [ { "name": "Search", "description": "Search, filter, suggestions" }, { "name": "Collections", "description": "Trending, popular, top, schedule" }, { "name": "Seasonal & Studio", "description": "Seasonal anime, studio filter" }, { "name": "Genres & Tags", "description": "Genre, year, status, format filters" }, { "name": "Character & Staff", "description": "Character/staff details and search" }, { "name": "Anime Details", "description": "Info, characters, relations, recommendations" }, { "name": "Streaming", "description": "Episodes, sources, stream, download" }, { "name": "Utility", "description": "Compare, stats, calendar, timeline" }, { "name": "System", "description": "Health, stats, OpenAPI" } ], "paths": { "/api/search": { "get": { "tags": ["Search"], "summary": "Search anime by name", "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "page", "in": "query", "schema": { "type": "integer", "default": 1 } }, { "name": "per_page", "in": "query", "schema": { "type": "integer", "default": 20, "maximum": 50 } } ] } }, "/api/suggestions": { "get": { "tags": ["Search"], "summary": "Autocomplete suggestions", "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string" } } ] } }, "/api/filter": { "get": { "tags": ["Search"], "summary": "Advanced filter", "parameters": [ { "name": "genre", "in": "query", "schema": { "type": "string" } }, { "name": "tag", "in": "query", "schema": { "type": "string" } }, { "name": "year", "in": "query", "schema": { "type": "integer" } }, { "name": "season", "in": "query", "schema": { "type": "string", "enum": ["WINTER", "SPRING", "SUMMER", "FALL"] } }, { "name": "format", "in": "query", "schema": { "type": "string", "enum": ["TV", "MOVIE", "OVA", "ONA", "SPECIAL"] } }, { "name": "status", "in": "query", "schema": { "type": "string", "enum": ["RELEASING", "FINISHED", "NOT_YET_RELEASED"] } }, { "name": "sort", "in": "query", "schema": { "type": "string", "default": "POPULARITY_DESC" } }, { "name": "page", "in": "query", "schema": { "type": "integer", "default": 1 } }, { "name": "per_page", "in": "query", "schema": { "type": "integer", "default": 20 } } ] } }, "/api/multi-search": { "get": { "tags": ["Search"], "summary": "Multi-parameter search" } }, "/api/trending": { "get": { "tags": ["Collections"], "summary": "Trending anime" } }, "/api/trending/daily": { "get": { "tags": ["Collections"], "summary": "Daily trending anime" } }, "/api/trending/weekly": { "get": { "tags": ["Collections"], "summary": "Weekly trending anime" } }, "/api/popular": { "get": { "tags": ["Collections"], "summary": "Most popular anime" } }, "/api/top": { "get": { "tags": ["Collections"], "summary": "Top anime by score" } }, "/api/upcoming": { "get": { "tags": ["Collections"], "summary": "Upcoming anime" } }, "/api/recent": { "get": { "tags": ["Collections"], "summary": "Recently aired anime" } }, "/api/spotlight": { "get": { "tags": ["Collections"], "summary": "Spotlight/featured anime" } }, "/api/schedule": { "get": { "tags": ["Collections"], "summary": "Airing schedule" } }, "/api/random": { "get": { "tags": ["Collections"], "summary": "Random anime" } }, "/api/upcoming/countdown": { "get": { "tags": ["Collections"], "summary": "Next 10 episodes airing soon" } }, "/api/season/{year}/{season}": { "get": { "tags": ["Seasonal & Studio"], "summary": "Seasonal anime", "parameters": [ { "name": "year", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "season", "in": "path", "required": true, "schema": { "type": "string", "enum": ["WINTER", "SPRING", "SUMMER", "FALL"] } } ] } }, "/api/studio/{name}": { "get": { "tags": ["Seasonal & Studio"], "summary": "Anime by studio", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/genres": { "get": { "tags": ["Genres & Tags"], "summary": "All genres" } }, "/api/tags": { "get": { "tags": ["Genres & Tags"], "summary": "All tags" } }, "/api/genre/{name}": { "get": { "tags": ["Genres & Tags"], "summary": "Anime by genre", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ] } }, "/api/year/{year}": { "get": { "tags": ["Genres & Tags"], "summary": "Anime by year", "parameters": [ { "name": "year", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/status/{status}": { "get": { "tags": ["Genres & Tags"], "summary": "Anime by status", "parameters": [ { "name": "status", "in": "path", "required": true, "schema": { "type": "string", "enum": ["RELEASING", "FINISHED", "NOT_YET_RELEASED"] } } ] } }, "/api/format/{format}": { "get": { "tags": ["Genres & Tags"], "summary": "Anime by format", "parameters": [ { "name": "format", "in": "path", "required": true, "schema": { "type": "string", "enum": ["TV", "MOVIE", "OVA", "ONA", "SPECIAL"] } } ] } }, "/api/character/{id}": { "get": { "tags": ["Character & Staff"], "summary": "Character detail", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/staff/{id}": { "get": { "tags": ["Character & Staff"], "summary": "Staff detail", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/characters": { "get": { "tags": ["Character & Staff"], "summary": "Search characters", "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string" } } ] } }, "/api/staff": { "get": { "tags": ["Character & Staff"], "summary": "Search staff", "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string" } } ] } }, "/api/info/{id}": { "get": { "tags": ["Anime Details"], "summary": "Full anime info", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/anime/{id}/characters": { "get": { "tags": ["Anime Details"], "summary": "Characters", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/anime/{id}/relations": { "get": { "tags": ["Anime Details"], "summary": "Relations", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/anime/{id}/recommendations": { "get": { "tags": ["Anime Details"], "summary": "Recommendations", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/episodes/{id}": { "get": { "tags": ["Streaming"], "summary": "Episode list", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/episodes/{id}/batch": { "get": { "tags": ["Streaming"], "summary": "Batch episode sources", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "provider", "in": "query", "schema": { "type": "string", "default": "kiwi" } }, { "name": "category", "in": "query", "schema": { "type": "string", "default": "sub" } }, { "name": "slugs", "in": "query", "schema": { "type": "string" } } ] } }, "/api/sources": { "get": { "tags": ["Streaming"], "summary": "Streaming sources (detailed)", "parameters": [ { "name": "episodeId", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "provider", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "anilistId", "in": "query", "required": true, "schema": { "type": "integer" } }, { "name": "category", "in": "query", "schema": { "type": "string", "default": "sub" } } ] } }, "/api/stream": { "get": { "tags": ["Streaming"], "summary": "Stream with quality fallback", "parameters": [ { "name": "provider", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "anilistId", "in": "query", "required": true, "schema": { "type": "integer" } }, { "name": "category", "in": "query", "schema": { "type": "string", "default": "sub" } }, { "name": "slug", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "quality", "in": "query", "schema": { "type": "string", "default": "1080p" } } ] } }, "/api/download": { "get": { "tags": ["Streaming"], "summary": "Download URL", "parameters": [ { "name": "provider", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "anilistId", "in": "query", "required": true, "schema": { "type": "integer" } }, { "name": "category", "in": "query", "schema": { "type": "string", "default": "sub" } }, { "name": "slug", "in": "query", "required": true, "schema": { "type": "string" } } ] } }, "/api/watch/{provider}/{anilistId}/{category}/{slug}": { "get": { "tags": ["Streaming"], "summary": "Streaming sources (simple) with subtitles", "description": "Returns streaming sources, subtitles (if available), and best stream with quality fallback", "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "anilistId", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "category", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "slug", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "results": { "type": "object", "properties": { "streams": { "type": "array" }, "download": { "type": "string" }, "subtitles": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "description": "VTT subtitle file URL" }, "label": { "type": "string", "description": "Display name" }, "language": { "type": "string", "description": "Language code" }, "kind": { "type": "string", "description": "subtitles or captions" }, "format": { "type": "string", "description": "vtt format" }, "encoding": { "type": "string", "description": "utf-8" }, "isDefault": { "type": "boolean", "description": "Is default subtitle" } } } }, "bestStream": { "type": "object" } } } } } } } } } } }, "/api/compare/{id1}/{id2}": { "get": { "tags": ["Utility"], "summary": "Compare two anime", "parameters": [ { "name": "id1", "in": "path", "required": true, "schema": { "type": "integer" } }, { "name": "id2", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/stats/genre": { "get": { "tags": ["Utility"], "summary": "Genre statistics" } }, "/api/calendar": { "get": { "tags": ["Utility"], "summary": "Monthly airing calendar", "parameters": [ { "name": "year", "in": "query", "schema": { "type": "integer" } }, { "name": "month", "in": "query", "schema": { "type": "integer" } } ] } }, "/api/timeline/{id}": { "get": { "tags": ["Utility"], "summary": "Anime timeline", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer" } } ] } }, "/api/providers": { "get": { "tags": ["System"], "summary": "Available streaming providers" } }, "/api/health": { "get": { "tags": ["System"], "summary": "Health check" } }, "/api/pipe-health": { "get": { "tags": ["System"], "summary": "Pipe fallback method health check" } }, "/api/stats": { "get": { "tags": ["System"], "summary": "API statistics" } }, "/api/openapi": { "get": { "tags": ["System"], "summary": "OpenAPI spec" } } } }