이 페이지는 아직 번역되지 않았습니다. 영어 버전
ForeverDB API
WoW Forever data as JSON for your own site, bot, addon tool or spreadsheet: items, spells, quests, vendors, dungeons, classes, item sets, professions and recipes, gathering, battlegrounds, changes players saw in game, ForeverDB's articles and Blizzard's posts. Read-only, with an API key.
Credit required
You must credit ForeverDB.net as the source, with a visible link to https://foreverdb.net, wherever you show the data.
A line like this is enough: <a href="https://foreverdb.net">Data from ForeverDB.net</a>
Getting a key
You need a ForeverDB account: every key belongs to one. Log in with Battle.net on this page and ask for access: say what you're building, give an email address for the answer and agree to credit ForeverDB.net. Once ForeverDB approves it, you make your own keys here (up to 3). Deleting your account deletes its keys, and a suspended account's keys stop working.
Using it
Send your key in the X-API-Key header (or Authorization: Bearer). Every answer is JSON with data and meta (the game build it comes from, and for lists the total and the next page).
curl -H "X-API-Key: fdb_…" https://foreverdb.net/api/v1/items/19019
From a server, also send a User-Agent that names your app. Cloudflare turns away some libraries' default User-Agent, such as Python's urllib, with a 403 (error code 1010) before the request reaches us.
Pricing
$5.99 a month for 10,000 requests a day and 60 a minute, for every key on your account together. One plan for everyone, cancel any time.
Free tier: 5,000 requests a day and 30 a minute for every account, enough for most bots, guild sites and small tools. Past that the answer is 402 with the code subscription_required.
Why it costs money: the API answered over a million requests in its first weeks, far more than we expected. Every answer comes from data we extract from the WoW Forever client on every build and from what thousands of players' addons record in the game. Hosting it, the database, the bandwidth and the jobs that rebuild it all cost money every month. The site stays free for players; developers who use a lot of data help keep it running.
On the free tier you must credit ForeverDB.net with a link wherever you show the data. On the paid plan the credit is optional.
Payments go through Stripe.
Limits
Limits count per account, across all its keys: 10,000 a day and 60 a minute on the plan, 5,000 a day without one. Past a limit the answer is 429 with Retry-After.
Endpoints
GET /api/v1/meta: About the data
The client build the data comes from, the level cap and how many of each thing there are.
GET /api/v1/items: Items
Items from the WoW Forever client, sorted by ID (lowest first). betaEvent identifies historical beta send-off copies; speculation and speculationReasons explain uncertain availability. These fields are also present on item details. Event copies are not normal launch recommendations.
q: Name containsquality: 0 Poor to 5 Legendaryclass: Item class ID (2 weapons, 4 armour...)slot: Inventory type ID (1 head, 5 chest...)minLevel: Required level at leastmaxLevel: Required level at mostlimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/items/{id}: One item
Stats, damage, speed, binding, sell price, effects and, for weapons and armor that disenchant, what disenchanting gives (disenchant). liveClient: what the live client changed since the last beta build (each field's beta and live value); dataFromBuild: details kept from an earlier build for an item the client still hides.
GET /api/v1/spells: Spells
Spells and abilities from the client, sorted by ID.
q: Name containslimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/spells/{id}: One spell
Name, rank, description, icon, school, cast time, range, cooldown, required level and base costs from the current client data. liveClient: what the live client changed since the last beta build (added, removed or changed, with each field's beta and live value), for the spell, its class ability or its talent.
GET /api/v1/quests: Quests
Quests with ForeverDB's guide, and whether they're known in Forever, with who starts and ends each one and where (starts, ends: as on the quest's page). Sorted by ID.
q: Name containszone: Zone name containsminLevel: Quest level at leastmaxLevel: Quest level at mostside: alliance or hordelimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/quests/{id}: One quest
The quest's level, side, zone, where the data comes from and its guide link; chain: the earlier (previous) and following (next) quests as on the quest page, each with questId, name, relation (Complete first, Chain link, Must be active, Next quest, Quest line, Offered after) and source (a list can hold alternatives: not every quest in it is needed), and questLine (name, part, of) when the Forever client has one; and starts and ends: the NPC, object or item that gives it and the one you hand it in to (type npc, object or item; id; name), where it stands (location: uiMapId, zone, x and y in percent of the zone map, or null; instance when it's inside a dungeon), and the source: seen in WoW Forever (players' ForeverDB addon, with how many players), or Classic data (CMaNGOS), not confirmed in Forever. Where no NPC is known, the Forever client's own quest map marker (type, id and name null) or, for the hand-in, where players' game map showed it. others: more NPCs that give or take the same quest.
GET /api/v1/vendors: Vendors
Vendors with where they stand and reputationFaction (the faction whose reputation discounts their prices: 5% at Friendly up to 20% at Exalted); seen in Forever or Classic data, labelled.
q: Name or title containszone: Zone name containsseen: true: only vendors seen in Foreverlimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/vendors/{id}: One vendor
Where the vendor stands and everything they sell, with prices in copper, and costs besides gold where players' addons saw them (costs: Merchant's Favor and other currencies, or items).
GET /api/v1/poisons: Rogue poisons
How Rogues learn Poisons (the level 20 quests), and every poison in the Forever client: what it makes, reagents, learnAtLevel, skill colours, learnedWithSkill (Instant Poison), the rogue trainers players saw teach it and the full price they saw (trainerCost, copper), seasonOfDiscoveryLeftover and aboveLevelCap. Also every rogue trainer and poison supplier (seen in Forever, or Classic data, labelled) with what the suppliers sell, and unusedReagents: what they sell that nothing in the Forever client uses (Lethargy Root).
GET /api/v1/disenchant: Disenchanting
What uncommon, rare and epic weapons and armor disenchant into, by item level: WoW Forever's results where players' addons saw them (with how many disenchants and players), and Classic's table, labelled.
GET /api/v1/dungeons: Dungeons and raids
Every instance with its level range, lowest level first.
limit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/dungeons/{id}: One dungeon
Bosses and notable loot.
GET /api/v1/zones: Zones
The world map's zones and continents. The id is the map ID (UiMap) the other answers use.
limit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/classes: Classes
The nine classes.
GET /api/v1/classes/{name}: One class
Every ability with its ranks and learned levels, plus all talent trees with tier, column, required level, rank spell IDs and descriptions, and prerequisites. Tiers and columns are 1-based.
GET /api/v1/itemsets: Item sets
Item sets with their pieces, betaEvent and availability warnings (speculation, speculationReasons), also present on set details.
q: Name containslimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/itemsets/{id}: One item set
Pieces and set bonuses.
GET /api/v1/professions: Professions
All twelve professions: primary, gathering and secondary. Each has its recipe count, how many recipes are new in Forever or changed from Classic, and how many trainers teach it.
GET /api/v1/professions/{slug}: One profession
The ranks with their skill caps, the trainers, and the recipes (a page at a time, by skill). Each recipe has its skill colours (orange, yellow, green, grey; skill.orangeSource is "classic" when the orange skill is Classic trainer data, never above the client's yellow, with Classic's own in orangeClassic when it was higher), reagents, what it makes (count; min and max for a random count), how you learn it, and what Forever changed. learnedFrom.sources says where: every trainer and vendor for each faction (with where they stand; the vendor's price in copper for one purchase, stack, pricePerItem, costs besides gold such as Merchant's Favor, limited stock, and reputationFaction: the faction whose reputation discounts the price), the quests and drops that give the recipe, and whether players saw each one in Forever. category: the recipe's trade-skill category in the Forever client (Elixirs, Smelted Bars...) with its parent. Recipes come from the Forever client; trainers and vendors are Classic data unless seenInForever. Trainers players saw teach a recipe in Forever are listed with their place even when Classic has none (Forever's new recipes and NPCs), and trainerCostSource says whether the price is the full price players saw or Classic's. recipeItemsHidden: items the Forever client lists as teaching the recipe whose name and details stay on Blizzard's servers until the game sends them (recipeItemsNotInClient is the old name, kept). Slugs: alchemy, blacksmithing, enchanting, engineering, leatherworking, tailoring, herbalism, mining, skinning, cooking, first-aid, fishing.
q: Recipe name containsnew: true: only recipes new in Foreverchanged: true: only recipes changed from Classiclimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/gathering/{slug}: Gathering
Where to gather, for herbalism, mining, skinning or fishing. Herbalism and mining: each herb or vein with the skill it needs, and each zone with how many of each. Skinning: each zone's levels and the skill its beasts need; ask for one zone to get its beasts, with their levels, the skill each needs and what it gives. Fishing: each zone's skill, what you catch there and the fishing pools. All four have the best zones for each skill range. Spawn counts are Classic data until players' addons see them in Forever (labelled).
zone: Only this zone: its map ID, or part of its name (for skinning, this also lists the zone's beasts)
GET /api/v1/battlegrounds: Battlegrounds and arenas
Every battleground and arena in the client: levels, team size, how you win, the objectives with their place on the map (x and y in percent), and where the rules come from: blizzard (Blizzard's posts), classic (Classic's rules, Speculation) or client (only the client's data so far).
GET /api/v1/changes-seen: Changes seen in game
What players' ForeverDB addons saw in the game that differs from the game files: prices, quest rewards and XP, item stats, creature levels. Each is Verified (two or more players, or checked against the client) or Not confirmed. Newest first. Counts only: never who saw it.
kind: item, npc, vendor, trainer or questverified: 1: only Verified; 0: only Not confirmedlimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/builds: Builds
Every WoW Forever client build ForeverDB has compared, newest first: its date, the build before it, how many class abilities, talents, spells, items and sets it added, removed or changed (counts), the client's totals, ForeverDB's article about it when there is one, and its changelog page. These are what changed in the game files, not Blizzard's patch notes.
limit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/builds/{build}: One build's changes
Everything one build changed in the game files, compared with the build before it: each class ability, talent, spell, item or set added, removed or changed, with every changed field (before and after, per rank). dataOnly marks rows a player never reads (effect codes, an item's look). Use latest for the newest build. As on /changelog and the site's New in this update page.
type: ability, talent, spell, item or setclass: A class ID or name (warrior)change: added, removed or changedq: Name containslimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/buffs-nerfs: Buffs and nerfs
Every class change in each build, newest first, with direction: buff or nerf where the numbers say which, changed where they don't (a rework or new wording), new or removed. dataOnly: changed only in the spell's data, not in anything a player reads. changes holds the changed fields a player reads (a few at most); moreChanges says how many more the build's changelog has. As on /buffs-and-nerfs; meta.counts adds them up per class (dataOnly ones as quiet).
class: A class ID or name (warrior)build: One build (1.60.1.70790)direction: buff, nerf, changed, new or removedlimit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/merchants-favor: Merchant's Favor
WoW Forever's currency for crafters and gatherers: the Waylaid Crates that earn it (the level to use one, the bundles that fill it, how many creatures players saw drop it), the sealed crates, the Legacy perk, and what the Azeroth Commerce Authority and Durotar Supply and Logistics vendors sell for it (Favor per item and the reputation rank it needs), as players saw it with the ForeverDB addon.
GET /api/v1/articles: Articles
ForeverDB's news and articles, newest first.
type: news, guide...limit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
GET /api/v1/articles/{slug}: One article
The article's blocks and sources.
GET /api/v1/posts: Blizzard posts
Blue posts and official news about WoW Forever, newest first.
limit: How many (1 to 100, default 25)offset: Skip this many (for the next page)
What we record
Every approved developer has a developer ID, like dev-0012, and every answer names it in meta.client. For each key and UTC day we count:
- the endpoints you call, and the resources you ask for by ID (items/19019, say)
- the website the requests come from: the host in the browser's Origin or Referer header, or "server" when no browser sent them
- the kind of program: a browser, curl, Python, Node and so on. We keep the family name only, never the whole User-Agent.
- the country, as Cloudflare reports it
We never store IP addresses. We use these counts to keep the limits fair, to check the data is credited where it is shown, and to catch a key that leaked or is being abused. They are kept for 90 days.
Rules
- Credit ForeverDB.net with a visible link to https://foreverdb.net wherever you show the data.
- Don't resell the data or present it as your own, and keep to the limits.
- Each key says what it is for. A website key is for one website you run, verified with your developer ID, and is switched off at once on a second website. A plugin key (an addon, app or bot) and a personal key are switched off at once if used on any website.
- Never ship a key inside a plugin or app you give out: anyone can read it there. Fetch the data yourself and bundle it with your releases.
- Answers carry invisible marks that tell us which key the data was served to, so we can see where it is republished.
- Data from the WoW Forever client is Blizzard's; ForeverDB isn't affiliated with Blizzard Entertainment. Classic data and what players saw in the game are labelled as such.