Anivexa Anivexa

Anivexa API

A unified anime streaming aggregator API. Resolve episode lists and stream sources across 12 providers using a single AniList ID, with title and installment checks for fuzzy-search catalogs.

💡 All endpoints are read-only. No authentication required. All responses are JSON with CORS headers included.

Base URL

All requests are made to the root of the server. When running locally:

BASE http://localhost:4000

Replace with your deployed URL when in production. Every response includes Access-Control-Allow-Origin: *.

Providers

Twelve providers are available. They resolve from AniList IDs; fuzzy-search catalogs validate titles and installment markers before selecting a match.

mkissa
MKissa
reanime
Reanime
anikoto
Anikoto
animegg
AnimeGG
animenosub
AnimeNoSub
anizone
AniZone
aniwaves
AniWaves
senshi
Senshi
kaa
KickAssAnime
animedunya
AnimeDunya
animeonsen
AnimeOnsen
anipm
Ani.pm

API Info

GET / Try it ↗

Returns API metadata: version, cache status, list of active providers, and all registered routes.

Response
{
  "name": "Anivexa API 2.3",
  "cache": false,
  "providers": ["mkissa", "reanime", "..."],
  "routes": ["/map/:anilistId", "..."]
}

Map IDs

GET /map/:anilistId Try it ↗

Resolves an AniList ID to its equivalents across other databases (MAL, Kitsu, etc.).

ParameterTypeDescription
:anilistIdintegerAniList media ID
Example — /map/16498
{
  "anilistId": 16498,
  "malId": 16498,
  "kitsuId": 7442
}

Episodes

GET /episodes/:anilistId Try it ↗

Fetches episode lists from all providers in parallel for the given AniList ID. Each provider key contains either its episode data or an error object if unavailable.

ParameterTypeDescription
:anilistIdintegerAniList media ID
Response shape
{
  "reanime": {
    "meta": { "title": "Attack on Titan", "malId": 16498 },
    "episodes": {
      "sub": [
        {
          "id":     "watch/reanime/16498/sub/reanime-1",
          "number": 1,
          "title":  "To You, 2,000 Years in the Future",
          "filler": false,
          "audio":  "sub"
        }
      ],
      "dub": [ "..." ]
    }
  },
  "senshi": { "..." },
}

Episodes (Filtered)

GET /episodes/:provider/:anilistId Try it ↗

Fetch episode data from one or more specific providers. Chain multiple provider names in the path. Use ?map=false to skip the ID map lookup.

ParameterTypeDescription
:providerstringOne or more provider slugs separated by /
:anilistIdintegerAniList media ID
?mapbooleanInclude ID map in response (default: true)
Examples
GET /episodes/reanime/16498
GET /episodes/reanime/senshi/16498
GET /episodes/reanime/senshi/16498?map=false

MKissa

GET /watch/mkissa/:id/sub|dub/mkissa-:ep Try it ↗

Returns stream sources for the given MKissa episode. The episode ID comes directly from the id field in the episodes list response.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number
Response
{
  "anilistId": 16498,
  "episode":   1,
  "audio":     "sub",
  "streams": [
    {
      "url":      "https://...",
      "type":     "hls",
      "server":   "Server Name",
      "referer":  "https://...",
      "priority": 5,
      "isActive": true
    }
  ]
}

Reanime

GET /watch/reanime/:id/sub|dub/reanime-:ep Try it ↗

Resolves stream sources from Reanime using AniList ID confirmation via cover image CDN URLs and detail endpoint matching. Returns decrypted HLS streams.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number
GET /stream/reanime/:id/sub|dub/:ep Try it ↗

Direct stream variant — returns the raw stream response without the watch wrapper. Useful for direct playback.

Anikoto

GET /watch/anikoto/:id/sub|dub/anikoto-:ep Try it ↗

Returns stream sources from Anikoto for the specified episode.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number

AnimeGG

GET /watch/animegg/:id/sub|dub/animegg-:ep Try it ↗

Returns stream sources from AnimeGG for the specified episode.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number

AnimeNoSub

GET /watch/animenosub/:id/sub|dub/animenosub-:ep Try it ↗

Returns stream sources from AnimeNoSub for the specified episode.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number

AniZone

GET /watch/anizone/:id/sub|dub/anizone-:ep Try it ↗

Returns stream sources from AniZone for the specified episode.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number

