XIVAPI
Free Final Fantasy XIV API with no key: items, quests, recipes, NPCs and every game data sheet, in all four client languages. Tested curl example and real response.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the XIVAPI?
XIVAPI is a free, key-free API exposing Final Fantasy XIV's own game data sheets — items, quests, recipes, actions, NPCs, achievements and more — with every localised string available in English, German, French and Japanese from a single request.
XIVAPI does something unusual: it does not invent a schema. What you get back are the game's own EXD data sheet columns, in the game's own PascalCase, with all their oddities intact. That is why an item response opens with `AdditionalData`, `Adjective`, `AetherialReduce` and `AlwaysCollectable` — alphabetical column order from the sheet, not a designed API contract. It is more work to read and vastly more complete than a curated alternative would be, and it means data appears here the moment it exists in the client files.
Two practical consequences. First, localisation is baked into the column names rather than negotiated with a header: you get `Description`, `Description_de`, `Description_en`, `Description_fr` and `Description_ja` as sibling keys on the same object. Second, the default response is enormous — a single item pulls in nested `BaseParam` objects with all their own localised descriptions — so `?columns=` is not an optimisation, it is a necessity. Pick the handful of columns you actually render and the payload drops by orders of magnitude.
Quick facts
- Base URL
https://xivapi.com- Authentication
- Anonymous access works for the content endpoints. A free key exists for higher rate limits, but nothing here required one.
- Rate limit
- No rate-limit headers came back on our capture. XIVAPI has historically asked anonymous clients to stay around 20 requests per second and to use a key above that.
- Pricing
- Free, community-run.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the XIVAPI
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 a Final Fantasy XIV item by id
GET https://xivapi.com/Item/1675
curl 'https://xivapi.com/Item/1675'const res = await fetch("https://xivapi.com/Item/1675");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://xivapi.com/Item/1675", timeout=20)
res.raise_for_status()
print(res.json()){
"AdditionalData": 0,
"Adjective": 0,
"AetherialReduce": 0,
"AlwaysCollectable": 0,
"Article": 1,
"BaseParam0": {
"1HWpn%": 100,
"2HWpn%": 140,
"Bracelet%": 67,
"Chest%": 135,
"ChestHead%": 220,
"ChestHeadLegsFeet%": 440,
"ChestLegsFeet%": 355,
"ChestLegsGloves%": 355,
"Description": "Affects physical damage dealt by gladiator's arms, marauder's arms, dark knight's arms, gunbreaker's arms, pugilist's arms, lancer's arms, samurai's arms, reaper's arms, thaumaturge's arms, arcanist's arms, red mage's arms, pictomancer's arms, conjurer's arms, astrologian's arms, sage's arms, and blue mage's arms.",
"Description_de": "Stärke: Beeinflusst die Höhe des physischen Schadens, den die Waffen der Gladiatoren, Marodeure, Revolverklingen, Faustkämpfer, Pikeniere, Druiden, Thaumaturgen, Hermetiker, Dunkelritter, Samurai, Rotmagier, Piktomaten, Blaumagier, Astrologen, Schnitter und Weisen austeilen.",
"Description_en": "Affects physical damage dealt by gladiator's arms, marauder's arms, dark knight's arms, gunbreaker's arms, pugilist's arms, lancer's arms, samurai's arms, reaper's arms, thaumaturge's arms, arcanist's arms, red mage's arms, pictomancer's arms, conjurer's arms, astrologian's arms, sage's arms, and blue mage's arms.",
"Description_fr": "Influence les dégâts physiques des épées, épées à deux mains, haches, armes de corps à corps, armes d'hast, katana, armes de faucheur, rapières, pistolames, bâtons, baguettes, pinceaux, grimoires, globes célestes, armes de sage et armes de mage bleu.",
"Description_ja": "片手剣・両手Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
columns | query | Optional | Comma-separated column list. Use it — the default response for a single item runs to hundreds of keys. Name,Icon,ItemLevel |
language | query | Optional | Preferred language for unsuffixed string columns: `en`, `de`, `fr`, `ja`. en |
ids | query | Optional | Comma-separated ids for a batch fetch on a content list endpoint. 1675,1676 |
limit / page | query | Optional | Page size and page number on list endpoints. 10 |
Response fields
(root)object- A flat dump of the game's data sheet row. Column names are the game's PascalCase identifiers, not API-designed field names.
Name / Descriptionstring- The unsuffixed column, filled according to the `language` parameter.
Description_de / _en / _fr / _jastring- Sibling localised columns, present on every translatable field. All four ship in the same response.
BaseParam0 … BaseParamNobject- Nested sheet references expanded inline, each with their own full set of localised descriptions. A major contributor to response size.
Numeric zero fieldsinteger- Columns such as `AdditionalData` and `Adjective` use `0` where you would expect null. Zero means 'none', not 'zero of something'.
Iconstring- Relative path to the icon on XIVAPI's CDN — prefix it with the host to build a usable URL.
What you can build with the XIVAPI
- Build an FFXIV item database or market board companion
- Look up crafting recipes and their required materials
- Render item tooltips with correct icons and item levels
- Serve a multilingual FFXIV reference without maintaining translations
- Cross-reference quest and achievement data for a completionist tracker
Common errors and how to fix them
A response with hundreds of keys
Not an error — that is the unfiltered sheet row.
Fix: Add `?columns=` with only the fields you render. This is the single biggest performance win available here.
404
Unknown content type or id.
Fix: Content type names are singular and PascalCase in the path — `/Item/1675`, `/Recipe/...`, `/Quest/...`.
Empty-looking localised fields
The game itself has no translation for that row in that language.
Fix: Fall back through `_en` before showing an empty string; not every row is translated in every client language.
Timeouts on large list queries
List endpoints with no column filter can be very large.
Fix: Combine `columns` with `limit`, and page rather than requesting everything at once.
XIVAPI — frequently asked questions
Does XIVAPI require an API key?
Not for reading game content. Items, recipes, quests and the rest of the data sheets answer anonymously. A free key exists to raise rate limits for heavier use, but it is not needed to get started.
Why are XIVAPI field names so strange?
Because they are Final Fantasy XIV's own data sheet column names, passed through untouched. XIVAPI deliberately does not invent a friendlier schema, which is what lets new game data appear the moment it exists in the client files.
How do I get FFXIV data in other languages?
You already have it. Every translatable column ships with `_de`, `_en`, `_fr` and `_ja` siblings in the same response, and the `language` parameter decides what fills the unsuffixed column. No second request is needed.
How do I make XIVAPI responses smaller?
Use the `columns` parameter. A default single-item response expands nested sheet references with all their localised text; naming the four or five columns you actually display cuts the payload dramatically.
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 Flattener
Flatten nested JSON into single-level dot-notation keys online. Choose the separator, bracket or dotted array indexes, and copy or download the result.
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.
XIVAPI 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.