BYTETOOLS

Last Airbender API

A free Avatar: The Last Airbender and Legend of Korra API with no key: characters filterable by nation, allies and enemies, plus random draws. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Last Airbender API?

The Last Airbender API is a free, key-free REST API covering characters from Avatar: The Last Airbender and The Legend of Korra. Characters can be filtered by name, national affiliation, allies or enemies, fetched by id, or drawn at random one or many at a time.

The filters are what make this worth documenting. Beyond the usual name lookup you can query `?affiliation=Fire Nation` to get everyone aligned with a nation, or `?allies=Aang` and `?enemies=Amon` to traverse the relationship graph from either direction. That is more query surface than most character APIs offer, and it means you can build a faction browser or a relationship map without pulling the whole dataset and processing it yourself.

Be clear about the scope: this is characters only. There is no episodes collection — `/api/v1/episodes` returns a 404 — so if you need episode data you will need another source. The random endpoints are nicely done, with `/characters/random` for one and `?count=` for several, and there is a dedicated `/characters/avatar` route returning every Avatar in the cycle. It runs on Fly.io rather than a dormant free dyno, which is why it is still up when many of its contemporaries are not, but it remains one person's project with no uptime guarantee.

Quick facts

Base URL
https://last-airbender-api.fly.dev/api/v1
Authentication
No key or account.
Rate limit
No published limit. Cache — the dataset does not change.
Pricing
Free and open source.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Last Airbender 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. Fetch two characters

GET https://last-airbender-api.fly.dev/api/v1/characters?perPage=2

curl
curl 'https://last-airbender-api.fly.dev/api/v1/characters?perPage=2'
JavaScript (fetch)
const res = await fetch("https://last-airbender-api.fly.dev/api/v1/characters?perPage=2");
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://last-airbender-api.fly.dev/api/v1/characters?perPage=2", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
[
  {
    "_id": "5cf5679a915ecad153ab68e9",
    "allies": [
      "Asami Sato"
    ],
    "enemies": [
      "Amon"
    ],
    "photoUrl": "https://vignette.wikia.nocookie.net/avatar/images/d/d4/Bolin.png/revision/latest?cb=20150406232314",
    "name": "Bolin",
    "affiliation": " Fire Ferrets (formerly) Kuvira's army (deserted) Team Avatar Triple Threat Triad (formerly) Republic City Police"
  },
  {
    "_id": "5cf5679a915ecad153ab68cc",
    "allies": [
      "Fire Nation"
    ],
    "enemies": [
      "Aang"
    ],
    "photoUrl": "https://vignette.wikia.nocookie.net/avatar/images/2/24/Afiko.png/revision/latest?cb=20121121024128",
    "name": "Afiko",
    "affiliation": "Fire Nation"
  }
]

Parameters

ParameterTypeRequiredDescription
perPageintegerOptionalRecords per page. Defaults to 20. 2
pageintegerOptionalPage number. 2
namestringOptionalMatch characters whose name contains this string. aang
affiliationstringOptionalFilter by national or group affiliation: Fire Nation, Water Tribe, Earth Kingdom and others. Fire Nation
alliesstringOptionalReturn characters allied with the named character. Aang
enemiesstringOptionalReturn characters opposed to the named character. Amon
countintegerOptionalOn `/characters/random`, how many random characters to return. 5

Response fields

_idstring
MongoDB ObjectId. This is the id for `/characters/{id}` lookups — there is no separate numeric id.
namestring
Character name.
affiliationstring
Group and nation memberships as one free-text string, often listing several with qualifiers such as "(formerly)".
alliesarray of strings
Named allies. Character names, not ids, so joining them means matching on name.
enemiesarray of strings
Named enemies, in the same form.
photoUrlstring
Character image. These point at Fandom's wiki CDN, so they are outside the project's control and can break.

What you can build with the Last Airbender API

  • Build a character browser filtered by nation
  • Map the ally and enemy graph across both series
  • Add a random character command to a bot or a daily widget
  • Populate a quiz or card game with faction-aware data

Common errors and how to fix them

404 on /episodes

Only the characters collection exists.

Fix: This API is characters only. Use a general TV metadata source if you need episode lists.

Broken character images

`photoUrl` values are hotlinks to Fandom's wiki CDN.

Fix: Mirror the images you need, or handle image load failure gracefully. The project does not host them.

Ally and enemy joins do not match

Those arrays hold names, not ids, and spellings vary.

Fix: Normalise case and trim before matching, and expect some relationships to fail to resolve.

Affiliation filter returns nothing

The value must match the way the affiliation string is written.

Fix: Use the exact nation name, e.g. `Fire Nation`. The field is free text, so partial or lowercase values may miss.

Last Airbender API — frequently asked questions

Is there a free Avatar: The Last Airbender API?

Yes. The Last Airbender API serves characters from both The Last Airbender and The Legend of Korra with no key or account, including filters by nation, allies and enemies.

Does it include episodes?

No. It is a characters-only dataset; the episodes route returns a 404. Pair it with a general television metadata API if you need episode information.

How do I get a random character?

Call `/api/v1/characters/random` for one, or add `?count=5` for several. There is also a `/characters/avatar` route that returns every Avatar in the cycle.

Why do the character images sometimes fail?

The `photoUrl` values are hotlinks to Fandom's wiki CDN rather than images the project hosts, so they break whenever the wiki reorganises. Mirror anything you depend on.

Tools that pair with this API

Last Airbender 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.