API
Ayarlar sayfanızda bir belirteç oluşturun. Onu Authorization: Bearer pf1_… olarak gönderin.
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 (ilk indirme ya da web sitesinden yapılan bir indirme sürenizi başlatır: ikisi aynı sayılır)
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
Her basamak için dakikada bir yanıt gönderebilirsiniz; daha erken gönderirseniz karşılık, kalan saniyelerle birlikte 429 olur. Karşılık accepted, not_accepted ya da malformed olur. Basamak 00 alıştırma basamağıdır. Puanınıza sayılmaz.
/api/v1/leaderboards/firsts?month=YYYY-MM, ayın her problemi için 01-12 arasında birinin açtığı her basamağa bir satır verir: first (basamağa ilk kabul edilen yanıt: kullanıcı adı, genel kimlik, received_at), quickest (ilk indirmeden kabul edilen yanıta kadarki en kısa süre: kullanıcı adı, genel kimlik, solve_seconds; eşitlikte daha önceki yanıt), average_seconds, median_seconds (sayı çiftse ortadaki iki sürenin ortalaması, milisaniye hassasiyetinde), opened (o ay “Bu problemi göster” düğmesine basan, basamağı indiren ya da çözen oyuncular), solved ve percent (onlardan çözenlerin tam sayı yüzdesi). 2026-11 ayından itibaren ekip bunların hiçbirine dahil edilmez. Yanıttaki potm listesi, ayın problemi için aynısını verir, basamak 01-12: o ayda sayılan her sürüm için bir kayıt.