Steam Online!

API для автоматической торговли

Содержание

Создание API-ключа
Информация о всех предметах
itemdb/current_440.json
itemdb/[db_name]
API без авторизации
history
Информация о предмете
ItemInfo
ItemHistory
MassInfo
GetFloatHash - Получить хэш для запроса Float
SellOffers - Получить все предложения продажи предмета
BestSellOffer - Получить самую низкую цену предмета
BuyOffers - Получить все ордера на предмет
BestBuyOffer - Получить самую высокую цену ордера
GetItemDescription - Получить информацию о предмете
GetBaseName - Получить базовое имя предмета
GetFloatItems - Получить список предметов с заданным float
Веб-сокеты
Продажа предметов
SetPrice - выставить предмет на продажу
RemoveAll - снять все предметы с продажи
ItemRequest - запросить трейд на отправку/получение
ReportCreatedTrade - уведомление о созданном трейде
ReportFailedTrade - уведомление о ошибке в трейде
MarketTrades - активные трейды от маркета
MassSetPrice - массовое изменения цен по названию
MassSetPriceById - массовое изменения цен по ID
Покупка предметов
Buy - купить предмет
Ордера на покупку
GetOrders - получить список ордеров
InsertOrder - добавить ордер
UpdateOrder - обновить ордер
ProcessOrder - добавить/обновить/удалить ордер
DeleteOrders - удалить все ордера
StatusOrders - статус работы ордеров
GetOrdersLog - лог работы ордеров
Уведомления
GetNotifications - получить список уведомлений
UpdateNotification - обновить уведомление
Действия с аккаунтом
GetInv - Информация о не выставленных предметах
Trades - Информация о выставленных предметах
GetMoney - Баланс
PingPong - Вход в онлайн
GoOffline - Остановка торгов
SetSteamAPIKey - Установка Steam API ключаdeprecated
SetToken - Установка ссылки обмена
GetToken - Узнать ссылку обмена
GetWSAuth - Получить токен для вебсокетов
UpdateInventory - Сброс кэша инвентаря
InventoryItems - Статус кэша инвентаря
OperationHistory - История операций
GetDiscounts - Получить собственные комиссии и оборот
GetCounters - Получить счетчики со страницы Sell
GetMyProfileHash - Получить ссылку на свой профиль
GetProfileItems - Получить предметы из определенного профиля
GetMySellOffers - Получить список предметов на продаже
GetItemsToGive - Получить список предметов для передаче маркету
Поиск предметов по названию
MassSearchItemByName - Поиск до 10 предметов
SearchItemByName - Поиск по одному предмету
Моментальные покупки (покупка без ожидания)
QuickItems - Получить список доступных предметов
QuickBuy - Купить моментальный предмет
Дополнительно
GetStickers - Стикеры CS:GO
Test - Проверка статус продажи
GetChatLog - Получить последние сообщения из чата
CheckBotStatus - Проверить забанен ли бот маркета

Создание API-ключа

ВАЖНО! Если вы отправите больше 5 запросов в секунду к нашему серверу, то ваш ключ будет удален. Список API запросов за последние 20 минут можно посмотреть здесь.

Здесь вы можете создать/пересоздать личный ключ для автоматической торговли, который будет привязан к вашему аккаунту.

Если вы не понимаете зачем нужен ключ, то, пожалуйста, в целях собственной безопасности не говорите его никому.

В тестовом режиме запущена продажа приложения, которое позволяет автоматизировать торговлю на нашем сайте - CounterBot.

Используя API, вы соглашаетесь с условиями договора, в частности, с ограниченной гарантией в 4 часа.

Ключ вы можете передавать в GET параметре key, либо, для бОльшей безопасности, в заголовках с ключом X-API-KEY.

Внимание! Чтобы создать ключ, выполните вход: https://tf2.tm/login

Все предметы маркета

Информация о предметах на главной странице сайте строится из предложений продавцов, находящихся в данный момент онлайн на сайте. Она хранится в специальной базе данных и обновляется раз в минуту. Таким образом, сканировать главную или выполнять поиск по предметам чаще, чем раз в минуту, не имеет смысла и создаёт избыточную нагрузку на наш сервер.

База данных всех предметов, находящихся на продаже, доступна для скачки в одном файле.

itemdb/current_440.json

Информация о текущем имени файла базы данных. Обновляется раз в минуту.

Пример запроса:

https://tf2.tm/itemdb/current_440.json

Пример ответа:
{"time": 1471642353,"db": "items_440_1471642353.csv"}
itemdb/[имя файла базы данных]

База данных вещей на продаже в фиксированный момент времени.

Формат csv разделитель ";", кодировка utf-8. Не обновляется.

Пример запроса:

https://tf2.tm/itemdb/[db_name]

Параметры запроса:
  • [db_name] — имя файла базы данных, формат csv
Пример ответа:

Возвращает CSV-файл с данными:

c_classid;c_instanceid;c_price;c_offers;c_popularity;c_rarity;c_quality;c_heroid;c_slot;c_stickers;c_market_name;c_market_name_en;c_name_color;c_price_updated;c_pop
        143815174;143865972;280000;5;1;"базового класса";;1051;Обыч.;0;"Пропуск на операцию «Расплата»";"Operation Payback Pass";D2D2D2;1481573137;919
        186150629;143865972;14500;92;1051;"базового класса";;21;Обыч.;0;"Ключ от кейса CS:GO";"CS:GO Case Key";D2D2D2;1481616710;1109
        186150630;143865972;15292;20;197;"базового класса";;21;Обыч.;0;"Ключ eSports";"eSports Key";D2D2D2;1481620109;1092

Общедоступные API без авторизации

На данный момент реализованы следующие API.

history

Список последних 50 покупок со всей торговой площадки.

Пример запроса:

https://tf2.tm/history/json/

Пример ответа:
[
                            {
                            "classid": "1835681706",
                            "instanceid": "143865972",
                            "hash_name": "Sticker | FaZe Clan | Cologne 2016",
                            "price": 15.36,
                            "time": "1471706427",
                            "id": "43463934"
                            },{
                            "classid": "1797358487",
                            "instanceid": "143865972",
                            "hash_name": "Gamma Case Key",
                            "price": 138,
                            "time": "1471706316",
                            "id": "43463549"
                            }
                            ]

API с авторизацией

ВАЖНО! Параметр [your_secret_key] — ваш API-ключ на маркете

Информация о предметах

ItemInfo

Информация и предложения о продаже конкретной вещи.

Пример запроса:

https://tf2.tm/api/ItemInfo/[classid]_[instanceid]/[language]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
  • [language] — на каком языке получить описание предмета, возможные значения ru или en
Пример ответа:
                                {
        "classid": "384801319",
        "instanceid": "0",
        "our_market_instanceid": null,
        "market_name": "Оружейный кейс операции «Феникс»",
        "name": "Оружейный кейс операции «Феникс»",
        "market_hash_name": "Operation Phoenix Weapon Case",
        "rarity": "базового класса",
        "quality": "",
        "type": "Контейнер",
        "mtype": "CSGO_Type_WeaponCase",
        "slot": "Обыч.",
        "stickers": null,
        "description": [
        {
        "type": "html",
        "value": "Контейнер тиража #11",
        "color": "99ccff"
        }
        ],
        "tags": [
        {
        "internal_name": "CSGO_Type_WeaponCase",
        "name": "Контейнер",
        "category": "Type",
        "category_name": "Тип"
        }
        ],
        "hash": "8db34e382830ad19effdfeed7cf01e9b",
        "min_price": "196",
        "offers": [
        {
        "price": "196",
        "count": "1",
        "my_count": "0"
        },
        {
        "price": "220",
        "count": "4",
        "my_count": "0"
        }
        ]
        }
                            

  • Поля classid, instanceid, market_name, market_hash_name, description, tags дублируются из инвентаря Steam.
  • Поле our_market_instanceid - мы используем группировки вещей по совпадению classid и описания и подменяем instanceid у некоторых предметов выставляемых на продажу, в этом поле может отображаться настоящий instanceid если он был изменен (может быть числовым, либо null).
  • Поле offers - содержит массив текущих предложения на нашем маркете.
  • Поле min_price - минимальная цена предмета в копейках на нашем маркете.
  • Поле hash - необходимо для покупки предмета.

