Перейти к содержимому

API для разработчиков

REST API /v1: WN8, история игроков, статистика танков, пороги отметок, кланы и сессии. Источник данных — Леста Игры.

Запросов в сутки бесплатно10 000
Запросов в секунду бесплатно5
Версия APIv1

Быстрый старт

Ключ, SDK и один запрос. Ответы в JSON, ошибки с машинным кодом.

  1. Создайте ключ

    Войдите и создайте ключ в кабинете разработчика. Секрет показывается один раз.

  2. Установите SDK

    bun add @otmetki/sdk — типы, повторы и проверка вебхуков. Из любого другого языка передавайте заголовок X-API-Key.

  3. Отправьте запрос

    По нику или id игрока вернётся сводка с WN8, ЭФФ, Броня-Индексом и recent-периодами.

Базовый адрес API
https://api.triotmetki.ru
player.tstypescript
import { createOtmetkiClient, getPlayer } from '@otmetki/sdk';

const client = createOtmetkiClient({
  apiKey: process.env.OTMETKI_API_KEY,
  baseUrl: 'https://api.triotmetki.ru'
});

const { data: player } = await getPlayer({ client, path: { idOrNick: 'Tanker' }, throwOnError: true });

console.log(player.summary.nickname, player.summary.overall.wn8.value);

Справочник API

Эндпоинты /v1 с параметрами, схемами ответов и примерами запросов — в интерактивном справочнике на сервере API.

Вебхуки

Сервер отправляет POST на ваш адрес, когда подписанный игрок получает отметку, заканчивает сессию или меняется состав клана.

События

Игрок получил новую отметку на стволе. Приходит для подписанных игроков и участников подписанных кланов.

Тело запросаjson
{
  "id": "6f1c2a4e-8d3b-4c7a-9e21-3b5f0d8a7c10",
  "event": "mark.gained",
  "createdAt": "2026-09-24T19:42:07.000Z",
  "data": {
    "accountId": 12345678,
    "nickname": "Tanker",
    "tankId": 7249,
    "marks": 3,
    "previousMarks": 2,
    "percent": 95.12,
    "source": "mod"
  }
}

Заголовки

webhook-signature
Список подписей вида «v1,» + base64 через пробел: HMAC-SHA256 секретом вебхука (без префикса whsec_, из base64) над строкой «id.время.тело» по стандарту Standard Webhooks.
webhook-timestamp
Время отправки, секунды Unix. Входит в подпись.
X-Otmetki-Event
Имя события, дублирует поле event.
webhook-id
Id доставки: входит в подпись, используйте его для идемпотентности.

Проверка подписи

webhook.tstypescript
import { verifyWebhook } from '@otmetki/sdk';

app.post('/otmetki', async (request, reply) => {
  try {
    const { event, data } = verifyWebhook({
      secret: process.env.OTMETKI_WEBHOOK_SECRET,
      body: request.rawBody,
      headers: request.headers
    });

    return reply.code(204).send();
  } catch {
    return reply.code(401).send();
  }
});
  • Отклоняйте доставки старше 5 минут — это защита от повтора.
  • Неудачную доставку повторяем до 6 раз с растущей паузой.
  • После 20 неудач подряд вебхук отключается, включить его снова можно в кабинете.

Лимиты

API бесплатный для всех. Подписка Плюс повышает личные лимиты, а открытые бесплатные проекты для сообщества получают расширенные лимиты по запросу.

ЛимитБесплатныйПлюсСообщество
Запросов в сутки10 00050 0002 000 000
Запросов в секунду510100
Вебхуков1550
Как получитьСразу, с любым ключомС подпиской Плюс, для личного некоммерческого использованияБесплатно для открытых бесплатных проектов — напишите нам

Условия использования API

  • Публичный API бесплатный: ключ выдаётся любому пользователю, платных тарифов у API нет.
  • Лимиты Плюса — для личного некоммерческого использования: своих ботов, виджетов и скриптов.
  • Открытые бесплатные проекты для сообщества могут бесплатно получить лимиты уровня «Сообщество» — напишите нам о проекте.
  • Нельзя перепродавать доступ к нашему API или прятать его данные за платным доступом.
  • Данные частично получены из API Лесты, поэтому действуют и условия Лесты Игры: указывайте источник данных и не используйте их коммерчески.