The contest history endpoint returns a student’s rated contest participation, enriched with per-contest solved and total problem counts. Responses are served from a Redis cache when available, making repeated lookups fast. Use theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/aakash811/Student-Progress-Tracker/llms.txt
Use this file to discover all available pages before exploring further.
days query parameter to narrow results to a recent window.
Request
Path parameters
The student’s Codeforces username.
Query parameters
Limits results to contests that took place within the given number of days. Pass a numeric string such as
"90" to filter, or omit the parameter (or pass "all") to return the complete history.Response fields
Array of contest objects, one per rated contest the student participated in within the requested window.
Caching
Contest history responses are cached in Redis under the keycf:contest-history:<handle>:<days> for 12 hours. A cache hit skips the MongoDB query and all per-contest lookups entirely.
Per-contest problem counts (used to populate totalProblems) are fetched from the Codeforces standings API and cached separately under cf:contest-problems:<contestId> for 7 days. Because a contest’s problem set never changes after it ends, this TTL effectively makes those entries permanent for practical purposes.
Example request
Example response
Error responses
| Status | Cause |
|---|---|
404 | No student with the given Codeforces handle found in the database |
500 | Server error while retrieving or processing contest data |
totalProblems may be 0 for very old contests. When the Codeforces standings API returns a 400 error for a given contestId — which can happen for deprecated or removed contests — the server caches 0 for that contest and unsolvedProblems will also be 0.