ItemHistory

Информация о ценах и о последних 500 покупках конкретной вещи.

Пример запроса:

https://tf2.tm/api/ItemHistory/[classid]_[instanceid]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
Пример ответа:
                                {
        "success": true,
        "max": 260,
        "min": 175,
        "average": 195,
        "number": 3,
        "history": [
        {
        "l_price": "195",
        "l_time": "1481475662"
        },
        {
        "l_price": "182",
        "l_time": "1481475511"
        },
        {
        "l_price": "182",
        "l_time": "1481475264"
        }
        ]
        }
                            
  • max — Максимальная цена предмета за 500 продаж
  • min — Минимальная цена предмета за 500 продаж
  • average — Средняя цена предмета за 500 продаж
  • history — Массив с информацией о ценах и временем операции
  • number — Число продаж за все время (Если их более 500 - то будет отображено 500)
MassInfo

Вся информация о предметах в одном месте через POST запрос.

ВАЖНО! Максимально можно запросить информацию о 100 предметах.
Пример запроса:

https://tf2.tm/api/MassInfo/[SELL]/[BUY]/[HISTORY]/[INFO]?key=[your_secret_key]

Параметры запроса (GET данные):
  • [SELL] — Может принимать значения 0,1,2
    • 0 - Не получать предложения о продаже
    • 1 - Получать топ 50 дешевых предложений + свой
    • 2 - Получать только 1 самый дешевый оффер о продаже
  • [BUY] — Может принимать значения 0,1,2
    • 0 - Не получать запросы на покупку (ордера)
    • 1 - Получать топ 50 самых высоких запросов на покупку (ордеров) + свой
    • 2 - Получать только 1 самый высокий запрос на покупку
  • [HISTORY] — Может принимать значения 0,1,2
    • 0 - Не получать история торгов по предмету
    • 1 - Получить информацию о последних 100 продажах
    • 2 - Получить информацию о последних 10 продажах
  • [INFO] — Может принимать значения 0,1,2,3
    • 0 - Не получать информацию о предмете
    • 1 - Получить базовую информацию (название, тип)
    • 2 - Получить дополнительно хэш для покупки, ссылку на картинку
    • 3 - Получать дополнительно описание предмета и теги из Steam
Параметры запроса (POST данные):
  • list — classid_instanceid,classid_instanceid,classid_instanceid,classid_instanceid,...
Пример ответа:
        {

            "success": true,
            "results": [
                {
                    "classid": 1703410694,
                    "instanceid": 188530139,
                    "sell_offers": {
                        "best_offer": 10863
                    },
                    "buy_offers": {
                        "best_offer": 10078
                    },
                    "history": {
                        "max": 10873,
                        "min": 10873,
                        "average": 10873,
                        "number": 2,
                        "history": [
                            [
                                1481476070,
                                10873
                            ],
                            [
                                1481472294,
                                10873
                            ]
                        ]
                    },
                    "info": {
                        "our_market_instanceid": null,
                        "market_name": "P250 | Азимов (Закаленное в боях)",
                        "name": "P250 | Азимов",
                        "market_hash_name": "P250 | Asiimov (Battle-Scarred)",
                        "rarity": "Засекреченное",
                        "quality": "Закаленное в боях",
                        "type": "Пистолет",
                        "mtype": "CSGO_Type_Pistol",
                        "slot": "Обыч."
                    }
                }
            ]
        }
                            
GetFloatHash
ВАЖНО! Данный метод работает только для вещей из CS:GO

Получить хэш предмета для запроса Float Value (потертость) со специального сервера

Пример запроса:

https://tf2.tm/api/GetFloatHash/[classid]_[instanceid]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
Пример ответа от маркета:
        {
            "success": true,
            "hash": "OWY0MTA1NGYzOTE1MjkxNmE3OGM0YjcxZTlkOTI3N......"

        }
                            
Запрос Float Value:

https://float.csgo.com/

Параметры запроса (POST):
  • req — поле hash из метода GetFloatHash
Пример ответа от Float Value сервера:
        {

            "status": true,
            "id": "2060494073_188530170",
            "paintwear": 0.15257400274276733,
            "paintseed": 826,
            "paintindex": 576

        }
                            
SellOffers

Получить предложения о продаже определенного предмета.

Пример запроса:

https://tf2.tm/api/SellOffers/[classid]_[instanceid]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
Пример ответа:
        {
        "success": true,
        "best_offer": "196",
        "offers": [
        {
        "price": "196",
        "count": "1",
        "my_count": "0"
        },
        {
        "price": "198",
        "count": "5",
        "my_count": "0"
        },
        {
        "price": "212",
        "count": "1",
        "my_count": "0"
        }
        ]
        }
                            
Пояснение к ответу:
  • best_offer — Самая низкая цена (в копейках) на предмет
  • offers — Массив из объектов с информацией о остальных предложениях
  • my_count — Количество Ваших предметов на продаже за эту стоимость
BestSellOffer

Получить лучшее предложения о продаже определенного предмета.

Пример запроса:

https://tf2.tm/api/BestSellOffer/[classid]_[instanceid]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
Пример ответа:
        {
        "success": true,
        "best_offer": "192"
        }
                            
Пояснение к ответу:
  • best_offer — Самая низкая цена (в копейках) на предмет
BuyOffers

Получить список предложений (ордеров) для продажи предмета. Предмет, выставленный за эту стоимость будет моментально продан.

Пример запроса:

https://tf2.tm/api/BuyOffers/[classid]_[instanceid]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
Пример ответа:
        {

            "success": true,
            "best_offer": "1250100",
            "offers": [
                {
                    "o_price": "1250100",
                    "c": "1",
                    "my_count": "0"
                },
                {
                    "o_price": "1248153",
                    "c": "1",
                    "my_count": "0"
                },
                {
                    "o_price": "1248152",
                    "c": "1",
                    "my_count": "0"
                }
            ]

        }
                            
Пояснение к ответу:
  • best_offer — Самый высокий ордер
  • offers — Массив из объектов с информацией о остальных предложениях
  • my_count — Количество Ваших предметов на продаже за эту стоимость
BestBuyOffer

Получить самое высокое предложение (ордеров) для продажи предмета. Предмет, выставленный за эту стоимость будет моментально продан.

Пример запроса:

https://tf2.tm/api/BestBuyOffer/[classid]_[instanceid]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
Пример ответа:
        {

            "success": true,
            "best_offer": "1250100"

        }
                            
Пояснение к ответу:
  • best_offer — Самый высокий ордер (запрос на авто покупку)
GetBaseName

Получить базовое имя предмета. Базовое имя - название предмета без модификаторов поношенности, раритетности или StatTrack.

В данный момент поддерживается только в CS:GO.

Пример запроса:

https://tf2.tm/api/GetBaseName/[market_hash_name]?key=[your_secret_key]

Параметры запроса:
  • [market_hash_name] — market_hash_name предмета в Steam
Пример ответа:
{
                      "success": true,
                      "base_name": "FAMAS | Hexane",
                      "base_id": "18"
                    }
Параметры ответ:
  • [success] — индикатор успеха
  • [base_name] — базовое имя, полученное удалением всех модификаторов из market_hash_name
  • [base_id] — ID базового имени в нашей системе, false в случае, если имя не найдено
GetFloatItems

Получить список предметов с заданным Float value

В данный момент поддерживается только в CS:GO.

Пример запроса:

https://tf2.tm/api/GetFloatItems/[market_hash_name|base_name|base_id]?key=[your_secret_key][&min_float=[min_float]][&max_float=[max_float]][&min_price=[min_price]][&max_price=[max_price]]

Параметры запроса:
  • [market_hash_name|base_name|base_id] — на ваш выбор указывается или base_name предмета, или base_id, или market_hash_name, из которого система сама получит base_name и проведёт по нему поиск (см. GetBaseName).
  • [min_float] — минимальный float для поиска, необязательный параметр.
  • [max_float] — максимальный float для поиска, необязательный параметр.
  • [min_price] — минимальная цена для поиска, необязательный параметр.
  • [max_price] — максимальная цена для поиска, необязательный параметр.
