Proposal: Standardized Editorial URLs (/contest/xxxx/editorial) & API Endpoint Support
Finding tutorials for past Codeforces contests is currently far more inconsistent than it needs to be.
Depending on the contest author and round, editorials are scattered across different formats:
For anyone upsolving or building community tools (like browser extensions and problem trackers), this unpredictability causes constant friction.
The Proposal
Introduce a standardized URL alias and API endpoint for contest tutorials.
1. Standardized Web Route
Allow users to access any contest editorial via a single, predictable URL: codeforces.com/contest/{contestId}/editorial
Practical Implementation & Settings:
- Contest Manager Settings: In the contest dashboard, coordinators or authors simply enter the
blogEntryId(or external link) designated as the official tutorial. - Problem-Level Linking & Discussion: Errichto suggested supporting dedicated editorial pages/posts for individual problems (e.g.,
codeforces.com/contest/1900/editorial/A), giving each problem its own comment section for focused discussion of alternative solutions and edge cases. - Multi-resource Support: If there are multiple tutorials (e.g., Official Text, Video Editorial, or Russian/Chinese translations), the main editorial page or alias can render quick tabs/links for each option at the top of the post.
- Update the UI: Add a prominent "Editorial" button directly on the contest sidebar and on the problem page headers once the contest ends and the tutorial is published.
2. Native API Endpoint (contest.editorial)
Browser extensions, IDE plugins (like Competitive Companion or CPH), and platforms like Vjudge currently rely on fragile web scraping, or regex matching.
Adding an official endpoint, such as contest.editorial in the Codeforces API, would return structured data for a given contest ID:
// Request: https://codeforces.me/api/contest.editorial?contestId=1900
{
"status": "OK",
"result": {
"contestId": 1900,
"editorialBlogId": 45678,
"editorialUrl": "https://codeforces.me/blog/entry/45678",
"videoEditorialUrl": "https://youtube.com/watch?v=...",
"problemAnchors": {
"A": "https://codeforces.me/blog/entry/45678#problem-A",
"B": "https://codeforces.me/blog/entry/45678#problem-B"
}
}
}
3. Retroactive Backfilling for Past Rounds
To handle older rounds without manual labor from Codeforces staff:
- Coordinators, authors, or trusted high-rated users (e.g., Grandmasters) could be given permission to tag/link the historical blog entry ID for older rounds.
- Alternatively, a simple community-driven backfill tool or PR system could link historical contest IDs to their existing blog entries.
I believe this is a real upgrade. Codeforces needs care and this is great.
A suggestion you may find useful here MikeMirzayanov KAN









i do agree , its weird that there is no API endpoints for editorials.
I hope they add it.
please don't down vote my comments just cause im green
Unfortunately nobody knows when did CF released a new feature.
Propably it's been a decade
one recent feature is the double-highlighting of testcases and their answers (thanks Mike!) and another is unrated contests, both of which appeared in my time on this platform (3 years)
What about dark mode(all of m1-2-3.CodeForces has it btw)?
that's recent too i think, m#.codeforces.com got it before the full codeforces probably because m#.codeforces.com is lightweight and has less components compared to full codeforces
Makes sense but still there a lot improvement can be made.
Btw rn new "feature ideas" are just Upvote farming blogs imo.
This post isn’t for farming upvotes
I’m building a side project that uses LLMs to generate progressive hints for Codeforces problems based on their tutorials, letting people get unstuck without spoiling the full editorial.
The problem scraper, database, and JSON API are already set up. My main bottleneck right now is scraping the tutorials, as I'm struggling to locate and fetch the editorial pages automatically.
I meant like "How to Prevent Cheating" blogs(In fact I have one too[It was a newbish blog{But i think it is not that bad}])
To clarify, this is not available on the main site yet, right? If it is, how do you enable it?
it is unfortunately not available on the main site
Yes please for gods sake
Instead of just "section anchors", I think it would be better to do a separate editorial for each problem. It would make it possible to actually discuss the solution(s) in the comments.
tbh, this is a great idea I didn't think of
Yes, it would be a little hard to apply to old editorials, but definitely applicable
Auto comment: topic has been updated by Leeking (previous revision, new revision, compare).
I agree I agreee
Codeforces is the same since 2013
KAN MikeMirzayanov please read it