Первый запрос
Авторизация
Заголовок раздела «Авторизация»Передавай ключ только через Authorization: Bearer …. Не добавляй его в URL, Git, клиентский JavaScript или сообщения агенту. Ключ хранится в серверной переменной CSFOLDER_API_KEY.
curl --fail-with-body \ -H "Authorization: Bearer $CSFOLDER_API_KEY" \ "http://127.0.0.1:3100/v1/items?q=AK-47&limit=10"Поиск → цены → история
Заголовок раздела «Поиск → цены → история»На Free найди предмет и вызови GET /v1/items/{item_id}/history без дат: получишь доступные дневные наблюдения Steam за последние 30 завершённых дней UTC. Поля текущей цены в каталоге будут null. Для примера с несколькими маркетами ниже нужен Builder или Trader; смотри тарифы и лимиты.
- Найди предмет через
GET /v1/items?q=…. - Возьми
item_idиз результата; не угадывай ID и не объединяй фазы. - Прочитай
GET /v1/items/{item_id}/markets. - Для графика используй
GET /v1/items/{item_id}/history?provider=buff163&from=2026-08-01&to=2026-08-31.
История — доступные дневные наблюдения, не гарантия каждого дня за всё время. Новые предметы, рынки и периоды могут иметь пропуски.
Серверный JavaScript
Заголовок раздела «Серверный JavaScript»const key = process.env.CSFOLDER_API_KEY;if (!key) throw new Error('Set CSFOLDER_API_KEY on the server');const response = await fetch('http://127.0.0.1:3100/v1/items?limit=10', { headers: { Authorization: `Bearer ${key}` }, signal: AbortSignal.timeout(10_000),});if (!response.ok) throw new Error(`CSFolder returned ${response.status}`);const { data, meta } = await response.json();console.log(data, meta.request_id);Обёртка ответа: data — данные метода; meta.request_id — ID для диагностики; meta.generated_at — время ответа, не время цены. Ошибки возвращаются как application/problem+json.