WebMini API

Itemplatform API

Introduction

WebMini Itemplatform provides gamers, collectors, streamers, and app developers a platform for managing virtual game items. Send and receive items easily and manage your collection. Buy and sell items on the marketplace.

You can use the Itemplatform API to

  • configure "send items"-links to determine what items can be sent to you
  • retrieve a list of items a user owns
  • send items to other accounts
  • get notified by webhook when new items arrive
  • put owned items for sale on the marketplace, or remove them from it
  • and much more

Getting Started

Demo Application on GitHub

In addition to this documentation, please also take a look at our demo application showcasing all key functionalities of the Itemplatform API. You can find the full source code of the demo application on GitHub.

We also provide a live example of the demo application online. Feel free to use it to test out what Itemplatform can do with just a few clicks.

Frontend Endpoints

Itemplatform offers frontend pages that are designed to be linked to by your website/application.

Whitelabel Functionality & Design

All frontend endpoints are pages within the Itemplatform website, but can be fully customized to match the design of your website. The following options are available:

  • Custom header image, e.g. your logo
  • Custom CSS code
  • Custom account name independent from the Steam profile name of the account

Trade In

The Itemplatform trade in functionality allows you to accept item payments to your website, without ever having to deal with items yourself. This simplifies the required work on your side by a lot and allows you to focus on the core functionality of your application instead of dealing with item trades. Visit our demo application for a fully working live example of how the trade in works.

In order to use the Itemplatform trade in, place the following link on your website:

https://www.itemplatform.com/tradein/{account}/

Replace {account} with the account ID of your account, which can be found on the settings page.

In order to allow user to send items to you (or their value, to be specific), send them to this URL. Your users can then easily select items from their inventory and receive a trade offer from our system. Once they accepted the trade, the items are stored by Itemplatform, and your Itemplatform account is credited with the value of the items traded in. If configured, your application receives a "Trade In Payment Received"-webhook by our system. This way you can automatically credit your user the payment amount in your system.

This solution allows you to accept item payments within minutes, and with never having to deal with all the details such as handling trade offers, maintaining an item database, or item prices.

Trade Out

If you accept item payments by using the Itemplatform trade in as described above, you might also want to allow your users to take out items using the balance they have at your website or application.

To offer this feature, place the following link on your website:

https://www.itemplatform.com/tradeout/{account}/

Replace {account} with the account ID of your account, which can be found on the settings page.

Important: all trade outs need to be confirmed by your application. This works similar to a webhook, but with the main difference that your system has to output a specific HTTP code and content to confirm each outgoing payment. For example code, check out the source code of our demo tradeout interface on GitHub.

To confirm a trade out, your application needs to

  • output HTTP response code 201 
  • output the exact string OK 

The interface will receive the following parameters during a trade out payment confirmation:


{
	"payee_id": 87654321,
	"payee_steam": "76561197960287930",
	"payer_id": 12345678,
	"payer_balance": 1234.56,
	"amount": 13.37,
	"fees": 0.40
}

Parameters

Parameter Type Description
payee_id Integer Itemplatform account ID of the payee, i.e. the account receiving the payment.
payee_steam String Steam 64 ID of the payee. Parameter is sent as a string to ensure compatibility with older systems.
payer_id Integer Itemplatform account ID of the payer, this is always the ID of your account.
payer_balance Float Current trade in balance of your Itemplatform account.
amount Float Total value of the items to be traded out.
fees Float Transaction fees charged by Itemplatform. Since you are the merchant and pay the fees, the total amount deducted from your account is amount plus fees.

When receiving the above call, you application can still deny the payment. Only if your system outputs HTTP code 201 and the string OK, the payment will be processed.

Please note, that the interface should also be able to output the current balance of your user. If the call only contains the parameters payer_id, payee_id and payee_steam (missing the other parameters such as amount), only output the current balance of the requested user (see demo source code for details). No transaction will take place in this case.

This allows Itemplatform to only show items to the user during the trade out worth equal or less than the balance of this user. Please see the source code of our demo interface for details.

In order to set up the tradeout confirmation interface, please contact our support.

"Send Items"-Link Configuration

