Steam

Инвентарь

Получи инвентарь Steam-пользователя для указанного приложения и контекста — возвращает ассеты вместе с описаниями, которые раскрывают визуальные и рыночные метаданные каждого ассета.

Эндпоинт

Этот endpoint возвращает инвентарь Steam-пользователя для конкретного приложения и контекста. Ответ повторяет собственную структуру инвентаря Steam: массив assets со списком принадлежащих пользователю предметов и массив descriptions, который раскрывает визуальные и рыночные метаданные каждого ассета по classid + instanceid.

GET   /v2/steam/users/{steamid}/inventory/{appId}/{contextId}

Обязательные параметры

steamid
string
Steam ID пользователя, чей инвентарь ты хочешь получить. Принимает различные форматы Steam ID.
appId
number
Steam application ID игры, инвентарь которой ты хочешь получить (например, 730 для Counter-Strike 2).
contextId
number
Context ID внутри инвентаря приложения. Для большинства игр context ID равен 2.

Аутентификация

Включи свой API-ключ в request header x-api-key.

x-api-key: YourSecretAPIKey

Поля ответа

ПолеТипОписание
assetsarrayПредметы, принадлежащие пользователю. Каждый ассет ссылается на описание через classid + instanceid.
descriptionsarrayМетаданные, описывающие каждый уникальный класс/экземпляр предмета, на который ссылаются assets. Несколько ассетов обычно используют одно и то же описание.

Объект asset

ПолеТипОписание
appidnumberApplication ID, которому принадлежит ассет.
contextidstringContext ID, в котором находится ассет.
assetidstringУникальный ID этого конкретного ассета в инвентаре пользователя.
classidstringClass ID, используемый для поиска описания ассета.
instanceidstringInstance ID, используемый (вместе с classid) для поиска описания ассета.
amountstringКоличество данного ассета. Почти всегда "1", кроме стакающихся предметов.

Объект description

ПолеТипОписание
appidnumberApplication ID.
classidstringClass ID — совпадает с assets[].classid.
instanceidstringInstance ID — совпадает с assets[].instanceid.
currencynumber1, если предмет является внутриигровой валютой, иначе 0.
background_colorstringHex-цвет, используемый за иконкой предмета в интерфейсе Steam.
icon_urlstringОтносительный путь к иконке предмета на CDN Steam.
icon_url_largestringОтносительный путь к большой иконке предмета на CDN Steam (присутствует не всегда).
descriptionsarrayСтроки форматированного описания (описание оружия, содержимое кейсов, атрибуты и т.д.).
tradablenumber1, если предмет можно обменять, иначе 0.
marketablenumber1, если предмет можно продать на Steam Community Market, иначе 0.
commoditynumber1, если предмет является товаром (взаимозаменяем), иначе 0.
market_tradable_restrictionnumberДней, оставшихся до того, как предмет станет доступен для обмена.
market_marketable_restrictionnumberДней, оставшихся до того, как предмет станет доступен для продажи.
namestringОтображаемое название предмета.
name_colorstringHex-цвет, используемый для названия предмета в интерфейсе Steam (отражает редкость).
typestringКлассификация типа предмета (например, "Base Grade Container", "Mil-Spec Grade SMG").
market_namestringОтображаемое название на торговой площадке.
market_hash_namestringURL-безопасное название для площадки, используется для запросов к market-эндпоинтам.
actionsarrayВнутриигровые действия, такие как ссылки на inspect. Присутствует не всегда.
market_actionsarrayДействия, связанные с площадкой, такие как ссылки на inspect со страницы маркета. Присутствует не всегда.
tagsarrayКлассификационные теги (тип, оружие, редкость, износ, коллекция и т.д.).
sealednumber1, если контейнер запечатан, иначе 0.
sealed_typenumberВнутренний тип запечатанного контейнера.
market_bucket_group_namestringНазвание группы market bucket (используется Steam для группировки вариантов).
market_bucket_group_idstringID группы market bucket.

URL-ы иконок являются относительными. Чтобы отобразить их, добавь префикс базового CDN Steam:

https://community.cloudflare.steamstatic.com/economy/image/{icon_url}

Пример ответа

Для краткости массивы assets и descriptions усечены — реальный ответ содержит по одному ассету на каждый предмет в инвентаре и по одному описанию на каждую уникальную пару classid + instanceid.

response.json
{
  "success": true,
  "result": {
    "assets": [
      {
        "appid": 730,
        "contextid": "2",
        "assetid": "50813022021",
        "classid": "5710094579",
        "instanceid": "8336926543",
        "amount": "1"
      }
    ],
    "descriptions": [
      {
        "appid": 730,
        "classid": "5710094579",
        "instanceid": "8336926543",
        "currency": 0,
        "background_color": "393b3e",
        "icon_url": "i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGJKz2lu_XsnXwtmkJjSU91dh8bj35VTqVBP4io_frnEVvqf_a6VoIfGSXz7Hlbwg57QwSS_mxhl15jiGyN37c3_GZw91W8BwRflK7EfKsa2sfw",
        "tradable": 1,
        "name": "Kilowatt Case",
        "name_color": "b0c3d9",
        "type": "Base Grade Container",
        "market_name": "Kilowatt Case",
        "market_hash_name": "Kilowatt Case",
        "commodity": 1,
        "market_tradable_restriction": 7,
        "market_marketable_restriction": 7,
        "marketable": 1,
        "tags": [
          { "category": "Type", "internal_name": "CSGO_Type_WeaponCase", "localized_category_name": "Type", "localized_tag_name": "Container" },
          { "category": "Rarity", "internal_name": "Rarity_Common", "localized_category_name": "Quality", "localized_tag_name": "Base Grade", "color": "b0c3d9" }
        ],
        "sealed": 0,
        "sealed_type": 0,
        "market_bucket_group_name": "Kilowatt Case",
        "market_bucket_group_id": "G18A8263004"
      }
    ]
  }
}