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
אפשר לשלוח תשובה אחת בדקה לכל שלב; מוקדם יותר, המענה הוא 429 עם מספר השניות שנותרו. המענה הוא accepted, not_accepted או malformed. שלב 00 הוא שלב התרגול. הוא לא נספר בניקוד שלכם.
/api/v1/leaderboards/firsts?month=YYYY-MM מחזיר, לכל בעיה של החודש, שורה אחת לכל שלב מ-01 עד 12 שמישהו פתח: first (התשובה הראשונה שהתקבלה לשלב: כינוי, מזהה ציבורי, received_at), quickest (הזמן הקצר ביותר מההורדה הראשונה ועד התשובה שהתקבלה: כינוי, מזהה ציבורי, solve_seconds; בתיקו, התשובה המוקדמת יותר), average_seconds, median_seconds (כשמספר הזמנים זוגי, הממוצע של שני הזמנים האמצעיים, ברמת דיוק של אלפית שנייה), opened (המטפסים שלחצו על „הצגת הבעיה הזו”, הורידו את השלב או פתרו אותו באותו חודש), solved ו-percent (האחוז השלם מהם שפתרו אותו). החל מחודש 2026-11, הצוות לא נכלל בכל אלה. רשימת potm שבה נותנת את אותו הדבר עבור בעיית החודש, שלבים 01 עד 12: רשומה אחת לכל מהדורה שנספרת לאותו חודש.