If you do not want to use the Itemplatform trade in functionality (where items are converted to a balance), you can also accept items directly. Each Itemplatform account comes with a unique link that can be given to others in order to accept items. By default, all items are accepted. However, their might be usage scenarios where you want to only accept items that fit certain requirements. This is what the "send items"-link configuration is for. With it, you can predetermine

  • the game(s) that the items have to belong to (e.g. accept only items of one specific game)
  • the minimum/maximum total value of items sent in one transaction
  • the minimum/maximum value of each individual item in one transaction
  • the minimum/maximum amount of items that can be sent
  • a custom identifier of the transaction that will be added to the webhook, so you can e.g. tie the transaction to a specific user account in your system
  • the URL to which the user is forwarded after sending items 

Itemplatform Link-Generator

This documentation explains to you how to create custom links yourself. If you do not care about the details and just want to quickly generate your own custom link, feel free to use our link generator that provides all features and lets you simply fill out a form and generate your link.

Default Link (Without Configuration)

The default link for an account always has the following format:

https://www.itemplatform.com/send/{account}/

{account} is the account ID of the receiver, i.e. the account items will be sent to. You can find the URL for your account here.

Protected vs. Unprotected Configuration

There are two ways of configuring the "send items"-link: protected and unprotected.

  Protected Configuration (recommended) Unprotected Configuration
Users can tamper with configuration No Yes
Configuration format JSON Raw HTTP GET or POST parameters
Ease of setup Requires HMAC hashing No special processing required, just set parameters

Available Parameters

All parameters are optional, i.e. you can use only some or all.

Parameter Format Description
apps List of Integers Optional. Only accept items that belong to the given list of games. Specify games by their Steam app ID. To find the ID of a game, simly open it in the Steam store and take the ID from the URL. For example, the Steam store URL for Dota 2 is http://store.steampowered.com/app/570/ and therefor its app ID is 570.
eachmin Float Optional. User will only be able to send items with an item price of at least the specified value.
eachmax Float Optional. User will only be able to send items with an item price of less or equal the specified value.
totalmin Float Optional. User will only be able to send items when their total value (=sum of all item values) is at least the specified value.
totalmax Float Optional. User will only be able to send items when their total value (=sum of all item values) is equal or less than the specified value.
custom String Optional. A custom string that can be added to indentify your link. This value will also be included in the webhook notifying you of newly received items (if you have set up such webhook, see the webhook documentation for details). This value is protected when using the protected configuration.
input String Optional. A custom string that can be added to indentify your link, or to let the user enter any information. This value will also be included in the webhook notifying you of newly received items (if you have set up such webhook, see the webhook documentation for details). This value is NOT protected even when using the protected configuration (use the "custom" parameter instead)!
returnurl String Optional. The URL the user will be forwarded to after sending items via your link. Must be a valid, absolute URL.

Unprotected Configuration

Unprotected configuration means that while you can determine all parameters of your link, users could simply change the parameters and the link would still work. To configure your link, simply add the parameters to the query string (HTTP GET) or send them via <form> (HTTP POST).

Examples:

Protected Configuration

The protected configuration has the big advantage that you can ensure that your configuration cannot be changed by users sending you items. This is achieved by signing the parameters with your Personal API Token. If you do not have a token yet, get it here.

You can either use our link-generator to easily create your custom link, or implement the signing process yourself:

  1. Encode all parameters to a JSON string. Example: {"apps":[570],"totalmin":5} (only accept Dota 2 items worth US$ 5 in total or more)
  2. Generate the HMAC hash value of the JSON string, using SHA1 as the hashing algorithm and the secret of your Personal API token as the secret HMAC key.
  3. Prepend sha1= to the HMAC hash to indicate the hashing algorithm used.
  4. Send the following parameters via HTTP GET or POST to your default Itemplatform default link:
Parameter Format Description
params JSON string The parameters of your link encoded to JSON.
id String The token username of your Personal API Token used for hashing the parameters.
hash String Hash of the parameters generated as described above.

Important: make sure to properly encode all HTTP parameters, or the link will not work. See this example of a full custom link using protected configuration:

https://www.itemplatform.com/send/33531743/?params=%7B%22apps%22%3A%5B570%5D%2C%22totalmin%22%3A5%7D&id=gahrzuew9ge6swwkt473&hash=sha1%3D552338f6707c4898eb2b6639a7a4c9cdb0b37c15 (only accept Dota 2 items, with total value of at least US$ 10)

