OpenDota Dota 2 Pro Matches Scraper avatar

OpenDota Dota 2 Pro Matches Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
OpenDota Dota 2 Pro Matches Scraper

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

9 days ago

Last modified

Share

ParseForge

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 itWhat they scrape OpenDota for
Esports analystsTracking hero pick and ban trends across the professional Dota 2 scene.
Fantasy Dota 2 playersStudying recent pro match results to inform roster decisions.
Dota 2 community content creatorsGathering match data for highlight reels, stats breakdowns, and articles.
Team managers and scoutsReviewing 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 keyReads public OpenDota data with no registration or Steam key required.
Four endpointsCollect pro matches, hero stats, pro players, or team rankings from one actor.
Flat outputEvery record arrives in a consistent, flat schema for easy analysis.
Scalable runsPull 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 ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When OpenDota changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst 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 collectedApproximate 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

  1. Create a free Apify account with $5 in credit.
  2. Open the OpenDota Dota 2 Pro Matches Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

QuestionAnswer
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.

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.