Steam Online!

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

Содержание

Создание API-ключа
Список цен (лучшие предложения)
Список цен по class/instance с buy-ордерами
GetWSAuth - Получить токен для вебсокетов
GetWSToken - Получить токен для вебсокетов
Покупка/продажа предметов
add-to-sale - выставить предмет на продажу
set-price - обновить цену или снять с продажи
remove-all-from-sale - снять все предметы с продажи
my-inventory - предметы доступные для продажи
items - список предметов
ping - включить продажиdeprecated
ping-new - включить продажи
trade-request-take - запросить оффер для получения предмета
trade-request-give - запросить оффер для передачи предмета
trade-request-give-p2p - Запросить данные для передачи предмета покупателю
trade-request-give-p2p-all - Запросить данные для передачи всех купленных предметов
trade-ready - регистрация у нас вашего трейд оффера из Стима
trades - список отправленных вам предложений обмена
buy - покупка предмета
buy-for - покупка предмета с передачей другому пользователю
get-buy-info-by-custom-id - информация о статусе покупки предмета, по уникальному ID
get-list-buy-info-by-custom-id - информация о статусе cписка покупок предмета, по уникальным ID
history - история покупок и продаж
operation-history - история всех операций на площадке
get-list-items-info - получить историю продаж предмета по hash name
bid-ask - получить стакан по предмету
test - проверить выполнение условий для продажи вещей
Ордера на покупку
get-orders - получить список ваших ордеров
set-order - добавить/изменить/удалить ордер
get-orders-log - история исполненных ордеров
Действия с аккаунтом
get-money - Баланс
go-offline - Остановка торгов
update-inventory - обновить инвентарь
transfer-discounts - перенос скидок
get-my-steam-id - узнать свой steamid32 и steamid64
set-pay-password - установка/смена платежного пароля
money-send - перенос баланса на другой аккаунт
money-send-history - история переносов баланса
set-steam-api-key - привязать Steam API ключ к аккаунтуdeprecated
set-trade-token - установить трейд-ссылку
change-currency - смена валюты аккаунта
get-api-key-via-access-token - получение апи ключаnew
Поиск предметов по названию
search-item-by-hash-name - Поиск по одному предмету
search-item-by-hash-name-specific - Поиск по market-hash-name предметов выставленных по assetid
search-list-items-by-hash-name-all - Поиск по списку market-hash-name
Пополнения и выводы
checkin-history - Получение истории операций пополнений
checkout-history - Получение истории операций выводов

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

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

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

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

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

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

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

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

Список цен (лучшие предложения)

prices

Список цен в формате json.

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

https://tf2.tm/api/v2/prices/RUB.json

https://tf2.tm/api/v2/prices/USD.json

https://tf2.tm/api/v2/prices/EUR.json

Список цен по class/instance с buy-ордерами

prices/class_instance

Список цен в формате json, где buy_order - максимальный buy-ордер на данный предмет.

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

https://tf2.tm/api/v2/prices/class_instance/RUB.json

https://tf2.tm/api/v2/prices/class_instance/USD.json

https://tf2.tm/api/v2/prices/class_instance/EUR.json

Пример ответа:
{
    "success": true,
    "time": 1565103435,
    "currency": "RUB",
    "items": {
        "1434515088_0": {
            "price": "0.50",
            "buy_order": "0.10",
            "avg_price": "0.74",
            "popularity_7d": "47",
            "market_hash_name": "Arcane Defiance Loading Screen",
            "ru_name": "Загрузочный экран «Arcane Defiance»",
            "ru_rarity": "Common",
            "ru_quality": "Standard",
            "text_color": "D2D2D2",
            "bg_color": ""
        },
        "1479313949_0": {
            "price": "0.60",
            "buy_order": "0.10",
            "avg_price": "0.94",
            "popularity_7d": "13",
            "market_hash_name": "Armor of Utter Eradication",
            "ru_name": "Armor of Utter Eradication",
            "ru_rarity": "Uncommon",
            "ru_quality": "Standard",
            "text_color": "D2D2D2",
            "bg_color": ""
        }
    }
}
                    

Ордера на покупку

orders

Список в формате json.

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

https://tf2.tm/api/v2/prices/orders/RUB.json

https://tf2.tm/api/v2/prices/orders/USD.json

https://tf2.tm/api/v2/prices/orders/EUR.json

Веб-сокеты

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

https://tf2.tm/api/v2/get-ws-auth?key=[your_secret_key]

get-ws-auth

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

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

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

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 - Получение уведомлений от администрации, доступности предмета для вывода, о покупках вещей.

GetWSToken - Получить токен для вебсокетов

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

https://tf2.tm/api/v2/get-ws-token?key=[your_secret_key]

get-ws-token

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

ВАЖНО! Ключ действует ограниченое время и через 10 минут перестает приниматься сервером.
Сервер для подключения:

wss://wsprice.csgo.com/connection/websocket

Этапы подключения:
  1. В качестве сервера мы используем Centrifugo. Все необходимые SDK и инструкции как работать с ним, вы можете найти на официальном сайте Centrifugo.
  2. Необходимо запросить ws токен через апи метод, описанный выше.
  3. Устанавить соединение с указанным на сайте сервером и токеном.
  4. Подписаться на нужный канал.
