BYTETOOLS

Jikan (MyAnimeList) API

Free unofficial MyAnimeList API with no key: anime and manga data, scores, characters, staff and seasonal listings. Tested curl example and live JSON.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-19

What is the Jikan (MyAnimeList) API?

Jikan is a free, unofficial REST API for MyAnimeList data. It provides anime and manga records with scores, synopses, genres, characters, staff and seasonal listings, requiring no API key.

Jikan scrapes and caches MyAnimeList, exposing the largest anime and manga database available through a clean REST interface. Because MyAnimeList's own API requires OAuth registration, Jikan is the practical choice for most projects.

The rate limit is strict and genuinely enforced: three requests per second and sixty per minute. Any implementation that fetches per list item will hit it immediately, so batch, paginate and cache from the start rather than retrofitting it later.

Quick facts

Base URL
https://api.jikan.moe/v4
Authentication
No key required. Jikan is unofficial and not affiliated with MyAnimeList.
Rate limit
3 requests per second and 60 per minute per IP, strictly enforced.
Pricing
Free and open source.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Jikan (MyAnimeList) API

Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.

1. Fetch an anime by MyAnimeList id

GET https://api.jikan.moe/v4/anime/1

curl
curl 'https://api.jikan.moe/v4/anime/1'
JavaScript (fetch)
const res = await fetch("https://api.jikan.moe/v4/anime/1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.jikan.moe/v4/anime/1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "data": {
    "mal_id": 1,
    "url": "https://myanimelist.net/anime/1/Cowboy_Bebop",
    "images": {
      "jpg": {
        "image_url": "https://cdn.myanimelist.net/images/anime/4/19644.jpg",
        "small_image_url": "https://cdn.myanimelist.net/images/anime/4/19644t.jpg",
        "large_image_url": "https://cdn.myanimelist.net/images/anime/4/19644l.jpg"
      },
      "webp": {
        "image_url": "https://cdn.myanimelist.net/images/anime/4/19644.webp",
        "small_image_url": "https://cdn.myanimelist.net/images/anime/4/19644t.webp",
        "large_image_url": "https://cdn.myanimelist.net/images/anime/4/19644l.webp"
      }
    },
    "trailer": {
      "youtube_id": null,
      "url": null,
      "embed_url": "https://www.youtube-nocookie.com/embed/gY5nDXOtv_o?enablejsapi=1&wmode=opaque&autoplay=1",
      "images": {
        "image_url": null,
        "small_image_url": null,
        "medium_image_url": null,
        "large_image_url": null,
        "maximum_image_url": null
      }
    },
    "approved": true,
    "titles": [
      {
        "type": "Default",
        "title": "Cowboy Bebop"
      },
      {
        "type": "Japanese",
        "title": "カウボーイビバップ"
      },
      {
        "type": "English",
        "title": "Cowboy Bebop"
      }
    ],
    "title": "Cowboy Bebop",
    "title_english": "Cowboy Bebop",
    "title_japanese": "カウボーイビバップ",
    "title_synonyms": [],
    "type": "TV",
    "source": "Original",
    "episodes": 26,
    "status": "Finished Airing",
    "airing": false,
    "aired": {
      "from": "1998-04-03T00:00:00+00:00",
      "t

Parameters

ParameterTypeRequiredDescription
<resource>pathRequiredanime, manga, characters, people or seasons. anime
<id>pathOptionalMyAnimeList id of the resource. 1
qqueryOptionalSearch query on /anime endpoints. cowboy bebop
page / limitqueryOptionalPagination controls. 1

Response fields

data.mal_idinteger
MyAnimeList identifier.
data.title / title_englishstring
Original and English titles.
data.score / scored_bynumber
Community rating and how many users rated it.
data.synopsisstring
Plot summary.
data.genresarray
Genre objects with id and name.
data.imagesobject
Cover images in JPG and WebP at several sizes.

What you can build with the Jikan (MyAnimeList) API

  • Build an anime tracker or watchlist application
  • Display seasonal anime charts and top-rated listings
  • Add anime search with cover art to a community site
  • Practise strict rate-limit handling and request queuing

Common errors and how to fix them

429

Exceeded 3 requests/second or 60/minute.

Fix: Queue requests with a delay between them and cache results — this limit is enforced aggressively.

404

Unknown MyAnimeList id.

Fix: Verify the id via a search request first.

503 / timeouts

Upstream MyAnimeList is slow or the cache is cold.

Fix: Retry with exponential backoff; transient failures are normal for a scraping-based API.

Jikan (MyAnimeList) API — frequently asked questions

Is Jikan an official MyAnimeList API?

No, Jikan is an unofficial third-party API that scrapes and caches MyAnimeList data. It is widely used because the official API requires OAuth registration.

What is Jikan's rate limit?

Three requests per second and sixty per minute per IP, strictly enforced. Design for it from the start — queue requests and cache responses.

Does Jikan require an API key?

No, it is completely key-free, which is its main advantage over the official MyAnimeList API.

Why do I get intermittent 503 errors?

Jikan depends on MyAnimeList upstream, so transient failures happen when that source is slow or the cache is cold. Implement retry with exponential backoff.

Tools that pair with this API

Jikan (MyAnimeList) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.