Unofficial CSFloat API

Getting started

Base URL, request format, response handling, and a minimal listing request.

Request a market page

curl --get 'https://csfloat.com/api/v1/listings' \
  --data-urlencode 'limit=50' \
  --data-urlencode 'sort_by=best_deal' \
  --data-urlencode 'type=buy_now'

Public listing routes need no credentials. Protected routes take a CSFloat API key in the Authorization header.

Read prices

price, min_price, max_price, balance_offset, and similar monetary integers are USD cents.

const dollars = listing.price / 100;

Follow cursors

Cursor endpoints return an opaque cursor. Pass it unchanged on the next request. Do not parse or construct cursor values.

const first = await fetch(`${base}/listings?limit=50`).then((r) => r.json());
const next = await fetch(
  `${base}/listings?limit=50&cursor=${encodeURIComponent(first.cursor)}`,
).then((r) => r.json());

Page-number endpoints use zero-based page values. The two pagination models are not interchangeable.

On this page