Broken down:

  • params (encoded JSON): %7B%22apps%22%3A%5B570%5D%2C%22totalmin%22%3A5%7D
  • id (token username): gahrzuew9ge6swwkt473
  • hash (HMAC prepended with sha1=): sha1%3D552338f6707c4898eb2b6639a7a4c9cdb0b37c15 

Itemplatform Webhooks

Itemplatform offers the following webhook events:

Trade In Payment Received

This webhook will be activated each time its account receives a trade in payment, i.e. a user trading in items and sending their value.

The payload has the following format:

[
	{
		"payer_id": 12345678,
		"payer_steam": "76561197960287930",
		"amount": 13.37,
		"fees": 0.40,
		"date": "YYYY-MM-DDTHH:MM:SSZ"
	},
	...
]

Parameters

Parameter Type Description
payer_id Integer Itemplatform account ID of the payer.
payer_steam String Steam 64 ID of the payer. Parameter is sent as a string to ensure compatibility with older systems.
amount Float Total value of the items traded in.
fees Float Transaction fees charged by Itemplatform. Your account receives amount minus fees.
date Date Date when this payment was sent to the account.

"Item(s) Received"-Event Webhook

This webhook will be activated each time its corresponding account receives one or more new items, being sent to the account by another user. (The webhook will not be activated when new items are deposited in the account, or when items are bought on the market.)

The payload will have the following format:

[
	{
		"id": 12345678,
		"type": 12345,
		"name": "Item Name",
		"date": "YYYY-MM-DDTHH:MM:SSZ",
		"price": 13.37,
		"custom": "",
		"description": "",
		"from": 1234567,
		"fromName": "exampleName",
		"sale": null
	},
	...
]

Parameters

Parameter Type Description
id Integer Unique ID of the item.
type Integer Type ID of the item.
name String Name of the item.
date Date Date when this item was added to the account.
price Float Current Itemplatform market price of this item.
custom String Custom identification string (see "Send Items"-Link Configuration). Empty string when unset.
description String Description HTML for the item. Also includes modifications this particular item has (e.g. gems in Dota 2).
from Integer If applicable, account ID of the previous owner, otherwise null.
fromName String If applicable, account name of the previous owner, otherwise null.
sale Float If this item is currently on the Itemplatform market, this parameter holds the price at which it is offered. A value of null means that this item is currently not offered on the market.

"Item(s) Sold"-Event Webhook

This webhook will be activated each time its corresponding account sold an item that was put up for sale on the market.

The payload will have the following format:

[
	{
		"id": 12345678,
		"type": 123456,
		"name": "Item Name",
		"price": 13.37,
		"description": "...",
		"sale": 12.34,
		"sale_netto": 11.11
	},
	...
]

"Deposit/Withdrawal Status Changed"-Event Webhook

(This webhook is only required when implementing Itemplatform as a white-label solution, i.e. using only its backend.)

This webhook will be activated each time the status of a deposit to or withdrawal from the selected account changes.

The payload will have the following format:

[
	{
		"id": 12345,
		"account": 12345678,
		"bot": 1234,
		"type": "deposit",
		"steamid": "933631234",
		"status": "pending",
		"securitycode": "ABC1",
		"date": "YYYY-MM-DDTHH:MM:SSZ",
		"escrow": null,
		"items": [
			{
				"id": 123456,
				"assetid": "7588701234",
				"type": 123456,
				"name": "Item Name",
				"price": 13.37
			},
			...
		]
	}
]

Parameters

Parameter Type Description
id Integer Unique ID of the deposit/withdrawal.
account Integer Itemplatform account ID the deposit/withdrawal belongs to.
bot Integer ID of the Itemplatform bot processing the deposit/withdrawal.
type String Either deposit or withdrawal, indicating the type of the transaction.
steamid String Steam trade offer ID of the deposit/withdrawal.
status String Current status of the deposit/withdrawal. Possible values: pending, canceled, completed, revise
securitycode String Security code shown to the user as part of the deposit/withdrawal.
date Date Date the deposit/withdrawal was created.
escrow Date If applicable, date when the Steam escrow / trade hold period is over, otherwise null.
items Array If applicable, account name of the previous owner, otherwise null.
items.id Integer If available, the unique Itemplatform ID of this item, otherwise null. When you create a deposit, this ID is not available right away as the item is not imported to Itemplatform yet. However, as soon as the deposit/withdrawal is completed the ID is available.
items.assetid String Steam asset ID of the item.
items.type Integer Itemplatform type ID of this item.
items.name String Name of the item.
items.price Float If available, current market price of this item, otherwise null.

