Product
Jentic OSThe workplace. An in-house AI platform for every employeeJentic OneSafe access. Agents reach your systems without holding keysJentic AIRThe foundation. Gets your existing platforms ready for AI
Pricing
Developers

GET STARTED

API DirectoryBrowse 10,000+ APIs Ready For AI Agent IntegrationDocumentationGuides and API reference

TOOLS

API ScoringCheck your AI Readiness using our scorecardArazzo UIVisualize Arazzo Workflows As Interactive DocumentationArazzo EditorBuild And Edit Multi-Step API Workflows Visually

COMMUNITY

GitHubOpen source projects and examplesOpen StandardsBuilt on open specs. Never locked in.
Resources
Company
About UsOur mission and teamCareersJoin our teamContactGet in touch
Try it now
Jentic OSJentic OneJentic AIR
Pricing
API DirectoryDocumentationAPI ScoringArazzo UIArazzo EditorGitHubOpen Standards
Resources
About UsCareersContact
Try it now
JenticJentic
Products
  • Jentic OS
  • Jentic One
  • Jentic AIR
For Developers
  • API Directory
  • Documentation
  • GitHub
Company
  • About Jentic
  • Careers
  • Contact Us
  • Trust Centre
ISO/IEC 27001:2022 certification badge issued by Prescient SecurityISO/IEC 27001:2022 certification badge issued by Prescient Security

Information Security Management System

Certified to ISO/IEC 27001:2022 by Prescient Security

AICPA SOC for Service Organizations logoAICPA SOC for Service Organizations logo

SOC 2® Type 1 report

Audited by Prescient Assurance

Terms & Conditions•Privacy Policy•
© 2026 Jentic Technology Ltd. All rights reserved.
2 Grattan Court East, Dublin, D02 VX86, Ireland
Switch to light modeSwitch to dark mode
APIs / Data Enrichment / OpenDota API
OpenDota API logo

OpenDota API

43
AI ReadinessFoundational (D)43/100
See full scorecard
Official vendor OpenAPI document · agent-readyData EnrichmentData TransformationapiKey55 EndpointsREST

For Agents

Retrieve Dota 2 match data, player histories, hero and item statistics, and professional league information across 55 endpoints derived from parsed game replays.

Use for: Get the full parsed details of a specific Dota 2 match by match ID, Retrieve a player's win-loss record and recent matches, Find which heroes a player performs best with, List the most-played teammates of a given player

Not supported: Does not handle live in-game state, account authentication, or matchmaking actions - use for read-only Dota 2 statistics, parsed match data, and pro-scene metadata only.

The OpenDota API is the open-data layer over Dota 2 match telemetry, exposing parsed match details, player histories, hero and item statistics, professional team metadata, and live league standings extracted from replay files. It supports the broader Dota 2 community's analytics tools, statistics sites, and third-party trackers with 55 endpoints spanning matches, players, heroes, items, leagues, teams, and aggregate metrics. An optional api_key query parameter raises rate limits for high-volume consumers.

Jentic One on GithubView OpenAPI Document

Install Jentic One Beta

Connect the OpenDota API to your agent

Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the OpenDota API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.

Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.

1

Step 1: Jentic One Host machine

# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fopendota.com%2Fopendota" | sh
2

Step 2: Agent machine

# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fopendota.com%2Fopendota" | sh
jentic register       # connects your agent to your Jentic One instance

Jentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.

Capabilities

What an agent can do with OpenDota API.

Fetch full parsed match details including per-player gold, XP, and combat events via /matches/{match_id}

Build a player profile by combining /players/{account_id}, /players/{account_id}/wl, and /players/{account_id}/recentMatches

Retrieve a player's per-hero and per-peer statistics through /players/{account_id}/heroes and /players/{account_id}/peers

Power leaderboards and tournament trackers using league, team, and pro-match aggregate endpoints

Compute meta analytics from hero, item, and rank-tier aggregate stats

Trigger fresh replay parsing for un-parsed public matches via /request/{job_id}

Use Cases

Patterns agents use OpenDota API for, with concrete tasks.

★ Player Stats Dashboard

Build a Dota 2 player dashboard showing recent matches, win-loss record, hero proficiency, and top teammates. The OpenDota API exposes one player profile endpoint plus a set of nested resources (wl, recentMatches, heroes, peers, totals, counts) that combine into a complete dashboard with around six requests per profile load.