Доступные каналы:
  • public:items::rub - информация об изменениях в цене или выставлении на продажу предметов для игры с id в валюте RUB. (Осторожно, канал генерирует очень много трафика!)
  • public:items::usd - информация об изменениях в цене или выставлении на продажу предметов для игры с id в валюте USD. (Осторожно, канал генерирует очень много трафика!)
  • public:items::eur - информация об изменениях в цене или выставлении на продажу предметов для игры с id в валюте EUR. (Осторожно, канал генерирует очень много трафика!)
Что такое "name_id"?:

Для экономии трафика мы не передаем хэшнейм предмета, а вместо этого отдаем name_id.

Сопоставить name_id и хэшнейм вы сможете из файла, который можно найти по адресу:

https://tf2.tm/api/v2/dictionary/names.json

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

trade-request-take

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

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

https://tf2.tm/api/v2/trade-request-take?key=[your_secret_key][&bot=botid]

Параметры запроса:
  • botid — id нашего бота у которого хотите забрать предметы, параметр не обязательный.
Пример ответа:
{ "success": true,
                          "trade": "1704976549",
                          "nick": "NIPFribergEZIO",
                          "botid": "354589802",
                          "profile": "https://steamcommunity.com/profiles/76561198314855530/",
                          "secret": "1J10",
                          "items": [ "1812819920_188530170",
                             "2082539396_188530139",
                             "2048839018_902658099"
                           ]
                        }
Возможные ошибки:
  • 3001 — нечего передавать.
trade-request-give

Создать запрос на передачу купленных предметов нашему боту

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

https://tf2.tm/api/v2/trade-request-give?key=[your_secret_key]

Пример ответа:
{
                          "success": true,
                          "trade": "1704976549",
                          "nick": "NIPFribergEZIO",
                          "botid": "354589802",
                          "profile": "https://steamcommunity.com/profiles/76561198314855530/",
                          "secret": "1J10",
                          "items": [
                             15060788266
                          ]
                        }
trade-request-give-p2p

Запросить данные для передачи предмета покупателю

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

https://tf2.tm/api/v2/trade-request-give-p2p?key=[your_secret_key]

Пример ответа:
{
                          "success": true,
                          "hash" : "234234234/wefsdgsd",
                          "offer" : {
                            "partner" : 12345,
                            "token" : "fffffff",
                            "tradeoffermessage" : "sdfsdf . . . 234234234/wefsdgsd",
                            "items" : [
                            {
                              "appid" : 730,
                              "contextid" : 2,
                              "assetid" : 23452345,
                              "amount" : 1}
                            ]
                          }
                        }
trade-request-give-p2p-all

Возвращает данные для создания всех трейдов

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

https://tf2.tm/api/v2/trade-request-give-p2p-all?key=[your_secret_key]

Пример ответа:
{
                          "success": true,
                          "offers" : [
                            {
                                "partner" : 12345,
                                "token" : "fffffff",
                                "tradeoffermessage" : "sdfsdf . . . 234234234/wefsdgsd",
                                "hash" : "234234234/wefsdgsd",
                                "items" : [
                                {
                                  "appid" : 730,
                                  "contextid" : 2,
                                  "assetid" : 23452345,
                                  "amount" : 1}
                                ]
                            },
                            {
                                "partner" : 123456,
                                "token" : "fffffff",
                                "hash" : "234234234/wefsdas",
                                "tradeoffermessage" : "sdfsdf . . . 234234234/wefsdas",
                                "items" : [
                                {
                                  "appid" : 730,
                                  "contextid" : 2,
                                  "assetid" : 23452346,
                                  "amount" : 1}
                                ]
                            }
                        ]}
                    
trade-ready

Регистрация у нас трейд оффера, который вы создали в Стиме

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

https://tf2.tm/api/v2/trade-ready?key=[your_secret_key]&tradeoffer=[steam_trade_offer_id]

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

{
    "success": false,
    "tradeofferid": 1133557799,
    "error": "not active offers"
}
ping deprecated

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

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

https://tf2.tm/api/v2/ping?key=[your_secret_key]&v=2

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

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

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

[POST] https://tf2.tm/api/v2/ping-new?key=[your_secret_key]

Параметры запроса: (JSON)
{
                    "access_token": "eyAidHlwIjogIkpXVCIsICJhb.....",
                    "proxy": "http://proxy_login:proxy_pass@proxy_ip:proxy_port"
                }

Параметр «proxy» опционален. Если он передан, то запросы с вашим «access_token» будут выполнены через прокси.

Где брать?

Значение параметра access_token можно получить несколькими способами:

  1. Метод https://steamcommunity.com/pointssummary/ajaxgetasyncconfig позволяет запросить access token со скоупом "web:community". Данный скоуп позволяет использовать такие методы, как GetTradeOffer, GetTradeOffers и GetTradeHistory, а также данный токен позволяет выполнять отмену предложений обмена.
  2. Мобильный токен, получаемый при помощи библиотек (например, DoctorMcKay/node-steam-session) обладают тем же уровнем доступа, но при этом имеют скоуп "web, mobile"

Для запросов https://*/pointssummary/ajaxgetasyncconfig используется следующий формат:

{
                        "success": 1,
                        "data": {
                            "webapi_token": "ACCESS_TOKEN"
                        }
                    }

