# Getting started (/getting-started)



## Request a market page [#request-a-market-page]

```bash
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 [#read-prices]

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

```ts
const dollars = listing.price / 100;
```

## Follow cursors [#follow-cursors]

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

```ts
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.
