> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/myanimelist>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/myanimelist.mdx>

---

# MyAnimeList API. Titles, cast and rankings as JSON.

Anime and manga records, every character and voice actor, score histograms, reviews, episodes, seasonal charts, news and public member lists. Pass an id, a name or a year and season, get typed JSON.

- 36 routes
- Anime + manga
- 1 credit per request

Social Fetch exposes 36 routes under `/v1/myanimelist`. Title routes take a numeric id: `GET /v1/myanimelist/anime/1` for Cowboy Bebop or `GET /v1/myanimelist/manga/2` for Berserk. They return the information rows, statistics, synopsis, external links, related titles and the preview lists in one `data.title` object.

Around a title, separate routes return the complete cast and staff with voice actors and languages (`data.characters`, `data.staff`), status counts and the 1 to 10 score histogram (`data.counts`, `data.scores`), reviews with reaction counts and full text (`data.reviews`), every recommendation and its text (`data.recommendations`), episodes with air dates and filler or recap marks (`data.episodes`), pictures and videos.

Discovery routes cover search across anime, manga, characters and people, autocomplete across 11 categories, ranked lists, whole seasons, the season archive, genre, theme and demographic title lists, and the news and featured article lists. Character, person and company routes return profiles with appearances and filmographies. Public member routes return a profile, an anime or manga list, list activity and written reviews. Every response uses the `{ data, meta }` envelope. HTTP 200 means the request finished, so branch on `data.lookupStatus`: `found` or `not_found`. Lists page with an opaque `page.nextCursor` and bill each page separately.

## What you can get

- Anime and manga titles with `titleEnglish`, `titleJapanese`, `alternativeTitles`, genres, studios, authors, aired or published dates, `score`, `rank`, `members` and `favorites`.
- Complete cast and staff with `role`, `favorites`, `voiceActors[].language` and staff `position`.
- Status counts (`watching`, `reading`, `completed`, `onHold`, `dropped`, `planned`) and a 10-row score histogram.
- Reviews with `reviewer`, `postedAt`, `rating`, seven reaction counts, `tags` and full `text`.
- Search, autocomplete, rankings, seasons, genre lists and the news and featured article lists.
- Public profiles with `animeStats`, `mangaStats`, `favorites`, `recentUpdates` and list entries with scores, tags and notes.

## MyAnimeList endpoints

