Anime News Network

Anime News Network encyclopedia records, keyed by ann_id.

ANN publishes no cross-reference to MyAnimeList and MAL publishes none to ANN, so an ANN id is reachable only through the map — and ann_id is the map's weakest side (~80% agreement) precisely because most of its edges are inferred rather than declared. The one first-party route in is AniDB's ann_id, on /api/anidb/{id}.

ANN requires attribution. Any page that displays their encyclopedia details must credit Anime News Network and link the entry — every /api/ann/{id} response carries that link as url. See the callout at the foot of this page.

Routes

GET/api/ann/ids

Every ann_id animap has actually fetched, with its main title, ordered by ann_id. Every id it returns resolves on /api/ann/{id}. An empty dataset returns [], never null. title may be null.

curl https://animap.id/api/ann/ids
[
  {"ann_id": 1, "title": "Angel Links"},
  {"ann_id": 2, "title": "Apocalypse Zero"},
  {"ann_id": 4658, "title": "Jinki:Extend"}
]

GET/api/ann/{id}

The parsed record for one ann_id. 404 if that id not exist. ANN's vote-based ratings are not in this projection — they change constantly, so they are served only by /api/ann/{id}/raw.

curl https://animap.id/api/ann/1
{
  "ann_id": 1,
  "type": "TV",
  "precision": "TV",
  "title": "Angel Links",
  "alternative_titles": ["Seihō Tenshi Angel Links", "星方天使エンジェルリンクス"],
  "genres": ["action", "drama", "science fiction"],
  "themes": ["pirates", "space"],
  "plot_summary": "Li Meifon is the head of a free protection/security agency…",
  "episodes": 13,
  "running_time": "half hour",
  "vintage": ["1999-04-07 to 1999-06-30"],
  "start_year": 1999,
  "objectionable_content": "TA",
  "official_websites": ["http://www.sunrise-inc.co.jp/seihou/ANGEL-LINKS/story.html"],
  "picture": "https://cdn.animenewsnetwork.com/thumbnails/max500x600/encyc/A1-51.jpg",
  "url": "https://www.animenewsnetwork.com/encyclopedia/anime.php?id=1",
  "absent": false,
  "absent_at": null,
  "related": {
    "prev": [
      {"ann_id": 2433, "relation": "adapted from", "is_anime": false, "title": null, "url": null}
    ],
    "next": [
      {"ann_id": 36, "relation": "sequel", "is_anime": true, "title": "Lady Blue",
       "url": "https://www.animenewsnetwork.com/encyclopedia/anime.php?id=36"}
    ]
  }
}

GET/api/ann/{id}/raw

The full Anime News Network encyclopedia record for this id, served verbatim as stored — ANN's api.xml converted to JSON (attributes become @-prefixed keys, text is #text, repeated siblings become arrays). Much richer than the parsed record: this is where ratings, cast, staff, credit, episode, release and the related-prev / related-next links live. 404 if the id is unknown or its payload has not been fetched yet. There is no /api/ann/{id}/raw/xml — the XML is converted at fetch time, so JSON is what we hold.

curl https://animap.id/api/ann/1/raw
{"anime": {
  "@id": "1",
  "@type": "TV",
  "@precision": "TV",
  "@name": "Angel Links",
  "info": [
    {"@type": "Main title", "#text": "Angel Links"},
    {"@type": "Genres", "#text": "action"},
    {"@type": "Picture", "@src": "https://cdn.animenewsnetwork.com/…/A1-51.jpg"}
  ],
  "ratings": {"@nb_votes": "352", "@bayesian_score": "5.85776", "@weighted_score": "5.8028"},
  "cast": [{"@lang": "JA", "role": "Li Meifon", "person": {"#text": "Yuko Miyamura"}}]
}}

Field reference — /api/ann/{id}

Field Type Notes
ann_id integer The Anime News Network encyclopedia id. Stable primary key. Unrelated to anidb_id, mal_id and anilist_id.
type string · null TV, OAV, movie, ONA, special or omnibus.
precision string · null ANN's disambiguation label — TV, TV 2, movie series, meta, … — which separates entries that share a title. Distinct from type.
title string · null The ANN main title.
alternative_titles array of string Other titles ANN lists (across languages). Empty [] rather than null.
genres
themes
array of string ANN's genre and theme tags (lowercase). Empty [] rather than null.
plot_summary string · null Plot summary, as written on ANN. null when ANN records none.
episodes integer · null null when unknown, or when ANN writes a non-numeric count (a few entries say e.g. 12 (+ 2 specials)). The raw text is in /raw.
running_time string · null Free-form upstream text, not a number: half hour, 30 minutes. Parse it yourself if you need minutes.
vintage array of string Release dates/periods, free-form and multi-valued: a full date, a range A to B, a bare year, or any of those with a parenthetical region. Empty [] rather than null. See start_year for a filterable year.
start_year integer · null Convenience: the leading 4-digit year of the first vintage. null when it does not begin with a year. Not a substitute for vintage.
objectionable_content string · null ANN's content code — TA, OC, AO, AA, MA (upstream casing varies). null when ANN records none.
official_websites array of string Official site URLs ANN lists. Empty [] rather than null.
picture string · null A full cover-art URL on cdn.animenewsnetwork.com. Fetch it from there, not through this API. null when ANN has no picture.
url string The Anime News Network encyclopedia entry for this id (animenewsnetwork.com/encyclopedia/anime.php?id=<ann_id>). Always present. Keep it visible when you display the record — see the callout below.
absent boolean true when ANN no longer serves this id. The record is kept and still served — that is when this mirror is most useful. The flag clears if the entry reappears.
absent_at string · null RFC 3339 timestamp of when the entry was first observed missing. null whenever absent is false.
related object ANN's own relation edges for this entry, split by the element that carried them: prev is <related-prev> (what this work came from), next is <related-next> (what came from it). Both are always present, empty [] rather than null.
related[].relation string How the target connects, verbatim as ANN labels it — sequel, prequel, side story, spinoff, part, compilation, remake, adapted from, adaptation, serialized and others. Not an enum: treat an unfamiliar value as data, not an error.
related[].is_anime boolean Read this before following an edge. ANN keeps manga in the same encyclopedia id space and the relation element carries no type, so an ann_id here is not necessarily an anime — adapted from, adaptation and serialized point outside it almost by definition, and some targets are ids ANN has since retired. false means /api/ann/{that id} will 404.
related[].title string · null The target's main title, saving a second request. null whenever is_anime is false — we hold no record to read it from.
related[].url string · null The target's encyclopedia entry, on the same terms as the top-level url. null whenever is_anime is false: the id resolves somewhere on ANN, but not under anime.php.

Anime News Network requires attribution. ANN's terms of use ask that any page showing their encyclopedia details credit Anime News Network as the source and link the relevant entry. Every /api/ann/{id} response carries that link as url; if you display ANN data, surface it. The vote-based ratings (in /raw) are a snapshot from our last fetch, not a live figure.