For account_id 76561198015862139, call /players/{id}, /players/{id}/wl, and /players/{id}/heroes and return the player's win rate plus top three heroes.

Match Replay Analytics

Pull parsed match data including per-minute gold and XP, ability uses, kill events, and item timings via /matches/{match_id}. Used by post-game analytics sites that surface mistakes, rotations, and team-fight outcomes. If a public match is unparsed, request a parse via /request/{job_id} and poll for completion.

Call /matches/7456000123 and return the radiant and dire net worth at minute 20 plus the kill score at that timestamp.

Pro Scene Tracker

Track active professional leagues, teams, and pro matches by combining league, team, and pro-match aggregate endpoints. Powers community tournament trackers that show standings, recent results, and player rosters during major events without scraping third-party sites.

List currently active leagues from the leagues endpoint and return their league_id, name, and tier.

Agent-Driven Match Lookup

An AI agent answering Dota 2 questions can use Jentic to discover the right OpenDota endpoint for a query like "how did Player X do in their last 10 ranked matches?". Jentic returns /players/{account_id}/recentMatches with the input schema; the agent calls it and summarises the result. The optional api_key keeps the agent within free-tier rate limits at scale.

Through Jentic, find the operation for "recent matches for a player" and call it with account_id supplied by the user.

Key Endpoints

55 endpoints — the opendota api is the open-data layer over dota 2 match telemetry, exposing parsed match details, player histories, hero and item statistics, professional team metadata, and live league standings extracted from replay files.

METHOD

PATH

DESCRIPTION

GET

/matches/{match_id}

Get parsed match details

GET

/players/{account_id}

Get a player profile

GET

/players/{account_id}/wl

Get a player's win-loss record

GET

/players/{account_id}/recentMatches

List recent matches for a player

GET

/players/{account_id}/heroes

Get a player's per-hero performance

GET

/players/{account_id}/peers

Get a player's most-played teammates

GET

/players/{account_id}/totals

Get aggregate per-stat totals for a player

GET

/players/{account_id}/counts

Get count breakdowns by lane, role, and result

GET

/matches/{match_id}

Get parsed match details

GET

/players/{account_id}

Get a player profile

GET

/players/{account_id}/wl

Get a player's win-loss record

GET

/players/{account_id}/recentMatches

List recent matches for a player

GET

/players/{account_id}/heroes

Get a player's per-hero performance

GET

/players/{account_id}/peers

Get a player's most-played teammates

GET

/players/{account_id}/totals

Get aggregate per-stat totals for a player

GET

/players/{account_id}/counts

Get count breakdowns by lane, role, and result

Jentic AI Readiness Score

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

O

OpenDota API

- Foundational (D)
43/100
48
Foundational Compliance
55
Developer Experience & Jentic Compatibility
56
AI-Readiness & Agent Experience
93
Agent Usability
15
Security
48
AI Discoverability
Powered by JenticScoring Framework 1.0.0 | Scoring Engine 0.4.0
Show dimension breakdown
48

Foundational Compliance

Base layer of spec validity and structural soundness.

Grade: D+Signals: 4
93%

Lint Results

Aggregated quality score from linter diagnostics, weighted by severity.

100%

Resolution Completeness

Percentage of `$ref` references that resolve successfully.

0%

Specification Validity

Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).

0%

Structural Integrity

Structural correctness score based on schema issues using logarithmic dampening.

55

Developer Experience & Jentic Compatibility

Clarity, completeness, and ingestion readiness for developers and tooling.

Grade: CSignals: 4
3%

Example Density

How richly the API is illustrated with examples.

100%

Example Validity

Percentage of examples that conform to their schemas.

25%

Response Coverage

Percentage of operations with complete response definitions (success, client error, server error).

93%

Tooling Readiness

Health of API ingestion, bundling, and resolution within Jentic pipelines.

56

AI-Readiness & Agent Experience

Semantic breadth, depth, and agent comprehension for AI systems.

Grade: CSignals: 4
74%

Description Coverage

Coverage of descriptions across API elements.

0%

Error Standardization

Coverage of RFC 9457 Problem Details for error responses.

100%

OperationId Quality

Coverage, uniqueness, and casing consistency of operationIds for AI inference.

50%

Summary Coverage

Coverage of summaries across operations/tags/info.

93

Agent Usability

Functional utility, complexity comfort, and AI orchestration readiness.

Grade: A+Signals: 1
93%

Complexity Comfort

