Skip to contentAPILayer: production APIs with free plansExplore APILayer
Cover illustration: 12 Best Free Anime APIs in 2026, Tested (Jikan, AniList, Kitsu and More)
Favour Onuoha

Posted on · 6 min read

12 Best Free Anime APIs in 2026, Tested (Jikan, AniList, Kitsu and More)

On this page · 12 sections

The best free anime API in 2026 is AniList for most projects: a fast GraphQL API with airing schedules, cover art and no API key for public data. Jikan (unofficial MyAnimeList data) and Kitsu are strong alternatives, and specialist APIs cover quotes, reaction GIFs, manga and "what anime is this screenshot from?".

We tested every API in the anime category of the public-apis list on October 24, 2026: 20 APIs, 11 of which need no key. Some are excellent. Some have documentation that's still online while the API itself is gone. Below are the 12 worth your time, with code we actually ran, the rate limits each server reported, and the ones to avoid.

#The short list

API

Best for

Key?

Rate limit (as tested)

Status on Oct 24

AniList

Anime and manga data, airing schedules

No (OAuth for user lists)

30 req/min (docs say 90)

Working, ~0.6 s

Jikan

MyAnimeList data (scores, rankings, reviews)

No

3 req/s, 60 req/min

API unreachable

Kitsu

Anime and manga data, JSON:API

No (OAuth for user lists)

Not published

Working

MyAnimeList official

MAL data with an official contract

Client ID

Not published

Working

AnimeChan

Anime quotes

No

100 req/day per IP

Working

trace.moe

Find the anime from a screenshot

No

100 req/min, small quota

Working

nekos.best

Reaction GIFs (hug, pat, wave…)

No

200 req/min

Working

Studio Ghibli

All 22 Ghibli films

No

Not published

Working

MangaDex

Manga metadata and chapters

No for reading

~5 req/s

Working

MangaUpdates

Manga release tracking

No for reading

Not published

Working

AnimeNewsNetwork

Encyclopedia data (staff, cast)

No

1 req/s

Working (XML)

AniDB

Deep episode/file metadata

Client registration

Strict; bans on abuse

For specialists

"As tested" means the limit the server reported in its response headers or documentation when we checked. Live status for each is on its directory page and updates daily.

#1. AniList: the best all-round anime API

AniList is a GraphQL API over the whole AniList database: anime, manga, characters, staff, studios and airing schedules with exact timestamps. Public data needs no key, it sends CORS headers (so it works straight from the browser), and you ask for exactly the fields you need.

JavaScript
const query = `query ($search: String) {
  Media(search: $search, type: ANIME, isAdult: false) {
    id siteUrl episodes averageScore genres
    title { romaji english }
    coverImage { large color }
    nextAiringEpisode { episode airingAt }
  }
}`;

const res = await fetch("https://graphql.anilist.co", {
  method: "POST",
  headers: { "Content-Type": "application/json", Accept: "application/json" },
  body: JSON.stringify({ query, variables: { search: "Frieren" } }),
});
const { data } = await res.json();
console.log(data.Media.title.english, data.Media.averageScore); // "Frieren: Beyond Journey’s End" 91

Watch the rate limit. AniList's docs say 90 requests per minute, but every response we got carried x-ratelimit-limit: 30, so plan for 30. Go over and you get HTTP 429 with a Retry-After header. GraphQL helps here: one request can fetch 50 shows at once with Page { media(id_in: [...]) }.

Read AniList's terms before using it in a commercial product.

#2. Jikan: MyAnimeList data without OAuth

Jikan is an unofficial, open-source REST API that serves MyAnimeList data: scores, rankings, seasons, reviews, recommendations. No key, simple URLs, and MAL's scores are what most fans quote.

JavaScript
const res = await fetch("https://api.jikan.moe/v4/anime?q=frieren&limit=1&sfw");
const { data } = await res.json();
console.log(data[0].title, data[0].score, data[0].images.jpg.image_url);

Useful endpoints: /v4/top/anime, /v4/seasons/now, /v4/random/anime, /v4/anime/{id}/recommendations.

The catch: reliability. On October 24 the Jikan website and docs loaded fine, but api.jikan.moe refused or timed out every connection we made from two different networks. It's a free, community-run service that scrapes MyAnimeList and caches responses for 24 hours; outages and slow responses happen. If you use it:

  • Respect 3 requests per second and 60 per minute.
  • Cache everything on your side, at least for hours.
  • Have a fallback (AniList covers most of the same data).

#3. Kitsu: JSON:API with posters and age ratings

Kitsu is a full anime and manga database exposed as a JSON:API. Reads need no key. The API moved from kitsu.io to kitsu.app (the old host still answers, but use the new one).

JavaScript
const url = "https://kitsu.app/api/edge/anime?filter[text]=frieren&page[limit]=1";
const { data } = await (await fetch(url)).json();
const a = data[0].attributes;
console.log(a.canonicalTitle, a.averageRating, a.episodeCount, a.ageRating);
// "Sousou no Frieren" "88.85" 28 "PG"

