Ключ#
- Открой вкладку «API»В панели, раздел «Остальное».
- Нажми «Создать ключ»Ключ выглядит как
zf_live_…и показывается один раз. Скопируй его сразу: в базе хранится только отпечаток. - Храни как парольКлюч даёт доступ к твоей статистике и балансу. Если он утёк — нажми «Перевыпустить»: старый ключ перестанет работать сразу. «Отозвать» отключает API полностью.
Авторизация и лимиты#
Базовый адрес — https://zflow.pro/api/v1. Ключ передаётся в заголовке:
Authorization: Bearer zf_live_xxxxxxxxxxxxxxxxxxxxxxxx- Только метод
GET, ответы в JSON. Полеok—trueилиfalse. - Все суммы — в рублях (поля с суффиксом
_rub). - Лимит — 60 запросов в минуту на ключ. При превышении ответ
429и заголовокRetry-After. - Данные обновляются вместе с синхронизацией панели, примерно раз в минуту — чаще опрашивать нет смысла.
GET /me#
/api/v1/meПрофиль партнёра: текущая доля, оборот и баланс.
{
"ok": true,
"username": "partner",
"split_percent": 70,
"base_split_percent": 70,
"tier_reached": false,
"turnover_rub": 12450.5,
"balance_rub": {
"share": 8715.35,
"available": 5400.0,
"hold": 3315.35,
"pending": 0,
"paid": 0,
"bonus": 0
}
}| Поле баланса | Значение |
|---|---|
available | Можно вывести сейчас. |
hold | Доля за CS2, ожидающая окончания защиты трейда (8 дней). |
pending | Вывод заказан, ждёт обработки. |
paid | Уже выплачено. |
share / bonus | Всего начислено / ручные начисления владельца. |
GET /domains#
/api/v1/domainsВсе твои домены с итогами по каждому.
{
"ok": true,
"domains": [
{
"domain": "skins-example.com",
"status": "live",
"created_at": "2026-10-06 00:46:12",
"visits": 174,
"orders": 1,
"volume_rub": 5.9,
"share_rub": 5.31
}
]
}volume_rub — оборот завершённых сделок по расчётной стоимости (60% рыночной цены), share_rub — твоя начисленная по домену доля (из зафиксированных начислений).
Статус: pending — ждёт DNS, dns_ok — домен за Cloudflare, live — работает.
GET /stats#
/api/v1/stats?domain=skins-example.comСтатистика по всем доменам или по одному, если передан domain. Чужой или несуществующий домен — ошибка 404.
{
"ok": true,
"synced_at": "2026-10-18 08:14:02",
"domains": ["skins-example.com"],
"volume_rub": 5.9,
"share_rub": 5.31,
"orders": 1,
"pending_orders": 0,
"pending_value_rub": 0,
"items_sold": 1,
"avg_check_rub": 5.9,
"metrics": { "online": 0, "visits": 175, "authClicks": 6, "authSuccess": 4 },
"series": [{ "day": "2026-10-18", "orders": 0, "volume_rub": 0 }],
"traffic": [{ "day": "2026-10-18", "visits": 3, "logins": 1 }]
}series и traffic — 31 день по датам (UTC), последний элемент — сегодня. Если домен не указан, volume_rub и share_rub — всё начисленное тебе, в том числе по удалённым доменам. Смысл цифр — как в разделе Статистика.
GET /requests#
/api/v1/requests?limit=20&status=COMPLETED| Параметр | Значение |
|---|---|
limit | Сколько заявок вернуть: 1–100, по умолчанию 20. |
status | COMPLETED, AWAITING_TRADE, HOLD или PENDING. Без параметра — любые. |
domain | Только заявки этого домена. |
{
"ok": true,
"requests": [
{
"id": "a1b2c3",
"status": "COMPLETED",
"created_at": "2026-10-06 00:46:12",
"domain": "skins-example.com",
"value_rub": 5.9,
"seller": "Nickname",
"items": [{ "name": "P250 | Sleet (Factory New)", "price_rub": 5.9 }]
}
]
}Ошибки#
| Код | Когда |
|---|---|
401 | Нет заголовка, ключ неверный, отозван или аккаунт заблокирован. |
404 | Неизвестный метод или домен не принадлежит тебе. |
400 | Недопустимое значение параметра. |
429 | Больше 60 запросов в минуту. |
Поле error — на английском, error_ru — то же сообщение по-русски. В логике опирайся на HTTP-код и ok: false, а не на текст.
{
"ok": false,
"error": "Invalid or missing key. Send the header Authorization: Bearer <key>.",
"error_ru": "Неверный или отсутствующий ключ. Передай заголовок Authorization: Bearer <ключ>."
}import requests
r = requests.get(
"https://zflow.pro/api/v1/stats",
headers={"Authorization": "Bearer zf_live_..."},
timeout=15,
)
print(r.json()["share_rub"])