WebAPI/GetSchema

From Team Fortress Wiki
< WebAPI
Revision as of 08:47, 7 December 2011 by Lagg (talk | contribs) (Remove layout assumption and redundant version note)
Jump to: navigation, search

URL

http://api.steampowered.com/IEconItems_<ID>/GetSchema/v0001/

See the ID list for a valid ID.

Method-specific Parameters

language
The ISO639-1 language code for the language all localized strings should be returned in. Not all strings have been translated to every language. If a language does not have a string, the English string will be returned instead. If this parameter is omitted the string token will be returned for the strings.

Supported languages for TF2 are:

  • Danish (da, da_DK)
  • Dutch (nl, nl_NL)
  • English (en, en_US)
  • Finnish (fi, fi_FI)
  • French (fr, fr_FR)
  • German (de, de_DE)
  • Hungarian (hu, hu_HU)
  • Italian (it, it_IT)
  • Japanese (ja, ja_JP)
  • Korean (ko, ko_KR)
  • Norwegian (no, no_NO)
  • Polish (pl, pl_PL)
  • Portuguese (pt, pt_PT)
  • Brazillian Portuguese (pt_BR)
  • Romanian (ro, ro_RO)
  • Russian (ru, ru_RU)
  • Simplified Chinese (zh, zh_CN)
  • Spanish (es, es_ES)
  • Swedish (sv, sv_SE)
  • Traditional Chinese (zh2, zh_TW)
  • Turkish (tr, tr_TR)

Result Data

