TL;DR
The ANN Encyclopedia API provides structured access to the Anime News Network's comprehensive database of anime, manga, characters, voice actors, and companies. Search by title, browse by category, and retrieve detailed entries with cast, staff, episode counts, release dates, and ratings. Data is available in XML or JSON format via the api/4 endpoint.
Quick start: https://cdn.animenewsnetwork.com/encyclopedia/api.xml?anime=1224
No API key needed — just make a request!
How to Use This API
1. Search Anime by Title
https://cdn.animenewsnetwork.com/encyclopedia/api.xml?anime=~Attack%20on%20Titan
Use ~ before the search term to search by title. Returns matching anime entries with IDs, titles, and basic info.
2. Get Anime by ID
https://cdn.animenewsnetwork.com/encyclopedia/api.xml?anime=1224
Full details for a specific anime (ID 1224 = Fullmetal Alchemist: Brotherhood). Includes episodes, cast, staff, ratings, and related entries.
3. Get Manga by ID
https://cdn.animenewsnetwork.com/encyclopedia/api.xml?manga=7727
Manga entries with chapter counts, volumes, magazine serialization, authors, and ratings.
4. Get JSON Format
https://cdn.animenewsnetwork.com/encyclopedia/api.json?anime=1224
Change .xml to .json for JSON-formatted responses.
5. JavaScript — Anime Lookup
async function searchAnime(title) {
const resp = await fetch(
`https://cdn.animenewsnetwork.com/encyclopedia/api.json` +
`?anime=~${encodeURIComponent(title)}`
);
const data = await resp.json();
return data?.anime?.map(a => ({
id: a.id,
title: a.title?.[0]?.['$'] || 'Unknown',
type: a.type,
episodes: a.episodes,
year: a.start_date?.substring(0, 4)
})) || [];
}
searchAnime('One Piece').then(results => {
results.forEach(a => {
console.log(`#${a.id}: ${a.title} (${a.episodes} eps, ${a.year})`);
});
});
6. Python — Anime Details
import requests
import json
def get_anime_details(anime_id):
resp = requests.get(
'https://cdn.animenewsnetwork.com/encyclopedia/api.json',
params={'anime': anime_id}
)
data = resp.json()
anime = data['anime'][0]
title = anime['title'][0]['$']
episodes = anime.get('episodes', '?')
rating = anime.get('rating', [{}])[0].get('$', 'N/A')
print(f"Title: {title}")
print(f"Episodes: {episodes}")
print(f"Rating: {rating}")
get_anime_details(1224)
https://cdn.animenewsnetwork.com/encyclopedia/api.xml?anime=~Naruto
Frequently Asked Questions
- How do I find an anime's ID?
- Search by title:
?anime=~Attack%20on%20Titan. The response includes the anime ID. Browse the ANN website for IDs as well. - What data types are available?
- Anime, manga, characters, people (voice actors/staff), companies, and releases. Each has its own query parameter:
?anime=,?manga=,?character=,?people=,?company=. - Does it include episode summaries?
- Episode counts are included but not individual episode summaries. The API focuses on encyclopedia metadata rather than per-episode details.
- What about ratings?
- Entries include average user ratings when available. These are ANN community ratings on a 1-10 scale.
- Is the data current?
- The encyclopedia is updated regularly by ANN editors. New and currently-airing anime are added as they're announced.
API Details
- API URL
https://cdn.animenewsnetwork.com/encyclopedia/api- Documentation
- ANN API Docs
- Category
- Entertainment
- Authentication
- Not Required
- Geographic Coverage
- Global — Japanese and world-wide anime/manga
What You Can Build
- Anime encyclopedia app with full cast and staff listings
- Manga library manager — track volumes and chapters
- Voice actor portfolio — search by person for their roles
- Anime recommendation engine based on related entries
- Ratings aggregator showing ANN scores per series