API разработчика
Документация по API шахматного рейтинга
API Chess Rating обеспечивает программный доступ к тому же механизму расчета Эло, который используется в калькуляторах на этом сайте. Разработчики, создающие инструменты управления клубами, информационные панели с отчетами о турнирах, тренерские платформы или редакционные продукты, могут интегрировать расчеты рейтингов непосредственно в свои рабочие процессы, не переопределяя логику формул. В этой документации описаны доступные конечные точки, форматы запросов и ответов, требования к аутентификации и подход к управлению версиями, который обеспечивает стабильность интеграции. Для связанного объяснения можно перейти к Встраиваемые виджеты шахматного рейтинга.
Доступные конечные точки расчета
API поддерживает три основных рабочих процесса расчета: изменение рейтинга одной игры (с учетом двух рейтингов, результата и К-фактора), пакетную обработку (несколько записей игр в одном запросе) и первоначальную оценку рейтинга (с учетом среднего рейтинга противника, счета и количества игр). Каждая конечная точка возвращает такие же подробные выходные данные, как на страницах калькулятора, включая ожидаемый балл, дельту рейтинга и прогнозируемый новый рейтинг. Подробности реализации и проверки смотрите в методологию.
Конечные точки режима турнира принимают упорядоченный массив рейтингов и результатов противников, возвращая разбивку по раундам и совокупные итоги. Все ответы включают метаданные о том, какой профиль правил был применен, чтобы последующие потребители могли проверить предположения расчета.
Аутентификация и ограничения скорости
Для доступа к API требуется ключ API, передаваемый в качестве токена носителя в заголовке авторизации. Ключи доступны в бесплатном и премиум-уровнях. Уровень бесплатного пользования допускает до 100 запросов в день, максимум 10 игр на пакетный запрос. Премиум-ключи открывают более высокую пропускную способность, приоритетную поддержку и доступ к конечным точкам массовой обработки турниров.
Ограничения скорости применяются для каждого ключа, а не для каждого IP-адреса. Превышение лимита возвращает статус 429 с заголовком Retry-After, указывающим, когда откроется следующее окно запроса. Все ограничения документируются в заголовках ответов каждого успешного запроса.
Профили правил и управление версиями
Каждый ответ API включает поле Rules_profile, указывающее, какой набор допущений использовался для расчета (например, fide_2024, us_chess_current, generic_elo). При изменении правил федерации API добавляет новую версию профиля, а не изменяет существующие. Это означает, что последующие системы могут привязываться к определенной версии профиля и обновляться по собственному графику.
О критических изменениях сообщается как минимум за 30 дней через журнал изменений API и список рассылки для разработчиков. Некритичные дополнения (новые необязательные поля, новые профили) развертываются постоянно, не нарушая существующие интеграции.
Формат ответа и обработка ошибок
- Все ответы возвращают JSON с типом контента: application/json. Успешные вычисления возвращают 200 с полной полезной нагрузкой результата.
- Ошибки проверки (отсутствующие поля, рейтинги за пределами допустимого диапазона, неверный К-фактор) возвращают 422 с удобочитаемым массивом ошибок.
- При сбоях аутентификации возвращается ошибка 401. Ключи с истекшим сроком действия или отозванные ключи возвращают ошибку 403 с URL-адресом повторной активации.
- Ошибки сервера возвращают 500 с идентификатором запроса для эскалации поддержки. Все ответы об ошибках имеют одну и ту же структуру { error, message, request_id }.
Лучшие практики интеграции
По возможности кэшируйте повторяющиеся вычисления локально, чтобы минимизировать вызовы API. Для рабочих процессов турниров используйте пакетную конечную точку, а не отправляйте последовательные запросы для одной игры. Всегда включайте параметр Rules_profile явно, а не полагайтесь на значение по умолчанию сервера, чтобы ваша интеграция оставалась детерминированной, даже когда API добавляет новые профили.
Для клубного программного обеспечения и панелей мониторинга тренеров рассмотрите возможность сохранения как вычисленных результатов, так и версии Rules_profile, чтобы вы могли провести аудит или пересчитать позже, если правила федерации изменятся. Это особенно важно для рабочих процессов официальной отчетности, где историческая точность имеет значение.