Данный запрос обязательно требует использование в заголовках запроса cookie "steamLoginSecure", далее пример заголовка:

Cookie: steamLoginSecure=COOKIE_PAYLOAD;
ВАЖНО! Для использования в сервисах на текущий момент необходимо использовать access token из пунктов 1 или 2.
ВАЖНО! Срок действия access_token - 24 часа. Вам необходимо обновлять его самим и отправлять каждый раз при вызове данного метода.
ВАЖНО! Если вы получили ошибку «invalid_access_token» и абсолютно уверены, что токен валидный, повторите запрос.
Пример ответа:
{
                    "success": true,
                    "ping": "pong",
                    "online": true,
                    "p2p": true,
                    "steamApiKey": true
                }
Пример ответа в случае ошибки:
{
                        "success": false,
                        "message": "invalid_access_token"
                    }
go-offline

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

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

https://tf2.tm/api/v2/go-offline?key=[your_secret_key]

my-inventory

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

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

https://tf2.tm/api/v2/my-inventory/?key=[your_secret_key]

Пример ответа:
{
                            "success": true,
                            "items": [
                                {
                                    "id": "14933635912",
                                    "classid": "310776767",
                                    "instanceid": "0",
                                    "market_hash_name": "SCAR-20 | Carbon Fiber (Factory New)",
                                    "market_price": 10.34,
                                    "tradable": 1
                                }
                    ]}
Пояснение к ответу:
  • id — ID (assetid) для выставления на продажу (см. метод add-to-sale)
  • market_price — рекомендованная цена продажи
add-to-sale

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

Пример запроса на выставление предмета:

https://tf2.tm/api/v2/add-to-sale?key=[your_secret_key]&id=[id]&price=[price]&cur=[currency]

Параметры запроса:
  • [id] — id предмета в Steam, можно найти в описании вещей своего инвентаря в стиме.
  • [price] — сумма, целое число (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000)
  • [currency] — валюта (RUB, USD, EUR) дополнительная проверка, если будет указана не равная текущей установленной в вашем аккаунте, покупка не произойдет. Это защита от потери денег в случае, если вы сменили валюту на вашем аккаунте и забыли про API
Пример ответа:
                        {"success":true,"item_id":136285662}
                    
                        {"success":false,"error":"bad_request"}
                    
Возможные ошибки:
  • bad_input - не верно указаны параметры
  • inventory_not_loaded - необходимо обновить инвентарь
  • item_not_recieved - необходимо обновить инвентарь
  • no_description_found - стим не вернул описание предмета попробуйте позже
  • item_not_inserted - не удалось выставить на продажу
  • item_not_in_inventory — Предмет не найден в инвентаре, попробуйте сначала обновить его с помощью метода UpdateInventory и подождать 10-20 секунд перед повторной попыткой.
  • bad_request — Неверно указана цена или вообще не указана
set-price

Установить новую цену на предмет, или снять с продажи.

Пример запроса на выставление предмета:

https://tf2.tm/api/v2/set-price?key=[your_secret_key]&item_id=[item_id]&price=[price]&cur=[currency]

Параметры запроса:
  • [item_id] — ID предмета в нашей системе, его можно получить из результата запроса add-to-sale
  • [price] — сумма, целое число (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000), если указать 0 предмет будет снят с продажи
  • [currency] — валюта (RUB, USD, EUR) дополнительная проверка, если будет указана не равная текущей установленной покупка не произойдет.
Пример ответа:
                        {"success":true}
                    
                        {"success":false,"error":"bad_item"}
                    
Возможные ошибки:
  • bad_item - предмет с данным ID не найден
remove-all-from-sale

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

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

https://tf2.tm/api/v2/remove-all-from-sale?key=[your_secret_key]

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

Список предметов:

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

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

Пример ответа:
{
    "success": true,
    "items": [
        {
            "item_id": "286316844",
            "assetid": "15092687536",
            "classid": "637317999",
            "instanceid": "630912635",
            "real_instance": "1629337655",
            "market_hash_name": "Horns of Monstrous Reprisal",
            "position": 0,
            "price": 4,
            "currency": "RUB",
            "status": "1",
            "live_time": 920,
            "left": null,
            "botid": "0"
        }]}
                            
Возможные статусы:
  • status = 1 — Вещь выставлена на продажу.
  • status = 2 — Вы продали вещь и должны ее передать боту.
  • status = 3 — Ожидание передачи боту купленной вами вещи от продавца.
  • status = 4 — Вы можете забрать купленную вещь.
Пояснение к ответу:
  • item_id — ID предмета в нашей системе
  • status — статус предмета (см. выше)
  • price — ваша цена
  • position — позиция в очереди продажи (сортировка по наименьшей цене), в момент покупки выбирается самый дешевый предмет.
  • botid — ID бота, на котором находится предмет в статусе 4.
  • assetid — ID предмета в инвентаре бота.
  • left — Времени осталось на передачу предмета, после этого операция будет отменена и деньги вернутся покупателю. Будут начислены штрафные баллы
trades

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

Параметры запроса:
  • [extended] — Расширенная информация
Пример запроса:

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

https://tf2.tm/api/v2/trades/?key=[your_secret_key]&extended=1

