Skip to content

Integration without UI (API Flow)

Full control over the deposit experience. Fetch inventory, display it on your site, and submit deposits directly.

Flow Overview

Your Platform                     Skinslink
─────────────                     ─────────
     │                                 │
     │  1. POST /merchant/inventory    │
     │ ──────────────────────────────► │
     │                                 │
     │  { items[], total, sum }        │
     │ ◄────────────────────────────── │
     │                                 │
     │  Display items to user,         │
     │  user selects items             │
     │                                 │
     │  2. POST /merchant/create-deposit
     │ ──────────────────────────────► │
     │                                 │
     │  { id, status, trade offer }    │
     │ ◄────────────────────────────── │
     │                                 │
     │  3. Webhook: trade status       │
     │ ◄────────────────────────────── │

Step 1: Fetch User's Inventory

You need the user's Steam trade URL components: partner (trade partner ID) and token (trade token).

Parsing Steam Trade URLs

A Steam trade URL looks like:

https://steamcommunity.com/tradeoffer/new/?partner=123456789&token=AbCdEfGh

Extract partner and token from the query parameters.

Call Get Inventory with the user's game, partner ID, and trade token. The response contains a list of tradeable items with real-time pricing.

Display the items on your site and let the user select which ones to deposit.

WARNING

Inventory fetching involves real-time pricing and may take 1–4 seconds. Prices are point-in-time and may change between inventory fetch and deposit creation.

Step 2: Create Deposit

After the user selects items, call Create Deposit with the selected asset_ids from the inventory response.

The response includes trade offer details (bot_name, bot_steam_id, trade_offer_id, trade_offer_expiry_at). Display this information so the user can accept the trade in Steam.

Step 3: User Accepts Trade Offer

The user opens Steam and accepts the trade offer from the Skinslink bot. If the offer is not accepted before trade_offer_expiry_at, it is automatically canceled.

Step 4: Track Deposit Status

You can track the deposit in two ways:

Listen for status updates via webhooks — Skinslink will POST to your result_url or merchant webhook URL when the trade status changes.

→ See Webhooks for payload format and setup.

Option B: Poll the status endpoint

Use Deposit Status to check the current state of the deposit.

Deposit Status Page

Each deposit has a hosted status page at https://skinslink.com/deposit/{tx_id} that you can redirect users to. This page shows the current trade status, bot info, and trade offer details — useful if you don't want to build your own status UI.