Detailed explanation of the possible values of the status parameter:

Value of "status" Parameter Description
pending The trade offer was successfully created, the user who received it now has to accept it.
canceled The trade offer could not be created, or was not accepted in time by the user.
completed The trade offer was accepted by the user and successfully processed by the system.
revise In rare cases, it can happen that a trade offer is first successfully created, but later cannot be processed due to Steam errors or other problems. Itemplatform tries to resolve the issues automatically, but when it repeatedly fails to do so it will at some point mark the offer for manual review. In this state, the trade offer will no longer be processed by Itemplatform.

Item Type Images

Itemplatform provides developers with images for all available item types. The images are always square and are available in three sizes:

  • Small: 96x96 pixels
  • Medium: 176x176 pixels
  • Large: 256x256 pixels

To retrieve the URL of the image for a specific item type in a specific size, use the following schema:

https://static.itemplatform.com/items/{type}_{size}.png

Parameters:

Parameter Type Description
{type} Integer Required. Type ID of the item with the first and the last digit cut off. Example: if the item type ID is 12345, you would use 234 in the image URL.
{size} Integer Required. Either 96, 176, or 256 depending on the size you want to request.

Example: the item type ID of the item type "Seraphic Greevil" is 310084. Therefore, the ID used for requesting the image is 1008:

<img src="https://static.itemplatform.com/items/1008_96.png" width="96" height="96" alt="Seraphic Greevil" />
Seraphic Greevil

Itemplatform API Endpoints

Trade In

List Available Items

This endpoint lists the most valuable items available for being traded out. Important: only items worth equal or less than your current trade in balance will be listed! 

GET https://my.webmini.com/api/v1/itemplatform/{account}/tradein/items

Required scope: itemplatform:read 

Parameters

Parameter Type Description
app Integer Optional. List items for given Steam app ID. If not set, defaults to 730 (CS:GO).
extensive Boolean Optional. The default is false, meaning that item descriptions are not added to the output. Set this parameter to true to have descriptions added.

Example Request (using Personal API Token)

$ curl -i 'https://my.webmini.com/api/v1/itemplatform/1234567/tradein/items' -u {Your API Token Username}

Response

HTTP/1.1 200 OK

[
	{
		"id": 12345678,
		"type": 123456,
		"name": "Cool Item Name",
		"date": "YYYY-MM-DDTHH:MM:SSZ",
		"price": 13.37,
		"description": ""
	},
	...
]

For a description of all response parameters, please see the "Item(s) Received"-Event Webhook.

General Endpoints

List Account Items

This endpoint lists all items of the given account. {account} is the ID of your account and can be found on the settings page.

GET https://my.webmini.com/api/v1/itemplatform/{account}/items

Required scope: itemplatform:read 

Parameters

Parameter Type Description
extensive Boolean Optional. The default is false, meaning that item descriptions are not added to the output. Set this parameter to true to have descriptions added.

Example Request (using Personal API Token)

$ curl -i 'https://my.webmini.com/api/v1/itemplatform/1234567/items' -u {Your API Token Username}

Response

HTTP/1.1 200 OK

[
	{
		"id": 12345678,
		"type": 123456,
		"name": "Cool Item Name",
		"date": "YYYY-MM-DDTHH:MM:SSZ",
		"price": 13.37,
		"custom": "",
		"description": "",
		"from": 7654321,
		"fromName": "exampleName",
		"sale": null
	},
	...
]

For a description of all response parameters, please see the "Item(s) Received"-Event Webhook.

Send Items

This endpoint send the given items from the given account to one or more recipients. When using this endpoint, please note that all items transactions are final.

POST https://my.webmini.com/api/v1/itemplatform/{account}/items/send

