animedex ann
Anime News Network’s encyclopedia API is XML-only. animedex parses that XML through the generic adapter in animedex.render.xml, then validates ANN-specific rich models that preserve warning rows, attributes, text, child order, and repeated tags.
References
Site |
|
API documentation |
|
Browsable encyclopedia |
|
Python module |
|
Rich models |
|
XML adapter |
Backend: ANN Encyclopedia via
cdn.animenewsnetwork.com.Rate limit: 1 req/sec on
api.xml;nodelay.api.xmlallows 5 reqs/5sec but returns 503 on overshoot.Auth: never required.
Core lookups
Anime by ANN ID — show()
animedex ann show 38838 --jq '.anime[0] | {id, name, type}'
# => {
# "id": "38838",
# "name": "Frieren: Beyond Journey's End",
# "type": "TV"
# }
Title substring search — search()
animedex ann search Frieren --jq '[.anime[] | {id, name}]'
The search command uses ANN’s ?anime=~substring parameter. The ?title= parameter is for ID aliasing, not fuzzy title search.
Curated reports — reports()
animedex ann reports --id 155 --type anime --nlist 2 --jq '.items[].fields.name'
Warnings are data
ANN can return HTTP 200 with a <warning> element for empty results. animedex keeps that as a typed warnings list and does not raise an error:
animedex ann show 99999999 --jq '{warnings, anime}'
# => {
# "warnings": ["no result for anime=99999999"],
# "anime": []
# }
Endpoint summary
Command |
Python entry point |
Returns |
|---|---|---|
|
||
|
||
|
Use animedex api ann when you need the raw XML envelope or a lower-level endpoint variation:
animedex api ann '/api.xml?anime=38838'
animedex api ann '/reports.xml?id=155&type=anime&nlist=5'
The Python library page covers the same surface from inside Python.