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
- Failed requests aren't charged
Teams running monitoring, research, and enrichment pipelines
Why Social Fetch
MyAnimeList data as JSON. You build the product.
Live MyAnimeList data in one response shape, with platform changes handled for you.
MyAnimeList, plus every other platform
One key and one response envelope for MyAnimeList and 56 more platforms.
Pricing you can reason about
One request, one credit. Know how far your balance will go before you run your next batch.
Live data on every request
Fetch public data when you ask for it.
Nothing to maintain
We handle platform changes and breakages.
Built for production jobs
Run concurrent workloads with explicit statuses and request IDs.
Regular jobs. Better rates.
Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.
What MyAnimeList data can you get?
36 endpoints, one API key. Every response comes back as live JSON in the same envelope.
- +11 more anime & manga endpoints
Anime & manga
Characters, people & companies
Search
Rankings & seasons
News
- +1 more users endpoints
Users
Community
Browse all 36 MyAnimeList endpoints
Anime & manga
Characters, people & companies
Search
Rankings & seasons
News
Users
Community
What teams build with MyAnimeList data
Monitoring, enrichment, research and content workflows on MyAnimeList data, on the same API as every other platform.
How it works
Your first request in three steps.
Use TypeScript or your automation tool of choice.
Sources
+ 51 more platforms
One request
GET/v1/tiktok/profiles/
x-api-key: sk_live_••••••••
Same JSON shape
{
"data": {
"lookupStatus": "found",
"profile": {
"platform": "tiktok",
"handle": "charlidamelio",
"displayName": "charli d’amelio",
"verified": true
},
"metrics": {
"followers": 160263648
}
}
}Step 1
Create your free account
Get an API key with 100 requests included.
Step 2
Choose an endpoint
Pass a username, URL, keyword, or post ID.
Step 3
Get clean JSON
Use the response immediately or send it into your pipeline.
Works with your stack
Code, automate, or connect your AI.
TypeScript
n8n
- Make
- Apify
- MCP
- AI clients
Pricing
Social data, priced simply.
Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.
Starter
18,000credits
$1.61 per 1k · $0.00161 per request
- Top up from $1.61 / 1k if you run out
- Up to 25 monitors
Growth
50,000credits
$1.58 per 1k · $0.00158 per request
- Top up from $1.58 / 1k if you run out
- 5 team seats
- Up to 100 monitors
Scale
150,000credits
$1.50 per 1k · $0.00150 per request
- Top up from $1.50 / 1k if you run out
- 25 team seats
- Up to 250 monitors
- Cancel anytime
- 30-day money-back guarantee
- Price locked while you stay
Need 1M+ credits, invoicing, or volume rates? Talk to us
Trust signals
DevHunt
Product Hunt
Uneed
Customers
Teams building on Social Fetch.
“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”
“Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”
“Live profile data on every request. We never flag accounts from a stale cache.”
“Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”
MyAnimeList API: common questions
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.
The MyAnimeList API in detailHow the MyAnimeList routes work, what they cost, and how they differ from the official API.
Why teams use Social Fetch for MyAnimeList
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.
How to call the MyAnimeList API
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/1orGET /v1/myanimelist/manga/2. UseGET /v1/myanimelist/search?query=cowboy%20bebop&kind=animewhen you only have a name. Sendx-api-keyon every request.3. Page and branch
Check
data.lookupStatusbefore you store a row. For lists, followpage.nextCursorwhilepage.hasMoreis true. Bill frommeta.creditsCharged.
What each MyAnimeList route returns
- Anime and manga titles with
titleEnglish,titleJapanese,alternativeTitles, genres, studios, authors, aired or published dates,score,rank,membersandfavorites. - Complete cast and staff with
role,favorites,voiceActors[].languageand staffposition. - Status counts (
watching,reading,completed,onHold,dropped,planned) and a 10-row score histogram. - Reviews with
reviewer,postedAt,rating, seven reaction counts,tagsand fulltext. - Search, autocomplete, rankings, seasons, genre lists and the news and featured article lists.
- Public profiles with
animeStats,mangaStats,favorites,recentUpdatesand list entries with scores, tags and notes.
How much does the MyAnimeList API cost?
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.
Social Fetch vs the official MyAnimeList 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.
Pull your first MyAnimeList data.
Run a live MyAnimeList request in the playground. 100 free credits, no card, JSON back in seconds.
No credit cardSign up in 30 seconds withGoogleGitHub