Пример ответа:
{
            "success": true,
            "trades": [
                {
                    "dir": "in",
                    "trade_id": "1705069832",
                    "bot_id": "354486743",
                    "timestamp": 23423423423
                }
            ]
        }
With flag extended
{"success":true,"trades":[{"dir":"out","trade_id":"3759667687","bot_id":"1022850783","timestamp":1572021797,"secret":"3R5U","nik":"teresiacais","list_item_id":{"361847026":{"id":"361847026","assetid":"17737368051","classid":"284952881","instanceid":"1625510296"},"361851594":{"id":"361851594","assetid":"17737368059","classid":"284952881","instanceid":"1625510296"}}},{"dir":"in","trade_id":"3759668212","bot_id":"1022850783","timestamp":1572021825,"secret":"EC58","nik":"teresiacais","list_item_id":{"381304045":{"id":"381304045","assetid":"8028182393","classid":"996701649","instanceid":"0"}}}]}
Пояснение к ответу:
  • dir — Направление трейда: in - передача предмета который был продан; out - вывод предмета, который был куплен.
  • trade_id - SteamID трейд оффера
  • bot_id - SteamID нашего бота, который отправил его
buy

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

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

https://tf2.tm/api/v2/buy?key=[your_secret_key]&hash_name=[market_hash_name]&price=[price]

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

https://tf2.tm/api/v2/buy?key=[your_secret_key]&id=[id]&price=[price]

Параметры запроса:
  • [market_hash_name] — market_hash_name идентификаторы предмета.
  • [id] — ID предмета
  • [price] — цена в копейках (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000) целое число, уже какого-то выставленного лота, или можно указать любую сумму больше цены самого дешевого лота, во втором случае будет куплен предмет по самой низкой цене.
  • custom_id - ваш уникальный ID (string[50]), по нему можно будет узнать статус операции (не обязательный параметр!)
Пример ответа:
{
                        "success": true,
                        "id": "136256960"
                    }
Пример ответа в случае ошибки:
{
                        "success": false,
                        "error": "this custom_id exist"
                    }
Пояснение к ответу:
  • id - ID предмета
buy-for

Покупка предмета и передача его другому пользователю.

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

https://tf2.tm/api/v2/buy-for?key=[your_secret_key]&hash_name=[market_hash_name]&price=[price]&partner=[partner]&token=[token]&chance_to_transfer=[chance]

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

https://tf2.tm/api/v2/buy-for?key=[your_secret_key]&id=[id]&price=[price]&partner=[partner]&token=[token]

Параметры запроса:
  • [market_hash_name] — market_hash_name идентификаторы предмета.
  • [id] — ID предмета
  • [price] — цена в копейках (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000) целое число, уже какого-то выставленного лота, или можно указать любую сумму больше цены самого дешевого лота, во втором случае будет куплен предмет по самой низкой цене.
  • [chance] — Целое число, от 0 до 100. Фильтр предметов при покупке по продавцу с шансом на передачу не ниже указанного числа.
  • partner=[partner]&token=[token] - параметры трейд ссылки аккаунта, который получит предмет.
  • custom_id - ваш уникальный ID (string[50]), по нему можно будет узнать статус операции (не обязательный параметр!)
Пример ответа:
{
                        "success": true,
                        "id": "136256960"
                    }
Пример ответа в случае ошибки:
{
                        "success": false,
                        "error": "this custom_id exist"
                    }
Пояснение к ответу:
  • id - ID предмета
get-buy-info-by-custom-id

Возвравщает информацию о статусе покупки

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

https://tf2.tm/api/v2/get-buy-info-by-custom-id?key=[your_secret_key]&custom_id=[custom_id]

Параметры запроса:
  • [custom_id] — custom_id ваш уникальный ID заданый в методе (buy, buy-for)
Пример ответа:
{
    "success": true,
    "data": {
        "item_id": "534415936",
        "market_hash_name": "Spectrum 2 Case",
        "classid": "2521767801",
        "instance": "0",
        "time": "1548081954",
        "send_until" : null,
        "stage": "2",
        "paid": 0.5,
        "causer": null,
        "currency": "RUB",
        "for": "1234567",
        "trade_id": null
    }
}
Пояснение к ответу:
  • trade_id - id активного trade_offer
  • for - steamid(32) кому передан предмет (если покупка была через метод buy-for)
  • time - Unix Timestamp когда была куплена вещь
  • paid - почем была куплена вещь
  • stage
    • TRADE_STAGE_NEW = 1
    • TRADE_STAGE_ITEM_GIVEN = 2
    • TRADE_STAGE_TIMED_OUT = 5
get-list-buy-info-by-custom-id

Возвравщает информацию о статусе покупки

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

https://tf2.tm/api/v2/get-list-buy-info-by-custom-id?key=[your_secret_key]&custom_id[]=[custom_id1]&custom_id[]=[custom_id2]

Параметры запроса:
  • custom_id[] — custom_id ваш уникальный ID заданый в методе (buy, buy-for)
