AniList API
Free AniList GraphQL API with no key for public data: anime, manga, characters, staff and studios with precise field selection in one query. Tested POST.
Endpoint tested and returned HTTP 200 on 20 Aug 2026
What is the AniList API?
The AniList API is a free, key-free GraphQL API for anime and manga data, providing series, characters, staff, studios and user statistics with GraphQL's precise field selection in a single request.
AniList is one of the few free public APIs that is GraphQL-only, which makes it a genuinely useful place to learn GraphQL against real data. You describe exactly the fields you want and get precisely those back, with no over-fetching.
That also means every request is a POST with a query in the body, even for reads — which surprises people expecting REST. There is no GET endpoint at all; the interactive GraphiQL explorer on their site is the fastest way to build a query.
Quick facts
- Base URL
https://graphql.anilist.co- Authentication
- Public data needs no key. Accessing or modifying a user's own lists requires OAuth.
- Rate limit
- 90 requests per minute per IP.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the AniList API
Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Query anime data with GraphQL
POST https://graphql.anilist.co
curl -X POST 'https://graphql.anilist.co' \
-H 'Content-Type: application/json' \
-d '{"query":"{Media(id:1,type:ANIME){id title{romaji}episodes}}"}'const res = await fetch("https://graphql.anilist.co", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({"query":"{Media(id:1,type:ANIME){id title{romaji}episodes}}"}),
});
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
headers = {
"Content-Type": "application/json",
}
payload = {"query":"{Media(id:1,type:ANIME){id title{romaji}episodes}}"}
res = requests.post("https://graphql.anilist.co", headers=headers, json=payload, timeout=20)
res.raise_for_status()
print(res.json()){
"data": {
"Media": {
"id": 1,
"title": {
"romaji": "Cowboy Bebop"
},
"episodes": 26
}
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Required | The GraphQL query, in the JSON POST body. {Media(id:1){title{romaji}}} |
variables | object | Optional | Query variables, for parameterised queries. {"id":1} |
Content-Type | header | Required | Must be application/json. application/json |
Response fields
dataobject- Results, shaped exactly like the query you sent.
data.Mediaobject- A single anime or manga, when queried by id.
data.Pageobject- Paginated results with pageInfo, for list queries.
errorsarray- GraphQL errors — present alongside data, with HTTP 200.
What you can build with the AniList API
- Build an anime tracker fetching exactly the fields you render
- Learn GraphQL against a real public API with no signup
- Search anime and manga with rich filtering
- Display studio, staff and character relationships
Common errors and how to fix them
405 or 404 on GET
AniList is GraphQL-only.
Fix: Every request is a POST with a JSON body containing the query — there is no GET endpoint.
HTTP 200 with an errors array
GraphQL reports errors in the body.
Fix: Check for an `errors` key even on a 200 response.
429
Exceeded 90 requests per minute.
Fix: GraphQL lets you fetch more per request — combine queries rather than making many small ones.
AniList API — frequently asked questions
Is the AniList API free?
Yes, public anime and manga data requires no API key. OAuth is only needed to read or modify a user's own lists.
Why do my GET requests fail?
AniList is GraphQL-only. Every request, including reads, is a POST with a JSON body containing the query. There is no REST endpoint.
How is it different from Jikan or Kitsu?
AniList is GraphQL, so you fetch exactly the fields you need in one request rather than over-fetching or making several calls. Jikan scrapes MyAnimeList; Kitsu is REST with its own database.
How do I build a query?
Use the GraphiQL explorer on AniList's docs site — it has schema autocomplete, which makes constructing a valid query far faster than reading documentation.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Validator
Free online JSON validator: validate JSON and find syntax errors with the exact line and column. See root type, key counts and depth — instant and 100% private.
Alternatives to AniList API
If AniList does not fit, these video & streaming apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| TVmaze | Free TV show API with no key: series info, full episode guides, cast, air dates and daily schedules with images. Genuinely open, no signup. Tested example. | No key | Yes | 19 Aug 2026 |
| Noembed | Free oEmbed proxy API with no key: get embed HTML, thumbnails and metadata for YouTube, Vimeo, Twitter and 200+ other sites from one endpoint. Tested. | No key | Yes | 19 Aug 2026 |
| IPTV-org | Free IPTV-org API with no key: 10,000+ TV channels worldwide with countries, languages, categories, logos and stream metadata as static JSON. Tested example. | No key | Yes | 19 Aug 2026 |
| YouTube oEmbed | Free YouTube oEmbed endpoint with no API key: video title, author, thumbnail and embed HTML from any video URL. No quota, unlike the Data API. Tested. | No key | No | 20 Aug 2026 |
| Anime News Network Encyclopedia | Anime News Network's encyclopedia API returns full anime and manga records as XML with no key: staff, cast, genres, themes, ratings and release history. Live example included. | No key | Yes | 21 Aug 2026 |
| AnimeThemes | AnimeThemes is a free, key-free API for anime opening and ending themes: series, songs, artists and hosted video and audio files, cross-linked and filterable. Live example included. | No key | Yes | 21 Aug 2026 |
AniList is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.