Пример ответа:
{
                        "success":
                        true,
                        "items": {
                        "357969559": {
                          "id": "357969559",
                          "classid": "2531853641",
                          "instanceid": "188530139",
                          "price": "425",
                          "float": "0.14570143818855",
                          "skin": "am_mac10_oceani",
                          "stickers": null,
                          "quality": "Немного поношенное",
                          "stattrack": false,
                          "yours": "0"
                        },
                        "358261298": {
                          "id": "358261298",
                          "classid": "2539810166",
                          "instanceid": "188530170",
                          "price": "4160",
                          "float": "0.22335878014565",
                          "skin": "am_mac10_oceani",
                          "stickers": "19|453012860",
                          "quality": "После полевых испытаний",
                          "stattrack": true,
                          "yours": "0"
                        },
                        "360197630": {
                          "id": "360197630",
                          "classid": "2531851905",
                          "instanceid": "188530139",
                          "price": "821",
                          "float": "0.030418358743191",
                          "skin": "am_mac10_oceani",
                          "stickers": null,
                          "quality": "Прямо с завода",
                          "stattrack": false,
                          "yours": "1"
                        }
                        },
                        "base_id": 3456
                        }
GetItemDescription

Получить только описание предмета и хэш для метода Buy.

Пример запроса:

https://tf2.tm/api/GetItemDescription/[classid]_[instanceid]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
Пример ответа:
        {

            "classid": "2060494073",
            "instanceid": "188530170",
            "our_market_instanceid": null,
            "market_name": "★ StatTrak™ Керамбит | Автотроника (После полевых испытаний)",
            "name": "★ StatTrak™ Керамбит | Автотроника",
            "market_hash_name": "★ StatTrak™ Karambit | Autotronic (Field-Tested)",
            "rarity": "Тайное",
            "quality": "После полевых испытаний",
            "type": "Нож",
            "mtype": "CSGO_Type_Knife",
            "slot": "★ ★ StatTrak™ StatTrak™",
            "description": [
                {
                    "type": "html",
                    "value": "Внешний вид: После полевых испытаний"
                },
                {
                    "type": "html",
                    "value": " "
                }
            ],
            "tags": [
                {
                    "internal_name": "CSGO_Type_Knife",
                    "name": "Нож",
                    "category": "Type",
                    "category_name": "Тип"
                },
                {
                    "internal_name": "weapon_knife_karambit",
                    "name": "Керамбит",
                    "category": "Weapon",
                    "category_name": "Оружие"
                },
                {
                    "category": "actions",
                    "value": [
                        {
                            "name": "Осмотреть в игре…",
                            "link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M%listingid%A%assetid%D14591768626004835865"
                        }
                    ]
                }
            ],
            "hash": "02e155ee369ebb9dfb1234c0e85fabca",
            "success": true

        }
                            

Веб-сокеты

Зачем маркет использует веб-сокеты?

На нашей площадке присутствует возможность получать уведомления, изменения баланса, новые предметы на продаже и прочее.

С помощью них можно только получать информацию, они работают по модели подписки. Для получения персональных оповещений достаточно отправить ключ-токен полученный методом GetWSAuth

ВАЖНО! Ключ действует ограниченое время и через 60 секунд перестает приниматься сервером. При ошибке авторизации на сервере уведомлений сервер пришлет строку: «auth»

Мы рекомендуем использовать библиотеку uws для node.js, Socket.IO не подойдет для работы с нашим сервером.

Веб-cокеты у нас получают и отправляют данные в формате string.

Сервер для подключения:

wss://wsn.dota2.net/wsn/

Этапы подключения:
  • 1) Устанавливается соединение с указанным на сайте сервером.
  • 2) Если Вы хотите получать информацию связанную с Вашим аккаунтом, посылаем на наш сервер ключ, который можно взять методом GetWSAuth.
  • 3) Если хотим просто ТОЛЬКО историю сделок или, например, список новых предметов - необходимо отправить название канала, на которых мы хотим подписаться: отправив «newitems_tf» мы подпишемся на новые предложения по маркету TF2. «history_tf» - подпишемся на получение информации о новых сделках на площадке
  • 4) Если мы подписались на персональные оповещения используя свой ключ - больше ничего делать не надо, просто слушаем входящие пакеты от нашего сервера и раз в 40-50 секунд отправляем «ping» на наш сервер. Все персональные уведомления (баланс, уведомления и прочее) будут приходить автоматический.
Доступные каналы:
  • newitems_tf - информация об изменениях в цене или выставлении на продажу предметов TF2. (Осторожно, канал генерирует очень много трафика)
  • history_tf - история продаж которая отображается на каждой странице сайта.
Внимание! Для нахождения в онлайне и продажи вещей необходимо отправлять команду ping раз минуту предварительно единожды отправив запрос к API методом PingPong.
Каналы не требующие подписки (при условии авторизации):
  • additem_tf - добавление предмета на странице "Мои вещи".
  • itemout_new_tf - Исчезание предмета на странице "Мои вещи".
  • itemstatus_tf - Изменение статуса предмета на странице "Мои вещи".
  • money - Изменение баланса пользователя.
  • webnotify - Получение уведомлений от администрации, доступности предмета для вывода, о покупках вещей.

Продажа предметов

SetPrice

Выставить новый предмет на продажу. Что-бы получить список предметов для выставления, воспользуйтесь методом GetInv.

Важно! Новые предметы выставляются с префиксом "new_" перед classid предмета.
Пример запроса на выставление предмета:

https://tf2.tm/api/SetPrice/new_[classid]_[instanceid]/[price]/?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в описании вещей своего инвентаря в стиме.
  • [instanceid] — InstanceID предмета в Steam, можно найти в описании вещей своего инвентаря в стиме.
  • [price] — сумма в копейках (целое число)
Пример запроса на редактирование цены:

https://tf2.tm/api/SetPrice/[item_id]/[price]/?key=[your_secret_key]

Параметры запроса:
  • [item_id] — Этот ID можно найти в методе Trades или при первом выставлении на продажу.
  • [price] — сумма в копейках (целое число)
Пример ответа:
        {"result":1,"item_id":136285662,"price":1,"price_text":"1<\/small>","status":"1","position":0,"success":true}
                            
Возможные ошибки:
  • item_not_in_inventory — Предмет не найден в инвентаре, попробуйте сначала обновить его с помощью метода UpdateInventory и подождать 10-20 секунд перед повторной попыткой.
  • bad_request — Неверно указана цена или вообще не указана
  • position = 0 - Вы оффлайн, позиция предмета в очереди продаж появится после выхода в онлайн (PingPong). Узнать ее можно, например методом Trades
RemoveAll

Снятие сразу всех предметов с продажи.

ВАЖНО! Предметы необходимо будет выставлять заново. Если Вы хотите остановить торговлю на время - используйте метод GoOffline.
Пример запроса:

https://tf2.tm/api/RemoveAll/?key=[your_secret_key]

Пример ответа:
{"num_deleted_items":4,"success":true}
Пояснение к ответу:
  • num_deleted_items — Количество предметов, которые были сняты с продажи
ItemRequest

С помощью этого метода, Вы можете запросить передачу предмета который был куплен у Вас или куплен Вами. Вам будет отправлен оффлайн трейдоффер в Steam, который необходимо принять в течении 2 минут. В одну операцию может попасть максимум 20 предметов.
UPD: Если вы вызываете этот метод для CSGO, DOTA или RUST то вам вернутся необходимые данные для создания трейда tradeoffermessage, partner, token, items, также по этим данным можно легко найти этот трейд в списке активных и принять его.

Пример запроса на получение купленного предмета:

https://tf2.tm/api/ItemRequest/out/[botid]/?key=[your_secret_key]

В нашей системе можно создать только один запрос за определенное время. За один запрос можно получить вещи только с одного бота, на котором они в данный момент находятся.

