SkinsNode / CS2 API

Accept CS2 skin deposits on your website

Let users deposit CS2 skins through your own interface. Your backend requests inventory prices, creates a Steam trade offer and tracks settlement through the SkinsNode API. The settled value goes to your platform's SkinsNode balance, which can fund skin withdrawals.

  1. 01User's skins
  2. 02Steam trade & settlement
  3. 03Your SkinsNode balance

How the integration works

Get an inventory quote

Collect the user's SteamID64 and matching trade URL. Request a quote, wait until it is ready, then show eligible items and their quoted USD credit values.

Read the API reference →

Create the deposit offer

Send the selected item IDs, expected credit total, your deposit ID and callback URL. Keep the same operation identity when retrying an uncertain request.

Read the API reference →

Track settlement and credit

The user accepts the Steam trade. Received items remain pending during trade protection. Reconcile signed events with transaction lookup before recognizing available credit.

Read the API reference →

Who receives the deposit value?

Your API client account receives the settled credit. SkinsNode does not send a cash payment to the Steam user. Your application decides what balance, purchase or reward the user receives, and when to make it available.

Read the deposit integration guide →

Prices, fees and supported skins

There are no monthly fees. Check account access and commercial terms during onboarding. Quotes show the credit amount for each eligible skin; unsupported or unpriced items are unavailable. Preserve the exact asset, condition and phase. Expired quotes require a fresh quote and user acceptance.

Understand inventory quotes →

Steam Trade Protection and reversals

An accepted trade is not yet available balance. A deposit stays pending during protection and settlement checks. Track its credit status and wallet transaction reference; an elapsed timer alone does not prove settlement. Handle reversal events in your own ledger.

Read settlement and balance-credit rules →

Connect deposits to withdrawals

Case-opening sites, marketplaces and reward platforms can use settled deposits to fund skin delivery from the same SkinsNode balance. Keep the two flows separate in your application: deposit and withdrawal callbacks have different payloads and signing conventions.

Explore the CS2 skin withdrawal API →

Example: create a skin deposit

Illustrative request and response. Replace the sample credentials, IDs and trade URL with your own values. Keep credentials on your backend and confirm account access during onboarding.

Example request
curl -X POST 'https://api.skinsnode.com/v1/deposits/offers' \
  -H 'x-client-id: client_live' \
  -H 'x-client-secret: sk_live_replace_me' \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: 019e0000-0000-7000-8000-000000000011' \
  -d '{
  "externalId": "deposit_42",
  "quoteId": "019e0000-0000-7000-8000-000000000001",
  "items": [
    {
      "itemId": "019e0000-0000-7000-8000-000000000002"
    }
  ],
  "expectedCreditAmountCents": 3991,
  "webhookUrl": "https://merchant.example/webhooks/deposits"
}'

202 Accepted

Example response
{
  "transactionId": "019e0000-0000-7000-8000-000000000003",
  "externalId": "deposit_42",
  "quoteId": "019e0000-0000-7000-8000-000000000001",
  "status": "new",
  "currency": "USD",
  "creditAmountCents": 3991,
  "creditStatus": "not_credited",
  "walletTransactionId": null,
  "holdReleaseAt": null,
  "steamTradeOfferId": null,
  "botSteamId": null,
  "items": [
    {
      "itemId": "019e0000-0000-7000-8000-000000000002",
      "inventoryAssetId": "53273940796",
      "marketHashName": "AK-47 | Aquamarine Revenge (Field-Tested)",
      "phase": null,
      "amount": 1,
      "imageUrl": null,
      "sellable": true,
      "creditAmountCents": 3991,
      "unavailableReason": null
    }
  ],
  "failureCode": null,
  "revision": 1,
  "updatedAt": "2026-10-03T12:00:00Z"
}

This response acknowledges processing. Use signed events and lookup to confirm the final outcome.

Continue to the complete integration guide →