{account} is the ID of your account and can be found on the settings page.

Required scope: itemplatform:send 

Parameters

This endpoint accepts only an array of one or multiple objects having the following parameters:

Parameter Type Description
item Integer Required. Item ID of the item you want to send.
to Integer Required. Account ID of the account you want to send the item to.

Example Request (using Personal API Token)

$ curl -i -d '[{"item":12345678,"to":7654321},{"item":12345679,"to":7654321}]' https://my.webmini.com/api/v1/itemplatform/1234567/items/send -u {Your API Token Username}

Response

HTTP/1.1 204 No Content

Marketplace Endpoints

The following endpoints can be used to interact with the Itemplatform marketplace: put items up for sale, list items available to be purchased, buy items from the market, etc.

Place Item(s) On Market

Use this endpoint to put items that are already in your inventory up for sale on the Itemplatform marketplace.

POST https://my.webmini.com/api/v1/itemplatform/{account}/market

{account} is the ID of your account and can be found on the settings page.

Required scope: itemplatform:sell 

Parameters

This endpoint accepts only an array of one or more objects having the following parameters:

Parameter Type Description
item Integer Required. Item ID of the item you want to put up on the market.
price Float Either one required. If you want the item to be for sale for a fixed price, use price, setting it to the desired price in US$. If you want the market to automatically set the price based on the current market price, use auto, setting it to the percentage of the market price desired (example: setting auto to 70 will always offer the item for 70% of the current market price). Note that you cannot set both parameters for the same item.
auto Integer

Example Request (using Personal API Token)

$ curl -i -d '[{"item":123456,"price":12.34}]' https://my.webmini.com/api/v1/itemplatform/1234567/market -u {Your API Token Username}

Response

The response will confirm the data you sent:

HTTP/1.1 201 Created

[
	{
		"id": 123456,
		"price": 12.34,
		"auto": null
	}
]

Remove Item(s) From Market

This endpoint can be used to remove an own item currently up for sale from the marketplace.

DELETE https://my.webmini.com/api/v1/itemplatform/{account}/market

{account} is the ID of your account and can be found on the settings page.

Required scope: itemplatform:sell 

Parameters

This endpoint accepts only an array of one or more integer item IDs.

Example Request (using Personal API Token)

$ curl -i -X DELETE -d '[123456]' https://my.webmini.com/api/v1/itemplatform/1234567/market -u {Your API Token Username}

Response

The reponse will confirm the data you sent by sending you back the IDs of the items that were removed from the market:

HTTP/1.1 200 OK

[
	123456
]

List Own Items On Market

Retrieve a list of all own items currently up for sale on the market.

GET https://my.webmini.com/api/v1/itemplatform/{account}/market

{account} is the ID of your account and can be found on the settings page.

Required scope: itemplatform:read 

Parameters

Parameter Type Description
extensive Boolean Optional. The default is false, meaning that item descriptions are not added to the output. Set this parameter to true to have descriptions added.

Example Request (using Personal API Token)

$ curl -i https://my.webmini.com/api/v1/itemplatform/1234567/market -u {Your API Token Username}

Response

HTTP/1.1 200 OK

[
	{
		"id": 123456,
		"type": 12345,
		"name": "Item Name",
		"price": 13.37,
		"descr": null,
		"sale": 12.34
	},
	...
]

List Item Types On Market

Retrieve a list of all item types currently up for sale on the market. Note that this listing, in comparison to other market endpoints, returns a list of item types and not individual items. In other words, items of the same type are returned "stacked".

GET https://my.webmini.com/api/v1/itemplatform/market

Required scope: itemplatform:read 

Example Request (using Personal API Token)

$ curl -i https://my.webmini.com/api/v1/itemplatform/market -u {Your API Token Username}

Response

HTTP/1.1 200 OK

[
	{
		"type": 12345,
		"name": "Item Name",
		"game": 570,
		"price_lowest": 12.34,
		"price_market": 13.37,
		"stock": 5
	},
	...
]

List Items On Market Of Specific Type

Retrieves a list of all items of a specific item type currently up for sale on the market.

GET https://my.webmini.com/api/v1/itemplatform/market/{itemtype}