Параметры запроса:
  • [botid] — Идентификатор бота, который можно узнать c помощью метода Trades - это поле ui_bid у предметов со статусом (ui_status) = 4
Пример ответа:
{ "success": true,
          "trade": "1704976549",
          "nick": "NIPFribergEZIO",
          "botid": "354589802",
          "profile": "https://steamcommunity.com/profiles/76561198314855530/",
          "secret": "1J10",
          "items": [ "1812819920_188530170",
             "2082539396_188530139",
             "2048839018_902658099"
           ]
        }
Пояснение к ответу:
  • trade — SteamID трейд оффера, который был отправлен Вам
  • nick — Никнейм бота в Steam
  • botid — SteamID бота
  • profile — Ссылка на профиль бота в Steam
  • secret — Секретный код сделки, указанный в предложении обмена в Steam
  • items — Массив данных с предметами, которые бот хочет забрать у Вас (при передаче проданных предметов)
Передача проданных предметов:

Передача проданных Вами предметов не требует от Вас никаких дополнительных параметров, бот сам заберет у Вас 20 предметов. Максимум через 1 минуту после принятия трейд оффера Вы получите деньги за эти предметы.

ВАЖНО! Необходимо подтверждать каждую передачу предметов с помощью мобильного предложения Steam.
Пример запроса на передачу проданного предмета::

https://tf2.tm/api/ItemRequest/in/1/?key=[your_secret_key]

Ответ совпадает с запросом на получение предметов

ReportCreatedTrade

Оповещение системы об успещном создании трейда.

Пример запроса:

https://market.csgo.com/api/ReportCreatedTrade/[requestId]/[tradeOfferId]?key=[your_secret_key]

Пояснение к запросу:
  • requestId — ID оффера, полученное в ItemRequest.
  • tradeOfferId - ID трейд оффера, созданного в Steam
Пример ответа:
{
                      "success": true
                    }
ReportFailedTrade

Вызов этого метода необходим, если создание трейда невозможно из-за отсутствия необходимых предметов. В этом случае система пересоздаст список предметов при следующем вызове ItemRequest.

ВАЖНО! Не вызывайте этот метод, если не уверены, что оффер не создан
Пример запроса:

https://market.csgo.com/api/ReportFailedTrade/[requestId]/?key=[your_secret_key]

Пояснение к запросу:
  • requestId — ID оффера, полученное в ItemRequest.
Пример ответа:
{
                      "success": true
                    }
MarketTrades

Получить список трейд офферов, которые в данный момент были высланы Маркетом на Ваш аккаунт и ожидают подтверждения в Steam.

Пример запроса:

https://tf2.tm/api/MarketTrades/?key=[your_secret_key]

Пример ответа:
{
            "success": true,
            "trades": [
                {
                    "dir": "in",
                    "trade_id": "1705069832",
                    "bot_id": "354486743",
                    "timestamp": "2016-12-11 23:35:21"
                }
            ]
        }
Пояснение к ответу:
  • dir — Направление трейда: in - передача предмета который был продан; out - вывод предмета, который был куплен.
  • trade_id - SteamID трейд оффера
  • bot_id - SteamID нашего бота, который отправил его
MassSetPrice

Изменить цену сразу на множество товаров, находящихся на продаже по названию предмета.

Пример запроса:

https://tf2.tm/api/MassSetPrice/[name]/[price]/?key=[your_secret_key]

ВАЖНО! Цена будет изменена на все без исключения предметы, которые совпадают с запрошенным названием.
Параметры запроса:
  • [name] — ИЛИ Название предмета (Это может быть market_hash_name, market_name на английском или русском языке)
  • [name] — ИЛИ classid_instanceid предмета.
  • [price] — Цена в копейках (минимум 50).
Пример ответа:
{

            "success": true,
            "items": [
                {
                    "id": 156385570,
                    "hash": "1923037342_0",
                    "oldPrice": 300,
                    "newPrice": 50,
                    "market_hash_name": "Gamma 2 Case",
                    "status": {
                        "result": true,
                        "item_id": 156385570,
                        "price": 3,
                        "status": "1",
                        "position": 678
                    }
                },
                {
                    "id": 156385593,
                    "hash": "1923037342_0",
                    "oldPrice": 400,
                    "newPrice": 50,
                    "market_hash_name": "Gamma 2 Case",
                    "status": {
                        "result": true,
                        "item_id": 156385593,
                        "price": 4,
                        "status": "1",
                        "position": 687
                    }
                }
            ]

        }
MassSetPriceById

Изменить цену сразу на множество товаров, находящихся на продаже - по [ui_id] предметов.

Пример запроса:

https://tf2.tm/api/MassSetPriceById/?key=[your_secret_key]

Параметры запроса (POST):
  • list[ui_id] = price (цена предмета в копейках, не меньше 50).
    Использовать так: list[156385570]=50&list[156385593]=50&...
Пример ответа:
{

            "success": true,
            "items": [
                {
                    "id": 156385570,
                    "hash": "1923037342_0",
                    "oldPrice": 300,
                    "newPrice": 50,
                    "market_hash_name": "Gamma 2 Case",
                    "status": {
                        "result": true,
                        "item_id": 156385570,
                        "price": 3,
                        "status": "1",
                        "position": 678
                    }
                },
                {
                    "id": 156385593,
                    "hash": "1923037342_0",
                    "oldPrice": 400,
                    "newPrice": 50,
                    "market_hash_name": "Gamma 2 Case",
                    "status": {
                        "result": true,
                        "item_id": 156385593,
                        "price": 4,
                        "status": "1",
                        "position": 687
                    }
                }
            ]

        }

Покупка предметов

Buy

Покупка предмета. В нашей системе возможно покупка только по одному предмету за запрос.

Пример запроса:

https://tf2.tm/api/Buy/[classid]_[instanceid]/[price]/[hash]/?key=[your_secret_key](&partner=[partner]&token=[token])

Параметры запроса:
  • [classid]_[instanceid] — идентификаторы предмета, который можно найти в ссылке на предмет. https://market.dota2.net/item/57939770-57939888-Treasure+Key/ - ключ в Dota2. 57939770 - [classid], 57939888 - [instanceid].
  • [price] — цена в копейках (целое число), уже какого-то выставленного лота, или можно указать любую сумму больше цены самого дешевого лота, во втором случае будет куплен предмет по самой низкой цене.
  • [hash] - md5 от описания предмета. Вы можете найти его в ответе метода ItemInfo. Это введено, чтобы вы были уверены в покупке именно той вещи, которую покупаете. Если для Вас это не интересно, просто пришлите пустую строку - то есть сделайте запрос вида ...[price]//?key=...
  • partner=[partner]&token=[token] - параметры трейд ссылки аккаунта, который получит предмет. Нужно указывать, только если вы хотите, чтобы предмет был передан напрямую не вам, а другому пользователю Steam. Данный параметр работает только в CS:GO и Dota2.
Пример ответа:
{

            "result": "ok",
            "id": "136256960"

        }
Пояснение к ответу:
  • result = ok — предмет был успешно куплен
  • id - ID предмета (операции) в нашей системе, так-же можно увидеть в Trades

Ордера

Что такое ордера? Как они работают?

У нас реализована система запросов на покупку по принципу размещения заявок на определенный предмет. Размещение заявки возможно только тогда, когда на Вашем счету хватает денег для покупки предмета. Предмет будет куплен автоматический, когда появится в продаже на запрошенную цену (при условии, что Вы находитесь онлайн). После этого ордер будет удален и будет считаться исполненным. Если Ваш запрос ниже (дешевле) чем другие, он не будет исполнен первым. Первым будет исполнен запрос, который дороже всех (цена выше остальных). Если продавец выставил предмет за 1 рубль, а самый высокий ордер 100 рублей - предмет будет продан за 100 рублей.

GetOrders

Получить список своих ордеров, актуальный на данный момент. На сайте: https://market.csgo.com/orders/

Пример запроса:

https://tf2.tm/api/GetOrders/[page]/?key=[your_secret_key](&extend=[ext])

