API v1

Integrate supply, pricing and delivery in one afternoon

REST over HTTPS, JSON in and out, Bearer keys, webhooks for every trade event. The sandbox mirrors production so your first call is the same as your thousandth.

Jump to endpoints

Quick start

  1. 01

    Get a key

    After verification your dashboard shows a sandbox key (sk_test_…) and a production key (sk_live_…).

  2. 02

    List items

    GET /v1/items returns the same 50 public items you see on Live supply plus your full allocation.

  3. 03

    Create an order

    POST /v1/orders with an item id and your Steam trade URL. The bot sends the offer within a minute.

Example requests

# List AK-47s in Field-Tested, cheapest first
curl "https://api.supplyskins.com/v1/items?q=AK-47&wear=field-tested&sort=price&limit=50" \
  -H "Authorization: Bearer sk_live_7f3a9c2e"

# Create an order (reserves balance, bot sends the trade offer)
curl -X POST https://api.supplyskins.com/v1/orders \
  -H "Authorization: Bearer sk_live_7f3a9c2e" \
  -H "Content-Type: application/json" \
  -d '{"item_id":"ss_0025","trade_url":"https://steamcommunity.com/tradeoffer/new/?partner=…"}'

Endpoints

MethodPathDescriptionAuth
GET /v1/items List inventory. Filters: q, category, wear, float_min, float_max, price_min, price_max, stattrak. Sort: price, float, updated_at. key
GET /v1/items/{id} One item with float, pattern index, stickers and current price. key
POST /v1/orders Reserve and buy an item. Body: item_id, trade_url, max_price (optional). key
GET /v1/orders/{id} Order status: reserved, paid, offer_sent, accepted, failed, expired. key
GET /v1/balance Available and reserved balance in USD, deposit addresses. key
POST /v1/webhooks Register an endpoint for order.* and item.price_changed events. HMAC-SHA256 signed. key

Auth, limits and errors

Authentication

Authorization: Bearer sk_live_… Keys are shown once; rotate from the dashboard at any time.

Rate limits

600 requests per minute per key, 60 order creations per minute. Headers X-RateLimit-Remaining and Retry-After are always present.

Errors

Standard HTTP codes with a JSON body: { "error": { "code": "item_unavailable", "message": "…" } }. 4xx are yours to fix, 5xx are ours.

Sandbox

Base URL https://sandbox.api.supplyskins.com. Same schema, mirrored inventory, fake balance of $10,000.

Full documentation

The complete reference with schemas, webhook payloads and SDK snippets opens after verification, together with your keys.