Warframe drop data in an easier to parse format.
NOTE: This data is parsed from Digital Extremes official drop data website, no data mining was involved.
There is an experimental searchable web ui available at http://drops.warframestat.us
You can access the data via normal HTTP requests, which makes it usable like an API without really being one.
All data from the website in one single file.
Data structure:
{
"blueprintLocations": [ { ... } ],
"cetusBountyRewards": [ { ... } ],
"enemyBlueprintTables": [ { ... } ],
"enemyModTables": [ { ... } ],
"keyRewards": [ { ... } ],
"missionRewards": { "Earth": { ... } },
"modLocations": [ { ... } ],
"relics": [ { ... } ],
"sortieRewards": [ { ... } ],
"transientRewards": [ { ... } ],
"solarisBountyRewards" : [ { ... } ],
"zarimanRewards": [ { ... } ],
"syndicates": [ { ... }],
}
The metadata of the current build. Updates when Digital Extremes' website is updated.
- Hash: An MD5 hash generated from the drop data page.
- Timestamp: The timestamp at which the build was generated by us.
- Modified: The timestamp at which the drop data page was last modified by DE.
{
"hash": "d47a826e5c3a8dc7a37fe6f468f41a57",
"timestamp": 1524933993968,
"modified": 1524690737000
}
All mission rewards, like what drops where and in which rotation. (Source)
"missionRewards": {
"Sedna": {
"Hydron": {
"gameMode": "Defense",
"isEvent": false,
"rewards": {
"A": [
{
"_id": "c0400ac7082c2f3d811e47ca9b7a8ae8",
"itemName": "Vitality",
"chance": 11.11,
"rarity": "Uncommon"
},
{ ... }
],
"B": [ ... ]
}
},
"Bere": { ... }
},
"Earth": { ... }
}
Drop data for a specific location. Example: /data/missionRewards/Eris/Xini.json
.
"Hydron": {
"gameMode": "Defense",
"isEvent": false,
"rewards": {
"A": [
{
"_id": "c0400ac7082c2f3d811e47ca9b7a8ae8",
"itemName": "Vitality",
"chance": 11.11,
"rarity": "Uncommon"
},
{ ... }
],
"B": [ ... ]
}
}
All relics, what they contain, rarity etc. (Source)
"relics": [
{
"_id": "4e4d817f8c2d887316c6d8add253403e",
"tier": "Axi",
"relicName": "A1",
"state": "Intact",
"rewards": [
{
"_id": "6733cc5298452209aa29dd72027c7df1",
"itemName": "Akstiletto Prime Barrel",
"chance": 11,
"rarity": "Uncommon"
},
{ ... }
]
},
{ ... }
]
Data for a specific relic. Example: /data/relics/Axi/R1.json
.
{
"_id": "4e4d817f8c2d887316c6d8add253403e",
"tier": "Axi",
"relicName": "A1",
"state": "Intact",
"rewards": {
"Intact": [
{
"_id": "6733cc5298452209aa29dd72027c7df1",
"itemName": "Akstiletto Prime Barrel",
"chance": 11,
"rarity": "Uncommon"
},
{ ... }
],
"Exceptional": [ ... ]
}
}
Rewards not tied to a specific location, like mods dropped by Nightmare Mode missions. (Source)
"transientRewards": [
{
"_id": "b3c734177040ffb494609a27d87d4841",
"objectiveName": "Derelict Vault",
"rewards": [
{
"_id": "24a4a903a7846a300d6b04e914e52e1b",
"itemName": "Anemic Agility",
"chance": 4.17,
"rarity": "Rare"
},
{ ... }
]
},
{ ... }
]
Sortie rewards. (Source)
"sortieRewards": [
{
"_id": "b3c734177040ffb494609a27d87d4841",
"itemName": "4000 Endo",
"chance": 12.1,
"rarity": "Uncommon"
},
{ ... }
]
Mod drops sorted by mod. (Source)
"modLocations": [
{
"_id": "b3c734177040ffb494609a27d87d4841",
"modName": "Accelerated Deflection",
"enemies": [
{
"_id": "68cfde6d20b38ba62b412b48c440a7a0",
"enemyName": "Arcane Boiler",
"enemyModDropChance": 3,
"chance": 7.37,
"rarity": "Rare"
},
{ ... }
]
},
{ ... }
]
Mod drops sorted by enemy. (Source)
"modLocations": [
{
"_id": "2757006e018c952e40a6e3cf74048420",
"enemyName": "002-Er",
"enemyModDropChance": "10.00",
"mods": [
{
"_id": "74ab77f66f97e146b6cef713a370e105",
"modName": "Flux Overdrive",
"chance": 12.5,
"rarity": "Uncommon"
},
{ ... }
]
},
{ ... }
]
Blueprints and part drops sorted by enemy. (Source)
"enemyBlueprintTables": [
{
"_id": "6ba71181fe67be210250c59fdf06ecb8",
"enemyName": "Arid Heavy Gunner",
"enemyItemDropChance": "1.00",
"items": [
{
"_id": "9568cc883b465bc94c14e0d206506b2d",
"itemName": "Gorgon Blueprint",
"chance": 100,
"rarity": "Common"
},
{ ... }
]
},
{ ... }
]
Blueprints and part drops sorted by item. (Source)
"blueprintLocations": [
{
"_id": "2d200b684ad2bac2184a5edc3a9655cb",
"itemName": "Ash Chassis Blueprint",
"enemies": [
{
"_id": "02ca12683663224f017f209954cb876a",
"enemyName": "Grineer Manic",
"enemyItemDropChance": 33,
"chance": 38.72,
"rarity": "Common"
},
{ ... }
]
},
{ ... }
]
Drop data for Cetus bounty missions. (Source)
"cetusBountyRewards": [
{
"_id": "0b9c958b277561c57f47390f5db201ef",
"bountyLevel": "Level 10 - 30 Bounty",
"rewards": {
"A": [
{
"_id": "2d220168d8505314316354e586fe4c7e",
"stage": "Stage 1",
"itemName": "100 Endo",
"chance": 25,
"rarity": "Uncommon"
},
{ ... }
],
"B": [ ... ]
}
},
{ ... }
]
Drop data for Zariman bounty missions. (Source)
"zarimanRewards": [
{
"_id": "255771097c27769a3a76bfa38c9fba49",
"bountyLevel": "Level 50 - 55 Zariman Bounty",
"rewards": {
{ ... }
"C": [
{
"_id": "d5ccc328b76d91df416cc361d2209c1f",
"itemName": "15,000 Credits",
"rarity": "Uncommon",
"chance": 17.39,
"stage": "Final stage"
},
{ ... }
],
}
},
{ ... }
]
Drop data for syndicate vendors. Generated by data from the Warframe Wikia.
{
"syndicates": {
"Steel Meridian": [
{
"_id": "d765637f1f1ae09add1b5265f5d29ea1",
"item": "Steel Meridian Sigil",
"chance": 100,
"rarity": "Common",
"place": "Steel Meridian, Brave",
"standing": 1000
},
{ ... }
],
{ ... }
},
}
Miscellanous enemy item drops. (Source)
"miscItems": [
{
"_id": "abce816f002a752c88308d5f6658427c",
"enemyName": "Akkalak Turret",
"enemyItemDropChance": "70.00",
"items": [
{
"_id": "a3ab4147ff1f344ae81bc8fd301a4ba5",
"itemName": "Circuits",
"chance": 68.02,
"rarity": "Common"
},
{ ... }
]
},
{ ... }
]
A list of available builds and their timestamps.
[
{
"hash": "d47a826e5c3a8dc7a37fe6f468f41a57",
"timestamp": 1524933993968,
"modified": 1524690737000
},
{ ... }
]
The all.json
file of the given hash. Other files, such as missionRewards.json
are not available for previous builds.
{
"blueprintLocations": [ { ... } ],
"cetusBountyRewards": [ { ... } ],
"enemyBlueprintTables": [ { ... } ],
"enemyModTables": [ { ... } ],
"keyRewards": [ { ... } ],
"miscItems": [ { ... } ],
"missionRewards": { "Earth": { ... } },
"modLocations": [ { ... } ],
"relics": [ { ... } ],
"sortieRewards": [ { ... } ],
"transientRewards": [ { ... } ]
}
You can run the build script with npm run build
.
Once built, serve the Web UI with npm run serve:dev
.
Syndicate drop data is scraped from the wiki and not from the drops site as the rest of the data.
The syndicate data needs to be scraped from different pages, one for each syndicate which could also contain
multiple sections containing the drop data.
To make this possible a declarative configuration has been created within lib/syndicates.js
where you can define all of this in the following format:
/**
* @typedef {Object} SyndicateMapperResult
* @property {_id} _id Unique hash of the item
* @property {string} item The name of the item
* @property {number} chance The dropchance of the item
* @property {string} rarity The rarity of the item
* @property {string} place The location where the item drops
*/
/**
* @typedef {function} SyndicateMapper
* @param {module:cheerio/CheerioAPI} $ cheerio interface
* @param {string} element Current element
* @param {string} syndicate Name of the Syndicate
* @param {string} [section] Section title - potentially empty
* @returns {SyndicateMapperResult}
*/
/**
* @typedef {Object} SyndicateSection
* @property {string} [title] Indicates the name of the specific vendor
* @property {string} selector jQuery selector used to find the elements you want to map
* @property {SyndicateMapper} [mapper] Used to map these elements. If not provided, a default mapped is used
*/
/**
* @typedef {Object} SyndicateConfig
* @property {string} name Name of the Syndicate (should match the wiki)
* @property {string} url The wiki url of the syndicate
* @property {SyndicateSection[]} sections These will be parsed and mapped into json data
*/
/** @type {Array<SyndicateConfig>} */
const SYNDICATES = [
{
name: 'Steel Meridian',
url: 'https://warframe.fandom.com/wiki/Steel_Meridian',
sections: [
{ selector: '#mw-customcollapsible-SteelMeridian > div > div' },
],
},
{
name: 'Entrati',
url: 'https://warframe.fandom.com/wiki/Entrati',
sections: [
{ title: 'Father', selector: '#mw-customcollapsible-Father > div > div' },
{ title: 'Daughter', selector: '#mw-customcollapsible-Daughter > div > div' },
{ title: 'Son', selector: '#mw-customcollapsible-Son > div > div' },
{ title: 'Otak', selector: '.flex-container:eq(3) > div' },
{ title: 'Grandmother', selector: '#mw-customcollapsible-Grandmother #gallery-1 > div', mapper: galleryMapper },
],
},
{ ... }
];
A mapper is a function that maps a singular element (found by the selector
) to a json object.
The mapper receives the following arguments: the cheerio
object, the current element, name of the syndicate, section title (can be empty).
The return type should at least contain the following information:
/**
* @typedef {Object} SyndicateMapperResult
* @property {_id} _id Unique hash of the item
* @property {string} item The name of the item
* @property {number} chance The dropchance of the item
* @property {string} rarity The rarity of the item
* @property {string} place The location where the item drops
*/
Any additional properties will be added into the final result but won't show up in the slim json file.
This list represents data and drops from the PC version of the Free-to-play game Warframe. That's right - Warframe is free! Which means our drop system is designed to maintain a balance. Our free players can earn the game's content, and our paying players who support us (and keep the game running) usually get first dibs on the content by using Platinum (which can be traded to free players)! As far as we can tell... we are the first developers to openly post something quite like this. Let's hope it works out for us and we set a trend.
This is automatically generated from our internal data but this data comes with no guarantees -- do not expect it to be comprehensive for how complex the game is. This list will be maintained by an automated process which will be published with Updates (not all Hotfixes). We update often and new game systems may or may not be covered here. This list can be discussed here. Know a free-to-play game that provides official drop rates in a different way? We'd love to know.
MIT