Параметры запроса:
  • [page] — Номер страницы, на странице находится 500 предметов. Опциональный параметр, если он не будет указан в ответ Вы получите только 2000 ваших заявок.
  • [ext] - Принимает значение 1 или 0, либо может отсутствовать. Если передано значение 1, то дополнительно выводится информация о том, кому будет передан предмет (см. метод InsertOrder, параметры partner и token).
Пример ответа:
{

            "success": true,
            "Orders": [
                {
                    "i_classid": "360479494",
                    "i_instanceid": "188530139",
                    "i_market_hash_name": "AWP | Asiimov (Field-Tested)",
                    "i_market_name": "AWP | Азимов (После полевых испытаний)",
                    "o_price": "100000",
                    "o_state": "0"
                }
            ]

        }
Пояснение к ответу:
  • o_price — цена в копейках, выставленная Вами
InsertOrder

Создать новый запрос на автоматическую покупку предмета.

ВАЖНО! На один предмет может быть только один запрос на покупку.
Пример запроса:

https://tf2.tm/api/InsertOrder/[classid]/[instanceid]/[price]/[hash]/?key=[your_secret_key](&partner=[partner]&token=[token])

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
  • [price] — Цена в копейках, целое число
  • [hash] — Если хотите быть уверены в том, что покупаете (см. метод Buy), не обязательный - можно отправить пустую строку "[price]//?key=..."
  • [partner] — Steam ID пользователя, кому будет передан купленный предмет (необязательный)
  • [token] — Токен из ссылки для обмена пользователя, которому будет передан предмет (необязательный)
Пример ответа:
{

            "success": true

        }
UpdateOrder

Изменить/удалить запрос на автоматическую покупку предмета.

Пример запроса:

https://tf2.tm/api/UpdateOrder/[classid]/[instanceid]/[price]/?key=[your_secret_key](&partner=[partner]&token=[token])

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
  • [price] — Цена в копейках, целое число.
  • [partner] — Steam ID пользователя, кому будет передан купленный предмет (необязательный)
  • [token] — Токен из ссылки для обмена пользователя, которому будет передан предмет (необязательный)
ВАЖНО! Для удаления заявки параметр [price] должен равняться нулю (0).
Пример ответа:
{

            "success": true

        }
ProcessOrder

С помощью этого метода можно создать, обновить и удалить запрос на автоматическую покупку предмета.

Если запрос отсутствует - он будет создан, если присутствует - обновлен. При обновлении цены на 0 - ордер будет удален.

Внимание! Если будет присутствовать предмет на продаже ценой ниже или равной ордеру - предмет будет сразу куплен (за цену предмета, ниже цены ордера или равна ему). Если ордер был впервые создан, записи о нем при покупке не появится в логе ордеров (GetOrdersLog).
ВАЖНО! В этом методе не требуется указание хэша, будет куплен предмет без учета проверки хэша.
Пример запроса:

https://tf2.tm/api/ProcessOrder/[classid]/[instanceid]/[price]/?key=[your_secret_key](&partner=[partner]&token=[token])

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
  • [price] — Цена в копейках, целое число.
  • [partner] — Steam ID пользователя, кому будет передан купленный предмет (необязательный)
  • [token] — Токен из ссылки для обмена пользователя, которому будет передан предмет (необязательный)
ВАЖНО! Для удаления заявки параметр [price] должен равняться нулю (0).
Пример ответа:
{

            "success": true,
            "way": "created",
            "price": 113
        }
Возможные ответы:
  • way — результат действия
    • created - ордер создан
    • buyed - ордер исполнен
    • updated - ордер обновлен
    • deleted - ордер удален
  • error — ошибка при создании ордера
    • wrong_price - Неправильно задана цена
    • money - Недостаточно средств для создания ордера
    • inprocess - Заявка в процессе обработки, изменение невозможно
    • same_price - Цена не изменилась
    • internal - Не удалось изменить заявку (ошибка на сервере), попробуйте ещё раз
    • null_price - Попытка создать ордер с нулевой ценой
    • unable_to_buy - Попытка купить завершилась неудачей по причине наличия предметов на вывод или нахождения в оффлайне, ордер не будет размещен т.к. его цена будет выше текущего предложения.
  • price - цена за которую был куплен предмет или, если предмет не был куплен, цена которая зафиксирована за этим ордеров в копейках.
  • item - ID предмета, при успешной покупке для поиска в методе Trades.
  • buy_error - причина ошибки при покупке.
  • status - при ошибке покупки дублирует данные из метода StatusOrders.
DeleteOrders

Удалить сразу все запросы на автоматическую покупку предмета.

Пример запроса:

https://tf2.tm/api/DeleteOrders/?key=[your_secret_key]

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

            "success": true,
            "deleted_orders": 2

        }
StatusOrders

Узнать статус работы ордеров.

Пример запроса:

https://tf2.tm/api/StatusOrders/?key=[your_secret_key]

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

            "success": true,
            "online": true,
            "has_items": true

        }
Пояснение к ответ:
  • success — индикатор работы ордеров, суммирует два поля ниже
  • online — индикатор нахождение в онлайне
  • has_items - индикатор блокировки из-за не забранных предметов (если предмет лежит более 15 минут и не забран еще). false - есть предмета, true - нет предметов, все отлично
GetOrdersLog

Этот метод помогает узнать историю срабатывания ордеров на автоматическую покупку. Отображается 100 последних ордеров.

Пример запроса:

https://tf2.tm/api/GetOrdersLog/?key=[your_secret_key]

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

            "success": true,
            "log": [
                {
                    "status": true,
                    "classid": 1923037342,
                    "instanceid": 0,
                    "name": "Gamma 2 Case",
                    "market_hash_name": "Gamma 2 Case",
                    "color": "D2D2D2",
                    "quality": "",
                    "rarity": "базового класса",
                    "image": "https://cdn.csgo.com/item/Gamma+2+Case/150.png",
                    "price": 150,
                    "comment": null,
                    "executed": 1482081182

                },
                {

                    "status": false,
                    "classid": 1923037342,
                    "instanceid": 0,
                    "name": "Gamma 2 Case",
                    "market_hash_name": "Gamma 2 Case",
                    "color": "D2D2D2",
                    "quality": "",
                    "rarity": "базового класса",
                    "image": "https://cdn.csgo.com/item/Gamma+2+Case/150.png",
                    "price": 0,
                    "comment": "Ошибка покупки",
                    "executed": 1482081161

                }
            ]
        }
Пояснение к ответ:
  • status - индикатор успешности срабатывания ордера.
  • price - это цена в копейках, установленная вами к ордеру и без учета Вашей скидки на покупку (используйте GetDiscounts для расчета скидки).
  • executed - время выполнения ордера, в unix timestamp (Московское время).
  • comment - если status = false, тут указывается причина несрабатывания ордера.

Уведомления

Зачем это нужно?

До появления ордеров у нас можно было подписаться на появление предмета по определенной цене. Покупка не происходит, вы получаете уведомление через веб-сокет сервер в момент появление на маркете предмета по указанной стоимости.

GetNotifications

Получить список включенных уведомлений о изменении цены. На сайте: https://market.csgo.com/mail/

Пример запроса:

https://tf2.tm/api/GetNotifications/?key=[your_secret_key]

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

            "success": true,
            "Notifications": [
                {
                    "i_classid": "1353060598",
                    "i_instanceid": "519977179",
                    "i_market_hash_name": "Glock-18 | Brass (Field-Tested)",
                    "i_market_name": "Glock-18 | Латунь (После полевых испытаний)",
                    "n_val": "2300"
                }
            ]

        }
Пояснение к ответу:
  • n_val — цена в копейках, выставленная Вами
UpdateNotification

Создание/изменение/удаление уведомления о изменении цены на отcлеживаемый предмет.

Пример запроса:

https://tf2.tm/api/UpdateNotification/[classid]/[instanceid]/[price]?key=[your_secret_key]

Параметры запроса:
  • [classid] — ClassID предмета в Steam, можно найти в ссылке на предмет
  • [instanceid] — InstanceID предмета в Steam, можно найти в ссылке на предмет
  • [price] — Цена в копейках, целое число.
ВАЖНО! Для удаления уведомления, параметр [price] должен равняться нулю (0).
Пример ответа:
{"success": true}

