Video — entry 001 of 37
An API of Ice And Fire
An API of Ice And Fire is a fan-built REST API serving structured data from George R. R. Martin's A Song of Ice and Fire — characters, houses, and books with their cross-references — book-centric records that also carry TV-adaptation annotations, the character payload including tvSeries and playedBy. It's completely keyless and free, returning plain paginated JSON with no rate-limit headers observed on repeated calls.
An API of Ice And Fire is a fan-built, keyless REST API serving structured data from George R. R. Martin's A Song of Ice and Fire -- characters, houses, and books, with cross-references between them. The records are book-centric (`books`, `povBooks`, `culture`, and in-world `born`/`died` dates) but they also carry TV-adaptation annotations: the character payload below includes `tvSeries` and `playedBy`, and the provider's own homepage describes its scope as the universe of Ice and Fire "(and the HBO series Game of Thrones)".
GreatAPIs Score
Auth quickstart
- No API key required. A live `GET /characters/583` with no headers or credentials returned full character data this run; every documented endpoint (characters, houses, books) answered the same way.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Look up a character by ID
GEThttps://anapioficeandfire.com/api/characters/583
{"url":"https://anapioficeandfire.com/api/characters/583","name":"Jon Snow","gender":"Male","culture":"Northmen","born":"In 283 AC","died":"","titles":["Lord Commander of the Night's Watch"],"aliases":["Lord Snow","Ned Stark's Bastard","The Snow of Winterfell","The Crow-Come-Over","The 998th Lord Commander of the Night's Watch","The Bastard of Winterfell","The Black Bastard of the Wall","Lord Crow"],"father":"","mother":"","spouse":"","allegiances":["https://anapioficeandfire.com/api/houses/362"],"books":["https://anapioficeandfire.com/api/books/5"],"povBooks":["https://anapioficeandfire.com/api/books/1","https://anapioficeandfire.com/api/books/2","https://anapioficeandfire.com/api/books/3","https://anapioficeandfire.com/api/books/8"],"tvSeries":["Season 1","Season 2","Season 3","Season 4","Season 5","Season 6"],"playedBy":["Kit Harington"]}Try it
Developer reference
https://anapioficeandfire.com/api- GET/characters/{id}
- GET/books
- GET/houses
Gotchas & limits
- Plain `http://` is not left open here: a live `GET http://anapioficeandfire.com/api/characters/583` returned an HTTP 301 redirect (`Location: https://anapioficeandfire.com/api/characters/583`) to the https:// URL, confirmed this run.
- A nonexistent-but-well-formed numeric ID (`/characters/9999999`) and a non-numeric path segment (`/characters/abc`) are both HTTP 404 with an empty body -- there is no JSON error envelope to parse either way, confirmed live this run against both.
- Pagination is exposed only via the RFC 5988 `Link` response header, not in the JSON body: a live `GET /books` returned `link: <.../books?page=2&pageSize=10>; rel="next", <.../books?page=1&pageSize=10>; rel="first", <.../books?page=2&pageSize=10>; rel="last"` with no page/total fields anywhere in the array body itself -- callers must parse the header to paginate, and it's only exposed cross-origin because of the next gotcha.
- CORS is Origin-conditional: a GET with no `Origin` header gets no `access-control-allow-origin` header at all, while the same GET with an `Origin` header gets back `access-control-allow-origin: *` plus `access-control-expose-headers: Link` -- that explicit expose is what makes the `Link` pagination header above readable from browser JS at all; without it a browser's fetch/XHR can't see it even though curl always can.
- A live `OPTIONS` preflight (with `Origin` + `Access-Control-Request-Method: GET`) returned HTTP 204 with `access-control-allow-methods: GET,HEAD` and set two `ARRAffinity` session cookies scoped `HttpOnly; Secure` -- harmless for a keyless GET-only API, but a sign the backend sits behind an IIS/Azure App Service load balancer rather than a bare Cloudflare Worker.