{itemtype} is the numeric item type ID of the item type to be listed.

Required scope: itemplatform:read 

Parameters

Parameter Type Description
extensive Boolean Optional. The default is false, meaning that item descriptions are not added to the output. Set this parameter to true to have descriptions added.

Example Request (using Personal API Token)

$ curl -i https://my.webmini.com/api/v1/itemplatform/market/12345 -u {Your API Token Username}

Response

HTTP/1.1 200 OK

[
	{
		"id": 123456,
		"type": 12345,
		"name": "Item Name",
		"price": 13.37,
		"descr": null,
		"sale": 12.34
	},
	...
]

Buy Item

Buys the specified item from the market. Note that your account has to have a balance of at least the item’s sale price. When using this endpoint, please note that all items transactions are final.

POST https://my.webmini.com/api/v1/itemplatform/{account}/market/{item}

{account} is the ID of your account and can be found on the settings page. {item} is the item ID of the item to be bought.

Required scope: itemplatform:buy 

Example Request (using Personal API Token)

$ curl -i -X POST https://my.webmini.com/api/v1/itemplatform/1234567/market/123456 -u {Your API Token Username}

Response

HTTP/1.1 200 OK

{
	"id": 123456,
	"price": 13.37
}

Itemplatform API Endpoints for Whitelabel Usage

In general, we recommend developers to implement Itemplatform by using "send items"-links together with the "item(s) received"-event webhook and the send-items API endpoint, effectivly using both the Itemplatform frontend and backend for item handling. This not only is the easiest and fastest implementation, but also provides the highest amount of control when sending and receiving items.

However, there might be cases when developers still might prefer to use Itemplatform as a whitelabel solution. This means that your application does not forward users to the Itemplatform frontend, only using Itemplatform as a backend and triggering item deposits and withdrawals itself. By using the Itemplatform API, developers save themselves from having to deal directly with the unrealiable and inconsistent Steam API.

  Itemplatform Integrated Solution (frontend+backend) Itemplatform Whitelabel Solution (backend only)
Notification delay when sending/receiving items No delay, instant notifications Maximum delay: 10 seconds
Time required for implementation Very low Moderate
User flow when sending/receiving items Your website -> Itemplatform -> your website Users never leave your website
Custom, dedicated bots possible No Yes

Retrieve Steam Inventory Games

(This endpoint is only required when implementing Itemplatform as a white-label solution, i.e. using only its backend.)

Lists all Steam games for which a user owns items. This endpoint will not retrieve games owned by the user, it will only care about for what games a user owns items (the user may or may not own these games). Please note that the user profile has to be to public or this will not work!

GET https://my.webmini.com/api/v1/itemplatform/external/games

Required scope: itemplatform:read 

Parameters

Parameter Type Description
tradeurl String Required. Steam trade URL of the user whose games should be listed.

Example Request (using Personal API Token)

$ curl -i 'https://my.webmini.com/api/v1/itemplatform/external/games?tradeurl=https%3A%2F%2Fsteamcommunity.com%2Ftradeoffer%2Fnew%2F%3Fpartner%3D12345678%26token%3Dabcd1234' -u {Your API Token Username}

Response

HTTP/1.1 200 OK

[
	{
		"game": 730,
		"context": 2,
		"title": "Counter-Strike: Global Offensive",
		"subtitle": "Backpack",
		"count": 12345
	},
	...
]

game is the Steam app ID of the game. context is the Steam context ID of the inventory. Most games only have one context ID and it has the value 2. count is the amount of items the user owns for this game. Please note that due to technical limitations by Steam this number may sometimes also include items that are not tradable.

Retrieve Steam Inventory Items

(This endpoint is only required when implementing Itemplatform as a white-label solution, i.e. using only its backend.)

Lists the tradable Steam inventory items for a given Steam trade URL and app ID. Please note that only tradeable items are returned and that the profile has to be to public or this will not work!

GET https://my.webmini.com/api/v1/itemplatform/external/items

Required scope: itemplatform:read 

Parameters