Действия с аккаунтом

GetInv

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

Пример запроса:

https://tf2.tm/api/GetInv/?key=[your_secret_key]

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

            "ok": true,
            "data": [
                {
                    "ui_id": "new_313007698_188530139",
                    "i_market_hash_name": "★ Gut Knife | Safari Mesh (Field-Tested)",
                    "i_market_name": "★ Нож с лезвием-крюком | Африканская сетка (После полевых испытаний)",
                    "i_name": "★ Нож с лезвием-крюком | Африканская сетка",
                    "i_name_color": "8650AC",
                    "i_rarity": "Тайное",
                    "i_descriptions": [
                        {
                            "type": "html",
                            "value": "Внешний вид: После полевых испытаний"
                        }
                    ],
                    "ui_status": 1,
                    "he_name": "Нож",
                    "ui_price": 0,
                    "min_price": 0,
                    "ui_price_text": false,
                    "min_price_text": false,
                    "i_classid": "313007698",
                    "i_instanceid": "188530139",
                    "ui_new": true,
                    "position": 0,
                    "wear": "После полевых испытаний",
                    "tradable": 1,
                    "i_market_price": 2214.31,
                    "i_market_price_text": "2214.31"
                }
            ]
        }
Пояснение к ответу:
  • ui_id — ID для выставления на продажу (см. метод SetPrice)
  • ui_status — статус предмета, всегда 1 (см. статусы в методе Trades)
  • i_market_price — рекомендованная цена продажи (в рублях)
Trades

Список предметов на продаже, готовых к получению после покупки, предметов которые необходимо передать после продажи со страницы "Мои вещи".

Пример запроса:

https://tf2.tm/api/Trades/?key=[your_secret_key]

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

            {
                "ui_id": "136299509",
                "i_name": "Наклейка | Fnatic | Кёльн 2014",
                "i_market_name": "Наклейка | Fnatic | Кёльн 2014",
                "i_name_color": "D2D2D2",
                "i_rarity": "Высшего класса",
                "i_descriptions": null,
                "ui_status": "2",
                "he_name": "Наклейка",
                "ui_price": 40.18,
                "i_classid": "549051152",
                "i_instanceid": "188530139",
                "ui_real_instance": "unknown",
                "i_quality": "",
                "i_market_hash_name": "Sticker | Fnatic | Cologne 2014",
                "i_market_price": 61.96,
                "position": 1,
                "min_price": 0,
                "ui_bid": "0",
                "ui_asset": "0",
                "type": "2",
                "ui_price_text": "40.18",
                "min_price_text": false,
                "i_market_price_text": "61.96",
                "left": 1061,
                "placed": "42 минуты назад"
            }
            ]
                            
Возможные статусы:
  • "ui_status" = 1 — Вещь выставлена на продажу.
  • "ui_status" = 2 — Вы продали вещь и должны ее передать боту.
  • "ui_status" = 3 — Ожидание передачи боту купленной вами вещи от продавца.
  • "ui_status" = 4 — Вы можете забрать купленную вещь.
Пояснение к ответу:
  • ui_id — ID предмета в нашей системе
  • ui_status — статус предмета (см. выше)
  • ui_price — ваша цена
  • position — позиция в очереди продажи (сортировка по наименьшей цене), в момент покупки выбирается самый дешевый предмет.
  • ui_bid — ID бота, на котором находится предмет в статусе 4.
  • ui_asset — ID предмета в инвентаре бота.
  • placed — Время, когда изменился статус предмета/цена или он был выставлен на продажу.
  • left — Времени осталось на передачу предмета, после этого операция будет отменена и деньги вернутся покупателю. Будут начислены штрафные баллы
  • i_market_price — Рекомендуемая цена продаже (относительно ТП Steam).
GetMoney

Получить сумму на балансе в копейках.

Пример запроса:

https://tf2.tm/api/GetMoney/?key=[your_secret_key]

Пример ответа:
{"money": 711379}
PingPongdeprecated

Выход в онлайн, необходимо отправлять раз в 3 минуты.

См. метод ping-new второй версии апи https://tf2.tm/docs-v2

Пример запроса:

https://tf2.tm/api/PingPong/?key=[your_secret_key]

Пример ответа:
{"success": true,"ping": "pong"}
GoOffline

Моментально приостановить торги, рекомендуем отключиться от вебсокетов.

Пример запроса:

https://tf2.tm/api/GoOffline/?key=[your_secret_key]

Пример ответа:
{"success":true}
SetSteamAPIKeydeprecated

Передать Steam API ключ вашего аккаунта

Пример запроса:

https://market.csgo.com/api/SetSteamAPIKey/[apikey]/?key=[your_secret_key]

Параметры запроса:
Пример ответа:
{
                      "success": true
                    }
Пример ответа с ошибкой:
{
                      "error": "invalid_key",
                      "success": false
                    }
SetToken

Изменить трейд-ссылку на маркете для Вашего аккаунта

Пример запроса:

https://tf2.tm/api/SetToken/[token]/?key=[your_secret_key]

Параметры запроса:
Пример ответа:
{"success":true}
Пример ответа с ошибкой:
{"error": "cant_update_token", "success": false}
GetToken

Получить текущий токен из трейд-ссылки.

Пример запроса:

https://tf2.tm/api/GetToken/?key=[your_secret_key]

Пример ответа:
{"success":true, "token": "o1qZmByA"}
GetWSAuth

Получить временный ключ-токен для авторизации на веб-сокет сервере

Пример запроса:

https://tf2.tm/api/GetWSAuth/?key=[your_secret_key]

Пример ответа:
{"success":true, "wsAuth": "auth:129326731.1481492543.7568b4d1683b0061923910d60a795a91d60221eb"}
UpdateInventory

Запросить обновление кэша инвентаря (рекомендуется делать после каждого принятого трейд оффера).

Пример запроса:

https://tf2.tm/api/UpdateInventory/?key=[your_secret_key]

Пример ответа:
{"success":true}
InventoryItems

Метод возвращающий информацию о статусе кэша инвентаря в нашей базе данных с количеством предметов и текущим статусом обновления.

Пример запроса:

https://tf2.tm/api/InventoryItems/?key=[your_secret_key]

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

            "success": true,
            "updatingNow": false,
            "lastUpdate": 1482416362,
            "itemsInCache": 256

        }
OperationHistory

Получить историю операций на всех маркетах за определенный период времени.

Пример запроса:

https://tf2.tm/api/OperationHistory/[start_time]/[end_time]/?key=[your_secret_key]

Параметры запроса:
  • [start_time] — unix time в секундах начала периода
  • [end_time] — unix time в секундах конца периода
Пример ответа:
{

            "success": true,
            "history": [
                {
                    "h_id": "187280362",
                    "h_event": "buy_go",
                    "h_time": "1481489052",
                    "h_event_id": "64191958",
                    "join": 1,
                    "app": "go",
                    "id": "64191958",
                    "classid": "1797256701",
                    "instanceid": "0",
                    "quality": "",
                    "name_color": "D2D2D2",
                    "market_name": "Gamma Case",
                    "market_hash_name": "Gamma Case",
                    "paid": "60",
                    "recieved": "57",
                    "stage": "2",
                    "item": "136256960",
                    "flags": "0"
                },
                {
                    "h_id": "187276312",
                    "h_event": "sell_go",
                    "h_time": "1481488521",
                    "h_event_id": "64190245",
                    "join": 1,
                    "app": "go",
                    "id": "64190245",
                    "classid": "549051152",
                    "instanceid": "188530139",
                    "quality": "",
                    "name_color": "D2D2D2",
                    "market_name": "Наклейка | Fnatic | Кёльн 2014",
                    "market_hash_name": "Sticker | Fnatic | Cologne 2014",
                    "paid": "4152",
                    "recieved": "4018",
                    "stage": "1",
                    "item": "136299509",
                    "flags": "0"
                }
            ]}
