Jikan logo

Jikan

Jikan

UnknownFreeOpen Sourcemedia

The unofficial MyAnimeList REST API: no API key, no OAuth, no registration. It covers all public data — anime, manga, characters, people, seasonal charts, top lists, genres, producers, recommendations, and reviews. The public instance is capped at 3 req/sec and 60 req/min, served from a default 24-hour cache. It is strictly read-only because it reads MyAnimeList’s public pages and cannot authenticate as a user, so it cannot modify anyone’s list (writes need the official API). Open source (PHP/Laravel) and self-hostable via Docker to lift the shared-instance rate limit.

Use it when

Zero-friction access: no API key, no OAuth, no registration — GET https://api.jikan.moe/v4/anime/1 works right now and returns JSON in five seconds

Watch for

Strictly read-only, forever: it cannot authenticate as a user, so marking as watched, changing scores, and adding/removing list entries are all impossible — those require the official MyAnimeList API

First check

Jikan needs no setup: hit GET https://api.jikan.moe/v4/anime/1 and you get Cowboy Bebop’s full metadata. Common endpoints: /anime?q=KEYWORD to search, /anime/{id} for detail, /anime/{id}/characters for cast, /seasons/now for the current season, /schedules for the airing calendar, /top/anime for rankings, and the /manga family for manga. In production, cache responses by resource ID on your side and keep request frequency under 60 req/min and 3 req/s. For more throughput, self-host with `docker run -d --name jikan-rest -p 8080:8080 -v ./.env:/app/.env jikanme/jikan-rest:latest` and set your own limits. Remember: anything that reads or writes a logged-in user’s own list must use the official MyAnimeList API.

Auth
none
CORS
?
HTTPS
Yes
Signup
None
Protocol
REST
Pricing
free

Uptime · 30-day window

Health history will appear here after the next daily check.
01

About this API

Jikan is the unofficial MyAnimeList REST API; the name comes from the Japanese word for "time." It exists for a simple reason: for years MyAnimeList had no usable public API, so the community built one by reading the site’s public pages and re-serving the result as clean JSON. Today it runs as a PHP/Laravel application, the current version is v4, and the public instance lives at https://api.jikan.moe/v4. Its defining feature is zero friction: no API key, no account, no OAuth, no Authorization header — send a GET and you get JSON. The endpoint surface is broad: /anime and /manga for search and detail, /characters and /people for cast and staff, /seasons/now for the current season, /schedules for each weekday’s lineup, /top/anime for rankings, /genres/anime for genre filtering, /producers for studios, plus /random, /recommendations, and /reviews — covering essentially everything a browse-and-discover product needs to show. Two facts to design around: first, rate limiting. The public instance enforces 3 requests/second and 60 requests/minute simultaneously; both apply, and exceeding either returns HTTP 429. The project is donation-funded via Patreon and expects aggressive client-side caching rather than charging you. Second, freshness. Jikan serves cached data with a 24-hour default cache (CACHE_DEFAULT_EXPIRE=86400, shorter for some endpoints), which is fine for synopses, scores, and rankings but wrong for real-time needs. The most important boundary is read-only: Jikan reads public data and cannot authenticate as a user, so it can never modify anyone’s list — marking as watched, changing scores, and adding or removing entries all require the official MyAnimeList API. Many real apps therefore use both: Jikan for the public catalog and the official API for the per-user list. When throughput outgrows the shared instance, jikan-rest is open source and Dockerized; self-hosting lifts the rate limit without changing client code, but a self-hosted instance is still read-only because it still has no user authentication.

02

What you can build

  • 1Anime/manga browse-and-discover sites: use /anime and /manga for search and detail, /seasons/now for the current season, /schedules for each weekday’s lineup, and /top/anime for rankings — all with zero auth
  • 2Character and staff pages: /characters and /people return character profiles, voice actors, and staff; pair with /anime/{id}/characters to build title-to-cast relationship views
  • 3Data analysis and dataset building: bulk-pull public metadata for score distributions, genre trends, and the like (mind the 60 req/min limit — cache on your side or self-host)
03

Strengths & limitations

Strengths

  • Zero-friction access: no API key, no OAuth, no registration — GET https://api.jikan.moe/v4/anime/1 works right now and returns JSON in five seconds
  • Broad public-data coverage: anime, manga, characters, people, seasons, schedules, top lists, genres, producers, recommendations, and reviews in one place, matching how people actually browse
  • Fully free and open source: the public instance is free, and the code (jikan-me/jikan-rest) is open and Docker-self-hostable, so you scale by running your own copy rather than switching APIs

Limitations

  • Strictly read-only, forever: it cannot authenticate as a user, so marking as watched, changing scores, and adding/removing list entries are all impossible — those require the official MyAnimeList API
  • Cached data lag: the default cache is 24 hours, which is fine for synopses and rankings but wrong for anything needing minute-level real-time accuracy
  • Shared-instance limits are tight: 3 req/sec + 60 req/min, so bulk or high-concurrency work needs client-side caching or self-hosting to avoid 429s
04

Official quickstart

Read the official quickstart at docs.api.jikan.moe.

05

Getting started

Jikan needs no setup: hit GET https://api.jikan.moe/v4/anime/1 and you get Cowboy Bebop’s full metadata. Common endpoints: /anime?q=KEYWORD to search, /anime/{id} for detail, /anime/{id}/characters for cast, /seasons/now for the current season, /schedules for the airing calendar, /top/anime for rankings, and the /manga family for manga. In production, cache responses by resource ID on your side and keep request frequency under 60 req/min and 3 req/s. For more throughput, self-host with `docker run -d --name jikan-rest -p 8080:8080 -v ./.env:/app/.env jikanme/jikan-rest:latest` and set your own limits. Remember: anything that reads or writes a logged-in user’s own list must use the official MyAnimeList API.

06

FAQ

Does Jikan need an API key or registration?+

Neither. The public Jikan instance is free with no API key, no account, and no OAuth — just send GET requests. It is funded by Patreon donations, which is why it rate-limits and caches and asks you to be a considerate consumer.

What is the Jikan rate limit?+

The v4 public instance enforces 3 requests/second and 60 requests/minute simultaneously; both apply, and exceeding either returns HTTP 429. There is no published per-day cap. The v3 limit of 30/min is deprecated. Self-host for more throughput.

Can I modify a user’s anime list with Jikan?+

No. Jikan is strictly read-only and cannot authenticate as a user, so it cannot change status, scores, or list entries. To write to a user’s list you must use the official MyAnimeList API (OAuth2).

Is Jikan data real-time?+

No. Jikan serves cached data with a 24-hour default cache (shorter for some endpoints). That is fine for rarely-changing data like synopses, scores, and rankings, but for minute-level real-time accuracy use the official API.

07

Technical details

CORS: ?HTTPS: YesSignup: NoOpen source: Yes
Auth type
none
Pricing
free
Rate limit
Public instance (api.jikan.moe) enforces two limits simultaneously: 3 requests/second AND 60 requests/minute. Both apply, so a burst of 5 requests in one second trips the per-second cap even when well under 60/minute. Exceeding either returns HTTP 429. No published per-day cap. (v3 was 30/min and is deprecated; v4 doubled it to 60.) Self-hosting removes the shared limit entirely.
Free tier quota
Entirely free with no key and no account. Rate-limited to 3 req/sec and 60 req/min on the public instance. Funded by community donations (Patreon), so aggressive client-side caching is the implicit expectation rather than a paid upgrade.
Protocols
REST
SDKs
Python, JavaScript, TypeScript
08

Tags