Parameter Type Description
tradeurl String Required. Steam trade URL of the user whose inventory should be listed.
game Integer Required. Steam app ID of the game of that the user’s items will be returned. Common values: 730 (Counter-Strike: Global Offensive), 570 (Dota 2), 440 (Team Fortress 2)
context Integer Optional. The Steam context ID of the inventory that should be listed. The value is returned by the Retrieve Steam Inventory Games endpoint. If not set, the value used is 2 which is the default for most games.
extensive Boolean Optional. The default is false, meaning that item descriptions are not added to the output. Set this parameter to true to have descriptions added.

Example Request (using Personal API Token)

$ curl -i 'https://my.webmini.com/api/v1/itemplatform/external/items?tradeurl=https%3A%2F%2Fsteamcommunity.com%2Ftradeoffer%2Fnew%2F%3Fpartner%3D12345678%26token%3Dabcd1234&game=570' -u {Your API Token Username}

Response

HTTP/1.1 200 OK

[
	{
		"type": 123456,
		"name": "Item Name",
		"price": 1.23,
		"assetid": "1234567890"
	},
	...
]

Initiate Item Deposit

(This endpoint is only required when implementing Itemplatform as a white-label solution, i.e. using only its backend.)

Sends a Steam trade offer to the specified user, requesting the listed items. If the user accepts the trade offer, the items are added to your account. Please note that this function requires the Itemplatform type ID and the Steam asset ID for each requested item. You can get both of these IDs easily by using the Retrieve a User’s Steam Inventory function.

You can use this function to completely whitelabel the whole item transfer process. Itemplatform will only serve as a backend, the user will never leave your application.

POST https://my.webmini.com/api/v1/itemplatform/{account}/deposits

{account} is the ID of your account and can be found on the settings page.

Required scope: itemplatform:read

Parameters

Parameter Type Description
tradeurl String Required. Steam trade URL of the user making the deposit.
items Array Required. Must contain objects having the type and assetid parameter each: type is the Itemplatform type ID of the item, assetid is the Steam asset id of the item.
escrow Boolean Optional. Set to false to disallow trades that would cause an escrow / trade hold time, i.e. trades with users that do not have the Mobile Authenticator enabled. If you set this to false and the system detects that an escrow / trade hold time would be required, it will return an error with HTTP code 409 Conflict. The default setting is true and will allow and create trades even if they have an escrow / trade hold time.

Example Request (using Personal API Token)

$ curl -i -d '{"tradeurl":"https://steamcommunity.com/tradeoffer/new/?partner=123456789&token=abcd1234","items":[{"type":123456,"assetid":1234567890}]}' https://my.webmini.com/api/v1/itemplatform/1234567/deposits -u {Your API Token Username}

Response

HTTP/1.1 201 Created

{
	"id": 12345,
	"account": 1234567,
	"bot": 1234,
	"steamid": "933631234",
	"status": "pending",
	"securitycode": "ABC1",
	"date": "YYYY-MM-DDTHH:MM:SSZ",
	"escrow": null,
	"items": [
		{
			"id": null,
			"assetid": "7588701234",
			"type": 123456,
			"name": "Item Name",
			"price": 12.34
		},
		...
	]
}

See the "Deposit/Withdrawal Status Changed"-webhook parameter list for a description of all parameters. Note that you should display securitycode to your user so he can verify the authenticity of the trade offer. The id parameter of items will be null as long as the deposit is not completed because the items have not been assigned an ID yet.

Retrieve Deposit Details

(This endpoint is only required when implementing Itemplatform as a white-label solution, i.e. using only its backend.)

Retrieves details of given deposit.

GET https://my.webmini.com/api/v1/itemplatform/deposits/{deposit}

{deposit} is the ID of the deposit, as returned when the deposit was created.

Required scope: itemplatform:read 

Parameters

Parameter Type Description
extensive Boolean Optional. Set to true to add item descriptions to the output. Default is false.

Example Request (using Personal API Token)

$ curl -i https://my.webmini.com/api/v1/itemplatform/deposits/12345 -u {Your API Token Username}

Response

HTTP/1.1 200 OK

{
	"id": 12345,
	"account": 1234567,
	"bot": 1234,
	"steamid": "933631234",
	"status": "pending",
	"securitycode": "ABC1",
	"date": "YYYY-MM-DDTHH:MM:SSZ",
	"escrow": null,
	"items": [
		{
			"id": 12345678,
			"assetid": "7588701234",
			"type": 123456,
			"name": "Item Name",
			"price": 12.34
		},
		...
	]
}

