BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://api.attackontitanapi.com/characters?page=1'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://api.attackontitanapi.com/characters?page=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "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/episo

Parameters

ParameterTypeRequiredDescription
resourcepath segmentRequired`characters`, `titans`, `episodes`, `locations` or `organizations`. characters
pageintegerOptionalPage number. 201 characters across 11 pages by default. 1
namestringOptionalFilter 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

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.