API documentation
The panel uses REST API to communicate between backend and frontend
In simple words: everything you do manually on the site, you can do programmatically through the API of the panel
There is only one difference, you don't need to use a session like the panel's web site does, because the session expires periodically and it's not very convenient
In order to solve this problem, the panel has a mechanism to create an API key:
How to create an API key?
Once your key is created, you can use it with a header to any API request
- 'x-api-key': 'your api key'.
When sending a request with an API key - the request is executed with administrator rights (i.e. with full access to all data)
There is no complete documentation with all methods, but I will tell you how to find out what requests the panel sends during any interaction with the site
In every browser there is a tool - developer console, to open it you usually need to press F12, or right-click on the page and select "View code" or "Explore element" (usually the last item in the context menu).
A window will appear on the screen as shown in the screenshot. For convenience, I recommend changing its location to the lower one. After that, go to the network tab
Now you need to define the action you want to do programmatically. I'm going to analyze the example of requesting a list of items (on the limits page).
- Go to the network tab
- Refresh the list to send the request
- Click on the sent request to see its address and the format in which the data is to be sent.
- See what URL the request has, in this case http://11.222.33.444:4321/api/Items/GetAccountsItemsFiltered/?appid=
- We see what type of request, in this case POST
- Since the request type is POST, most likely the server is waiting for additional data from us in JSON format. So we go to the Payload tab and see what data we need to send in
- We see that the server is expecting several fields from us in JSON form
{
"startRow":0,
"endRow":500,
"rowGroupCols":[],
"valueCols":[],
"pivotCols":[],
"pivotMode":false,
"groupKeys":[],
"filterModel":{},
"sortModel":[]
}
- Go to the Response tab to see what came in response
We can see that we received a list of items in JSON format in response
{
"success":true,
"msg":null,
"data":
{
"items":
[
{
"color":"blue",
"account_reminder":"Colt",
"appid":"730",
"assestid":"34046119632",
"market_hash_name":"★ Gut Knife | Black Laminate (Minimal Wear)",
"img":"https://community.cloudflare.steamstatic.com/economy/image/-9**...",
"classid":"1818846862",
"instanceid":"188530139",
"tradable":true,
"hold_days":"-",
"float_value":0.101885,
"phase":null,
"additional_inf":null,
"market_prices":
{
"market_hash_name":"★ Gut Knife | Black Laminate (Minimal Wear)",
"price_steam":173.91,
"price_tm_min":135.34,
"price_tm_order":116.663,
"price_tm":0.0,
"price_buff":107.21,
"price_buff_min":103.89,
"price_waxpeer_min":135.397,
"price_waxpeer":0.0,
"price_shadowpay":135.39,
"price_skinport":136.16,
"price_dmarket":113.17,
"last_change_time":"2023-10-25T15:23:41.665951Z"
},
"market_prices_market_hash_name":"★ Gut Knife | Black Laminate (Minimal Wear)",
"inspect_in_game":"steam://rungame/730/76561....",
"tm_price":135.4,
"waxpeer_price":135.4,
"shadow_price":135.4,
"max_price":135.4,
"min_price":135.4,
"stickers":[],
"added_time":"2023-10-24T07:42:18.312612Z",
"unique_item":false,
"account_username":"username_acc_random"
},
{ ..... },
{ ..... }
],
"lastRowIndex":321,
"remainder_steam":2871.13,
"remainder_tm_min":2269.92,
"remainder_tm_order":1608.32,
"remainder_min_price":2271.05
}
}
This is how you can get the information of any action you may do manually on the site to programmatically automate it
You can automatically add accounts, get a list of your items, automate minimum and maximum limits, get sales history, automatically transfer balances, and anything else you want!