Skip to content

MyAnimeList (Jikan)

MalMeta is the MyAnimeList front-end, backed by the unofficial-but-stable Jikan v4 public API. It surfaces normalized title metadata, anime relations, and — uniquely — per-episode filler/recap flags from Jikan’s /anime/{id}/episodes endpoint.

No API key required.

import { HttpClient, MalMeta, AllmangaProvider } from 'anime-sdk';
const http = new HttpClient();
const meta = new MalMeta(http);
const info = await meta.fetchMediaInfo('mal:anime:1');
console.log(info.streamingEpisodes?.[0].isFiller); // boolean
const allmanga = new AllmangaProvider(http);
const stream = await meta.resolveStream('mal:anime:1', 1, allmanga, 'sub');

MAL integer IDs aren’t globally unique across anime/manga (MAL #1 is both an anime and a manga), so the URN encodes the catalogue kind:

mal:anime:21
mal:manga:13

Legacy bare URNs (mal:21) still resolve — MalMeta probes /anime first and falls back to /manga.

await meta.browse('top', { catalogType: 'ANIME', perPage: 10 });
await meta.browse('popular');
await meta.browse('seasonal', { season: 'FALL', year: 2024 });
FeatureDetails
CataloguesAnime + Manga
Native ID shapemal:anime:<integer> / mal:manga:<integer>
Endpointapi.jikan.moe/v4 (free, keyless)
Rate limit (built-in)55 req/min, with a 3 req/s burst window (matches Jikan’s quota)
Enrichmentsfiller/recap via /anime/{id}/episodes, relations
Browsetop, popular, seasonal