Logo
Login Sign-up

Project Documentation: Jikan API

Anime Randomizer Application

1. API Key & Rate Limits

The Jikan API (Unofficial MyAnimeList API) is public and open No API key or special authentication is required for read access.

Rate Limits:
Duration Requests
Daily Unlimited
Per Minute 60 requests
Per Second 3 requests

Note: Despite Jikan's limits, it is still possible to encounter rate limits imposed by the upstream source, MyAnimeList.net.

2. Endpoints and Parameters
A. Search Anime Endpoint

Request Method: GET https://api.jikan.moe/v4/anime

Parameter Description
q Search query term.
limit Maximum results per page (1–100).
offset Starting point of results (pagination).
fields Comma-separated list of fields to include in the response.
B. Get Characters Endpoint

Request Method: GET https://api.jikan.moe/v4/characters

Parameter Description
q Search query term.
limit Maximum results per page (1–100).
offset Starting point of results (pagination).
fields Comma-separated list of fields to include in the response.
C. Application's Primary Endpoint

The Anime Randomizer application primarily uses the simplified random endpoint:

Function Type Endpoint Path Purpose
Random Single Item /random/anime Called to to retrieve a single, randomly chosen anime entry (used in the current application). Used Vanilla JS to fetch 5 titles & sort them by score
Search/Filter /anime Used to search the database by title, score, type, etc
Top Lists /top/anime Used to fetch most popular anime of all time
3. Sample Requests and Responses

A. Sample Search Request (Anime)

GET https://api.jikan.moe/v4/anime?q=naruto&limit=1&page=1

B. Sample Search Request (Characters)

GET https://api.jikan.moe/v4/characters?q=naruto&limit=1&page=1

C. Sample Response Structure (Anime - Naruto)

A portion of the JSON response for an anime search:

{
    "pagination": {
        "last_visible_page": 30,
        "has_next_page": true,
        // ...
    },
    "data": [
        {
            "mal_id": 20,
            "url": "https://myanimelist.net/anime/20/Naruto",
            "images": {
                "jpg": {
                    "image_url": "https://cdn.myanimelist.net/images/anime/1141/142503.jpg",
                    // ...
                }
            },
            "title": "Naruto",
            "score": 8.01,
            "episodes": 220,
            "status": "Finished Airing",
            // ...
        }
    ]
}
4. Third-Party Libraries

These external resources are loaded via CDN to manage layout and appearance.

Library / Tool Purpose
Bootstrap 5 Provides responsive layout, styling (cards, buttons), and utility classes.
Google Fonts (Inter) Used for modern typography.

-- End of Documentation --