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 (最初の取得でも、サイトでのダウンロードでも、同じようにタイマーが始まります)
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
解答は、段ごとに1分に1回送信できます。それより早く送ると、返事は 429 で、残りの秒数が付きます。返事は accepted、not_accepted、malformed のどれかです。段00は練習用の段です。スコアには数えません。
/api/v1/leaderboards/firsts?month=YYYY-MM は、その月の各問題について、誰かが開いた01〜12の段ごとに1行を返します。first(その段への最初の正解:ハンドル、公開 ID、received_at)、quickest(初めてのダウンロードから正解までの最短時間:ハンドル、公開 ID、solve_seconds。同じ時間なら先に送られた解答)、average_seconds、median_seconds(数が偶数のときは真ん中の2つの時間の平均、ミリ秒単位)、opened(その月に「この問題を表示」を押したか、その段をダウンロードしたか、解いたプレイヤー)、solved と percent(そのうち解いた人の割合、整数のパーセント)。2026-11 の月からは、スタッフはこれらのどれにも含まれません。 その potm リストは、今月の特別問題の段01から12について同じ内容を返します。その月に数える版ごとに1件です。