L2L2INDEXUKRAINIAN L2 DIRECTORY
EVENTS API · v1

Статистика вашего сервера за 15 минут.

Отправляйте нам регистрации, входы и донаты одним POST-запросом. В кабинете вы увидите графики, топ донатеров, пиковые часы и сколько игроков и денег принёс L2Index.

1

Токен

В кабинете → «Подключить статистику» → «Создать токен». Храните его на бэкенде, не в браузере.

2

Метка перехода

Игроки из L2Index приходят с параметром l2i_click. Сохраните его в cookie — так мы посчитаем, сколько регистраций дал каталог.

3

События

Вызывайте API после регистрации, входа в игру и подтверждённой оплаты. Проверьте токен запросом с "test": true.

Когда что отправлять

eventКогда
registrationАккаунт создан на сайте или в лаунчере
loginИгрок зашёл в игру. Даёт график активных игроков и пиковые часы.
depositОплата подтверждена платёжкой. Даёт доход, ARPPU и топ донатеров.

Запрос

POST https://l2index.eu/api/v1/events
Authorization: Bearer l2i_YOUR_TOKEN
Content-Type: application/json

{"event":"deposit","playerId":"10452","amount":250,"currency":"UAH","eventId":"pay_88123"}
ПолеОбязательноеОписание
eventдаregistration, login или deposit
playerIdдаID или логин аккаунта в вашей базе. Не отправляйте email или пароли.
playerNameнетИмя для таблицы топ донатеров
amountнетСумма доната в реальных деньгах, только для deposit. Без неё не будет графика дохода.
currencyнетКод валюты ISO 4217, по умолчанию UAH
eventIdнетВаш уникальный ID события, например ID платежа. Повтор с тем же eventId игнорируется, поэтому ретраи безопасны.
clickIdнетЗначение l2i_click из cookie. Отправляйте с registration, чтобы видеть игроков, пришедших из L2Index.
occurredAtнетВремя события в ISO 8601. По умолчанию — сейчас. Для импорта истории — до 365 дней назад.
testнетtrue — только проверить токен и данные, ничего не сохранять

Примеры кода

<?php
// Put the token from your L2Index dashboard into an environment variable.
function l2index_event(array $event): void
{
    $ch = curl_init('https://l2index.eu/api/v1/events');
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . getenv('L2INDEX_TOKEN'),
            'Content-Type: application/json',
        ],
        CURLOPT_POSTFIELDS     => json_encode($event),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 3, // never block your registration page
    ]);
    curl_exec($ch);
    curl_close($ch);
}

// 1. Account created
l2index_event([
    'event'    => 'registration',
    'playerId' => $accountId,
    'clickId'  => $_COOKIE['l2i_click'] ?? null,
]);

// 2. Payment confirmed (in your payment callback)
l2index_event([
    'event'      => 'deposit',
    'playerId'   => $accountId,
    'playerName' => $login,
    'amount'     => 250,
    'currency'   => 'UAH',
    'eventId'    => $paymentId, // safe to retry
]);

Сохранение метки перехода на сайте

<!-- On every page of your website, before </body> -->
<script>
  const click = new URLSearchParams(location.search).get('l2i_click');
  if (click) document.cookie = 'l2i_click=' + encodeURIComponent(click) +
    '; max-age=2592000; path=/; SameSite=Lax';
</script>

Ответы

201Событие сохранено
200Повтор eventId или test-запрос — ничего не сохранено
401Нет токена или он неверный. Новый токен в кабинете заменяет старый.
422Неверные данные — текст ошибки указывает поле
503Временный сбой. Повторите с тем же eventId.
Сбор данных бесплатный для всех серверов. Графики и таблицы открываются в кабинете при активном пакете Premium или VIP — и показывают всю собранную историю.