OpenDota Dota 2 Pro Matches Scraper
Pricing
from $2.00 / 1,000 results
OpenDota Dota 2 Pro Matches Scraper
Scrapes Dota 2 pro match data, hero stats, pro players, and team rankings from OpenDota. Returns each record as a flat row for analysis.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Share
OpenDota Dota 2 Pro Matches Scraper
Scrape Dota 2 pro match data, hero stats, player rosters, and team rankings from OpenDota, up to a million records per run. Every record returns in a clean, flat schema ready for analysis. No API key required. Export to CSV, JSON, Excel, or XML.
The official Dota 2 API requires a Steam key and has strict rate limits. This actor reads the public OpenDota datasets directly, letting you pull recent professional matches, hero pick and win statistics, registered pro players, or team rankings. You choose the endpoint and how many records to return, and the actor delivers a consistent dataset every time.
| Who uses it | What they scrape OpenDota for |
|---|---|
| Esports analysts | Tracking hero pick and ban trends across the professional Dota 2 scene. |
| Fantasy Dota 2 players | Studying recent pro match results to inform roster decisions. |
| Dota 2 community content creators | Gathering match data for highlight reels, stats breakdowns, and articles. |
| Team managers and scouts | Reviewing player and team performance data from recent tournaments. |
What it does
This Actor collects data from one of four OpenDota endpoints and returns each record as a flat row.
- ๐ฎ Pro Matches endpoint: Returns recent professional Dota 2 games with match details.
- ๐ Hero Stats endpoint: Returns per-hero pick count, win count, and ban count across pro matches.
- ๐ค Pro Players endpoint: Returns a list of registered professional Dota 2 players.
- ๐ Teams endpoint: Returns a list of ranked professional Dota 2 teams.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with OpenDota data
๐ Analyze hero meta shifts.
An esports analyst pulls hero stats after each major tournament to track which heroes are rising or falling in the professional meta.
๐ฏ Scout player performance.
A team manager scrapes recent pro matches to review a potential recruit's hero pool, win rates, and match history.
๐ Power a stats blog or bot.
A community developer runs the pro matches endpoint daily to feed a Discord bot that posts recent game results and hero trends.
๐ Compare team rankings.
A fantasy league organizer pulls the teams list to seed a draft based on current professional rankings.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Reads public OpenDota data with no registration or Steam key required. |
| Four endpoints | Collect pro matches, hero stats, pro players, or team rankings from one actor. |
| Flat output | Every record arrives in a consistent, flat schema for easy analysis. |
| Scalable runs | Pull up to a million records per run to capture full tournament histories. |
How it compares
No other Store actor targets OpenDota the same way, so the honest comparison is with the alternatives teams actually weigh.
| OpenDota Dota 2 Pro Matches Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When OpenDota changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor by selecting one of four OpenDota endpoints and setting a maximum number of records to return. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10}
A larger pull:
{"maxItems": 200}
Pricing
Pay-per-result: $0.004 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.40 |
| 1,000 results | $4.00 |
| 10,000 results | $40.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the OpenDota Dota 2 Pro Matches Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to OpenDota through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/opendota-pro-matches-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting fewer records than my maxItems setting?
The actor returns only the records that exist on OpenDota at the time of the run. If you request 100 pro matches but only 50 recent games are tracked, you will receive 50 records.
The run finished but my dataset is empty.
Check that you selected the correct endpoint. The Pro Players and Teams endpoints return lists that may be smaller than expected. Also confirm that OpenDota is reachable; a temporary outage can cause an empty result.
I need match data older than what the Pro Matches endpoint returns.
The Pro Matches endpoint focuses on recent games. For historical professional match data, you may need to use the OpenDota web interface or a different API endpoint not covered by this actor.
The hero stats numbers do not match what I see on another site.
Different sites may track different sets of tournaments or update at different intervals. This actor pulls directly from OpenDota, so its numbers reflect OpenDota's own database.
FAQ
| Question | Answer |
|---|---|
| Do I need a Steam API key to use this? | No. This actor reads the public OpenDota API, which does not require authentication or a key. |
| What data does the Pro Matches endpoint return? | It returns recent professional Dota 2 games, including match ID, teams, players, duration, and result. The exact fields are shown in the sample output on the actor's page. |
| Can I filter matches by a specific team or player? | The actor pulls the full dataset from the chosen endpoint. You can filter the results after export using your own tools, but the actor itself does not apply team or player filters during the run. |
| How many matches can I scrape in one run? | You can set the maximum up to 1,000,000 records. The actual number returned depends on what is available from OpenDota at that moment. |
| Does this include pub games or only professional matches? | The Pro Matches endpoint returns only professional games. For public match data, you would need a different OpenDota endpoint or tool. |
| What is the difference between the Hero Stats and Pro Matches endpoints? | Pro Matches returns individual game records. Hero Stats returns aggregated counts of picks, wins, and bans for each hero across the professional scene. |
| Can I get data from a specific tournament? | The actor returns the most recent professional matches across all tracked tournaments. It does not filter by a specific league or event name. |
| How often is the OpenDota data updated? | OpenDota updates its professional match data frequently, usually within minutes of a game ending. Each run of this actor pulls the latest available data. |
| What format does the data export to? | You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Is there a risk of getting rate-limited? | The actor makes polite requests to the OpenDota API. For very large runs, the platform's built-in request management helps avoid hitting limits. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by OpenDota. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
