Attack on Titan API
A free Attack on Titan API with no key: 201 characters plus titans, episodes, locations and organisations, paginated with next and previous page links. Live example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Attack on Titan API?
The Attack on Titan API is a free, key-free REST API covering 201 characters from the series, alongside titans, episodes, locations and organisations. Responses are paginated with an `info` block carrying the total count, page count and next and previous page URLs.
Character records here go further than most fan APIs, because the source material demands it. Alongside name, age, gender and height you get `alias`, `species` and a `relatives` array, and species genuinely matters in this series — a character can be both Human and Intelligent Titan at once, which the API models as an array rather than forcing a single value. That nuance is why a generic character schema would not have worked.
Paging follows the widely-copied Rick and Morty shape: an `info` object with `count`, `pages`, `next_page` and `prev_page`, and a `results` array beside it. The URLs in `info` are absolute, so following them is safer than constructing page numbers. There is a separate `/titans` collection with its own records, which is the part of the dataset you cannot easily get anywhere else. As with the rest of this category it is a volunteer project on modest hosting — good for a portfolio piece, not something to put on a critical path.
Quick facts
- Base URL
https://api.attackontitanapi.com- Authentication
- No key or account.
- Rate limit
- No published limit. The dataset is static; cache it.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Attack on Titan API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. List characters, first page
GET https://api.attackontitanapi.com/characters?page=1
curl 'https://api.attackontitanapi.com/characters?page=1'const res = await fetch("https://api.attackontitanapi.com/characters?page=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.attackontitanapi.com/characters?page=1", timeout=20)
res.raise_for_status()
print(res.json()){
"info": {
"count": 201,
"pages": 11,
"next_page": "https://api.attackontitanapi.com/characters?page=2",
"prev_page": null
},
"results": [
{
"id": 1,
"name": "Armin Arlelt",
"img": "https://static.wikia.nocookie.net/shingekinokyojin/images/9/93/Armin_Arlelt_%28Anime%29_character_image.png/revision/latest/scale-to-width-down/350?cb=20210322005647",
"alias": [
"Colossal Titan"
],
"species": [
"Human",
"Intelligent Titan"
],
"gender": "Male",
"age": 19,
"height": "60 m (Colossal Titan form)",
"relatives": [
{
"family": "Arlelt family",
"members": [
"Unnamed father",
"Unnamed mother",
"Unnamed grandfather"
]
}
],
"birthplace": "Shiganshina District",
"residence": "Wall Rose",
"status": "Alive",
"occupation": "Soldier",
"groups": [
{
"name": "Scout Regiment",
"sub_groups": [
"Special Operations Squad"
]
}
],
"roles": [
"Colossal Titans",
"Scout Regiment Commanders"
],
"episodes": [
"https://api.attackontitanapi.com/episodes/1",
"https://api.attackontitanapi.com/episodes/2",
"https://api.attackontitanapi.com/episodes/3",
"https://api.attackontitanapi.com/episodes/4",
"https://api.attackontitanapi.com/episodes/5",
"https://api.attackontitanapi.com/episodes/6",
"https://api.attackontitanapi.com/episoParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
resource | path segment | Required | `characters`, `titans`, `episodes`, `locations` or `organizations`. characters |
page | integer | Optional | Page number. 201 characters across 11 pages by default. 1 |
name | string | Optional | Filter characters by name. Eren |
Response fields
info.countinteger- Total records in the collection.
info.pagesinteger- Total pages available.
info.next_page / prev_pagestring or null- Absolute URLs for the neighbouring pages. Follow these rather than building your own.
results[].idinteger- Record id.
results[].namestring- Character name.
results[].aliasarray of strings- Alternative names and titan identities, e.g. "Colossal Titan".
results[].speciesarray of strings- Can hold more than one value — a character may be both Human and Intelligent Titan.
results[].age / gender / heightinteger / string- Biographical fields. Height is a string because it may describe a titan form.
results[].relativesarray of objects- Family relationships, as structured objects rather than free text.
results[].imgstring- Character image, hotlinked from Fandom's wiki CDN.
What you can build with the Attack on Titan API
- Build a character and titan browser for the series
- Chart family relationships from the `relatives` structure
- Add a lookup command to a fan Discord server
- Practise paginated list rendering with next and previous links
Common errors and how to fix them
Page beyond the total
You requested a page past `info.pages`.
Fix: Read `info.pages` first, or follow `next_page` until it is null.
Broken images
`img` values hotlink Fandom's wiki CDN.
Fix: Mirror the images you need and handle load failures. The project does not host them.
Species assumed to be a single value
It is an array, and characters can genuinely have two.
Fix: Render species as a list. Reading `species[0]` will mislabel every titan shifter.
404 on /organisations
The path uses the American spelling.
Fix: It is `/organizations` with a z.
Attack on Titan API — frequently asked questions
Is there a free Attack on Titan API?
Yes. It serves 201 characters plus titans, episodes, locations and organisations with no key or account, paginated with next and previous page links.
Does it cover the titans themselves?
It does — `/titans` is a separate collection with its own records, which is the part of the dataset you will struggle to find elsewhere.
Why is `species` an array?
Because in this series a character can genuinely be more than one thing at once — Human and Intelligent Titan, for instance. Modelling it as a single string would have been wrong, so render it as a list.
How does pagination work?
An `info` object accompanies `results` and carries `count`, `pages`, `next_page` and `prev_page`. The page URLs are absolute, so following them is more reliable than constructing page numbers yourself.
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 to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
Attack on Titan API is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.