Пример ответа:
{
    "success": true,
    "data": {
        "custom_id": {
            "item_id": "534415936",
            "market_hash_name": "Spectrum 2 Case",
            "classid": "2521767801",
            "instance": "0",
            "time": "1548081954",
            "send_until" : null,
            "stage": "2",
            "paid": 0.5,
            "currency": "RUB",
            "for": "1234567",
            "trade_id": null
        }
    }
}
Пояснение к ответу:
  • trade_id - id активного trade_offer
  • for - steamid(32) кому передан предмет (если покупка была через метод buy-for)
  • paid - почем была куплена вещь
  • time - Unix Timestamp когда была куплена вещь
  • stage
    • TRADE_STAGE_NEW = 1
    • TRADE_STAGE_ITEM_GIVEN = 2
    • TRADE_STAGE_TIMED_OUT = 5
history

История покупок и продаж на всех площадках

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

https://tf2.tm/api/v2/history?key=[your_secret_key]&date=12312314&date_end=12312714

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

https://tf2.tm/api/v2/history?key=[your_secret_key]&date=[DD-MM-YYYY]

Параметры запроса:
  • [date] - дата в формате DD-MM-YYYY пример (10-08-1986). или UNIX_TIMESTAMP
  • [date_end] - UNIX_TIMESTAMP
Пример ответа:
{
  "success": true,
  "data": [
    {
      "item_id": "286316842",
      "market_hash_name": "Maraxiform's Ire",
      "class": "2274724615",
      "instance": "57949762",
      "time": "1546229560",
      "event": "buy",
      "app": "570",
      "stage": "2",
      "for": null,
      "custom_id": null,
      "paid": "72",
      "currency": "RUB"
    }
  ]
}
Пояснение к ответу:
  • app — на какой площадке был куплен предмет
  • for — ID пользотвателя кому он был передан (если покупка была через метод buy-for)
  • stage
    • TRADE_STAGE_NEW = 1
    • TRADE_STAGE_ITEM_GIVEN = 2
    • TRADE_STAGE_TIMED_OUT = 5
operation-history

История покупок, продаж, операций пополнений, выводов на всех площадках

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

https://tf2.tm/api/v2/operation-history?key=[your_secret_key]&date=1585042890&date_end=1592646090

Параметры запроса:
  • [date] - UNIX_TIMESTAMP
  • [date_end] - UNIX_TIMESTAMP
Пример ответа:
{
  "success": true,
  "data": [
    {
      "time": "1592564265",
      "event": "sell",
      "item_id": "520336165",
      "market_hash_name": "Glock-18 | Ironwork (Factory New)",
      "class": "3706631132",
      "instance": "188530139",
      "price": "500",
      "received": "468",
      "currency": "RUB",
      "stage": "5",
      "for": null,
      "custom_id": null,
      "app": 730
    },
    {
      "time": "1591817364",
      "event": "buy",
      "item_id": "286316972",
      "market_hash_name": null,
      "class": null,
      "instance": null,
      "paid": "193",
      "currency": "RUB",
      "stage": "5",
      "for": null,
      "custom_id": null,
      "app": 570
    },
    {
      "time": "1588586061",
      "event": "checkout",
      "id": "542713332",
      "amount": "1001",
      "currency": "RUB",
      "status": "105"
    }
  ]
}
Пояснение к ответу:
  • app — на какой площадке был куплен предмет
  • for — ID пользотвателя кому он был передан (если покупка была через метод buy-for)
  • Event Checkout: status
    • 0 - Заявка создана
    • 10 - Заявка одобрена
    • 20 - Заявка отправлена на исполнение
    • 30 - Заявка исполнена
    • 100 - Заявка отклонена
    • 105 - Заявка отменена
    • 110 - Ошибка
  • Event Byu/Sell: stage
    • TRADE_STAGE_NEW = 1
    • TRADE_STAGE_ITEM_GIVEN = 2
    • TRADE_STAGE_TIMED_OUT = 5

Ордера на покупку

get-orders

Получение списка ваших ордеров

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

https://tf2.tm/api/v2/get-orders?key=[your_secret_key]&page=0

Параметры запроса:
  • page — Параметр служит для постраничной выдачи. По умолчанию запрос возвращает последние 100 ордеров.
Пример ответа:
{
  "success": true,
  "orders": [
    {
      "hash_name": "Spectrum 2 Case",
      "phase": "",
      "count": 5,
      "date": "2021-09-08 18:06:58",
      "price": 10,
      "currency": "RUB",
      "partner": null,
      "token": null
    }
  ]
}
set-order

Добавление, изменение и удаление ордера

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

https://tf2.tm/api/v2/set-order?key=[your_secret_key]&market_hash_name=AWP | Dragon Lore (Field-Tested)&count=5&price=50000000[&partner=partnerID&token=tradeToken]

Параметры запроса:
  • market_hash_name — market_hash_name идентификаторы предмета.
  • phase — фаза предмета. варианты: phase1, phase2, phase3, phase4, sapphire, ruby, blackpearl
  • count — Количество покупаемых предметов
  • price — цена в копейках (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000) целое число
  • [partner] — Steam ID пользователя, кому будет передан купленный предмет (необязательный)
  • [token] — Токен из ссылки для обмена пользователя, которому будет передан предмет (необязательный)
Пример ответа:
{
  "success": true,
  "order": {
    "hash_name": "AWP | Dragon Lore (Field-Tested)",
    "phase": "",
    "currency": "RUB",
    "price": 20,
    "count": 5,
    "date": "2021-09-08 18:30:44",
    "partner": null,
    "token": null
  }
}
get-orders-log

