Mobile Export (also known as Public Export) refers to a public endpoint hosted by Digital Extremes that is used to feed internal data to Warframe Nexus, the official mobile companion app for WARFRAME, the Warframe Arsenal Twitch Extension, and the game itself. Note that the wiki is not responsible for any malicious use of this data. Any data extracted should be used for informational purposes only and does not necessarily represent the current and future state of the game. Content is subjected for removal as the game updates so please do not use this for speculative reasons.
Details[]
To get data from the mobile export you need to access two servers:
You start with the language-specific index from the origin server eg: https://origin.warframe.com/PublicExport/index_<language_code>.txt.lzma
NOTE: After downloading the root index all further requests must be to the content server: http://content.warframe.com/PublicExport/
You should use HTTPS for the origin index but both HTTP and HTTPS will work for the content server. Since HTTP enables local caches to optimize download, the developers generally advise people to only use HTTPS for content when needed (the launcher setting "Allow Network Caches" controls this for the game itself).[1]
The data obtained from the Mobile Export will be in the form of a JSON file. Note that the index file is compressed using Lempel–Ziv–Markov chain algorithm (LZMA:24).
This index file contains the hashed names of all the manifests data you can get from http://content.warframe.com/PublicExport/Manifest/
.
For example, you it might list ExportWeapons_en.json!00_HghAEHejKwa2JJrj9gZW3g
and the full URL for that would be http://content.warframe.com/PublicExport/Manifest/ExportWeapons_en.json!00_HghAEHejKwa2JJrj9gZW3g
Note that the 26 character hash (e.g. !00_uxbrm+cu3HU-I5yyC7wXSw
) at the end of file names will change every time the developers update the manifest, thus clients will need to access the index file frequently in order to get the latest endpoint for a particular file. You can safely cache any hashed asset forever (and the CDN does exactly this) because if the file contents change it will get a new hashed name.
Available Languages[]
Depending on the language code used, the name
, description
, levelStats
keys of most content will be localized to the appropriate locale. The API supports all of WARFRAME's officially supported languages.
Code | Language |
---|---|
de |
German |
en |
English |
es |
Spanish (Spain) |
fr |
French |
it |
Italian |
ja |
Japanese |
ko |
Korean |
pl |
Polish |
pt |
Portuguese (Brazil) |
ru |
Russian |
tc |
Chinese (Traditional) |
th |
Thai |
tr |
Turkish |
uk |
Ukrainian |
zh |
Chinese (Simplified) |
Available Content[]
ExportCustoms_<language_code>.json
- Warframe Cosmetics, Weapon skins, Companion skins, and TennoGen skins (ExportCustoms
)ExportDrones_<language_code>.json
- Extractors (ExportDrones
)ExportFlavour_<language_code>.json
- Player customizable content (Glyphs, Color Picker Extension, Decorations, Landing Craft skins, Animation Sets, menu themes, etc.) (ExportFlavour
)ExportFusionBundles_<language_code>.json
- Mod bundles in the Market (ExportFusionBundles
)ExportGear_<language_code>.json
- Gear items (ExportGear
)ExportKeys_<language_code>.json
- Mission keys (e.g. Mutalist Alad V Assassinate Key) and Quests (ExportKeys
)ExportRecipes_<language_code>.json
- Blueprints (ExportRecipes
)ExportRegions_<language_code>.json
- Star Chart nodes (ExportRegions
)ExportRelicArcane_<language_code>.json
- Void Relics and Arcane Enhancements (ExportRelicArcane
)ExportResources_<language_code>.json
- Resources, ship decorations (ExportResources
)ExportSentinels_<language_code>.json
- Sentinels, Kubrows, Kavats, Predasites, Vulpaphylas (ExportSentinels
)ExportSortieRewards_<language_code>.json
- Sortie rewards (
ExportSortieRewards
) - Nightwave challenges (
ExportNightwave
) - Veil Proxima nodes for Sentient anomaly (
ExportRailjack
) - Intrinsics (
ExportIntrinsics
) - Boosters, Gene-Masking Kits, misc. (
ExportOther
)
- Sortie rewards (
ExportUpgrades_<language_code>.json
- Mods, Riven Mods challenges and base stats (
ExportUpgrades
) - Focus nodes (
ExportFocusUpgrades
) - Plexus mods (
ExportAvionics
) - Set Mods (
ExportModSet
)
- Mods, Riven Mods challenges and base stats (
ExportWarframes_<language_code>.json
- Warframes, Archwings, Necramechs (
ExportWarframes
) - Helminth abilities (
ExportAbilities
)
- Warframes, Archwings, Necramechs (
ExportWeapons_<language_code>.json
- Weapons, Exalted Weapons, modular weapon parts (Amps, Zaws, Kitguns), modular companion parts (MOA (Companion), Predasite, Vulpaphyla, Hound (Companion)), modular K-Drives parts (
ExportWeapons
) - Railjack Armaments (
ExportRailjackWeapons
)
- Weapons, Exalted Weapons, modular weapon parts (Amps, Zaws, Kitguns), modular companion parts (MOA (Companion), Predasite, Vulpaphyla, Hound (Companion)), modular K-Drives parts (
ExportManifest.json
- Full image manifest (same for all languages)
Extracting Images[]
ExportManifest.json
has every item's uniqueName
paired with a textureLocation
. textureLocation
can be added to the end of http://content.warframe.com/PublicExport/
to get the item's image asset.
- Most assets will be 512 by 512 pixels in dimensions
- Mod images will be 256 by 256 pixels however
Third-party usage of these assets must comply to WARFRAME's Content Policy.
For example, as of Hotfix 31.1.8 (2022-02-24) (after change from rectangle icons to squares in Update 31.1 (2022-02-09)), the following link is valid to get Lato's latest image
http://content.warframe.com/PublicExport/Lotus/Interface/Icons/StoreIcons/Weapons/SecondaryWeapons/Weapons/Lato.png!00_Klh0iT5bMhtA5785r1FM6w
{
"uniqueName":"/Lotus/Weapons/Tenno/Pistol/Pistol",
"textureLocation":"/Lotus/Interface/Icons/StoreIcons/Weapons/SecondaryWeapons/Weapons/Lato.png!00_Klh0iT5bMhtA5785r1FM6w"
}
Since WARFRAME's CDN caches any hashed asset forever, if the URL to older assets are known, they can still be accessed. For example, as of Hotfix 30.7.6 (2021-09-23) the following link is valid to get Lato's old image:
http://content.warframe.com/PublicExport/Lotus/Interface/Icons/Store/Pistol.png!00_l6qtnhCRgAMSyjjAp1RdVQ
{
"uniqueName":"/Lotus/Weapons/Tenno/Pistol/Pistol",
"textureLocation":"/Lotus/Interface/Icons/Store/Pistol.png!00_l6qtnhCRgAMSyjjAp1RdVQ"
}
Weapons Schema[]
Guns[]
- "name" {string} Weapon name in all caps
- "uniqueName" {string} Relative path to weapon data
- "codexSecret" {boolean} Whether or not weapon is hidden from Codex if player does not have it
- "damagePerShot" {float[]} A 20-element array of floats representing individual damage type values in the following order:
- "totalDamage" {float} Total Damage
- "description" {string} Weapon description
- "criticalChance" {float} Weapon Critical Chance
- "criticalMultiplier" {float} Weapon Critical Multiplier
- "procChance" {float} Weapon Status Chance
- "fireRate" {float} Weapon Fire Rate
- "masteryReq" {int} Mastery Rank requirement
- "productCategory" {string} Weapon's product category ("Pistols", "LongGuns", "Melee", "SpaceGuns", "SpaceMelee", "SpecialItems", "CrewShipWeapons")
- "excludeFromCodex" {boolean} Whether or not weapon will appear in Codex
- "slot" {int} Weapon's slot number (0 for secondaries, 1 for primaries/Arch-guns, 5 for melees/Arch-melees, 7 for Exalted Weapons, 13 for Railjack armaments)
- "accuracy" {float} Weapon accuracy rating
- "omegaAttenuation" {float} Weapon Riven Mod disposition
- "maxLevelCap" {int} Weapon's max rank, reserved for Kuva and Tenet weapons
- "noise" {string} Weapon's Noise Level in all caps
- "trigger" {string} Weapon's Trigger Type in all caps
- "magazineSize" {int} Weapon's Magazine Capacity
- "reloadTime" {float} Weapon's Reload time
- "sentinel" {boolean} Whether or not weapon is a Robotic Weapon
- "multishot" {int} Weapon's base Multishot
Sample:
{
"name":"MARA DETRON",
"uniqueName":"/Lotus/Weapons/VoidTrader/VTDetron",
"codexSecret":true,
"damagePerShot":[0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0],
"totalDamage":40,
"description":"For Orokin-era smugglers, this fearsome handheld shotgun was a favored tool for 'dispute resolution'.",
"criticalChance":0.079999998,
"criticalMultiplier":1.5,
"procChance":0.1371429,
"fireRate":3.3333335,
"masteryReq":9,
"productCategory":"Pistols",
"slot":0,
"accuracy":13.333333,
"masteryReq":9,
"omegaAttenuation":1.1,
"noise":"ALARMING",
"trigger":"SEMI",
"magazineSize":8,
"reloadTime":1.05,
"multishot":7
}
Melee[]
- "name" {string} Weapon name in all caps
- "uniqueName" {string} Relative path to weapon data
- "codexSecret" {boolean} Whether or not weapon is hidden from Codex if player does not have it
- "damagePerShot" {float[]} A 20-element array of floats representing individual damage type values in the following order:
- "totalDamage" {float} Total Damage
- "description" {string} Weapon description
- "criticalChance" {float} Weapon Critical Chance
- "criticalMultiplier" {float} Weapon Critical Multiplier
- "procChance" {float} Weapon Status Chance
- "fireRate" {float} Weapon Attack Speed
- "masteryReq" {int} Mastery Rank requirement
- "productCategory" {string} Weapon's product category ("Pistols", "LongGuns", "Melee", "SpaceGuns", "SpaceMelee", "SpecialItems", "CrewShipWeapons")
- "excludeFromCodex" {boolean} Whether or not weapon will appear in Codex
- "slot" {int} Weapon's slot number (0 for secondaries, 1 for primaries/Arch-guns, 5 for melees/Arch-melees, 7 for Exalted Weapons, 13 for Railjack armaments)
- "omegaAttenuation" {float} Weapon Riven Mod disposition
- "maxLevelCap" {int} Weapon's max rank, reserved for Kuva and Tenet weapons
- "blockingAngle" {int} Melee's blocking angle
- "comboDuration" {int} Melee Combo duration
- "followThrough" {float} Melee's follow through
- "range" {float} Melee's range
- "slamAttack" {float} Melee's direct slam attack damage
- "slamRadialDamage" {float} Melee's radial slam attack damage
- "slamRadius" {float} Melee's slam radius
- "slideAttack" {float} Melee's slide attack damage
- "heavyAttackDamage" {float} Melee's heavy attack damage
- "heavySlamAttack" {float} Melee's heavy direct slam attack damage
- "heavySlamRadialDamage" {float} Melee's heavy radial slam attack damage
- "heavySlamRadius" {float} Melee's heavy slam radius
- "windUp" {float} Melee's heavy attack wind-up time
Sample:
{
"name":"SKANA",
"uniqueName":"/Lotus/Weapons/Tenno/Melee/LongSword/LongSword",
"codexSecret":false,
"damagePerShot":[18,18,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"totalDamage":120,
"description":"Before all other weapons, Tenno master the Skana. This simple blade becomes immensely powerful in the hands of a master. For Tenno, it is the foundation of their fighting style and a pillar of their culture.",
"criticalChance":0.050000001,
"criticalMultiplier":1.5,
"procChance":0.15999997,
"fireRate":0.83333337,
"masteryReq":0,
"productCategory":"Melee",
"slot":5,
"omegaAttenuation":1.3,
"blockingAngle":55,
"comboDuration":5,
"followThrough":0.60000002,
"range":2.5,
"slamAttack":360,
"slamRadialDamage":120,
"slamRadius":7,
"slideAttack":120,
"heavyAttackDamage":600,
"heavySlamAttack":480,
"heavySlamRadialDamage":480,
"heavySlamRadius":8,
"windUp":0.60000002
}
Upgrades Schema[]
Excluding Riven Mods and their challenges:
- "uniqueName" {string} Relative path to upgrade data
- "name" {string} Upgrade name
- "polarity" {string} Polarity of upgrade using internal names
- "rarity" {string} Upgrade rarity in all caps
- "codexSecret" {boolean} Whether or not upgrade is hidden from Codex if player does not have it
- "baseDrain" {int} Base capacity drain
- "fusionLimit" {int} Maximum number of ranks
- "excludeFromCodex" {boolean} Whether or not upgrade will appear in Codex
- "isUtility" {boolean} Whether or not upgrade can be fitted in Exilus slot
- "compatName" {string} Name of item that the upgrade can be equipped as seen on card description in all caps (e.g. "WARFRAME", "VULKAR", "OBERON", "NECRAMECH", "PISTOL (NO AOE)", "POLEARMS")
- "type" {string} Name of class of upgrades that it belongs to in all caps (e.g. "WARFRAME", "PRIMARY", "ARCHWING", "STANCE")
- "description" {string[]} String array containing upgrade description(s)
- "subtype" {string} For augment mods, the relative path to Warframe
- "levelStats" {Object[]} Array of JSON objects, each containing the upgrade description (not actual value) at a particular rank
Sample:
{
"uniqueName":"/Lotus/Upgrades/Mods/Warframe/Expert/AvatarKnockdownResistanceModExpert",
"name":"Primed Sure Footed",
"polarity":"AP_DEFENSE",
"rarity":"LEGENDARY",
"codexSecret":true,
"baseDrain":6,
"fusionLimit":10,
"isUtility":true,
"compatName":"WARFRAME",
"type":"WARFRAME",
"levelStats":[
{"stats":["+9% Chance to Resist Knockdown"]},
{"stats":["+18% Chance to Resist Knockdown"]},
{"stats":["+27% Chance to Resist Knockdown"]},
{"stats":["+36% Chance to Resist Knockdown"]},
{"stats":["+45% Chance to Resist Knockdown"]},
{"stats":["+55% Chance to Resist Knockdown"]},
{"stats":["+64% Chance to Resist Knockdown"]},
{"stats":["+73% Chance to Resist Knockdown"]},
{"stats":["+82% Chance to Resist Knockdown"]},
{"stats":["+91% Chance to Resist Knockdown"]},
{"stats":["+100% Chance to Resist Knockdown"]}
]
}
Riven Mods[]
- "uniqueName" {string} Relative path to upgrade data
- "name" {string} Upgrade name
- "polarity" {string} Polarity of upgrade using internal names
- "rarity" {string} Upgrade rarity in all caps
- "codexSecret" {boolean} Whether or not upgrade is hidden from Codex if player does not have it
- "baseDrain" {int} Base capacity drain
- "fusionLimit" {int} Maximum number of ranks
- "excludeFromCodex" {boolean} Whether or not upgrade will appear in Codex
- "upgradeEntries" {Object[]} Array of objects containing all possible stats
- "availableChallenges" {Object[]} Array of objects containing all possible challenges and their additional modifiers ("complications")
Sample Riven Mod:
{
"uniqueName":"/Lotus/Upgrades/Mods/Randomized/LotusModularRifleRandomModRare",
"name":"DO NOT USE",
"polarity":"AP_UNIVERSAL",
"rarity":"COMMON",
"codexSecret":true,
"baseDrain":-1295140757,
"fusionLimit":32764,
"excludeFromCodex":true,
"upgradeEntries":[...],
"availableChallenges":[...]
}
Sample stat:
{
"tag":"WeaponArmorPiercingDamageMod",
"prefixTag":"insi",
"suffixTag":"cak",
"upgradeValues":[{"value":0.01333,"locTag":"|val|% <DT_PUNCTURE>Puncture"}
}
Sample challenge:
{
"fullName":"/Lotus/Types/Challenges/RandomizedKill",
"description":"Kill |COUNT| Enemies",
"complications":[...]
}
Sample challenge complication:
{
"fullName":"/Lotus/Types/Challenges/Complications/ResetOnAlarmRaised",
"description":"without raising any alarms",
"overrideTag":"Get |COUNT| kills in a row while Wall Dashing or Wall Latching without touching the floor or raising any alarms"
}
References[]
- ↑ Miner, Glen (2022, February 22). Changes: Mobile Export. Accessed 2022-02-26. Archived from the original on 2022-02-26. The exact edit in which this change was added from [DE]Glen himself.
External Links[]
- https://web.archive.org/web/20190720085542/https://warframe.fandom.com/wiki/User_blog:DEDrew/How_to_find_Warframe_Images - Archive of [DE]Drew's original blog post of extracting image data from the Mobile Export (outdated)
- https://github.com/WFCD/warframe-items Warframe-items scraper using this endpoint
See Also[]
- World State for data on the current state of the Star Chart
- Drop Tables for data on WARFRAME's reward drop tables