Бета-версия. Problem Forge — новый сайт, вход только по приглашению. Период бета-тестирования идёт до 2026-11-30 включительно; полное открытие — 2026-12-01 00:00 UTC. Что-то может сломаться, и тогда мы можем исправить таблицы лидеров. Сложность некоторых ступеней может быть указана неверно. Во время беты призов нет, и награда не открыта. Ваш аккаунт и ваш прогресс сохранятся, когда бета закончится. Пожалуйста, сообщите нам, что работает хорошо и что не так: admin@problemforge.com.

API

Создайте токен на странице «Настройки». Передавайте его как Authorization: Bearer pf1_….

GET  /api/v1/version
GET  /api/v1/months/current
GET  /api/v1/problems/<slug>/<YYYY-MM>
GET  /api/v1/leaderboards?month=YYYY-MM
GET  /api/v1/leaderboards/<YYYY-MM>/<slug|global>
GET  /api/v1/leaderboards/alltime
GET  /api/v1/leaderboards/firsts?month=
GET  /api/v1/month
GET  /api/v1/month/board?edition=<edition>
GET  /api/v1/bounty
GET  /api/v1/me
GET  /api/v1/me/<YYYY-MM>
GET  /api/v1/me/<YYYY-MM>/<slug>
GET  /api/v1/me/<YYYY-MM>/<slug>/<NN>/instance      (первое скачивание через API или скачивание на сайте запускает ваш таймер: они считаются одинаково)
POST /api/v1/me/<YYYY-MM>/<slug>/<NN>/answer        Idempotency-Key: <uuid>   {"answer": "123", "solver": "optional"}
GET  /api/v1/me/<YYYY-MM>/<slug>/released
GET  /api/v1/me/month/<YYYY-MM|edition>
GET  /api/v1/me/month/<YYYY-MM>/<NN>/instance
POST /api/v1/me/month/<YYYY-MM>/<NN>/answer
GET  /api/v1/me/answers?month=YYYY-MM

Для каждой ступени можно отправлять один ответ в минуту; если раньше — ответ 429 с числом оставшихся секунд. Ответ сервера: accepted, not_accepted или malformed. Ступень 00 — тренировочная. Она не идёт в ваш счёт.

/api/v1/leaderboards/firsts?month=YYYY-MM выдаёт для каждой задачи месяца по одной строке на каждую ступень с 01 по 12, которую кто-то открыл: first (первый принятый ответ к ступени: ник, публичный id, received_at), quickest (кратчайшее время от первого скачивания до принятого ответа: ник, публичный id, solve_seconds; при равенстве — более ранний ответ), average_seconds, median_seconds (при чётном количестве — среднее двух центральных значений, с точностью до миллисекунды), opened (участники, которые в этом месяце нажали «Показать задачу», скачали ступень или решили её), solved и percent (целый процент тех из них, кто её решил). Начиная с месяца 2026-11, сотрудники во всём этом не учитываются. Список potm в этом ответе даёт то же самое для задачи месяца, ступени с 01 по 12: по одной записи на каждый выпуск, который идёт в зачёт этого месяца.