GRID API Tester
ключ не проверен

Central Data · allSeries

Series IDСтарт (локально)TitleТурнир ФорматКомандыТип
Укажите ключ и нажмите «Загрузить»

Live Data Feed · seriesState

Подписки на state нет — API опрашивается запросом. Не чаще ~1 раза в несколько секунд, иначе прилетит rate limit.
Нет данных

Ответ

Series Events · WebSocket

0транзакций
0событий
посл. seq
лаг publish→recv
offсокет
Лог пуст

Справочники Central Data

Нет данных

Произвольный GraphQL-запрос

Query

Variables (JSON)

Ответ

Шпаргалка

Эндпоинты

Central Data (расписание, турниры, команды, игроки, Series ID)https://api.grid.gg/central-data/graphql
Series State (текущее состояние серии)https://api.grid.gg/live-data-feed/series-state/graphql
Series State — Open Accesshttps://api-op.grid.gg/live-data-feed/series-state/graphql
Series Events по серии (WebSocket)wss://api.grid.gg/live-data-feed/series/{SERIES_ID}?key={KEY}
Series Events по игроку (WebSocket)wss://api.grid.gg/live-data-feed/series?playerId={PLAYER_ID}&key={KEY}
Feed Viewer (официальный)portal.grid.gg/developers/feed-viewer
Документацияdocs.grid.gg
Через прокси этого сервера (режим «этот сервер» в селекторе хоста){origin}/central-data/graphql, {origin}/live-data-feed/…

Аутентификация

HTTP/GraphQL — заголовок x-api-key: XXX. WebSocket — заголовки задать нельзя, поэтому ключ идёт query-параметром ?key=XXX. Только HTTPS/WSS.

Тестовые «loop»-серии (крутятся постоянно, ID серии = ID тайтла)

TitleSeries ID

Лимиты WebSocket

  • Максимум 3 одновременных соединения на серию для одного ключа.
  • Максимум 5 попыток подключения в минуту на ключ.
  • Соединение живёт до 24 часов после последней активности; шлите ping-фреймы, чтобы держать неактивный сокет открытым.
  • Фид по серии доступен ещё ~2 часа после её окончания.

Параметры WebSocket

ПараметрОписание
keyобязательный — API-ключ
useConfigесли true — после подключения сервер ждёт JSON с конфигурацией фильтров
fromSequenceNumberначать с этого номера транзакции
fromSessionSequenceNumberначать с этого номера в рамках сессии

Структура транзакции

Транзакция = {id, correlationId, occurredAt, publishedAt, seriesId, sequenceNumber, sessionSequenceNumber, events[]}.
Событие = {id, type, includesFullState, actor, action, target, seriesStateDelta, seriesState}, где тип имеет вид actor-action-target (например player-killed-player). Откатанное событие помечается восклицательным знаком в действии (player-!killed-player) и ссылается на revertedEventId; дельты в нём инвертированы.

Иерархия состояния

Series → Games → Segments → Segments … Внутри каждого уровня: Teams → Players. Одни и те же метрики агрегируются на всех уровнях.

Основные фильтры allSeries

startTimeScheduled: {gte, lte}, updatedAt: {gte, lte}, titleId / titleIds: {in: []}, tournamentId / tournament: {name: {contains}}, teamId / teamIds, type / types, live: {games: {id | map}}, livePlayerIds, private.
Аргументы orderBy (StartTimeScheduled|UpdatedAt|ID) и orderDirection (ASC|DESC) — обязательные.