История исполненных ордеров

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

https://tf2.tm/api/v2/get-orders-log?key=[your_secret_key]&page=0

Параметры запроса:
  • page — Параметр служит для постраничной выдачи. По умолчанию запрос возвращает последние 100 ордеров.
Пример ответа:
{
  "success": true,
  "orders": [
    {
      "hash_name": "Desert Eagle | Oxide Blaze (Field-Tested)",
      "item_id": 520336218,
      "created": "2021-09-06 18:00:27",
      "executed": "2021-09-06 18:03:16",
      "price": 1000,
      "currency": "RUB"
    },
    {
      "hash_name": "Gamma 2 Case",
      "item_id": 520336215,
      "created": "2021-09-06 17:59:54",
      "executed": "2021-09-06 17:59:54",
      "price": 5000,
      "currency": "RUB"
    }
  ]
}

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

get-money

Получить сумму на балансе и текущую валюту.

ВАЖНО! Для валют USD и EUR установлена точность равная 1000, это значит, что торговля в этих валютах осуществляется с 3 (тремя) знаками после запятой.
Пример запроса:

https://tf2.tm/api/v2/get-money?key=[your_secret_key]

Пример ответа для RUB:
{"money": 123.45, "currency": "RUB", "success": true}
Пример ответа для USD:
{"money": 123.45, "currency": "USD", "success": true}
Пример ответа для EUR:
{"money": 123.45, "currency": "EUR", "success": true}
go-offline

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

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

https://tf2.tm/api/v2/go-offline?key=[your_secret_key]

Пример ответа:
{"success":true}
update-inventory

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

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

https://tf2.tm/api/v2/update-inventory/?key=[your_secret_key]

Пример ответа:
{"success":true}
transfer-discounts

Перенос скидок на другой аккаунт

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

https://tf2.tm/api/v2/transfer-discounts?key=[your_secret_key]&to=[his_secret_key]

Параметры запроса:
  • [his_secret_key] - API ключ аккаунта на который производистя перенос скидок.
Пример ответа:
{"success":true}
get-my-steam-id

Узнать свой steamID

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

https://tf2.tm/api/v2/get-my-steam-id?key=[your_secret_key]

Пример ответа:
{
    "success": true,
    "steamid32": 123456,
    "steamid64": "1234123513245234"
}
set-pay-password

Установка/смена платежного пароля.

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

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

https://tf2.tm/api/v2/set-pay-password?old_password=[old_password]&new_password=[new_password]&key=[your_secret_key]

Параметры запроса:
  • [old_password] - Старый платежный пароль (не указывается, если происходит первичная установка платежного пароля)
  • [new_password] - Новый платежный пароль
Пример ответа:
{
    "success": true
}
money-send

Перенос баланса с текущего аккаунта на указанный

Возможен только при условии установленного платежного пароля

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

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

https://tf2.tm/api/v2/money-send/[amount]/[user_api_key]?pay_pass=[pay_pass]&key=[your_secret_key]

Параметры запроса:
  • [amount] - сумма, целое число (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000)
  • [user_api_key] - Апи ключ аккаунта на который будет производиться перенос баланса.
  • [pay_pass] - Текущий платежный пароль.
Пример ответа:
{
    "success": true,
    "from": 1234567,
    "to": 13579123,
    "amount": 1000
}
money-send-history

История переносов баланса с текущего аккаунта

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

https://tf2.tm/api/v2/money-send-history/[page = 0]?key=[your_secret_key]

Параметры запроса:
  • [page] - Опциональный параметр. По умолчанию - 0.