Пояснение к ответу:
  • h_event — Тип операции
    • sell_go - продажа предмета в CS:GO Маркете
    • buy_go - покупка предмета в CS:GO Маркете
    • buy_dota - покупка предмета в Dota2 Маркете
    • sell_dota - продажа предмета в Dota2 Маркете
    • sell_tf/buy_tf - продажа/покупка предмета в TF2.tm
    • sell_gt/buy_gt - продажа/покупка предмета в Gifts.TM
    • checkin - пополнение баланса
    • checkout - вывод средств
  • paid — сумма в копейках, заплаченная покупателем
  • recieved — сумма в копейках, полученная продавцом (чистая прибыль)
  • stage
    • TRADE_STAGE_NEW = 1
    • TRADE_STAGE_ITEM_GIVEN = 2
    • TRADE_STAGE_TIMED_OUT = 5
GetDiscounts

Получить информацию о собственном обороте, скидках и комиссиях. На сайте доступно тут: https://tf2.tm/discounts/

Внимание! Скидки привязаны к маркету и не переносятся, например, с маркета Dota2 на маркет CS:GO. В пределах одного маркета возможен перенос скидок на другой аккаунт.
Пример запроса:

https://tf2.tm/api/GetDiscounts/?key=[your_secret_key]

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

        "success": true,
        "discounts": {
            "total_buy": 72952.39,
            "buy_discount": "3.13%",
            "total_sell": 83765.35,
            "sell_fee": "6.5%"
        }

        }
Пояснение к ответу:
  • total_buy — всего куплено Вами (в рублях)
  • total_sell — всего продано Вами (в рублях)
  • buy_discount — скидка на покупку
  • sell_fee — комиссия при продаже
GetCounters

Получить счетчики, которые расположены на странице "Мои Вещи"

Пример запроса:

https://tf2.tm/api/GetCounters/?key=[your_secret_key]

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

            "success": true,
            "items_on_sale": 2,
            "orders": 1,
            "notify": 2

        }
Пояснение к ответу:
  • items_on_sale — Количество предметов на продаже
  • orders — Количество запросов на автоматическую покупку
  • notify — Количество настроенных уведомлений
GetMyProfileHash

Получить хэш ссылку на собственный профиль.

Пример запроса:

https://tf2.tm/api/GetMyProfileHash/?key=[your_secret_key]

Пример ответа:
{"success": true,"hash": "7xd73vc10"}
GetProfileItems

Получить предметы на продаже из определенного профиля.

ВАЖНО! Предметы отображаются только тогда, когда продавец находится в сети и предметы находятся на первом месте в очереди продаж (имеют самую низкую цену).
Пример запроса:

https://tf2.tm/api/GetProfileItems/[hash]/?key=[your_secret_key]

Параметры запроса:
  • [hash] — Хэш ссылка, которую можно взять либо из метода GetMyProfileHash, либо из чата маркета GetChatLog
Пример ответа:
{

            "success": true,
            "items": [
                {
                    "classid": "313007698",
                    "instanceid": "188530139",
                    "name": "★ Нож с лезвием-крюком | Африканская сетка (После полевых испытаний)",
                    "market_hash_name": "★ Gut Knife | Safari Mesh (Field-Tested)",
                    "price": 188954,
                    "color": "8650AC",
                    "hot": false,
                    "image": "https://cdn.csgo.com/item/★+Gut+Knife+|+Safari+Mesh+(Field-Tested)/150.png",
                    "stickers": [ ]
                }
            ]

        }
GetMySellOffers

Получить только свои предметы, которые находятся на продаже на любом месте в очереди.

Пример запроса:

https://tf2.tm/api/GetMySellOffers/?key=[your_secret_key]

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

            "success": true,
            "offers": [
                {
                    "ui_id": "136732216",
                    "i_name": "★ Нож с лезвием-крюком | Африканская сетка (После полевых испытаний)",
                    "i_market_name": "★ Нож с лезвием-крюком | Африканская сетка (После полевых испытаний)",
                    "i_name_color": "8650AC",
                    "i_rarity": "Тайное",
                    "i_descriptions": null,
                    "ui_status": "1",
                    "he_name": "Нож",
                    "ui_price": 1889.54,
                    "i_classid": "313007698",
                    "i_instanceid": "188530139",
                    "ui_real_instance": "188530139",
                    "i_market_price": 1889.54,
                    "position": 1,
                    "min_price": 0,
                    "ui_bid": "0",
                    "ui_asset": "0",
                    "type": "0",
                    "ui_price_text": "1889.54",
                    "min_price_text": false,
                    "i_market_price_text": "1889.54",
                    "offer_live_time": 339,
                    "placed": "6 минут назад"
                },
                {
                    "ui_id": "136726977",
                    "i_name": "Наклейка | G2 Esports | Cologne 2016",
                    "i_market_name": "Наклейка | G2 Esports | Cologne 2016",
                    "i_name_color": "D2D2D2",
                    "i_rarity": "высшего класса",
                    "i_descriptions": null,
                    "ui_status": "1",
                    "he_name": "Наклейка",
                    "ui_price": 24.11,
                    "i_classid": "1835683430",
                    "i_instanceid": "143865972",
                    "ui_real_instance": "143865972",
                    "i_market_price": 31.12,
                    "position": 21,
                    "min_price": 0,
                    "ui_bid": "0",
                    "ui_asset": "0",
                    "type": "0",
                    "ui_price_text": "24.11",
                    "min_price_text": false,
                    "i_market_price_text": "31.12",
                    "offer_live_time": 339,
                    "placed": "6 минут назад"
                }
            ]

        }
GetItemsToGive

Получить список предметов, которые были проданы и их необходимо передать боту маркета с помощью метода ItemRequest.

Пример запроса:

https://tf2.tm/api/GetItemsToGive/?key=[your_secret_key]

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

            "success": true,
            "offers": [
                {
                    "ui_id": "136726977",
                    "i_name": "Наклейка | G2 Esports | Cologne 2016",
                    "i_market_name": "Наклейка | G2 Esports | Cologne 2016",
                    "i_name_color": "D2D2D2",
                    "i_rarity": "высшего класса",
                    "i_descriptions": null,
                    "ui_status": "2",
                    "he_name": "Наклейка",
                    "ui_price": 21.07,
                    "i_classid": "1835683430",
                    "i_instanceid": "143865972",
                    "ui_real_instance": "unknown",
                    "i_quality": "",
                    "i_market_hash_name": "Sticker | G2 Esports | Cologne 2016",
                    "i_market_price": 31.12,
                    "position": 1,
                    "min_price": 0,
                    "ui_bid": "0",
                    "ui_asset": "0",
                    "type": "2",
                    "ui_price_text": "21.07",
                    "min_price_text": false,
                    "i_market_price_text": "31.12",
                    "left": 3598,
                    "placed": "2 секунды назад"
                }
            ]

        }

Поиск предметов

Важно! На нашем маркете предметы разделены не по названию, а по classid_instanceid. Что-бы найти предметы на продаже мы рекомендуем использовать CSV базу данных, но если Вы хотите максимально быстро узнать предложения - этот метод подойдет для Вас.
MassSearchItemByName

Поиск нескольких предметов (максимум 10) за один POST запрос.

Пример запроса:

https://tf2.tm/api/MassSearchItemByName/?key=[your_secret_key]

Параметры запроса (POST):
  • list[0..9] = Название предмета на английском языке (market_hash_name).
    Использовать так: list[0]=StatTrak™ Glock-18 | Dragon Tattoo (Factory New)&list[1]=StatTrak™ AK-47 | Blue Laminate (Minimal Wear)&...
Пример ответа:
{

            "success": true,
            "list": [
                {
                    "quality": "Немного поношенное",
                    "classid": "645740154",
                    "instanceid": "188549766",
                    "stickers": "0",
                    "name": "StatTrak™ Glock-18 | Татуировка дракона (Прямо с завода)",
                    "en_name": "StatTrak™ Glock-18 | Dragon Tattoo (Factory New)",
                    "price": 140000,
                    "offers": 1
                },
                {
                    "quality": "Немного поношенное",
                    "classid": "550257154",
                    "instanceid": "188530170",
                    "stickers": [
                        1178,
                        1287,
                        1288
                    ],
                    "name": "StatTrak™ AK-47 | Синий глянец (Немного поношенное)",
                    "en_name": "StatTrak™ AK-47 | Blue Laminate (Minimal Wear)",
                    "price": 64635,
                    "offers": 3
                }
            ]
         }
