DEV Community

public apis
public apis

Posted on Originally published at publicapis.lol on

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

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

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.

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
Enter fullscreen mode Exit fullscreen mode

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.

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);
Enter fullscreen mode Exit fullscreen mode

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).

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"
Enter fullscreen mode Exit fullscreen mode

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.

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})`);
Enter fullscreen mode Exit fullscreen mode

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.

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
Enter fullscreen mode Exit fullscreen mode

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.

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

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.

Top comments (0)