| Endpoint | Request | Credits | Docs |
| --- | --- | --- | --- |
| Anime title | GET /v1/myanimelist/anime/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime) |
| Manga title | GET /v1/myanimelist/manga/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/manga) |
| Anime cast and staff | GET /v1/myanimelist/anime/{id}/characters | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-characters) |
| Manga cast | GET /v1/myanimelist/manga/{id}/characters | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/manga-characters) |
| Anime statistics | GET /v1/myanimelist/anime/{id}/statistics | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-statistics) |
| Manga statistics | GET /v1/myanimelist/manga/{id}/statistics | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/manga-statistics) |
| Anime reviews | GET /v1/myanimelist/anime/{id}/reviews | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-reviews) |
| Manga reviews | GET /v1/myanimelist/manga/{id}/reviews | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/manga-reviews) |
| Anime recommendations | GET /v1/myanimelist/anime/{id}/recommendations | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-recommendations) |
| Manga recommendations | GET /v1/myanimelist/manga/{id}/recommendations | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/manga-recommendations) |
| Anime episodes | GET /v1/myanimelist/anime/{id}/episodes | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-episodes) |
| Anime episode | GET /v1/myanimelist/anime/{id}/episodes/{number} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-episode) |
| Anime pictures | GET /v1/myanimelist/anime/{id}/pictures | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-pictures) |
| Manga pictures | GET /v1/myanimelist/manga/{id}/pictures | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/manga-pictures) |
| Anime videos | GET /v1/myanimelist/anime/{id}/videos | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/anime-videos) |
| Character | GET /v1/myanimelist/characters/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/characters) |
| Person | GET /v1/myanimelist/people/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/people) |
| Company | GET /v1/myanimelist/companies/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/companies) |
| Search | GET /v1/myanimelist/search | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/search) |
| Autocomplete | GET /v1/myanimelist/suggest | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/suggest) |
| Rankings | GET /v1/myanimelist/top | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/top) |
| Season | GET /v1/myanimelist/seasons/{year}/{season} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/season) |
| Seasons | GET /v1/myanimelist/seasons | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/seasons) |
| Genre titles | GET /v1/myanimelist/genres/{id}/titles | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/genres) |
| News | GET /v1/myanimelist/news | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/news) |
| News article | GET /v1/myanimelist/news/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/news-article) |
| Featured article | GET /v1/myanimelist/featured/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/featured-article) |
| Featured articles | GET /v1/myanimelist/featured | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/featured) |
| User profile | GET /v1/myanimelist/users/{username} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/user) |
| User anime list | GET /v1/myanimelist/users/{username}/anime-list | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/user-anime-list) |
| User manga list | GET /v1/myanimelist/users/{username}/manga-list | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/user-manga-list) |
| User activity | GET /v1/myanimelist/users/{username}/activity | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/user-activity) |
| User reviews | GET /v1/myanimelist/users/{username}/reviews | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/user-reviews) |
| Forum topic | GET /v1/myanimelist/forum/topics/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/forum-topic) |
| Club | GET /v1/myanimelist/clubs/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/club) |
| Interest stack | GET /v1/myanimelist/stacks/{id} | 1 credit Failed requests are free A not-found answer is still charged | [docs](https://www.socialfetch.dev/docs/api/v1/myanimelist/stack) |

## How to start

1. **Create an API key.** Sign up at Social Fetch and copy a key (`sfk_...`). New accounts get 100 free credits, enough to try every route on a few titles.
2. **Pick the route and the id.** Start with a title: `GET /v1/myanimelist/anime/1` or `GET /v1/myanimelist/manga/2`. Use `GET /v1/myanimelist/search?query=cowboy%20bebop&kind=anime` when you only have a name. Send `x-api-key` on every request.
3. **Page and branch.** Check `data.lookupStatus` before you store a row. For lists, follow `page.nextCursor` while `page.hasMore` is true. Bill from `meta.creditsCharged`.

## Pricing

Each MyAnimeList route costs one credit per completed request, and each page of a list is its own request. There is no batch route. Credits never expire on pay-as-you-go packs, and `meta.creditsCharged` on every response is the billing source of truth.

## Compared with the official API

Every answer uses one shape: fixed field names, arrays for list data, a typed `not_found` outcome instead of an error, and cursors that keep working while the lists change. One key covers anime, manga, characters, people, companies, community topics and public member lists.

## FAQ

### What can I get from the MyAnimeList API?

Anime and manga titles, cast and staff, status counts and score histograms, reviews, recommendations, episodes, pictures, videos, characters, people, companies, search, autocomplete, ranked lists, seasons, genre lists, news and featured articles, and public member profiles, lists, activity and reviews.

### How do I find a title id?

Use the search route with a query and a kind: `GET /v1/myanimelist/search?query=cowboy%20bebop&kind=anime`. Results carry `id`, `title`, `url` and `type`. The same id works on every title route, for example `/anime/1`, `/anime/1/characters` and `/anime/1/reviews`.

### What does lookupStatus mean?

`found` means the entity exists and is in the response. `not_found` means a deleted title, an unknown character id or a user that does not exist. HTTP 200 only means the request finished, so branch on `data.lookupStatus`.

### Does an empty list mean not found?

No. A title can have no characters, no reviews or no recommendations and still be found, so those routes return `lookupStatus: found` with an empty array. A search with no matches behaves the same way. `not_found` is for a missing title, character, person, company, user, club, stack, article or episode, including a missing user on a list route.

### How does paging work?

List routes return a `page` object with `hasMore` and `nextCursor`. Send `cursor=<page.nextCursor>` to get the next page. Review, episode, video, search, ranking, genre, news and user-list routes all page this way. A cursor is tied to its filters, so changing a filter means starting again without a cursor.

### How much does a request cost?

One credit per completed request, and each page of a list is billed separately. `meta.creditsCharged` on the response is the billing source of truth. New accounts start with 100 free credits.

### What is not in the statistics response?

The statistics route returns aggregate status counts in `data.counts` and the score histogram in `data.scores`. It does not return the recently updated member table, because that table is member activity data rather than title statistics.

### Can I get a private or hidden list?

No. The member routes return public profiles and public lists only. A private list or a hidden profile is not available, and a name that does not resolve returns `lookupStatus: not_found`.

### Which anime images and links do I get?

Title, character, person and picture routes return image URLs in fields such as `imageUrl` and `pictures[].url`. These are links to the images, not copies. Streaming availability is returned as platform name, kind and availability only. Availability reflects one region and can differ from what a visitor sees.

### Can I use these routes from agents or MCP?

Yes. Every MyAnimeList route is a typed MCP tool and is reachable through Ask (`POST /v1/ask`) in plain English. Use the typed routes for production jobs.

## Related

- [MyAnimeList Anime API](https://www.socialfetch.dev/platforms/myanimelist/anime): One anime title with information rows, statistics, synopsis and preview lists (`GET /v1/myanimelist/anime/{id}`).
- [MyAnimeList Cast API](https://www.socialfetch.dev/platforms/myanimelist/anime-characters): Every character, voice actor and staff member on a title (`GET /v1/myanimelist/anime/{id}/characters`).
- [MyAnimeList Reviews API](https://www.socialfetch.dev/platforms/myanimelist/anime-reviews): Reviews with ratings, reactions and full text, 20 per page (`GET /v1/myanimelist/anime/{id}/reviews`).
- [MyAnimeList Rankings API](https://www.socialfetch.dev/platforms/myanimelist/top): Ranked anime and manga lists, 50 rows per page (`GET /v1/myanimelist/top`).
- [MyAnimeList Seasons API](https://www.socialfetch.dev/platforms/myanimelist/seasons): The season archive and upcoming titles (`GET /v1/myanimelist/seasons`).
- [Ask in plain English](https://www.socialfetch.dev/ask): Route a natural-language anime question to the matching MyAnimeList operation.
