Public Integration Guide

Registration

  1. We may register an account for you on our system
  2. The account has an API Token that should be used for each request
  3. Pass API tokens from accounts on the marketplaces you want to connect
  4. Right now, every account addition/change/deletion requires a restart of part of our services

Currently supported markets

CodeName
TMtrademarket (market.csgo.com)
SBskinsback
WPwaxpeer
SPshadowpay

List of accounts

Get current list of accounts and their state:

GET /v1/external/accounts

Response

Code Example Value | Schema
200
[
  {
    "id": 512,
    "wallet_real": 150,
    "wallet_virtual": 150,
    "display_name": "Test TM #1",
    "active": true,
    "market_id": 0,
    "project_id": 0,
    "meta": {}
  }
]

Example Request

curl -X 'GET' \
  'https://skin-manager.com/api/v1/external/accounts' \
  -H 'accept: application/json' \
  -H 'Authorization: '

Purchase Item

The purchase is processed by our internal Item ID.
To get a list of items in our system (with market-items), proceed with the request below:

GET /v1/external/items

Response

Code Example Value | Schema
200
[
  {
    "id": 0,
    "name": "string",
    "base_price": {},
    "markets": [
      {
        "slug": "string",
        "price": 0,
        "available": 0
      }
    ]
  }
]

Example Request

curl -X 'GET' \
  'https://skin-manager.com/api/v1/external/items' \
  -H 'accept: application/json' \
  -H 'Authorization: '

We highly recommend you to cache the items list

Right now, the system is not designed to receive the entire list of skins for every item purchase request

Using the Item ID from the response above, you can make a request to purchase an item:

POST /v1/external/purchase-request

Request

Example Value Schema
[
  {
    "custom_id": 1555,
    "item_id": 200,
    "max_price": 200,
    "trade_target": {
      "partner": "string",
      "token": "string"
    }
  }
]

Response

Code Example Value | Schema
201
[]

Example Request

curl -X 'POST' \
  'https://skin-manager.com/v1/external/purchase-request' \
  -H 'accept: application/json' \
  -H 'Authorization: ' \
  -H 'Content-Type: application/json' \
  -d '{
        "custom_id": 1555, // your unique action ID, guarantees idempotency
        "item_id": 200, // from the previous request
        "max_price": 200,
        "trade_target": {
          "partner": "string",
          "token": "string"
        }
      }'

You can also check the purchase status (error/delivered/sent) with a request below:

GET /v1/external/purchase-request

Parameters

Name Description

ids

array[number]

(query)

Response

Code Example Value | Schema
200
[
  {
    "id": 0,
    "item_id": 0,
    "trade_target": {
      "token": "string",
      "partner": "string"
    },
    "purchase": {
      "purchaseState": {
        "status": {},
        "meta": {
          "steam_trade_id": "string",
          "error_context": {
            "market_id": 0,
            "context_prepared": "string",
            "context_raw": "string"
          },
          "expires_at": 0
        }
      },
      "purchase_state": {
        "status": {},
        "meta": {
          "steam_trade_id": "string",
          "error_context": {
            "market_id": 0,
            "context_prepared": "string",
            "context_raw": "string"
          },
          "expires_at": 0
        }
      },
      "id": 0,
      "purchase_request_id": 0,
      "account_id": 0,
      "market_track_guid": "string",
      "price": 0,
      "meta": {
        "market_buy_id": "string"
      },
      "created_at": "string"
    },
    "market_type": "string"
  }
]

Example Request

curl -X 'GET' \
  'https://skin-manager.com/v1/external/purchase-request?ids=123&ids=124' \
  -H 'accept: application/json' \
  -H 'Authorization: '

Purchase statuses and their transitions

StatusDescription
ASSIGNEDPrices have been determined, the account that will make the purchase has been selected
BILLEDItem purchased
SENTItem sent, awaiting user confirmation
COMPLETEDItem delivered, terminal status
FAILEDItem failed to be delivered, terminal status
Status Flow

Aplikuj o integrację

Wniosek został wysłany!

Skontaktujemy się z Tobą wkrótce