AniWaves

GET /watch/aniwaves/:id/sub|dub/aniwaves-:ep Try it ↗

Returns AniWaves stream sources for the specified episode, including direct HLS from Vidplay, MyCloud, and BYFMS, DATASV quality MP4 sources, and embed fallbacks.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number

Senshi

GET /watch/senshi/:id/sub|dub/senshi-:ep Try it ↗

Returns stream sources from Senshi. Uses MAL ID directly — no slug resolution. Returns all available sources including HLS, alternate servers, FileMoon embeds, and download links when present.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number
Response
{
  "anilistId":  16498,
  "malId":      16498,
  "episode":    1,
  "audio":      "sub",
  "intro":      { "start": 123, "end": 215 },
  "outro":      { "start": 1435, "end": 1525 },
  "streams": [
    { "url": "https://ninstream.com/.../playlist.m3u8", "type": "hls",   "server": "Senshi",   "priority": 5, "isActive": true  },
    { "url": "https://streamnin.xyz/d/...",              "type": "embed", "server": "StreamNin", "priority": 3, "isActive": false },
    { "url": "https://bysesayeveum.com/e/...",             "type": "embed", "server": "FileMoon",  "priority": 2, "isActive": false }
  ],
  "downloads": [
    { "url": "https://bzzhr.to/...", "label": "Download" }
  ]
}

KickAssAnime

GET /watch/kaa/:id/sub|dub/kaa-:ep Try it ↗

Returns stream sources from KickAssAnime for the specified episode. Streams are served via CatStream (HLS) and require the included Referer header for playback.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number
Response
{
  "anilistId": 21,
  "episode":   1,
  "audio":     "sub",
  "streams": [
    {
      "url":      "https://hls.krussdomi.com/manifest/.../master.m3u8",
      "type":     "hls",
      "server":   "CatStream",
      "headers": { "Referer": "https://krussdomi.com/" },
      "priority": 1,
      "isActive": true
    }
  ]
}

AnimeDunya

GET /watch/animedunya/:id/sub|dub/animedunya-:ep Try it ↗

Returns stream sources from AnimeDunya for the specified episode. Streams are served as direct HLS playlists with multiple subtitle tracks included.

ParameterTypeDescription
:idintegerAniList media ID
sub|dubstringAudio track preference
:epintegerEpisode number
Response
{
  "anilistId": 16498,
  "malId":     16498,
  "episode":   1,
  "audio":     "sub",
  "streams": [
    {
      "url":       "https://fs2c.anime-dunya.com/files/.../master.m3u8",
      "type":      "hls",
      "server":    "AnimeDunya",
      "referer":   "https://anime-dunya.com/",
      "subtitles": [
        { "url": "https://fs2c.anime-dunya.com/.../en.vtt", "label": "EN", "srclang": "en", "default": true }
      ],
      "priority":  5,
      "isActive":  true
    }
  ]
}

AnimeOnsen

GET /watch/animeonsen/:id/sub/animeonsen-:ep Try it ↗

Returns a DASH manifest and subtitle tracks. Apply each returned authorization header to the manifest and media-segment requests.

ParameterTypeDescription
:idintegerAniList media ID
substringAnimeOnsen provides subtitled streams only
:epintegerEpisode number
Response
{
  "anilistId": 16498,
  "episode": 1,
  "audio": "sub",
  "streams": [
    {
      "url": "https://cdn.animeonsen.xyz/video/mp4-dash/.../manifest.mpd",
      "type": "dash",
      "server": "AnimeOnsen",
      "headers": { "Authorization": "Bearer <session-token>" },
      "subtitles": [ { "url": "https://api.animeonsen.xyz/v4/subtitles/..." } ]
    }
  ]
}

Ani.pm

GET /watch/anipm/:id/sub|dub/anipm-:ep Try it ↗

Returns the regular soft-sub HLS source and, when available, a separate hard-sub source. Each stream is labeled with subtitleType.

Response
{
  "anilistId": 178788,
  "episode": 1,
  "audio": "sub",
  "streams": [
    { "url": "https://media.settlar.io/.../master.m3u8", "type": "hls", "server": "Ani.pm", "subtitleType": "softsub" },
    { "url": "https://media.settlar.io/.../master.m3u8", "type": "hls", "server": "Ani.pm", "subtitleType": "hardsub" }
  ]
}