Skip to main content
Partnered websites only. These endpoints are reserved for websites that Mannco.store has approved as instant sell partners. Your API account’s SteamID64 must be on the partner allowlist, or every call returns 403. If you’re a regular user selling your own items, use the Instant sell guide instead.
Instant sell partners lets your website sell skins to Mannco.store on behalf of your own users. You quote a user’s Steam inventory, submit the items they choose, and Mannco bots send the trade offer directly to that user. When the user accepts, the items are sold and the proceeds go to your partner account.

Become a partner

Access is granted by Mannco.store, not requested through the API. To apply, contact Mannco.store support through mannco.store or Discord with:
  • The SteamID64 of the Mannco account your website will authenticate as.
  • Your website URL and a short description of your integration.
Once approved, that SteamID64 is added to the partner allowlist. Only that account can call the partner endpoints.

How it differs from instant sell

You’re responsible for paying your user. Mannco.store credits the sale to your partner account only.

Endpoints

Base URL: https://api.mannco.store. Prices are integer cents.

Authentication

Send your partner account’s JWT as Authorization: Bearer <token>. None of these routes require 2FA or a CSRF token.

1. Quote the user’s inventory

Call GET /deposit/instantSell/thirdparty/{game}/{userid} with the user’s SteamID64. The response has the same shape as GET /deposit/instantSell/{game}. This call doesn’t create a deposit and doesn’t move items.
Response
Each row is one price tier. The same item_id can appear on several rows, so quote each row on its own. Rows with disabled have depositkey: "" and can’t be sold.
The user’s Steam inventory is cached for 5 minutes and there is no force option. Prices are recalculated on every call. A private inventory, or Steam being unavailable with no cached snapshot, returns "informations": [] instead of an error. Ask the user to make their inventory public and try again.

How prices are set

Prices come from the buy order book for each item, best price first. When buy orders don’t cover the whole stack, a house price may apply to the remainder: The 1¢ TF2 and CS:GO house price isn’t offered when another user already has a listing at 1¢ or less.

2. Create the sale

Call POST /deposit/trade/instant/thirdparty with the selected assets and the user who receives the offer. The body is the same as POST /deposit/trade/instant, plus steamid and tradeurl.
string
required
SteamID64 of the user who receives the trade offer. Use the same userid you quoted. steam_id is accepted as an alias.
string
required
That user’s Steam trade URL, in the form https://steamcommunity.com/tradeoffer/new/?partner=<digits>&token=<token>. The partner value must be the account id of steamid. trade_url is accepted as an alias.
object
required
Map of assetId → price in cents. Use the exact instant_sell_price from each asset’s row.
object
required
Map of assetId → depositkey, copied from each asset’s row. Keys are checked against steamid, so keys quoted for a different user are rejected.
string
required
Must be balance. The proceeds are credited to the Mannco balance of your partner account. No other cashout method is available for partner instant sell.
integer
default:"440"
440, 730, 570, 252490, or 753.
Response
Store content.id. It’s the deposit id you use to track the sale. Remove any skipped_highstock assets from what you show the user. All other errors (missing prices parameter, invalid deposit key…, stock limits…) match POST /deposit/trade/instant, except that content is a plain string.

3. Follow the trade offer

Poll GET /deposit/tradeStatus/{tradeid} with content.id from step 2. Don’t pass a trades.id or a Steam offer id.
Until the bot has created the offer, trade_id is null and there’s no nested trade. Keep polling. Once the offer exists, trade.offerid is the Steam offer id and trade.status tracks it.

4. Check which items sold

Call GET /deposit/instantSell/thirdparty/status/{depositid} to see the outcome of each asset. Use it to pay your user for what actually sold.
Response
seller_cents is set only on converted lines. converted_cents is the total of those proceeds. For CS:GO, pending_balance is the part still held by Steam Trade Protection. It isn’t added on top of converted_cents.

Seller fee

Your account receives the listed price minus a 5% fee, rounded in your favor, with a minimum fee of 1¢. A 1¢ item keeps its full cent.
seller-receives.js

Full example

1

Quote the inventory

Call GET /deposit/instantSell/thirdparty/{game}/{userid} with your user’s SteamID64.
2

Let your user choose

Show rows without disabled. Display instant_sell_price, or what your user will be paid.
3

Create the sale

Call POST /deposit/trade/instant/thirdparty with the same steamid, the user’s trade URL, and each asset’s own price and key.
4

Tell your user to accept the offer

Poll GET /deposit/tradeStatus/{tradeid} until trade.offerid is set, then ask your user to accept the Steam offer.
5

Pay your user

Call GET /deposit/instantSell/thirdparty/status/{depositid} and pay for the converted lines.
partner-instant-sell.js

Next steps