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.

animedex ann demo — show, search, reports, warning response

References

Site

https://www.animenewsnetwork.com/

API documentation

https://www.animenewsnetwork.com/encyclopedia/api.php

Browsable encyclopedia

https://www.animenewsnetwork.com/encyclopedia/

Python module

animedex.backends.ann

Rich models

animedex.backends.ann.models

XML adapter

animedex.render.xml

  • Backend: ANN Encyclopedia via cdn.animenewsnetwork.com.

  • Rate limit: 1 req/sec on api.xml; nodelay.api.xml allows 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"
#    }

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

show <anime_id>

animedex.backends.ann.show()

AnnAnimeResponse

search <q>

animedex.backends.ann.search()

AnnAnimeResponse

reports

animedex.backends.ann.reports()

AnnReport

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.