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.
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 'https://last-airbender-api.fly.dev/api/v1/characters?perPage=2'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);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())[
{
"_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
| Parameter | Type | Required | Description |
|---|---|---|---|
perPage | integer | Optional | Records per page. Defaults to 20. 2 |
page | integer | Optional | Page number. 2 |
name | string | Optional | Match characters whose name contains this string. aang |
affiliation | string | Optional | Filter by national or group affiliation: Fire Nation, Water Tribe, Earth Kingdom and others. Fire Nation |
allies | string | Optional | Return characters allied with the named character. Aang |
enemies | string | Optional | Return characters opposed to the named character. Amon |
count | integer | Optional | On `/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
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.
Random List Picker
Paste a list and pick random winners without repeats, or shuffle the whole list. A fair random name and item picker for giveaways, draws and raffles.
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.