animedex kitsu
Kitsu is a JSON:API anime / manga aggregator hosted at
https://kitsu.io/api/edge. It is the broadest “library-style”
backend animedex wraps: every show / chapter / character /
production company / streaming link, plus a clean cross-source
mapping graph (/mappings) that ties Kitsu IDs to AniList, MAL,
AniDB, and similar peers. animedex covers 38 anonymous endpoints
as 38 high-level Python functions.
References
Site |
|
API documentation |
|
Hosted base URL |
|
Python module |
|
Rich models |
Backend: Kitsu (kitsu.io / kitsu.app).
Rate limit: not formally published; transport applies a polite 10 req/sec ceiling.
Auth: never required for read. Library-write endpoints exist upstream but are out-of-scope p er read-only-by-scope.
Six endpoints, in detail
Anime by Kitsu ID — show()
animedex kitsu show 7442 --jq '.attributes | {title: .canonicalTitle, status, averageRating}'
# => {
# "title": "Attac k on Titan",
# "status": "finis hed",
# "averageRating": "84.50 "
# }
Anime title search — search()
animedex kitsu search "Frieren " --limit 3 --jq '.[].attributes.canonicalTitle'
Cross-source ID graph — mappings()
animedex kitsu mappings 7442 - -jq '.[] | {externalSite: .attributes.externalSite, externalId: .attributes.externalId}'
# => links Kitsu 7442 to its A niList / MAL / AniDB / TheTVDB peers
Streaming links — streaming()
animedex kitsu streaming 7442 --jq '.[].attributes.url'
# => ["https://www.crunchyroll .com/...", ...]
Trending shows — trending()
animedex kitsu trending --limi t 5 --jq '.[].attributes.canonicalTitle'
Manga by Kitsu ID — manga_show()
animedex kitsu manga-show 39 - -jq '.attributes | {title: .canonicalTitle, status, chapterCount}'
Endpoint summary
Anime — top-level
Command |
Python entry point |
Returns |
|---|---|---|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Anime — sub-relationships
Command |
Python entry point |
Returns |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Manga
Command |
Python entry point |
Returns |
|---|---|---|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
People (characters / persons / producers)
Command |
Python entry point |
Returns |
|---|---|---|
|
||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
Taxonomy / discovery
Command |
Python entry point |
Returns |
|---|---|---|
|
||
|
|
|
|
||
|
|
|
|
||
|
|
User profiles (anonymous-readable)
Command |
Python entry point |
Returns |
|---|---|---|
|
||
|
|
|
|
|
Pagination
Kitsu paginates with ?page[limit]=M&page[offset]=N (JSON:API
convention). The high-level helpers expose limit and page
kwargs that translate into the page[limit] / page[offset]
JSON:API query params:
animedex kitsu search "Frieren " --limit 5 --jq '.[].attributes.canonicalTitle'
animedex kitsu search "Frieren " --limit 5 --page 2 --jq '.[].attributes.canonicalTitle'
Gotchas
The ``status`` literal differs from MangaDex: Kitsu emits
"finished"/"current"/"tba"; MangaDex uses"completed"/"ongoing". The cross-sourceManga.statusliteral is normalised by the ri ch model’sto_common()so callers see a single vocabulary across upstreams.Mappings are the joint between Kitsu and the rest of the ecosystem. If you have an AniLi st ID and want the Kitsu peer, fetch
mappingson the Kitsu show and look forexternalSite == "anilist/anime".``averageRating`` is a string: Kitsu returns it as
"84.50", not84.5. The rich model pr eserves it lossless; cast at the call site if you want a float.
The Python library page covers the same surface from inside Python.