Kitsu's ageRating field is handy for filtering family-friendly results, and /api/edge/trending/anime is a ready-made "trending now" list. Page size maxes out at 20.

#4. MyAnimeList's official API

If you need MAL data with an official agreement behind it, register an app on MyAnimeList and send your Client ID in an X-MAL-CLIENT-ID header to https://api.myanimelist.net/v2/. Reading public data only needs the Client ID; reading or editing a user's list needs OAuth 2. It's more setup than Jikan but doesn't depend on a third party.

#5. AnimeChan: anime quotes

AnimeChan returns quotes with the character and anime they come from. Ideal for a quote-of-the-day widget or a bot command.

JavaScript
const res = await fetch("https://api.animechan.io/v1/quotes/random?anime=Naruto");
const { data } = await res.json();
console.log(`"${data.content}" (${data.character.name}, ${data.anime.name})`);

The free tier is 100 requests per day per IP, which is fine for a personal widget but not for a public app; cache quotes or pay for the premium tier. Older tutorials use animechan.xyz or animechan.vercel.app; the current API is api.animechan.io/v1.

#6. trace.moe: "what anime is this from?"

trace.moe takes a screenshot and tells you the anime, episode and timestamp it came from. It's genuinely impressive; it has indexed over 1.7 billion frames.

JavaScript
const img = "https://images.plurk.com/32B15UXxymfSMwKGTObY5e.jpg";
const res = await fetch(`https://api.trace.moe/search?anilistInfo&cutBorders&url=${encodeURIComponent(img)}`);
const { result } = await res.json();
const top = result[0];
console.log(top.anilist.title.english, "ep", top.episode, "at", Math.round(top.from), "s", top.similarity);
// "Is the Order a Rabbit?? Season 2" ep 1 at 272 s 0.992

Anonymous users can run one search at a time with a small quota (GET /me shows yours). Treat a similarity below about 0.87 as "no match", and check anilist.isAdult before showing results publicly.

#7. nekos.best: reaction GIFs

nekos.best serves SFW anime reaction GIFs and images for 60+ actions: hug, pat, wave, highfive, dance, thumbsup and more. Every result includes the anime it came from, which is good for attribution.

JavaScript
const { results } = await (await fetch("https://nekos.best/api/v2/hug")).json();
console.log(results[0].url, results[0].anime_name);

GET /api/v2/endpoints lists every action. The limit is 200 requests per minute.

#8–12. Ghibli, manga and encyclopedia APIs

  • Studio Ghibli API (https://ghibliapi.vercel.app/films): all 22 films with directors, release years, Rotten Tomatoes scores and posters. Static and small, so it's perfect for beginner projects. It's a community-hosted copy (the original Heroku app is gone).
  • MangaDex (https://api.mangadex.org/manga?title=...): the largest open manga database, with chapters and cover art. Reading needs no key (the directory lists one because uploads and user features do), but every request needs a real User-Agent, and hotlinked cover images get swapped for a placeholder, so proxy images through your server.
  • MangaUpdates: release tracking and series metadata, good for "new chapter out" alerts.
  • AnimeNewsNetwork Encyclopedia: staff, cast and production details as XML. Old-school but deep.
  • AniDB: the most detailed episode metadata anywhere, but you must register a client and the rate limits are strict. Only for media-library tools.

#Anime APIs to avoid right now

Our daily health checks and manual tests flagged these on October 24:

API

Problem

AnimeFacts

Docs page is up, but the API host (a Heroku app) returns "No such app". Dead.

Shikimori

Timing out in our checks for consecutive days.

Waifu.pics

Failing TLS certificate checks.

Waifu.im

TLS certificate doesn't match api.waifu.im from our test machine.

AniAPI

The project's repository was archived in 2022 and the domain now serves a redirect page. Don't build on it.

This is the trap with anime APIs: many are hobby projects whose docs outlive the service. Before you build on any API, check its directory page for the latest uptime.

#Which anime API should you use?

  • Building an app or website: AniList. Best data model, CORS-friendly, airing times built in.
  • You want MyAnimeList scores and rankings: Jikan with caching and a fallback, or the official MAL API if you need a guarantee.
  • You prefer REST over GraphQL: Kitsu.
  • Discord bot: AniList for lookups, nekos.best for reactions, AnimeChan for quotes, trace.moe for screenshot search.
  • Beginner project: Studio Ghibli API. Small, static and impossible to break.
  • Manga reader or tracker: MangaDex plus MangaUpdates.

#Tips for any anime API

  1. Cache aggressively. Anime metadata barely changes; a 24-hour cache cuts your requests by 95% and protects you from outages.
  2. Filter adult content. Use isAdult: false (AniList), sfw (Jikan) or ageRating (Kitsu). Many databases include hentai entries by default.
  3. Store IDs, not titles. Titles vary (romaji, English, native). AniList and MAL IDs are stable, and AniList returns idMal so you can map between them.
  4. Credit the source. Most of these are community projects; a "Data from AniList" line is the least you can do.

See every API in the category, with live status and no-key filters, on the best anime APIs page or the anime APIs with no key list.