API
Crie um token na sua página de Configurações. Envie-o como 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 (o primeiro download pela API, ou um download no site, inicia seu cronômetro: contam igual)
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
Você pode enviar uma resposta por minuto para cada degrau; antes disso, a resposta é 429 com os segundos que faltam. A resposta do servidor é accepted, not_accepted ou malformed. O degrau 00 é de treino. Ele não conta para a sua pontuação.
/api/v1/leaderboards/firsts?month=YYYY-MM dá, para cada problema do mês, uma linha por degrau do 01 ao 12 que alguém abriu: first (a primeira resposta aceita para o degrau: apelido, id público, received_at), quickest (o menor tempo do primeiro download até a resposta aceita: apelido, id público, solve_seconds; em caso de empate, a resposta anterior), average_seconds, median_seconds (para uma quantidade par, a média dos dois tempos do meio, até o milissegundo), opened (escaladores que clicaram em “Mostrar este problema”, baixaram o degrau ou o resolveram naquele mês), solved e percent (porcentagem inteira deles que o resolveu). A partir do mês 2026-11, a equipe fica de fora de tudo isso. A sua lista potm dá o mesmo para o problema do mês, degraus 01 a 12: uma entrada por edição que conta para aquele mês.