Пример ответа:
{
  "success": true,
  "data": [
    {
      "id": "6308681",
      "from": "12345678",
      "to": "11223344",
      "amount_from": "10000",
      "currency_from": "RUB",
      "amount_to": "10000",
      "currency_to": "RUB"
    }
}
set-steam-api-keydeprecated

Привязка Steam API ключа к аккаунту

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

https://tf2.tm/api/v2/set-steam-api-key?key=[your_secret_key]&steam-api-key=[steam-api-key]

Параметры запроса:
  • [steam-api-key] - Ваш Steam API ключ.
Пример ответа:
{
    "success": true
}
set-trade-token

Привязка трейд-ссылки к аккаунту

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

https://tf2.tm/api/v2/set-trade-token?key=[your_secret_key]&token=[token]

Параметры запроса:
  • [token] - Ваш токен из трейд-ссылки
Пример ответа:
{
    "success": true,
    "token": "kf47d09"
}
change-currency

Смена валюты аккаунта

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

https://tf2.tm/api/v2/change-currency/[new-currency]?key=[your_secret_key]

Параметры запроса:
  • [new-currency] - Новая валюта, которая будет установлена для аккаунта. Доступны: RUB, USD, EUR.
Пример ответа:
{
    "success": true
}
Пример ответа в случае ошибки:
{
    "success": false,
    "error": 1001
}
Коды ошибок:
  • 1001: Нельзя менять валюту, пока у Вас выставлены товары на продажу. Дождитесь когда их купят, или снимите с продажи. Чтобы снять все предметы с продажи НАЖМИТЕ СЮДА и попробуйте снова.
  • 1003: Нельзя менять валюту, пока у Вас есть активные заявки на вывод. Дождитесь когда они будут исполнены, или отмените их вручную.
  • 1004: У Вас уже выбрана данная валюта
  • 1005: Выбрана неверная валюта
  • 1007: Ошибка. Вы два или более раз попытались отправить запрос на смену валюты. Если конвертация еще не завершилась, пожалуйста, подождите немного и обновите страницу.
get-api-key-via-access-token

Регистрация аккаунта на маркете и получение API ключа

Вы можете автоматизировать регистрацию своих Стим аккаунтов на нашем маркете. Для этого вам необходимо в запросе передать access_token (см. метод ping-new) и прокси. В ответ мы зарегистрируем аккаунт, если он еще не был зарегистрирован, сохраним трейд ссылку и сгенерируем API ключ площадки.

ВАЖНО! Прокси - обязательный параметр, так как мы обращаемся к серверам Steam для валидации и получения трейд ссылки.
Пример запроса:

[POST] https://tf2.tm/api/v2/get-api-key-via-access-token?key=[your_secret_key]

Параметры запроса: (JSON)
{
                    "access_token": "eyAidHlwIjogIkpXVCIsICJhb.....",
                    "proxy": "http://proxy_login:proxy_pass@proxy_ip:proxy_port",
                    "currency": "USD"
                }

Параметр «currency» опционален. Если он передан, то при создании аккаунта будет использоваться выбранная валюта. По-умолчанию: RUB.

Пример ответа:
{
                    "success": true,
                    "apikey": "abcdefghijklmnopqrstubvwxyz",
                    "is_new": true
                }
Пример ответа в случае ошибки:
{
                        "success": false,
                        "message": "invalid_proxy"
                    }

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

search-item-by-hash-name

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

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

https://tf2.tm/api/v2/search-item-by-hash-name?key=[your_secret_key]&hash_name=[market_hash_name]

Параметры запроса:
  • [market_hash_name] - Название предмета, которое можно взять из инвентаря Steam.
Пример ответа:
{
                        "success" : true,
                        "currency" : "RUB",
                        "data": [
                            {
                                "market_hash_name" : "ABC",
                                "price" : 400,
                                "class" : 93975063,
                                "instance" : 57944754,
                                "count" : 10
                            }
                        ]
                    }
search-item-by-hash-name-specific

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

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

https://tf2.tm/api/v2/search-item-by-hash-name-specific?key=[your_secret_key]&hash_name=[market_hash_name]&phase=[phase]

Параметры запроса:
  • [market_hash_name] - Название предмета, которое можно взять из инвентаря Steam.
  • [phase] - фаза предмета. варианты: phase1, phase2, phase3, phase4, sapphire, ruby, blackpearl
Пример ответа:
{
    "success": true,
    "currency": "RUB",
    "data": [
        {
            "id": 521320033,
            "market_hash_name": "AWP | Worm God (Factory New)",
            "price": 3573,
            "class": 3088304936,
            "instance": 480085569,
            "seller_steam_level": 2,
            "extra": {
                "float": "0.061443410813808",
                "phase": "aq_awp_twine"
            }
        },
        {
            "id": 523494595,
            "market_hash_name": "AWP | Worm God (Factory New)",
            "price": 3604,
            "class": 1848971742,
            "instance": 480085569,
            "seller_steam_level": null,
            "extra": {
                "float": "0.051711451262236",
                "phase": "aq_awp_twine"
            }
        },
        {
            "id": 522446815,
            "market_hash_name": "AWP | Worm God (Factory New)",
            "price": 4386,
            "class": 3033846573,
            "instance": 188530139,
            "seller_steam_level": 12,
            "extra": {
                "float": "0.038657382130623",
                "phase": "aq_awp_twine"
            }
        },
        {
            "id": 521834932,
            "market_hash_name": "AWP | Worm God (Factory New)",
            "price": 4386,
            "class": 3099667914,
            "instance": 188530139,
            "seller_steam_level": 32,
            "extra": {
                "float": "0.0054426062852144",
                "phase": "aq_awp_twine"
            }
        }
    ]
}
Пояснение к ответу:
  • extra — Дополнительные данные о предмете
search-list-items-by-hash-name-all

Вариант для запроса по списку предметов. Отдаёт ограниченное число предложений по списку market_hash_name.

Если в url указан параметр extended=1, то максимальный лимит количества market_hash_name равен 5. По каждому предмету Вы получите 500 первых позиций на продажу.

Если параментр extended=1 НЕ указан, то максимальный лимит количества market_hash_name равен 50, при этом по каждому предмету Вы получите 50 первых позиций на продажу.

Пример запроса без параметра extended:

https://market.csgo.com/api/v2/search-list-items-by-hash-name-all?key=[your_secret_key]&list_hash_name[]=[market_hash_name]&list_hash_name[]=[market_hash_name]&...

Пример запроса c параметром extended:

https://market.csgo.com/api/v2/search-list-items-by-hash-name-all?key=[your_secret_key]&extended=1&list_hash_name[]=[market_hash_name]&list_hash_name[]=[market_hash_name]&...

Параметры запроса:
  • [market_hash_name] - Название предмета, которое можно взять из инвентаря Steam.
Пример ответа:
{
      "success": true,
      "currency": "RUB",
      "data": {
        "USP-S | Lead Conduit (Well-Worn)": [
            {
              "id": 535992148,
              "price": "5100",
              "class": 3017010398,
              "instance": 188530139,
              "seller_steam_level": 4,
              "extra": {
                "asset": "35081291",
                "float": "0.39269635081291",
                "phase": "gs_usp_voltage",
                "percent_success": "100.00",
                "average_time": "195"
              }
            }
        ],
        "USP-S | Lead Conduit (Factory New)": [
            {
              "id": 545992413,
              "price": "10100",
              "class": 3017020387,
              "instance": 188530171,
              "seller_steam_level": 7,
              "extra": {
                "asset": "320811187",
                "float": "0.04768768698012",
                "phase": "gs_usp_voltage",
                "percent_success": "88.00",
                "average_time": "163"
              }
            }
        ]
      }
}
Пояснение к ответу (блоку информации о конкретном предложении одного из предметов):
  • id — Уникальный id вещи, по которому её можно купить.
  • extra — Блок с дополнительной информацией о предмете.
  • percent_success — Процент успешных сделок продавца.
  • average_time — Среднее время передачи предмета продавцом.
get-list-items-info

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

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

https://tf2.tm/api/v2/get-list-items-info?key=[your_secret_key]&list_hash_name[]=[market_hash_name]&list_hash_name[]=[market_hash_name]

Параметры запроса:
  • [market_hash_name] - Название предмета, которое можно взять из инвентаря Steam.
Пример ответа:
{
    "success": true,
    "currency": "RUB",
    "data": {
         "USP-S | Lead Conduit (Well-Worn)": {
                "max": "100",
                "min": 1,
                "average": 50,
                "history": [
                    [12312312312, 1.234], [12312312313, 1.234]
                ]
         }
    }
                }
Пояснение к ответу:
  • max — max price
  • min — min price
  • history — sales history
bid-ask

Запрос стакана по хэшнейму предмета

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

https://tf2.tm/api/v2/bid-ask?key=[your_secret_key]&hash_name=[market_hash_name]&phase=[phase]

Параметры запроса:
  • [market_hash_name] - Название предмета, которое можно взять из инвентаря Steam.
  • [phase] - фаза предмета. варианты: phase1, phase2, phase3, phase4, sapphire, ruby, blackpearl
Пример ответа:
{
	"bid": [
		{
			"price": "414.0600",
			"total": "1"
		},
		{
			"price": "406.4600",
			"total": "3"
		}
    ],
    "ask": [
		{
			"price": "441.5900",
			"total": "1"
		},
		{
			"price": "441.7800",
			"total": "1"
		}
    ],
    "currency": "RUB"
}
Пояснение к ответу:
  • bid — заявки напокупку (ордера)
  • ask — предметы на продаже (предложения)
  • currency — текущая валюта

Пополнения и выводы

checkout-history

Получение истории операций выводов (100 на странице)

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

https://tf2.tm/api/v2/checkout-history?key=[your_secret_key][&page=0]

Параметры запроса:
  • [page] - Опциональный параметр. По умолчанию - 0. Страница в выдаче.
Пример ответа:
{"success":true,
    "data":[
        {
            "id":"9503323",
            "uid":"1234567890",
            "summ":"10000",
            "paid":"9500",
            "method":"card",
            "wm":"7-9683912365",
            "status":"30",
            "comment":"",
            "created":"2021-05-26 19:10:45",
            "currency":"RUB",
            "can_cancel":false
        }
    ]
}
Пояснение к ответу:
  • summ, paid — сумма, целое число (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000)
  • status — Статус заявки

    = 0 - Заявка создана

    = 10 - Заявка одобрена

    = 20 - Заявка отправлена на исполнение

    = 30 - Заявка исполнена

    = 100 - Заявка отклонена

    = 105 - Заявка отменена

    = 110 - Ошибка

checkin-history

Получение истории операций пополнений (100 на странице)

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

https://tf2.tm/api/v2/checkin-history?key=[your_secret_key][&page=0]

Параметры запроса:
  • [page] - Опциональный параметр. По умолчанию - 0. Страница в выдаче.
Пример ответа:
{"success":true,
    "data":[
        {
            "id":"34754143",
            "uid":"1234567890",
            "system":"paygate",
            "amount":"15000",
            "created":"2021-09-13 07:15:36",
            "currency":"RUB"
        },
        {
            "id":"34754142",
            "uid":"1234567890",
            "system":"paygate",
            "amount":"10000",
            "created":"2021-09-04 15:12:29",
            "currency":"RUB"
        }
    ]
}
Пояснение к ответу:
  • amount — сумма, целое число (1 RUB = 100, 1 USD = 1000, 1 EUR = 1000)

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

test

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

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

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

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

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

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

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

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

ВКонтакте

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

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

vk.com/dev_market

История изменений

04.03.2022

Добавлен метод change-currency.

04.03.2022

Добавлен метод set-trade-token.

24.03.2022

Добавлен метод operation-history.

24.03.2022

Обновлен метод search-list-items-by-hash-name-all.

03.04.2024

Добавлен метод trade-ready.

16.07.2024

Добавлен метод get-api-key-via-access-token.

15.08.2024

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

03.10.2024

Добавлен метод bid-ask.