Kitsu

Kitsu anime and episodes, keyed by kitsu_id.

Mappings: /api/v1/map/kitsu/{id}.

Routes

GET/api/kitsu/ids

Fetched IDs and titles, sorted by kitsu_id. Empty: []; unknown title: null.

curl https://animap.id/api/kitsu/ids
[
  { "kitsu_id": 1, "title": "Cowboy Bebop" },
  { "kitsu_id": 2, "title": "Cowboy Bebop: Tengoku no Tobira" },
  { "kitsu_id": 3, "title": "Trigun" }
]

GET/api/kitsu/{id}

Parsed anime record. Unfetched ID: 404. Ratings and rankings are in /raw.

curl https://animap.id/api/kitsu/1
{
  "kitsu_id": 1,
  "slug": "cowboy-bebop",
  "canonical_title": "Cowboy Bebop",
  "title_en": "Cowboy Bebop",
  "title_en_jp": "Cowboy Bebop",
  "title_ja_jp": "カウボーイビバップ",
  "other_titles": ["Cowboy Bebop"],
  "abbreviated_titles": ["COWBOY BEBOP"],
  "description": "In the year 2071, humanity has colonized…",
  "subtype": "TV",
  "status": "finished",
  "tba": null,
  "age_rating": "R",
  "age_rating_guide": "17+ (Violence & Profanity)",
  "nsfw": false,
  "episode_count": 26,
  "episode_length": 24,
  "total_length": 624,
  "start_date": "1998-04-03",
  "end_date": "1999-04-24",
  "poster_image": "https://media.kitsu.io/anime/poster_images/1/original.png",
  "cover_image": "https://media.kitsu.io/anime/cover_images/1/original.png",
  "youtube_video_id": "qig4KOK2R2g",
  "url": "https://kitsu.io/anime/cowboy-bebop",
  "mal_id": 1,
  "anilist_id": 1,
  "anidb_id": 23,
  "absent": false,
  "absent_at": null
}

GET/api/kitsu/{id}/raw

Stored JSON:API resource (id, type, attributes) with resolved mappings. Includes ratings and image variants. Missing payload: 404.

links and relationships are omitted; mappings are flattened. Counters reflect the last fetch.

curl https://animap.id/api/kitsu/1/raw
{
  "id": "1",
  "type": "anime",
  "attributes": {
    "slug": "cowboy-bebop",
    "canonicalTitle": "Cowboy Bebop",
    "titles": {
      "en": "Cowboy Bebop",
      "en_jp": "Cowboy Bebop",
      "ja_jp": "カウボーイビバップ"
    },
    "subtype": "TV",
    "status": "finished",
    "averageRating": "82.29",
    "ratingFrequencies": { "2": "13", "3": "1", "4": "6" },
    "userCount": 138416,
    "favoritesCount": 3958,
    "popularityRank": 28,
    "ratingRank": 27,
    "posterImage": { "tiny": "…", "small": "…", "original": "…" }
  },
  "mappings": [
    { "id": "1", "externalSite": "myanimelist/anime", "externalId": "1" },
    { "id": "9578", "externalSite": "anilist/anime", "externalId": "1" },
    { "id": "43151", "externalSite": "anidb", "externalId": "23" }
  ]
}

GET/api/kitsu/{id}/episodes

Parsed episodes, sorted by season, episode number, then episode ID.

200 with episodes: [] means the fetched list is empty. 404 means it has not been fetched.

Episode routes require an anime ID. Start with /api/kitsu/ids.

curl https://animap.id/api/kitsu/1/episodes
{
  "kitsu_id": 1,
  "url": "https://kitsu.io/anime/cowboy-bebop",
  "episodes": [
    {
      "kitsu_episode_id": 1,
      "kitsu_id": 1,
      "canonical_title": "Asteroid Blues",
      "title_en_us": "Asteroid Blues",
      "title_en_jp": "Asteroid Blues",
      "title_ja_jp": "アステロイドブルース",
      "other_titles": [],
      "description": "Spike and Jet pursue a bounty on Tijuana…",
      "season_number": 1,
      "number": 1,
      "relative_number": 1,
      "airdate": "1998-04-03",
      "length_minutes": 25,
      "thumbnail": "https://media.kitsu.io/episodes/thumbnails/1/original.jpg"
    }
  ]
}

GET/api/kitsu/{id}/episodes/{episode_id}

