Статус
GET /v1/health — проверка доступности и свежести API CSBoard
Проверьте, доступен ли API CSBoard и насколько устарел список цен. Работает без API-ключа — его безопасно опрашивать без аутентификации.
GET
/
health
Liveness + freshness probe
curl --request GET \
--url https://csboard.com/v1/healthimport requests
url = "https://csboard.com/v1/health"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://csboard.com/v1/health', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://csboard.com/v1/health",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://csboard.com/v1/health"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://csboard.com/v1/health")
.asString();require 'uri'
require 'net/http'
url = URI("https://csboard.com/v1/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "ok",
"groups": 184213,
"price_list_age_seconds": 42
}Эндпоинт health — это лёгкая проверка, которая подтверждает доступность API и сообщает, насколько устарел материализованный список цен. Он работает без API-ключа — кроме него без ключа доступен только публичный фид цен, — поэтому его безопасно опрашивать из систем мониторинга или использовать как проверку свежести при старте приложения перед аутентифицированными вызовами.
Поля ответа
string
обязательно
Всегда
"ok", когда сервис работает.integer
обязательно
Количество групп товаров с ценами в текущем списке цен (одна группа на уникальную комбинацию
market_hash_name + wear + doppler_phase).integer
обязательно
Возраст материализованного списка цен в секундах. Используйте это значение как индикатор свежести — большое значение означает, что цены могут отставать.
Пример запроса
curl https://csboard.com/v1/health
Пример ответа
{
"status": "ok",
"groups": 184213,
"price_list_age_seconds": 42
}
Коды ошибок
| HTTP-статус | Код | Значение |
|---|---|---|
| 429 | rate_limit_exceeded | Превышен лимит запросов. Подождите время, указанное в заголовке Retry-After, и повторите. |
Опрашивайте этот эндпоинт из логики health-check или старта приложения перед аутентифицированными вызовами. Если
price_list_age_seconds неожиданно велик (например, выше нескольких минут), считайте данные о ценах потенциально устаревшими.⌘I
Liveness + freshness probe
curl --request GET \
--url https://csboard.com/v1/healthimport requests
url = "https://csboard.com/v1/health"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://csboard.com/v1/health', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://csboard.com/v1/health",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://csboard.com/v1/health"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://csboard.com/v1/health")
.asString();require 'uri'
require 'net/http'
url = URI("https://csboard.com/v1/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "ok",
"groups": 184213,
"price_list_age_seconds": 42
}