result
status
The status of the request, should always be 1.
items_game_url
A string containing the URL to the full item schema as used by the game.
qualities
An object containing the numeric values corresponding to each "quality" an item can have:
normal (0 - Normal)
Set on stock items
rarity1 (1 - Genuine)
Set on items acquired for a promotional event (for example, Sun-On-A-Stick and Sharpened Volcano Fragment).
rarity2 (2)
Unused
vintage (3 - Vintage)
Set on items that were owned before certain updates and promotions.
rarity3 (4)
Unused
rarity4 (5 - Unusual)
Set on items with an effect attached or that were gained from a Halloween event.
unique (6 - Unique)
Set on the most common items including those found via drops and crafting.
community (7 - Community)
Set on items granted to community contributors.
developer (8 - Valve)
Set on items owned by Valve staff members.
selfmade (9 - Self-Made)
Set on items owned by 3rd-party content creators.
customized (10 - Customized)
Unused
strange (11 - Strange)
Set on ranked items.
completed (12 - Completed)
Unused
haunted (13 - Haunted)
Set on Halloween 2011 items.
qualityNames
If the language argument is specified this object is included in the output. It includes the translations of the internal quality names to the specified language.
items
An object containing a list of associative arrays.
name
A string that defines the item in the items_game.txt
defindex
The item's unique index, used to refer to instances of the item in GetPlayerItems.
item_class
The item's class in game (ie. what you would use as the argument to "equip" in the console to equip it).
item_type_name
The tokenized string that describes the item's class (eg. "#TF_Wearable_Shield" for the Chargin' Targe and the Razorback). If the language argument is specified the string for that language will be returned instead of the token.
item_name
The tokenized string for the item's name (eg. "#TF_Spy_Camera_Beard" for the Camera Beard). If the language argument is specified the string for that language will be returned instead of the token.
item_description (Optional)
The tokenized string for the item's description if it has one. If a language is specified this will be the localized description string.
proper_name
A boolean value indicating the item requires "The" to be prefixed to it's name. Ignored if language is not English.
item_slot
A string indicating what loadout slot the item can be equipped to.
primary
Primary slot items (including "Slot Token - Primary")
secondary
Secondary slot items (including "Slot Token - Secondary")
melee
Melee slot items (including "Slot Token - Melee")
head
Hats and "Slot Token - Head"
misc
Misc slot items such as medals
pda
The Engineer's Build PDA, the Spy's Disguise Kit, and "Slot Token - PDA"
pda2
The Engineer's Destroy PDA, the Spy's Invisibility Watch, the Cloak and Dagger, the Dead Ringer, and "Slot Token - PDA2"
building
"TF_WEAPON_BUILDER" (an unused copy of the Engineer's Build PDA) and the unused "Slot Token - Building"
grenade
The unused "Slot Token - Grenade"
action
Gifts and the Duel minigame
item_quality
The item's default quality value. See description of "qualities" above.
image_inventory
The image to display, as an escaped-slash ("\/") path to the material, without the extension
image_url
The URL of the small (128x128) backpack icon for the relevant item. Will be an empty string if none is available.
image_url_large
The URL of the large (512x512) backpack image for the relevant item. Will be an empty string if none is available.
drop_type (Optional)
A string indicating how an item will detach (if it does) from the player upon death. This is only relevant to cosmetic items (for example, the drop type of the Le Party Phantom would be none and the mask will stay attached to the Spy's face upon death. The Fancy Fedora would have a drop type of drop and will fall from the Spy's head.)
none
The item does not detach.
drop
The item detaches.
item_set (Optional)
Used to look up the set the item is part of in item_sets.
holiday_restriction (Optional)
A string indicating the holiday on which the item can be used, if not present the item is available all year.
halloween
Halloween
model_player
The model to display for the item, using a path similar to the above but with an ".mdl" extension, or null if the object has no model.
min_ilevel
The minimum level of the item in the schema. See notes
max_ilevel
The maximum level of the item in the schema. See notes
craft_class (Optional)
The type of the item from the crafting system's point of view. If this field is not present the item cannot be crafted by the random crafting recipes. This will be weapon, hat, craft_bar, or craft_token.
craft_material_type (Optional)
Currently identical to craft_class.
capabilities (Optional)
An associative array that lists various capabilities of the item, including how it can be interacted with.
can_craft_mark
The item will have the crafter's name attached to it.
nameable
Tags can be used on the item.
can_gift_wrap
The item can be gift wrapped.
paintable
The item can be painted.
can_craft_count
The item can be marked as a numbered craft.
decodable
The item can be opened with a key (this possibly refers to an abandoned predecessor of the crate system).
usable
The item is an Action item.
usable_gc
May mark items that can be used from within the backpack and do not need to be assigned a loadout slot.
usable_out_of_game
May mark items that can be activated while the user is not in-game.
tool (Optional)
If the item is a tool this will contain certain meta-data such as it's type, purpose, or string for use in the client UI.
used_by_classes (Optional)
The list of classes that can use this item. If this field is not present all classes can use the item.
per_class_loadout_slots (Optional)
An associative array that describes class specific loadout slots for the item if applicable.
styles (Optional)
If the item has changeable styles, an object containing an array of
name
The style's name.
attributes (Optional)
If the item has effects normally associated with it, an object containing an array of
name
The attribute's name value (see below)
class
The attribute's attribute_class value (see below)
value
The "value" of that attribute as a "%0.6f" formatted number: 1 (or 0) for boolean attributes (such as the Razorback's backstab blocking), or the multiplier for percentage-based attributes (such as 0.300000 for the Direct Hit's 30% blast radius, or 1.800000 for its 180% projectile speed)
attributes
An object containing an array of
name
A name describing the attribute (eg. "damage bonus" for damage increases found on weapons such as the Scotsman's Skullcutter, or "scattergun has knockback" for the Force-A-Nature's knockback)
defindex
The attribute's unique index, possibly used to refer to unique instances of the item with these attributes in GetPlayerItems.
attribute_class
an underscore-based name for the attribute (eg. "mult_dmg" for the attribute whose name is "damage bonus")
minvalue
The minimum value allowed for this attribute. See notes
maxvalue
The maximum value allowed for this attribute. See notes
description_string (Optional)
The tokenized string that describes the attribute. See notes
description_format (Optional)
A string describing how to format the value for a description. See notes
value_is_percentage
For values that translate into percentages and are represented by that percentage (eg. changes to the blast radius)
value_is_inverted_percentage
For values that translate into percentages and are represented by the difference in that percentage from 100% (eg. changes to the fire rate)
value_is_additive
For values that are a specific number (eg. max health bonuses and bleed durations) and boolean attributes (such as The Sandman's ability to knock out balls)
value_is_additive_percentage
For values that add to an existing percentage (e.g. The Ubersaw adding 25% charge every hit)
value_is_date
For values that are a unix timestamp
value_is_particle_index
For values that are a particle effect type. See notes
value_is_account_id
For values that are a Steam account ID. See notes
value_is_or
Possibly for values that get applied if a condition is true (e.g. player is on fire)
value_is_item_def
For values that are an item ID (a defindex value in the schema)
effect_type
A string describing the type of effect the attribute has.
positive
The effect is outright beneficial to the user (displayed in blue text in the item description window)
negative
The effect is punitive to the user (red text)
neutral
The effect is more tangential to the normal behavior (eg. the Kritzkrieg's ÜberCharge being critical hits rather than invulnerability) (white text).
hidden
A boolean that indicates if the attribute's description should be hidden from user view.
stored_as_integer
A boolean that indicates whether or not the value of the attribute is stored as an integer (opposed to a float).
item_sets
A list of associative arrays containing item set definitions.
item_set
The internal name of the set used for look ups.
name
The localized set name.
items
A list of localized item names identifying the items contained in the set.
attributes (Optional)
A list of associative arrays that describe special attributes granted by equipping a complete set. Layout is identical to to item attributes.
attribute_controlled_attached_particles
An object containing a list of associative arrays that describe the defined particle effects.
system
The name of the particle system.
id
The effect's ID, referred to by the attached particle effect attribute.
attach_to_rootbone
A boolean that indicates whether or not the effect is attached to the "root" bone. That is the bone of the item with no parent bones used for rotation and animation calculations.
attachment (Optional)
A string indicating where the effect is attached.
name
The localized name of the effect.
kill_eater_ranks
An object containing a list of associative arrays that describe weapon ranks.
name
The localized name of the rank.
level
The "level" of the rank, this is different from the item's level field and should be treated as such.
required_score
The number of kills the weapon must have less than for this rank to apply.

Notes

HTTP Headers

GetSchema responses will contain the Last-Modified header for use in caching and as a date for use in requests containing the If-Modified-Since header. This also applies to the client schema linked to by items_game_url.

Normal Weapons

The first 32 items listed describe the original class weapons, with an extraneous "TF_WEAPON_BUILDER" at defindex 28, which has the icon of the Engineer's Destroy PDA but the model of the Build PDA, and a "TF_WEAPON_FLAREGUN" at defindex 31, which uses "#TF_Weapon_Flaregun" for both item_name and item_type_name (where the normal "Unique Achievement Flaregun" uses "#TF_Unique_Achievement_Flaregun" for the item_name) and the pistol for the model. Every weapon in the first 32's name is its item_class in all caps.

Both Engineer PDAs and the Spy PDA use "#TF_Weapon_PDA_Engineer" for both their item_type_name and their item_name.

Attribute Min and Max Values

Values found on items are not guaranteed to fall within this range: for instance, "attach particle effect" lists "0.000000" as both its minvalue and maxvalue, but non-zero values are used to specify what particle effect to attach.

Particle Index Type

This type was introduced with the Polycount Update. It is to be used as an index to retrieve the particle effect name/description string.

Account ID Type

There are two formats of IDs that can be extracted from this.

Steam Community ID
Add 1197960265728 to this value and prefix the string representation of the result with "7656" for a 64 bit Steam Community ID
STEAM_0 ID
Divide this value by 2 for a STEAM_0 ID value

Image Permissions

You are welcome to use the backpack images provided by image_url and image_url_large directly or to copy the files to your own server.

Level Ranges

If min_ilevel and max_ilevel are the same if the item does not have a random level.

Attribute Descriptions

If the attribute is unused or there is no applicable description_string and description_format will be unset. If there is a language specified this will be the localized description string instead of the token.

In the localized description string there are "%s1" tokens, these are to be replaced with the appropriately formatted value generated with the format type and attribute values.