aniSearch

aniSearch entries, keyed by anisearch_id. The one upstream here that models a title per language rather than as a flat bag of synonyms: status, release dates, publishers and the synopsis all repeat per language, so they are served as a languages array rather than folded into the record.

The id is also the address. aniSearch redirects any wrong or missing slug to the canonical anisearch.com/anime/<id>,<slug>, so a bare id always resolves; the url field carries the canonical form.

Routes

GET/api/anisearch/{id}

One entry: titles and type, episode count and runtime, season, studios and staff, the three-tier genre taxonomy, official websites, cover, the franchise component, every language block, and the labelled relations.

curl https://animap.id/api/anisearch/19633
{
  "anisearch_id": 19633,
  "url": "https://www.anisearch.com/anime/19633,that-time-i-got-reincarnated-as-a-slime-season-4",
  "title": "That Time I Got Reincarnated as a Slime: Season 4",
  "synonyms": ["TenSura Season 4"],
  "type": "TV-Series",
  "type_raw": "TV-Series, 24 (~24 min)",
  "episodes": 24,
  "episodes_estimated": true,
  "duration_minutes": 24,
  "duration_raw": "(~24 min)",
  "season": "Spring 2026",
  "season_name": "Spring",
  "season_year": 2026,
  "studios": [{"name": "8bit Corp., Inc.", "slug": "1348,8bit-corp-inc"}],
  "staff": [{"name": "Taiki KAWAKAMI", "slug": "38237,taiki-kawakami", "role": "Original Work"}],
  "adapted_from": ["Light Novel"],
  "main_genres": ["Adventure"],
  "sub_genres": ["Action", "Adventure", "Comedy", "Fantasy"],
  "tags": ["Alternative World", "Isekai", "Magic", "Monster", "Swords & Co"],
  "websites": [{"name": "Ten Sura", "url": "https://www.ten-sura.com/anime/tensura"}],
  "broadcast": "Friday 23:00 (JST)",
  "cover": "https://cdn.anisearch.com/images/anime/cover/19/19633_600.webp",
  "cover_copyright": "© 川上泰樹・伏瀬・講談社",
  "franchise_ids": [13436, 14021, 14266, 19633, 19634, 21109],
  "languages": [
    {"lang": "ja", "position": 0, "title": "Tensei Shitara Slime datta Ken Dai 4 Ki",
     "alt_titles": ["転生したらスライムだった件 第4期"],
     "status": "Ongoing", "dubbed": false,
     "published_raw": "03.04.2026 ‑ ?", "published_from": "2026-04-03", "published_to": null,
     "publishers": [], "description": null, "description_note": null, "description_source": null},
    {"lang": "en", "position": 1, "title": "That Time I Got Reincarnated as a Slime: Season 4",
     "alt_titles": [], "status": "Ongoing", "dubbed": true,
     "published_raw": "03.04.2026 ‑ ?", "published_from": "2026-04-03", "published_to": null,
     "publishers": [{"name": "Crunchyroll", "slug": "115,crunchyroll"}],
     "description": "The founding festival of the demon state of Tempest...",
     "description_note": null, "description_source": "www.anisearch.com/anime/19633"}
  ],
  "related_anime": [
    {"anisearch_id": 17817, "slug": "that-time-i-got-reincarnated-as-a-slime-season-3", "position": 0,
     "title": "That Time I Got Reincarnated as a Slime: Season 3", "relation": "Prequel",
     "relation_code": null, "type": "TV-Series", "episodes": 24, "year": 2024,
     "main_genres": ["Adventure"]}
  ]
}

type is aniSearch's own and is served verbatim: TV-Series, OVA, Movie, Web, Music, Bonus, TV-Special, CM, Other, Unknown — where "Unknown" is a real value the site publishes, distinct from null, which means the line did not parse. episodes_estimated is true when the site marks the count a preliminary estimate; it says the count is provisional, not that the show is airing. Airing status is per language, in languages[].status. duration_minutes is per episode, never a total.

The genre taxonomy is three-tiered because aniSearch publishes it that way, under three separate URL namespaces: main_genres, sub_genres and tags. No other source here splits it.

A slug on a studio, staff member or publisher is the whole {id},{slug} path tail aniSearch addresses that entity by (anisearch.com/company/<slug>), not a bare name.

franchise_ids and related_anime answer different questions. The first is every entry in the connected franchise component, including this one, with no labels — it comes from the relations page's flowchart, whose edges also connect other pairs. The second is only this entry's own direct relations, each labelled (Sequel, Prequel, Side Story, Shared Universe, Remake…). relation_code is that label as an index into the flowchart legend and is present only when the graph carries a forward edge; relation is the durable value.

lang codes are aniSearch's own spellings and are not all ISO 639-1 — kr (not ko) and vn (not vi) occur, alongside the region codes tw, hk and sg. Normalise them knowingly. published_from / published_to are filled only where the rendered date resolves to a real day; month-only and open-ended values survive in published_raw.

aniSearch has no public API, so this is parsed from their pages. Ratings, vote counts and popularity widgets are not carried — they are stripped before the page is archived, so no route serves them.