One episode, plus the anime’s url. Wrong anime or missing episode: 404. Both IDs must be positive integers.

curl https://animap.id/api/kitsu/1/episodes/1
{
  "kitsu_episode_id": 1,
  "kitsu_id": 1,
  "canonical_title": "Asteroid Blues",
  "title_en_us": "Asteroid Blues",
  "title_en_jp": "Asteroid Blues",
  "title_ja_jp": "アステロイドブルース",
  "other_titles": [],
  "description": "Spike and Jet pursue a bounty on Tijuana…",
  "season_number": 1,
  "number": 1,
  "relative_number": 1,
  "airdate": "1998-04-03",
  "length_minutes": 25,
  "thumbnail": "https://media.kitsu.io/episodes/thumbnails/1/original.jpg",
  "url": "https://kitsu.io/anime/cowboy-bebop"
}

GET/api/kitsu/{id}/episodes/raw

Stored episodes flattened to {id, …attributes}, sorted by episode ID. Includes timestamps and full thumbnail objects. Unfetched list: 404.

curl https://animap.id/api/kitsu/1/episodes/raw
{
  "kitsu_id": 1,
  "episodes": [
    {
      "id": "1",
      "canonicalTitle": "Asteroid Blues",
      "titles": {
        "en_us": "Asteroid Blues",
        "en_jp": "Asteroid Blues",
        "ja_jp": "アステロイドブルース"
      },
      "seasonNumber": 1,
      "number": 1,
      "relativeNumber": 1,
      "airdate": "1998-04-03",
      "length": 25,
      "synopsis": "Spike and Jet pursue a bounty on Tijuana…",
      "description": "Spike and Jet pursue a bounty on Tijuana…",
      "createdAt": "2013-02-20T16:00:14.183Z",
      "updatedAt": "2023-11-01T09:12:22.918Z",
      "thumbnail": {
        "original": "https://media.kitsu.io/episodes/thumbnails/1/original.jpg"
      }
    }
  ]
}

Field reference — /api/kitsu/{id}

Empty arrays are [], unless noted.

Field Type Notes
kitsu_id integer Kitsu anime ID.
slug string · null Entry URL slug.
canonical_title string · null Displayed title.
title_en
title_en_jp
title_ja_jp
string · null English, romaji, and Japanese titles.
other_titles array of strings Titles from other locales.
abbreviated_titles array of strings Abbreviations and alternative spellings.
description string · null Plain-text synopsis.
subtype string · null TV, movie, ONA, OVA, special, or music.
status string · null finished, current, upcoming, unreleased or tba.
tba string · null Free-text date note, not a boolean.
age_rating string · null G, PG, R or R18.
age_rating_guide string · null Content rating explanation.
nsfw boolean Adult flag.
episode_count integer · null Episode count.
episode_length
total_length
integer · null Minutes per episode and for the whole series.
start_date
end_date
string · null First and last air dates, YYYY-MM-DD.
poster_image
cover_image
string · null Original-size image URLs. Other sizes are in /raw.
youtube_video_id string · null YouTube trailer ID.
url string Anime entry URL, using the slug or falling back to the ID.
mal_id
anilist_id
anidb_id
integer · null Kitsu’s cross-references. Missing or ambiguous mappings are null.
absent boolean Missing upstream; the archived record remains available. Clears if the entry returns.
absent_at string · null First observed absence, in RFC 3339 format. null when present upstream.

Field reference — /api/kitsu/{id}/episodes

Shared by the episode list and single-episode routes. Only the single-episode response adds url.

Field Type Notes
kitsu_episode_id integer Globally unique episode ID; resolves only under its anime.
kitsu_id integer Kitsu anime ID.
canonical_title string · null Displayed title.
title_en_us
title_en_jp
title_ja_jp
string · null English, romaji, and Japanese episode titles. Episodes use en_us rather than en.
other_titles array of strings Titles from other locales.
description string · null Plain-text synopsis.
season_number integer · null Kitsu’s series season number, not a broadcast season.
number
relative_number
integer · null Absolute and within-season episode numbers. May have gaps or duplicates; key on kitsu_episode_id.
airdate string · null First broadcast date, YYYY-MM-DD.
length_minutes integer · null Runtime in minutes.
thumbnail string · null Original-size thumbnail URL.
url string Anime entry URL. Only in the single-episode response; lists carry it at the top level.