**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:** Support automatic section anchors so users can navigate directly to a & Discussion:** [user:Errichto,2026-08-27] suggested supporting dedicated editorial pages/posts for individual problem's solution:↵
```↵
(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 [user:MikeMirzayanov,2026-08-24] [user:KAN,2026-08-24]↵
↵
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
```↵
```
- **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 [user:MikeMirzayanov,2026-08-24] [user:KAN,2026-08-24]↵



