get_dota2_hero_statistics
opendota.comReads https://opendota.com and returns every Dota 2 hero with base attributes, roles, rank-bracket, professional, public, and turbo pick/win statistics and calculated rates.
Playground
Runs on Notte and spends your workspace credits — what comes back is the live response, not a sample.
What is get_dota2_hero_statistics?
Reads https://opendota.com and returns every Dota 2 hero with base attributes, roles, rank-bracket, professional, public, and turbo pick/win statistics and calculated rates. It runs on Notte's browser infrastructure and returns structured JSON, so you can call it like any other API — call it with no parameters and get the result back without maintaining a scraper.
Response
{
"heroes": [
{
"id": 0,
"img": "<string>",
"icon": "<string>",
"legs": 0,
"name": "<string>",
"1_win": 0,
"2_win": 0,
"3_win": 0,
"4_win": 0,
"5_win": 0,
"6_win": 0,
"7_win": 0,
"8_win": 0,
"roles": [
"<string>"
],
"1_pick": 0,
"2_pick": 0,
"3_pick": 0,
"4_pick": 0,
"5_pick": 0,
"6_pick": 0,
"7_pick": 0,
"8_pick": 0,
"base_mr": 0,
"pro_ban": 0,
"pro_win": 0,
"pub_win": 0,
"agi_gain": 0,
"base_agi": 0,
"base_int": 0,
"base_str": 0,
"int_gain": 0,
"pro_pick": 0,
"pub_pick": 0,
"str_gain": 0,
"base_mana": 0,
"turn_rate": 0,
"base_armor": 0,
"cm_enabled": true,
"day_vision": 0,
"move_speed": 0,
"turbo_wins": 0,
"attack_rate": 0,
"attack_type": "<string>",
"base_health": 0,
"turbo_picks": 0,
"attack_point": 0,
"attack_range": 0,
"night_vision": 0,
"primary_attr": "<string>",
"pub_win_trend": [
0
],
"localized_name": "<string>",
"pub_pick_trend": [
0
],
"base_attack_max": 0,
"base_attack_min": 0,
"base_mana_regen": 0,
"base_attack_time": 0,
"pro_ban_rate_pct": 0,
"pro_win_rate_pct": 0,
"projectile_speed": 0,
"pub_win_rate_pct": 0,
"turbo_wins_trend": [
0
],
"base_health_regen": 0,
"pro_pick_rate_pct": 0,
"pub_pick_rate_pct": 0,
"turbo_picks_trend": [
0
],
"turbo_win_rate_pct": 0,
"rank_1_win_rate_pct": 0,
"rank_2_win_rate_pct": 0,
"rank_3_win_rate_pct": 0,
"rank_4_win_rate_pct": 0,
"rank_5_win_rate_pct": 0,
"rank_6_win_rate_pct": 0,
"rank_7_win_rate_pct": 0,
"rank_8_win_rate_pct": 0,
"turbo_pick_rate_pct": 0,
"rank_1_pick_rate_pct": 0,
"rank_2_pick_rate_pct": 0,
"rank_3_pick_rate_pct": 0,
"rank_4_pick_rate_pct": 0,
"rank_5_pick_rate_pct": 0,
"rank_6_pick_rate_pct": 0,
"rank_7_pick_rate_pct": 0,
"rank_8_pick_rate_pct": 0,
"pro_pick_ban_rate_pct": 0
}
]
}Call it
curl --location 'https://us-prod.notte.cc/functions/f146e503-8289-4660-bf2b-773d88fd4d81/runs/start' \
--header 'x-notte-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"function_id": "f146e503-8289-4660-bf2b-773d88fd4d81",
"variables": {}
}'Ask an agent
Paste this into Claude Code, Cursor or any MCP client to have an agent call this function for you.
Use the Anything API MCP server (https://anything.notte.cc/mcp). Call run(function_id="f146e503-8289-4660-bf2b-773d88fd4d81") — the "get_dota2_hero_statistics" function, which reads https://opendota.com and returns every Dota 2 hero with base attributes, roles, rank-bracket, professional, public, and turbo pick/win statistics and calculated rates.. It takes no parameters. Return the result as structured JSON.