List every anime
Returns the full catalogue, so you can map anime to ids once instead of guessing titles on every request.
Endpoint:
/animeExample:
const response = await fetch(`${BASE_URL}/anime`, {
headers: { Authorization: 'Bearer YOUR_API_KEY' },
});
const { data, meta } = await response.json();{
"status": "success",
"data": [
{
"id": 1,
"name": "Attack on Titan",
"altName": "Shingeki no Kyojin",
"malId": 16498,
"episodeCount": 25,
"quoteCount": 34
}
],
"meta": { "total": 448, "page": 1, "pageSize": 100, "totalPages": 5 }
}quoteCount is worth checking before you build against a series: a handful of
anime are in the catalogue with no quotes yet.
Searching
Pass search to filter by title. It matches both name and altName, ignores
case and punctuation, and returns every anime containing the term.
/anime?search=narutoThat returns Naruto and Boruto: Naruto Next Generations, because browsing is
about seeing your options. The quote endpoints behave differently on purpose:
/quotes?anime=naruto narrows to the single best match, since there you want
quotes rather than a list.
Pagination
100 anime per page. Use meta.totalPages to know when to stop.
/anime?page=2malId is the MyAnimeList id, and is currently
present on a minority of entries. Treat it as a bonus rather than a
lookup key until coverage improves.
Errors
| Condition | Status |
|---|---|
A search that matches nothing | 200 with an empty data array |
| Unknown query parameter | 400 |
page below 1, or not a number | 400 |
An empty result is deliberately not a 404. You asked what exists, and “nothing
by that name” is a real answer.