See the "Deposit/Withdrawal Status Changed"-webhook parameter list for a description of all parameters. The id parameter of items will be null as long as the deposit is not completed because the items have not been assigned an ID yet.

Initiate Item Withdrawal

(This endpoint is only required when implementing Itemplatform as a white-label solution, i.e. using only its backend.)

Sends a Steam trade offer to the specified user, sending him the specified items from your inventory. If the user accepts the trade offer, the items are no longer in your account. This function requires the Itemplatform ID for each requested item. When you are using the "Item(s) Received"-Event Webhook (recommended), you received this ID by the webhook. You can also use the List-Account-Items API function to get the Itemplatform ID of all items in your account.

You can use this function to completely whitelabel the whole item transfer process. Itemplatform will only serve as a backend, the user will never leave your application.

POST https://my.webmini.com/api/v1/itemplatform/{account}/withdrawals

{account} is the ID of your account and can be found on the settings page.

Required scope: itemplatform:send 

Parameters

Parameter Type Description
tradeurl String Required. Steam trade URL of the user receiving the items.
items Array Required. Array of Itemplatform item IDs (Integer).

Example Request (using Personal API Token)

$ curl -i -d '{"tradeurl":"https://steamcommunity.com/tradeoffer/new/?partner=1234567&token=abcd1234","items":[12345]}' https://my.webmini.com/api/v1/itemplatform/1234567/withdrawals -u {Your API Token Username}

Response

HTTP/1.1 201 Created

[
	{
		"id": 12345,
		"account": 1234567,
		"bot": 1234,
		"steamid": "933631234",
		"status": "pending",
		"securitycode": "ABC1",
		"date": "YYYY-MM-DDTHH:MM:SSZ",
		"escrow": null,
		"items": [
			{
				"id": 12345678,
				"assetid": "7588701234",
				"type": 123456,
				"name": "Item Name",
				"price": 12.34
			},
			...
		]
	}
]

Please note, that in contrast to deposits the reponse is always an array. This is because more than one trade offer may be created when sending out items from multiple bots with one request.

The array contains one ore more objects, that always have the same format as described in the "Deposit/Withdrawal Status Changed"-webhook parameter list. Note that you should display securitycode to your user so he can verify the authenticity of the trade offer. Your application should check the status parameter for each trade offer and act accordingly:

Return Value of "status" Parameter Description
pending The trade offer was successfully created, the user who received now has to accept it.
canceled The trade offer could not be created.
completed The trade offer was successfully created and already accepted. This can happen if the user accepts the trade offer very quickly.

Very important note: in rare cases, when multiple bots are involved, it can happen that one or more trade offers are successfully created, while at the same time one or more trade offers fail. This is because one bot can work while another bot may not work due to Steam problems. In this case this endpoint will return the HTTP status code 207. This means that your system needs to loop through the array returned by this endpoint and only store the successful trade offers in your system.

Retrieve Withdrawal Details

(This endpoint is only required when implementing Itemplatform as a white-label solution, i.e. using only its backend.)

Retrieves details of given withdrawal.

GET https://my.webmini.com/api/v1/itemplatform/withdrawals/{withdrawal}

{withdrawal} is the ID of the deposit, as returned when the withdrawal was created.

Required scope: itemplatform:read 

Parameters

Parameter Type Description
extensive Boolean Optional. Set to true to add item descriptions to the output. Default is false.

Example Request (using Personal API Token)

$ curl -i https://my.webmini.com/api/v1/itemplatform/withdrawals/12345 -u {Your API Token Username}

Response

HTTP/1.1 200 OK

{
	"id": 12345,
	"account": 1234567,
	"bot": 1234,
	"steamid": "933631234",
	"status": "pending",
	"securitycode": "ABC1",
	"date": "YYYY-MM-DDTHH:MM:SSZ",
	"escrow": null,
	"items": [
		{
			"id": 12345678,
			"assetid": "7588701234",
			"type": 123456,
			"name": "Item Name",
			"price": 12.34
		},
		...
	]
}

See the "Deposit/Withdrawal Status Changed"-webhook parameter list for a description of all parameters.