BYTETOOLS

Kitsu API

Free Kitsu API with no key: anime and manga with synopses, ratings, episode counts, genres and poster images. JSON:API format. Tested curl example.

No API key requiredHTTPSFree tier

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

What is the Kitsu API?

The Kitsu API is a free, key-free API providing anime and manga data — titles, synopses, ratings, episode and chapter counts, genres, categories and artwork — following the JSON:API specification.

Kitsu offers a well-structured alternative to Jikan for anime data, with the advantage of being a first-party API rather than a scraper of another site, which makes it more predictable and less prone to upstream breakage.

It implements JSON:API strictly, which means bracket-syntax parameters like `page[limit]` and `filter[text]`. Those brackets need URL encoding in most HTTP clients, and forgetting is the most common reason a first request fails.

Quick facts

Base URL
https://kitsu.io/api/edge
Authentication
No API key for public reads. User library access requires OAuth.
Rate limit
No published hard limit; fair use expected.
Pricing
Free and open source.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Kitsu API

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

1. Fetch anime records

GET https://kitsu.io/api/edge/anime?page%5Blimit%5D=1

curl
curl 'https://kitsu.io/api/edge/anime?page%5Blimit%5D=1'
JavaScript (fetch)
const res = await fetch("https://kitsu.io/api/edge/anime?page%5Blimit%5D=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://kitsu.io/api/edge/anime?page%5Blimit%5D=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "data": [
    {
      "id": "1",
      "type": "anime",
      "links": {
        "self": "https://kitsu.io/api/edge/anime/1"
      },
      "attributes": {
        "createdAt": "2013-02-20T16:00:13.609Z",
        "updatedAt": "2026-08-19T18:00:11.667Z",
        "slug": "cowboy-bebop",
        "synopsis": "In the year 2071, humanity has colonized several of the planets and moons of the solar system leaving the now uninhabitable surface of planet Earth behind. The Inter Solar System Police attempts to keep peace in the galaxy, aided in part by outlaw bounty hunters, referred to as \"Cowboys\". The ragtag team aboard the spaceship Bebop are two such individuals.\nMellow and carefree Spike Spiegel is balanced by his boisterous, pragmatic partner Jet Black as the pair makes a living chasing bounties and collecting rewards. Thrown off course by the addition of new members that they meet in their travels—Ein, a genetically engineered, highly intelligent Welsh Corgi; femme fatale Faye Valentine, an enigmatic trickster with memory loss; and the strange computer whiz kid Edward Wong—the crew embarks on thrilling adventures that unravel each member's dark and mysterious past little by little. \nWell-balanced with high density action and light-hearted comedy, Cowboy Bebop is a space Western classic and an homage to the smooth and improvised music it is named after.\n\n(Source: MAL Rewrite)",
        "description": "In the year 2071, humanity has colonized several of the planets and moons of the solar system leaving the now uninhabitable surface of planet Earth behind. The Inter Sol

Parameters

ParameterTypeRequiredDescription
anime / mangapathRequiredWhich resource to query. anime
page[limit]integerOptionalResults per page, max 20. Brackets need encoding. 10
page[offset]integerOptionalPagination offset. 20
filter[text]stringOptionalSearch by title. cowboy bebop
sortstringOptionalSort field; prefix with - for descending. -averageRating

Response fields

data[].idstring
Kitsu resource id.
data[].typestring
anime or manga.
data[].attributes.canonicalTitlestring
Primary title.
data[].attributes.titlesobject
Titles in multiple languages.
data[].attributes.synopsisstring
Plot summary.
data[].attributes.averageRatingstring
Community rating out of 100, as a string.
data[].attributes.episodeCountinteger
Number of episodes, null if ongoing.
data[].attributes.posterImageobject
Poster artwork at several sizes.

What you can build with the Kitsu API

  • Build an anime tracker or watchlist app
  • Search anime and manga with rich metadata
  • Display posters and ratings in a media library
  • Provide a first-party alternative to scraper-based anime APIs

Common errors and how to fix them

400 on page[limit]

Square brackets were not URL-encoded.

Fix: Encode as page%5Blimit%5D — the most common first-request failure.

Data nested under attributes

Kitsu follows JSON:API.

Fix: Read data[].attributes.canonicalTitle rather than data[].title.

Rating is a string

averageRating comes back as text.

Fix: Parse before comparing numerically.

Kitsu API — frequently asked questions

Is the Kitsu API free?

Yes, public anime and manga data requires no API key. Accessing a user's personal library requires OAuth.

Why do my requests fail with a 400?

The bracket-syntax parameters like page[limit] need URL encoding — send page%5Blimit%5D. This is the most common problem.

How does it compare with Jikan?

Kitsu is a first-party API with its own database; Jikan scrapes MyAnimeList. Kitsu is more predictable and has a looser rate limit; Jikan has MyAnimeList's larger community ratings.

Why is everything under attributes?

Kitsu implements the JSON:API specification, which nests resource fields inside an attributes object.

Tools that pair with this API

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