For Agents
Read Codeforces contest standings, problemsets, user ratings, and submission history for competitive programming analytics or coaching tools.
Get started with Codeforces API in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"get Codeforces user rating history"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Codeforces API API.
List active and historical contests via GET /contest.list with optional gym filter
Pull final standings for a contest via GET /contest.standings, including penalty and successful hack data
Retrieve a user's full rating history with GET /user.rating to chart progress over time
Fetch a user's submission history through GET /user.status, including verdict and time consumed per problem
GET STARTED
Use for: Get the current rating for a Codeforces handle, List the upcoming Codeforces contests in the next two weeks, Retrieve the standings for a specific contest round, Find all problems tagged with dynamic programming and rated 1800-2100
Not supported: Does not handle solution submission, account creation, or private messages — use for reading Codeforces contest, problemset, and user data only.
Jentic publishes the only available OpenAPI document for Codeforces API, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for Codeforces API, keeping it validated and agent-ready. Codeforces is a competitive programming platform that hosts regular online contests, archives over 7,000 problems, and tracks Elo-style ratings for hundreds of thousands of competitors. The public API exposes 16 read endpoints over codeforces.com/api covering contests, problemsets, standings, user profiles, ratings, submissions, and blog entries. Authorised endpoints use an HMAC-signed scheme combining an apiKey, apiSig, and timestamp, and rate limits cap requests at roughly one call per two seconds.
Enumerate the entire Codeforces problemset filtered by tag or difficulty via GET /problemset.problems
Read rating change deltas after a contest with GET /contest.ratingChanges
Resolve handle metadata for one or many users in a single call via GET /user.info
Patterns agents use Codeforces API API for, with concrete tasks.
★ Coaching Dashboard for Competitive Programmers
Build a coaching dashboard that pulls a student's rating curve, recent submissions, and tag-based problem coverage. The agent calls GET /user.rating, GET /user.status, and GET /problemset.problems to reconcile what the student has solved against what their rating band typically demands. Replaces hand-curated spreadsheets with data sourced directly from Codeforces.
For handle 'tourist' fetch GET /user.rating and GET /user.status, then call GET /problemset.problems with tags=dp,graphs and report which top-rated problems remain unsolved
Live Contest Monitoring Bot
Run a Discord or Slack bot that follows a Codeforces round in near real time. It polls GET /contest.standings every minute and posts standings updates, rank changes, and successful hacks to a channel. Friends and team members get a shared, low-effort scoreboard for the duration of the round.
Every 60 seconds during contest 1900 call GET /contest.standings with handles=alice;bob;carol and post rank changes to the team Slack channel
Problem Recommendation Engine
Recommend the next problem a user should attempt based on their rating, tag history, and unsolved set. The agent reads GET /user.info for the rating band, GET /user.status to remove already-solved problems, and GET /problemset.problems to pick a candidate of the right difficulty and tag. Personalises practice without requiring a third-party tracker.
For handle 'alice' fetch user rating, list solved problems, then return three unsolved problems rated within +/- 100 of the user's current rating tagged with 'graphs'
Rating Change Analysis After a Round
Analyse rating changes for a team or community immediately after a contest concludes. The agent calls GET /contest.ratingChanges for the contest id and groups by handle to produce a leaderboard of who gained or lost the most rating. Useful for company-internal contest league tables.
Call GET /contest.ratingChanges?contestId=1900, filter to a list of company handles, sort by delta descending, and email the resulting table
Agent-Driven Codeforces Lookups via Jentic
A user asks an agent 'how is my Codeforces rating tracking this year?' and the Jentic-connected agent pulls rating history, recent submissions, and unsolved problems without holding the raw API key. Jentic stores the apiKey/apiSecret pair in its vault and signs requests with HMAC on the agent's behalf, returning parsed JSON to the agent.
Search Jentic for 'get Codeforces user rating history', load the GET /user.rating schema, execute it for handle 'alice', and summarise rating change for the last 12 months
16 endpoints — jentic publishes the only available openapi specification for codeforces api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/contest.list
List contests
/contest.standings
Get contest standings
/contest.ratingChanges
Get rating changes after a contest
/problemset.problems
Enumerate problems by tag
/user.info
Resolve one or many user handles
/user.rating
Get a user's rating history
/user.status
Get a user's submissions
/user.ratedList
List rated users on the platform
/contest.list
List contests
/contest.standings
Get contest standings
/contest.ratingChanges
Get rating changes after a contest
/problemset.problems
Enumerate problems by tag
/user.info
Resolve one or many user handles
Three things that make agents converge on Jentic-routed access.
Credential isolation
The Codeforces apiKey and secret are stored encrypted in the Jentic vault. Jentic generates the HMAC-SHA512 apiSig on every request so the agent never sees the secret and the signing logic does not have to be re-implemented per integration.
Intent-based discovery
Agents search Jentic by intent (e.g., 'get Codeforces user rating') and Jentic returns the matching operation with parameter schema, so the agent can call /user.rating without scraping vendor docs or guessing at HMAC parameters.
Time to first call
Direct Codeforces integration: 1-2 days to implement HMAC-SHA512 signing, time-skew handling, and rate-limit backoff. Through Jentic: under 30 minutes — search, load, execute.
Alternatives and complements available in the Jentic catalogue.
HackerRank API
Competing competitive programming and technical hiring platform with its own contests and problem archive
Choose HackerRank when the use case is technical hiring or interview prep; Codeforces is stronger for algorithmic contest data
HackerEarth API
Hackathon and coding challenge platform with its own contest and submission API
Choose HackerEarth when running a hackathon or branded coding competition rather than Codeforces' open community contests
GitHub API
Pair with Codeforces to publish solved problems or contest summaries to a public GitHub profile or gist
Use when an agent should mirror a user's contest performance to a public GitHub README or repo
Specific to using Codeforces API API through Jentic.
Why is there no official OpenAPI spec for Codeforces API?
Codeforces does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Codeforces API via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the Codeforces API use?
The Codeforces API uses an HMAC-signed scheme. You generate an apiKey and secret in your Codeforces settings, then send apiKey, time, and an apiSig (a SHA-512 hash of a canonical query string with a random prefix) as query parameters. Anonymous calls work for public methods. Through Jentic the secret is stored in the vault and the signature is generated on the agent's behalf.
Can I get a user's rating history with the Codeforces API?
Yes. Call GET /user.rating with the handle parameter. The response contains every contest the user participated in along with old rating, new rating, and the contest id, which is enough to plot a full rating curve.
What are the rate limits for the Codeforces API?
Codeforces enforces approximately one request every two seconds per IP. Heavier usage triggers HTTP 429 or temporary blocks. For bulk operations such as enumerating the entire problemset, throttle accordingly and cache the response — the problemset only updates when new contests are added.
How do I list contest standings through Jentic?
Search Jentic for 'get Codeforces contest standings', load the GET /contest.standings schema, and execute it with the contestId and handles parameters. Jentic injects the apiKey and signs the request with the secret stored in the vault.
Does the Codeforces API support submitting solutions?
No. The public API is read-only. Submissions still happen through the Codeforces website or the unofficial codeforces-cli; this spec covers contests, problemsets, users, and submission history only.
/user.rating
Get a user's rating history
/user.status
Get a user's submissions
/user.ratedList
List rated users on the platform