Пояснение к ответу:
  • offers — Количество предметов на продаже
  • name/en_name — Русский/Английский market_name
SearchItemByName

Вариант для запроса по одному предмету

Пример запроса:

https://tf2.tm/api/SearchItemByName/[market_hash_name]/?key=[your_secret_key]

Параметры запроса:
  • [market_hash_name] - Название предмета, которое можно взять из инвентаря Steam.
Пример ответа:
{

            "success": true,
            "list": [
                {
                    "quality": "Немного поношенное",
                    "classid": "310780494",
                    "instanceid": "0",
                    "stickers": "0",
                    "name": "Nova | Карамельное яблоко (Немного поношенное)",
                    "en_name": "Nova | Candy Apple (Minimal Wear)",
                    "price": 171,
                    "offers": 144
                },
                {
                    "quality": "Немного поношенное",
                    "classid": "310780494",
                    "instanceid": "480085569",
                    "stickers": [
                        902,
                        7735
                    ],
                    "name": "Nova | Карамельное яблоко (Немного поношенное)",
                    "en_name": "Nova | Candy Apple (Minimal Wear)",
                    "price": 405,
                    "offers": 1
                }
            ]
        }
Важно! В выдаче может присутствовать несколько вариантов одного предмета, которые отличаются описанием, classid или наличием стикеров.

Моментальные покупки (покупка без ожидания передачи предмета)

QuickItems

Получить список предметов, которые можно купить прямо сейчас и забрать через пару секунд после покупки.

Подробнее про эти предметы можно прочитать тут: https://tf2.tm/quick/

Пример запроса:

https://tf2.tm/api/QuickItems/?key=[your_secret_key]

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

            "success": true,
            "items": [
                {
                    "ui_id": "92795825",
                    "l_paid": "10923",
                    "i_classid": "191923205",
                    "i_instanceid": "143865972",
                    "i_market_hash_name": "Name Tag",
                    "i_rarity": "базового класса",
                    "i_market_name": "Именной ярлык",
                    "i_name": "Именной ярлык",
                    "i_quality": "",
                    "i_name_color": "D2D2D2",
                    "he_name": "Ярлык"
                },
                {
                    "ui_id": "92565589",
                    "l_paid": "542",
                    "i_classid": "310776566",
                    "i_instanceid": "0",
                    "i_market_hash_name": "AWP | Safari Mesh (Field-Tested)",
                    "i_rarity": "Промышленное качество",
                    "i_market_name": "AWP | Африканская сетка (После полевых испытаний)",
                    "i_name": "AWP | Африканская сетка",
                    "i_quality": "После полевых испытаний",
                    "i_name_color": "D2D2D2",
                    "he_name": "Снайперская винтовка"
                }
            ]
        }
Пояснение к ответу:
  • l_paid — Цена предмета в копейках
QuickBuy

Купить вещь из списка моментальных товаров. Забрать ее можно с помощью метода ItemRequest узнав ui_bid в методе Trades

Пример запроса:

https://tf2.tm/api/QuickBuy/[ui_id]/?key=[your_secret_key]

Параметры запроса:
  • [ui_id] - Идентификатор предмета, который нужно взять из метода QuickItems.
Пример ответа:
{

            "success": true

        }

Дополнительно

GetStickers

Получить все возможные стикеры с их идентификаторами в нашей системе.

ВАЖНО! Данный метод доступен только для маркета CS:GO.
Параметры запроса:
  • [lang] - RU/EN
Пример запроса:

https://tf2.tm/api/GetStickers/?key=[your_secret_key]&lang=ru

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

            "success": true,
            "stickers": [
                {
                    "id": "13161",
                    "name": "3DMAX (голографическая) | ESL One Katowice 2015",
                    "img": "https://steamcdn-a.akamaihd.net/apps/730/icons/econ/stickers/eslkatowice2015/3dmax_holo.7dd8d66837a92f76eecfc0e2a1d176b8caa2b74d.png"
                },
                {
                    "id": "13287",
                    "name": "3DMAX (голографическая) | Катовице 2014",
                    "img": "https://steamcdn-a.akamaihd.net/apps/730/icons/econ/stickers/emskatowice2014/3dmax_holo.119ad1b4da28862da17b5590ab81a6e7bd71f2c6.png"
                },
                {
                    "id": "79164593",
                    "name": "3DMAX (голографическая) | Катовице 2015",
                    "img": "https://steamcdn-a.akamaihd.net/apps/730/icons/econ/stickers/eslkatowice2015/3dmax_holo.7dd8d66837a92f76eecfc0e2a1d176b8caa2b74d.png"
                }
            ]
        }
Test

Проверить все возможные препятствия к успешной продаже вещей.

ВАЖНО! Все параметры должны быть "true", иначе продажа вещей невозможна.
Пример запроса:

https://tf2.tm/api/Test/?key=[your_secret_key]

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

            "success": true,
            "status": {
                "user_token": true,
                "trade_check": true,
                "site_online": false,
                "site_notmpban": false
            }

        }
Пояснение к ответу:
  • user_token — Установлена ли трейд ссылка
  • trade_check — Пройдена ли проверка доступности трейд офферов - https://tf2.tm/check/
  • site_online — Находитесь ли Вы в онлайне на сайте (Используйте метод PingPong)
  • site_notmpban — Индикатор отсутствия бана за не передачу проданных вещей (на сутки)
GetChatLog

Получить последние сообщения из чата Маркета. Это полезно, когда хочется найти интересные предложения в профилях пользователей или просто следить за отправленными предметами в чат.

Пример запроса:

https://tf2.tm/api/GetChatLog/?key=[your_secret_key]

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

            "success": true,
            "log": [
                [
                    "Овца!",
                    "чья? гоу 35500 по братски ★ StatTrak™ Керамбит | Гамма-волны (Немного поношенное)"
                ],
                [
                    "Hellox",
                    "★ Нож-бабочка | Убийство (Немного поношенное)"
                ],
                [
                    "♻️TopSellerOfTheWorld♻️",
                    "Наклейка | TACO | MLG Columbus 2016"
                ],
                [
                    "ВасяЗло",
                    "Мой профильохеренный USP c 3мя наклейками(метал) и названием "
                ],
                [
                    "МНОГО ОРУЖИЯ С НАКЛЕЙКАМИ",
                    "  Мой профиль            ОГРОМНОЕ КОЛИЧЕСТВО ОРУЖИЯ по НИЗКИМ ЦЕНАМ"
                ],
                [
                    "Плохая Девочка :3",
                    "Мой профиль"
                ]
            ]

        }
CheckBotStatus

Проверить бота маркета на доступность для получения вещей. Если бот был забанен с купленной Вами вещью, Вы получите возврат денег.

Пример запроса:

https://tf2.tm/api/CheckBotStatus/[ui_bid]/?key=[your_secret_key]

Параметры запроса:
  • [ui_bid] — Идентификатор бота, который можно узнать c помощью метода Trades.
Пример ответа:
{

            "success": true,
            "banned": false

        }

Статусы предметов ITEM_STATUS

Сообщества разработчиков

ВКонтакте

Приглашаем присоедениться к сообществу разработчиков использующих API. В группе Вы сможете задать интересующий Вас вопрос сообществу, пообщаться напрямую с разработчиками маркета и узнать подробнее про новые функции,

Ссылка на группу:

vk.com/dev_market

Changelog

14.06.2017

Добавлен метод MassSetPriceById.

24.01.2017

Добавлены метод InventoryItems и MassSetPrice.

22.12.2016

Добавлены метод GetOrdersLog и StatusOrders.

Изменилось поведение метода ProcessOrder - это важно!

18.12.2016

Добавлен метод ProcessOrder!

Он позволит упросить работу с ордерами.

18.12.2016

Изменены названия каналов newitems!

15.12.2016

Официально запущена новая документация по API.

Советуем присмотреться к новым методам и не игнорировать их.