Build with the API

How to Build a CS2 Skin Arbitrage Bot

Quick start

Copy-paste curl example

Authenticate with your Bearer API key. Full reference in the API docs and data coverage.

curl -s "https://api.cspriceapi.com/v1/prices/latest?markets=skinport,youpin,buff163,csfloat" \
  -H "Authorization: Bearer YOUR_API_KEY"

Overview

Architecture

  1. Poll GET /v1/prices/latest on a schedule (respect your plan rate limits).
  2. Join rows by (market_hash_name, doppler_phase).
  3. Convert currencies (CNY ↔ EUR ↔ USD) with your FX source.
  4. Subtract fees per marketplace (seller fee, withdrawal, spread).
  5. Filter by min listing count (liquidity) and max age (staleness).
  6. Alert or auto-list when net ROI exceeds threshold.

Guide

Minimal poll example

curl -s "https://api.cspriceapi.com/v1/prices/latest?markets=skinport,youpin,buff163,csfloat" \
  -H "Authorization: Bearer YOUR_API_KEY"

Guide

Rules that prevent false arbs

RuleWhy
Match doppler_phaseRuby ≠ Phase 4
Require count >= NOne cheap outlier listing ≠ liquid market
Reject stale snapshotsPrices older than ~15 min on fast markets
Include withdrawal feesCNY → bank → EUR has real cost
Ignore manipulated itemsCross-check sales history

Guide

Faster iteration without code

Guide

Sales confirmation

Listing-price arb is not the same as completed-sale arb. Validate with:

curl -s "https://api.cspriceapi.com/v1/market-sales/search?market_hash_name=AK-47%20%7C%20Redline%20(Field-Tested)" \
  -H "Authorization: Bearer YOUR_API_KEY"

Guide

Get started

  1. Discord testkey
  2. Quickstart
  3. Compare marketplaces guide

Related

Continue reading

More guides

Related Build with the API

Ready to integrate?

Interactive Scalar docs, OpenAPI YAML and machine-readable Markdown mirrors for every endpoint.