Codeforces Competitive Programming Scraper
Pricing
from $31.05 / 1,000 results
Codeforces Competitive Programming Scraper
Scrape Codeforces public API for user info, contest history, problem set, and submission stats. Get rating, rank, country, max rating, and 8000+ problems. No API key required.
Pricing
from $31.05 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share

🏆 Codeforces Competitive Programming Scraper
🚀 Pull Codeforces profiles, problems, contests, and leaderboards in seconds. Filter by handle, tag, contest type, or active status. No API key, no registration, no manual CSV wrangling.
🕒 Last updated: 2026-05-12 · 📊 Up to 19 fields per record · 8,000+ problems indexed · Hundreds of thousands of rated users · All public contests since 2010
The Codeforces Competitive Programming Scraper turns the official Codeforces public API into a clean, ready-to-use dataset. Codeforces is the world's most active competitive programming community, hosting weekly contests, a graded problem archive, and a global rating ladder used by recruiters, schools, and contest analysts. This actor exposes four modes that cover the catalog: user profiles, the full problem set, the complete contest list, and the rated users leaderboard.
Each mode emits a flat JSON record with stable identifiers, scored fields, and a direct URL back to Codeforces. Profile records carry rating and rank history, country, organization, and contribution score. Problem records carry difficulty rating, tags, solve count, and solve share. Contest records carry phase, duration, ICPC region, and ICPC season. Leaderboard records sort highest-rating-first so you can grab the top 100, 1,000, or 10,000 players in one run.
| 🎯 Target audience | 💼 Primary use cases |
|---|---|
| Tech recruiters | Source talent and benchmark candidate skill levels |
| Coaches and trainers | Build curated problem sets for students by tag and rating |
| Contest organizers | Audit historical contests, archives, and ICPC entries |
| Researchers | Study competitive programming demographics and rating dynamics |
| Tooling and community sites | Sync Codeforces metadata into dashboards and leaderboards |
📋 What the Codeforces Scraper does
- 👤 User mode. Pass a list of handles like
tourist,Petr,Benqand get rating, max rating, rank, country, organization, registration date, and contribution score in one call. - 🧩 Problem set mode. Pull the full archive of 8,000+ problems with rating, tags, contest id, solve count, and solve share.
- 🏟️ Contest list mode. Fetch every public contest with phase, type, duration, ICPC region, country, and start time. Optional gym contests via a toggle.
- 🏅 Rated users mode. Stream the global leaderboard sorted by rating, with optional active-only filter.
- 🏷️ Tag filtering. Restrict problems to specific topics like
dp,graphs,binary search,math,greedy, or any official Codeforces tag. - 📦 Bulk-friendly. User mode batches in chunks of 100 to respect the API and complete large jobs quickly.
Each record includes a mode discriminator (user, problem, contest, or ratedUser) so you can union the four shapes in one downstream table without losing track of which mode produced each row.
💡 Why it matters: Codeforces is the de facto benchmark for algorithmic skill. A structured pull of profiles, problems, and contest history powers recruiting funnels, coaching tools, research papers, and community dashboards without you maintaining custom API code.
🎬 Full Demo
🚧 Coming soon: a 3-minute walkthrough showing how to pick a mode, filter by tag, and route results into a spreadsheet or database.
⚙️ Input
| Field | Type | Description |
|---|---|---|
mode | enum | One of users, problemset, contests, or ratedList. Default users. |
handles | array | List of Codeforces handles. Required in users mode. |
tags | array | Problem tag filter for problemset mode. Example ["dp", "graphs"]. |
gym | boolean | Include gym (training) contests in contests mode. |
activeOnly | boolean | Restrict ratedList to recently active rated users. |
maxItems | integer | Free users 10, paid users up to 1,000,000. |
Example: top 100 active rated users.
{"mode": "ratedList","activeOnly": true,"maxItems": 100}
Example: dynamic programming problems sorted by Codeforces order.
{"mode": "problemset","tags": ["dp", "trees"],"maxItems": 200}
⚠️ Good to Know: Codeforces caps the rated list response size, so very large
ratedListrequests may take longer to return. User mode automatically batches handles in groups of 100 to stay friendly with the public API.
📊 Output
Each record is a flat JSON object with the fields below. Field availability depends on the chosen mode.
🧾 Schema
| Field | Type | Example |
|---|---|---|
🆔 mode | string | problem |
👤 handle | string | tourist |
🔗 url | string | https://codeforces.com/profile/tourist |
🖼️ avatar | string | https://userpic.codeforces.org/.../avatar |
⭐ rating | number | 3853 |
🏔️ maxRating | number | 3979 |
🏷️ rank | string | legendary grandmaster |
🏷️ maxRank | string | legendary grandmaster |
🌍 country | string | Belarus |
🏢 organization | string | ITMO University |
📈 contribution | number | 175 |
🗓️ registrationTime | string | 2010-04-13T07:33:34.000Z |
🧩 contestId | number | 2227 |
🔤 index | string | H |
🏷️ name | string | Fallen Leaves |
🏔️ problemRating | number | 2400 |
🏷️ tags | array | ["dp", "trees"] |
🧮 solvedCount | number | 1150 |
📊 solvedSharePercent | number | 0.001035 |
⏱️ scrapedAt | string | 2026-05-12T16:30:28.571Z |
📦 Sample records
✨ Why choose this Actor
| Capability | |
|---|---|
| 🆓 | No API key. Codeforces exposes a public API, and this actor inherits that. |
| 🎚️ | Four modes, one schema family. Profiles, problems, contests, and rated users share the same flat shape. |
| 🏷️ | Tag filtering. Pull all dp or graphs problems with one line of input. |
| 🧮 | Solve stats built in. Each problem record carries solvedCount and solvedSharePercent. |
| ⚡ | Bulk-friendly. Handles are batched in chunks of 100 for fast multi-profile pulls. |
| 🏔️ | Leaderboard ready. Rated users come pre-sorted by rating, top first. |
| 🔌 | Integrates everywhere. Land results in Sheets, Notion, Slack, or a database. |
📊 8,000+ problems, 4 modes, 1 free actor.
📈 How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| ⭐ Codeforces Scraper (this Actor) | Free tier available | Profiles, problems, contests, rated users | On-demand | Handle, tag, gym, active | One JSON input |
| Direct API integration | Engineering time | Whatever you build | Custom | Custom code | High |
| Community CSV dumps | Free | Snapshot only | None | None | Manual download |
| Paid talent intel platforms | $100+ per month | Often broader | Daily | Vendor-specific | Account, key, SDK |
For teams that want a working Codeforces feed without writing API client code, this actor is the shortest path from request to row.
🚀 How to use
- 🔐 Create a free Apify account. Sign up at Apify and claim the $5 starter credit.
- 🎚️ Open the actor and pick a mode. Choose
users,problemset,contests, orratedList. - 🧩 Set the filters. Add handles, tags, gym toggle, or active-only as needed.
- ▶️ Run it. Free users get a 10-row preview, paid users can pull up to 1,000,000 records per run.
- 📤 Export. Download JSON, CSV, or Excel, or push results into Google Sheets, Airtable, Slack, Notion, or a database via Apify integrations.
⏱️ Total time from sign-up to first dataset: about 90 seconds.
💼 Business use cases
🌟 Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
🔌 Automating Codeforces Scraper
Drive this actor from your own stack with a few lines of code.
- Trigger runs from Node.js using the Apify JavaScript client
- Trigger runs from Python using the Apify Python client
- Read the Apify REST API docs to call the actor over HTTP
Schedules let you re-pull the leaderboard daily, refresh a candidate handle list weekly, or watch a single user's rating in near real time.
❓ Frequently Asked Questions
💰 Is there a cost to run this Actor?
The actor itself is free to use on Apify. You pay only for the platform compute and storage you consume during a run. New accounts come with $5 of starter credit, which covers many small runs.
🔑 Do I need a Codeforces API key?
No. The actor uses public read-only endpoints that do not require a key or token. You only need a Codeforces account if you later want to submit problems or post on the forum yourself.
👤 Which handles can I look up?
Any public Codeforces handle. Pass a list under handles in users mode. The actor batches the list in chunks of 100 to respect the API and complete large jobs in one run.
🏷️ How do problem tags work?
Tags are official Codeforces topic labels like dp, graphs, binary search, math, greedy, data structures, dfs and similar, trees, and many more. Pass a list under tags in problemset mode to keep only problems that match every listed tag.
🏟️ Does this include gym contests?
By default gym is false. Set it to true in contests mode to also include training (gym) contests in the result set.
🤝 Can I use this Actor for commercial use?
Yes. Codeforces public API data is openly accessible and widely used in third-party tools. You are responsible for following the Codeforces terms of service and any local rules around recruiting and personal data.
💳 Do I need a paid Apify plan?
A paid plan is not required. Free accounts can preview up to 10 rows per run. Paid plans unlock up to 1,000,000 rows per run plus larger storage and compute budgets.
🆘 What if a run fails?
Open the run in the Apify console to inspect the log, the input, and any partial dataset. Network errors and upstream rate limits are surfaced as error items in the dataset rather than as silent crashes.
⚖️ Is scraping this data legal?
Codeforces publishes the API for public consumption. This actor reads only the public endpoints with no login or token, so the data flow is the same one any browser or curl request would produce. Compliance with the source terms and local law remains your responsibility.
🏔️ Can I get the global top 100 rated users?
Yes. Set mode to ratedList, optionally toggle activeOnly, and set maxItems to 100. The actor sorts by rating descending so you get the top of the ladder first.
🔄 How fresh is the data?
Each run hits Codeforces live, so ratings, recently solved problem counts, and contest phases reflect the source at the moment of the request.
🔌 Integrate with any app
Stream results into the tools your team already uses.
- Make - low-code automation across thousands of apps
- Zapier - trigger and route data into 6,000+ services
- n8n - self-hosted workflow runner with native Apify support
- Slack - notifications when runs complete or hit anomalies
- Google Sheets - one-click dataset to spreadsheet sync
- BigQuery and Snowflake - warehouse loads via webhook or schedule
🔗 Recommended Actors
- 🐙 GitHub Trending Scraper - track trending repos by language and time window
- 📦 NPM Packages Scraper - inspect Node.js package metadata and downloads
- 🔎 CrossRef Scraper - pull peer-reviewed computer science research papers
- 📚 Open Library Scraper - source competitive programming book metadata
- 🌐 Wikidata Entity Search Scraper - enrich profiles with structured entity links
💡 Pro Tip: browse the complete ParseForge collection for more data feeds across developer communities, education, and research.
🆘 Need Help? Open our contact form and a human will reply within one business day.
This Actor accesses publicly available data only. By using it you accept the responsibility to comply with the source's Terms of Service, rate limits, and applicable laws including data-protection regulations. The data is scraped on-demand from the upstream public API and is not cached or pre-stored by this Actor.