Kindly proceed to our homepage to apply for your API Key. Once your application is approved, you have the ability to manage your orders, balance and settings by navigating to open.haloskins.com.
Item Query
Search items by Name&Price
Input marketHashName and price to search for the number of items for sale below that price.
POST /merchant/product/price/query?app-key=955a2f4e8f121cdda99ae97ae9728d2d HTTP/1.1
Content-Type: application/json
Content-Length: 78
Host: localhost:8080
{
"marketHashName" : "Negev | Drop Me (Factory New)",
"maxPrice" : 10
}
| Path | Type | Description |
|---|---|---|
|
|
Steam market item hash name. One must be filled in with itemId |
|
|
Check the items in the market below the highest price.(not required) |
|
|
deliver type of this asset.1 : p2p , 2: bot. (not required) |
{
"marketHashName" : "Negev | Drop Me (Factory New)",
"maxPrice" : 10
}
| Path | Type | Description |
|---|---|---|
|
|
Steam market item hash name. One must be filled in with itemId |
|
|
Check the items in the market below the highest price.(not required) |
|
|
deliver type of this asset.1 : p2p , 2: bot. (not required) |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 257
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : {
"itemId" : 1017714571515645952,
"marketHashName" : "Negev | Drop Me (Factory New)",
"price" : null,
"count" : 0
},
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
Steam market item hash name. U.S.dollar. |
|
|
Steam market item id. |
|
|
Lowest available price. |
|
|
Eligible quantity for sale. |
Fetch listed items by name
Fetch the entire HaloSkins for sale list by entering the marketHashNames, and you can monitor price and on-sale status updates through WebSocket. You can display and sell HaloSkins items on your own trading website through it.
POST /merchant/sell/list?app-key=955a2f4e8f121cdda99ae97ae9728d2d HTTP/1.1
Content-Type: application/json
Content-Length: 133
Host: localhost:8080
{
"appId" : 730,
"marketHashNames" : ["Souvenir M249 | Contrast Spray (Field-Tested)"],
"pageIndex" : 1,
"pageSize" : 100
}
| Path | Type | Description |
|---|---|---|
|
|
Steam market item hash name. |
|
|
AppId of game. |
|
|
phase. (not required) |
|
|
deliver type of this asset.1 : p2p , 2: bot. (not required) |
|
|
min float (not required) |
|
|
max float (not required) |
|
|
Size of every page. |
|
|
Index of page |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1280
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : {
"total" : 1,
"pages" : 1,
"page" : 1,
"limit" : 100,
"list" : [ {
"productSellId" : 1233947221628608512,
"price" : 10.98,
"floatValue" : 0.350459486246109,
"paintIndex" : 22,
"paintSeed" : 110,
"gradient" : 0.0,
"deliver" : 1,
"nameTag" : "",
"keychains": [
{
"pattern": 48100,
"id": 6
}
],
"stickers" : [ {
"stickerId" : 1694,
"name" : "Overpass (Gold)",
"slot" : 0,
"wear" : 0.0,
"image" : "https://img.zbt.com/e/steam/csgo/sticker/1694.png"
}, {
"stickerId" : 5972,
"name" : "Heroic (Gold) | Rio 2022",
"slot" : 1,
"wear" : 0.0,
"image" : "https://img.zbt.com/e/steam/csgo/sticker/5972.png"
}, {
"stickerId" : 6060,
"name" : "IEM (Gold) | Rio 2022",
"slot" : 2,
"wear" : 0.0,
"image" : "https://img.zbt.com/e/steam/csgo/sticker/6060.png"
}, {
"stickerId" : 6056,
"name" : "Outsiders (Gold) | Rio 2022",
"slot" : 3,
"wear" : 0.0,
"image" : "https://img.zbt.com/e/steam/csgo/sticker/6056.png"
} ]
} ]
},
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
Total num of all |
|
|
Pages |
|
|
Index of page |
|
|
Size of every page |
|
|
the id to buy |
|
|
price of asset |
|
|
float of asset |
|
|
paint index |
|
|
paint seed |
|
|
gradient |
|
|
deliver type of this asset.1 : p2p , 2: bot |
|
|
name tag |
|
|
the id of sticker in steam |
|
|
name of sticker |
|
|
slot of sticker |
|
|
wear of sticker |
|
|
image of sticker |
|
|
id of keychain |
|
|
pattern of keychain |
Batch query of item prices and status
You can batch query the prices and listing status of items to assist you in situations such as information discrepancies that may arise during the process of stock sharing.
POST /merchant/sell/batch-query?app-key=955a2f4e8f121cdda99ae97ae9728d2d HTTP/1.1
Content-Type: application/json
Content-Length: 50
Host: localhost:8080
{
"productSellIds" : [ 1217217784781119491 ]
}
| Path | Type | Description |
|---|---|---|
|
|
List of productSellId you want to query |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 219
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : [ {
"productSellId" : 1217217784781119491,
"status" : "active",
"price" : 0.02
} ],
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
|
|
|
the sale status of asset.value: 'active' or 'inactive' |
|
|
price of asset |
Fetch all items in market
GET /merchant/product/v2/all?app-key=955a2f4e8f121cdda99ae97ae9728d2d&appId=730 HTTP/1.1
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 272
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : [ {
"name" : "Sticker | degster | Antwerp 2022",
"p2pPrice" : 0.01,
"p2pQuantity" : 10,
"botPrice" : 0,
"botQuantity" : 0
} ],
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
Name of item. |
|
|
Lowest Price of p2p item |
|
|
Quantity of p2p item . |
|
|
Lowest Price of bot item |
|
|
Quantity of bot item . |
Phases
phase-1
phase-2
phase-3
phase-4
ruby
emerald
sapphire
black-pearl
1st-max
2nd-max
3rd-max
4th-max
5th-max
6th-max
7th-max
8th-max
9th-max
10th-max
FFI
max-fake
sun
tire-1
tire-2
tire-3
tire-4
Buy items
Buy items by Name&Price
To buy steam item on our market. By passing in the marketHashName or itemId, to choose what you want to buy. The mxPrice: you can decide the highest price you’re willing to pay.
We’ll choose the lowest price on the market, if there are no eligible items, they will not be purchased.
*If the code of response is "1001", please use the Order Detail API to verify the order status 1 minute after the request.
POST /merchant/buy/normal/buy?app-key=955a2f4e8f121cdda99ae97ae9728d2d HTTP/1.1
Content-Type: application/json
Content-Length: 262
Host: localhost:8080
{
"marketHashName" : "★ Ursus Knife | Doppler (Factory New)",
"maxPrice" : 3,
"outTradeNo" : "HaloSkin423456789",
"receiveSteamId" : 76561199467611048,
"steamTradeUrl" : "https://steamcommunity.com/tradeoffer/new/?partner=1507345320&token=_giajW08",
"phase":"phase-1"
}
| Path | Type | Description |
|---|---|---|
|
|
Steam market item hash name. One must be filled in with itemId. |
|
|
Maximum purchase Price (US $). |
|
|
The recipient’s steamId. |
|
|
The recipient’s steam trade link. |
|
|
Your order number. |
|
|
Phase. not required |
|
|
Deliver type of this asset.1 : p2p , 2: bot. not required. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 162
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : {
"orderId" : 123,
"pay" : 1
},
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
Order id. |
|
|
The amount actually paid for this order. |
Common Error
| code | Description |
|---|---|
|
*Uncertain purchase result, please check order details after 1 minute |
|
Balance is not enough |
|
Steam status has problem,for example:privacy inventory |
|
Buyer’s SteamID is temporarily banned for declining or blocking seller |
|
No items available for sale that meet the criteria |
|
outTradeNo is repeated |
|
This Trade URL is invalid |
Buy items by id
To buy steam item on our market. By passing in the productSellId, to choose what you want to buy.
*If the code of response is "1001", please use the Order Detail API to verify the order status 1 minute after the request.
POST /merchant/buy/assign?app-key=955a2f4e8f121cdda99ae97ae9728d2d HTTP/1.1
Content-Type: application/json
Content-Length: 226
Host: localhost:8080
{
"outTradeNo" : "HaloSkin423456789",
"price" : 1,
"productSellId" : 123,
"receiveSteamId" : 76561199467611048,
"steamTradeUrl" : "https://steamcommunity.com/tradeoffer/new/?partner=1507345320&token=_giajW08"
}
| Path | Type | Description |
|---|---|---|
|
|
id. |
|
|
Price of asset (US $). |
|
|
The recipient’s steamId. |
|
|
The recipient’s steam trade link. |
|
|
Your order number. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 165
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : {
"orderId" : 123456,
"pay" : 1
},
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
Order id. |
|
|
The amount actually paid for this order. |
Common Error
| code | Description |
|---|---|
|
*Uncertain purchase result, please check order details after 1 minute |
|
Balance is not enough |
|
Steam status has problem,for example:privacy inventory |
|
Buyer’s SteamID is temporarily banned for declining or blocking seller |
|
outTradeNo is repeated |
|
The price of the listed item has changed |
|
The listed item is removed |
|
This Trade URL is invalid |
Check balance
GET /merchant/info/balance?app-key=955a2f4e8f121cdda99ae97ae9728d2d HTTP/1.1
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 127
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : 11798.94,
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
balance |
Ban information
If Buyer Declined or Blocked Seller, we will ban the steamId several hours.
You can use this api to query his ban information.
If a user blocks our seller or declines the offer once, we will ban him for 1 hour.
If a user blocks our seller or declines the offer twice, we will ban him for 3 hours.
If a user blocks our seller or declines the offer three times or more, we will ban him for 12 hours.
GET /merchant/buy/steam/ban?app-key=769807e1195a4fa4bc72f098eb936fc7&steamId=76561198422888028 HTTP/1.1
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 329
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : {
"items" : [ {
"name" : "FAMAS | Colony (Field-Tested)",
"unbanTime" : 1715000792
}, {
"name" : "MP5-SD | Dirt Drop (Minimal Wear)",
"unbanTime" : 1714968606
} ]
},
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
Name of item. |
|
|
The timestamp to unban. |
Order
Order Detail API
Query order detail, By passing in the orderId or outTradeNo, to get the order detail.
GET /merchant/order/buy/detail?app-key=955a2f4e8f121cdda99ae97ae9728d2d&outTradeNo=1179273226945818624 HTTP/1.1
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 968
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : {
"orderId" : 1179273226945818624,
"outTradeNo" : "HaloSkin423456799",
"actualPay" : 0.02,
"failedDes" : null,
"buyerInfo" : {
"steamId" : "76561199467611048",
"steamCreateTime" : 1672902371,
"nickName" : "tao_lexi",
"avatar" : "https://avatars.steamstatic.com/e3162e5e370c2e364dc41e0396a500216cfac8f8_full.jpg"
},
"orderAssetInfo" : {
"orderAssetStatus" : 11,
"marketHashName" : "Sticker | KSCERATO | Paris 2023",
"imageUrl" : "https://img.zbt.com/e/steam/item/730/U3RpY2tlciB8IEtTQ0VSQVRPIHwgUGFyaXMgMjAyMw==.png",
"isJumpOffer" : 0,
"itemId" : "1128403848121696257",
"orderSourceId" : "1179238787599560704",
"cancelReason" : "You failed to confirm within 12hours"
},
"orderCreateTime" : null,
"tradeOfferId" : null
},
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
The order id. |
|
|
Third party merchant order number. |
|
|
If the order fails, the reason will be shown here. |
|
|
Order creation time. |
|
|
The actual payment price of the order |
|
|
steam offer id, concatenated to the address where steam accepts the offer.https://steamcommunity.com/tradeoffer/{trdadeOfferId} |
|
|
Buyer steam Information. |
|
|
Steam id. |
|
|
Time to join Steam. |
|
|
User Steam nick name. |
|
|
User Steam avatar |
|
|
Order details. |
|
|
Order status code,status 1= Pending Delivery by Seller, 2= processing, 3= Pending Receipt by Buyer,10= buyer received, 11= cancelled,200=successed finally,220=reversed |
|
|
Item market hash name. |
|
|
Item image url. |
|
|
Steam market item id. |
|
|
The order source id. |
|
|
Order cancel reason. |
|
|
Can jump to Steam trade offer. |
Order History
Not return failed orders.
GET /merchant/order/buy/history?app-key=6b4b29edf1be1564c8c14b61cd573752&fromDate=1708272000&toDate=1708358400&pageIndex=1&pageSize=1000 HTTP/1.1
Host: localhost:8080
| Parameter | Description |
|---|---|
|
|
|
date filter from |
|
date filter to |
|
Index of page |
|
Size of page,max:1000 |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 279
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : [ {
"orderId" : 1233591536932544513,
"outTradeNo" : "1759467449516158977",
"marketHashName": "FAMAS | Colony (Field-Tested)",
"pay" : 1.0,
"createTime" : 1708324703,
"status" : 10
} ],
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
The order id of haloskins |
|
|
your order number |
|
|
Steam market item hash name |
|
|
The actual payment price of the order |
|
|
Order creation time |
|
|
status: 2= processing,10= buyer received, 11= cancelled,200=successed finally,220=reversed |
Other
Deposit History
GET /merchant/info/deposit/history?app-key=e8b74a0e9e654de3ba1aaf8128bccb02&fromDate=1709740800&toDate=1709827200&pageIndex=1&pageSize=1000 HTTP/1.1
Host: localhost:8080
| Parameter | Description |
|---|---|
|
|
|
date filter from |
|
date filter to |
|
Index of page |
|
Size of page,max:1000 |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 223
{
"success" : true,
"message" : null,
"messageParams" : null,
"code" : null,
"data" : [ {
"channelCode" : "digital_currency",
"amount" : 4.99,
"createTime" : 1709794245,
"depositId":"1000023"
} ],
"x" : null
}
| Path | Type | Description |
|---|---|---|
|
|
Whether the correct data results are obtained. |
|
|
Error Message. |
|
|
Error Message. |
|
|
Error code. |
|
|
Additional data can be ignored. |
|
|
Actual data. |
|
|
channel: bank_transfer,digital_currency |
|
|
Deposit amount |
|
|
creation time |
|
|
id |
Notification
Order callback notification
When the order status changes, we will notify you by way of callback .
You need to provide us with a callback address,this should be a post Api.
We will send a json data to you via post request.A callback demo is shown here
You can set a callback address on our website.
$ curl 'http://localhost:8080/test/v1/callback/demo?app-key=955a2f4e8f121cdda99ae97ae9728d2d' -i -X POST \
-H 'Content-Type: application/json'
POST /test/v1/callback/demo?app-key=955a2f4e8f121cdda99ae97ae9728d2d HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 69
{
"orderInfoVO" : {
"orderId" : 123456
},
"type" : 1
}
| Path | Type | Description |
|---|---|---|
|
|
Return order data when type 1. |
|
|
Can reference Order Detail API. |
|
|
The order id. |
Monitor price and status of all items
-
WebSocket Connection Connect to: wss://api.haloskins.com/ws/
-
Sending Message Send the following message to initiate listening:
{"code":0,"data":{"token":"YOUR API KEY"},"message":"","msgNo":"HALO_MERCHANT_ENTER_TOPIC_REQ","success":true}
If you receive the response,it indicates that the listening setup was successful.
{"code":0,"message":"","msgNo":"HALO_MERCHANT_ENTER_TOPIC_RSP","success":true}
3.Send a ping command once per 30 seconds to keep the connection alive
PING
When a new asset is added, you will receive a message with "msgNo":"PRODUCT_SELL_ADD" containing information like this:
{"code":0,"data":{"paintSeed":621,"price":1.0000,"paintIndex":96,"productSellId":1233989668031420160,"gradient":0,"appId":730,"floatValue":0.3601983785629272,"deliver":1,"stickers":[{"image":"https://img.zbt.com/e/steam/csgo/sticker/2778.png","name":"NiKo (Foil) | Boston 2018","wear":0.0,"slot":3,"stickerId":2778}],"marketHashName":"SSG 08 | Blue Spruce (Field-Tested)"},"message":"","msgNo":"PRODUCT_SELL_ADD","success":true}
When an asset is updated, you will receive a message with "msgNo":"PRODUCT_SELL_UPDATE" containing information like this:
{"code":0,"data":{"price":2.0000,"productSellId":1233989668035420160,"status":"active"},"message":"","msgNo":"PRODUCT_SELL_UPDATE","success":true}