Agent comfort level based on API operational and structural complexity.

15

Security

Trust, risk posture, and security compliance.

Grade: FSignals: 1
15%

Authentication Strength

Average quality of security schemes based on authentication method strength (weakest link for OAuth2).

48

AI Discoverability

Findability, semantic richness, and reasoning readiness.

Grade: D+Signals: 1
48%

Descriptive Richness

Clarity and depth of descriptions across API elements.

View full reportHow the score is calculatedMore about the dimensions

Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

Score your own APIScoring CLI agent skill
npx @jentic/api-scorecard-cli score <openapi-url>

Why Jentic?

What agents get from Jentic-routed access to this vendor.

Setup

Wiring the OpenDota API by hand means managing the optional api_key for higher rate limits, appending it to the query string, and shaping match and player queries yourself. Through Jentic you install once, import the OpenDota API from the API Directory, store the key once, and your agent calls it.

Permission scoping

The API puts the match id and account id in the URL path (/matches/{match_id}, /players/{account_id}), so a rule can pin your agent to per-player work: it can read that player's win-loss, recent matches, and hero stats. You choose the operations it may call, and since this is read-only, nothing beyond that set runs.

Credential isolation

Your optional OpenDota api_key is stored once, encrypted, by your own Jentic One instance and appended to the api_key query parameter at execution time. It never enters the agent's prompt, logs, or context.

Intent-based discovery

Agents search Jentic by intent such as 'recent matches for a Dota 2 player' or 'parsed match details', and Jentic returns the matching OpenDota operation with its account_id or match_id schema so the agent calls the right endpoint without browsing the reference docs.

Related APIs

Alternatives and complements available in the Jentic catalogue.

Complementary

Steam Web API

→

Source of Dota 2 player and match data that OpenDota augments with replay parsing

Use Steam Web API for raw Dota 2 endpoints from Valve; use OpenDota for parsed match details and aggregates.

Alternative

Riot Games API

→

Equivalent stats API for League of Legends rather than Dota 2

Choose Riot Games for League of Legends analytics; choose OpenDota for Dota 2.

Alternative

PandaScore API

→

Multi-game esports data covering Dota 2 plus other titles in one API

Choose PandaScore when covering multiple esports titles in one product; choose OpenDota for deepest Dota-specific match data.

FAQs

Specific to using OpenDota API through Jentic.

What authentication does the OpenDota API use?

OpenDota accepts an optional api_key query parameter; calls without a key fall under a lower public rate limit. Jentic stores the api_key encrypted in your Jentic One instance and appends it to each request's query string at execution, keeping the value out of the agent's prompt context.

Can I get a player's recent matches with the OpenDota API?

Yes. Call /players/{account_id}/recentMatches to get the most recent 20 matches for a Dota 2 account, with match ID, hero, kills/deaths/assists, duration, and win flag for each. Combine with /players/{account_id}/wl for an aggregate win-loss view.

What are the rate limits for the OpenDota API?

The free tier permits roughly 60 requests per minute and 2,000 per day; an api_key raises the daily ceiling. Heavy consumers should use OpenDota's paid plan tiers documented on the OpenDota website. On 429 responses, back off and retry.

How do I trigger replay parsing for a match through Jentic?

Use the Jentic search query "request a Dota 2 match parse". Jentic returns /request/{job_id} with the input schema; the agent supplies the match_id and polls /request/{job_id} until the parse completes. Run it through Jentic One, the self-hosted execution layer.

Is the OpenDota API free?

Yes, the public tier is free for individual and community use. OpenDota offers paid plans for higher rate limits and commercial use, billed per call volume.

How do I look up a Dota 2 match by ID with the OpenDota API?

GET /matches/{match_id} returns the full match record including team and per-player stats. If parsed_at is null, the match has not yet been replay-parsed; trigger a parse via /request/{job_id} or fall back to the unparsed summary.

Can I limit what my agent is allowed to do with the OpenDota API?

Yes. Because you run Jentic One yourself, you write the rules that decide which OpenDota operations your agent may call and which credentials it may use. The OpenDota API is read-only and puts the match ID and account ID in the URL path (/matches/{match_id}, /players/{account_id}), so you can pin an agent to per-player work such as reading a player's win-loss, recent matches, and hero stats while excluding every other endpoint. Only the operations you approve run, and your api_key stays under your control.

GET STARTED

Start building with OpenDota API

Explore with Jentic One
View OpenAPI Document