Jikan is an Unofficial MyAnimeList API. It scrapes the website to satisfy the need for a complete API - which MyAnimeList lacks.
⚡ Jikan is powered by its awesome backers - 🙏 Become a backer
| Duration | Requests |
|---|---|
| Daily | Unlimited |
| Per Minute | 60 requests |
| Per Second | 3 requests |
Note: It's still possible to get rate limited from MyAnimeList.net instead.
null.score property whose value does not exist or is undetermined, will be 0.By CACHING, we refer to the data parsed from MyAnimeList which is stored temporarily on our servers to provide better API performance.
All requests are cached for 24 hours.
The following response headers will detail cache information.
| Header | Remarks |
|---|---|
Expires | Cache expiry date |
Last-Modified | Cache set date |
X-Request-Fingerprint | Unique request fingerprint (only for cachable requests, not queries) |
Note: X-Request-Fingerprint will only be available on single resource requests and their child endpoints. e.g /anime/1, /anime/1/relations. They won't be available on pages which perform queries, like /anime, or /top/anime, etc.
Jikan REST API does not provide authenticated requests for MyAnimeList. This means you can not use it to update your anime/manga list. Only GET requests are supported which return READ-ONLY data.
All error responses are accompanied by a JSON Error response.
| Exception | HTTP Status | Remarks |
|---|---|---|
| N/A | 200 - OK | The request was successful |
| N/A | 304 - Not Modified | You have the latest data (Cache Validation response) |
BadRequestException,ValidationException | 400 - Bad Request | You've made an invalid request. Recheck documentation |
BadResponseException | 404 - Not Found | The resource was not found or MyAnimeList responded with a 404 |
BadRequestException | 405 - Method Not Allowed | Requested Method is not supported for resource. Only GET requests are allowed |
RateLimitException | 429 - Too Many Request | You are being rate limited by Jikan or MyAnimeList is rate-limiting our servers (specified in the error response) |
UpstreamException,ParserException,etc. | 500 - Internal Server Error | Something didn't work. Try again later. If you see an error response with a report_url URL, please click on it to open an auto-generated GitHub issue |
ServiceUnavailableException | 503 - Service Unavailable | In most cases this is intentionally done if the service is down for maintenance. |
{
"status": 500,
"type": "InternalException",
"message": "Exception Message",
"error": "Exception Trace",
"report_url": "https://github.com..."
}
| Property | Remarks |
|---|---|
status | Returned HTTP Status Code |
type | Thrown Exception |
message | Human-readable error message |
error | Error response and trace from the API |
report_url | Clicking this would redirect you to a generated GitHub issue |
ETag header which is an MD5 hash of the responseIf-None-Match in your next request header304 - Not Modified response if the content has not changed200 - OK response with the updated JSON response
By using the API, you are agreeing to Jikan's terms of use policy.