Live
get_match_xg_statistics
statshub.comReturns xG, xGA, per-player shot aggregates, and complete non-empty shot records for a match from https://statshub.com.
Parameters3
Runs7
Updated3d ago
Operational7 runs · 100% succeeded
30 days ago90 days agoranfailednot checkedtoday
Playground
Runs on Notte and spends your workspace credits — what comes back is the live response, not a sample.
What is get_match_xg_statistics?
Returns xG, xGA, per-player shot aggregates, and complete non-empty shot records for a match from https://statshub.com. It runs on Notte's browser infrastructure and returns structured JSON, so you can call it like any other API — pass event_id, home_team_id, away_team_id and get the result back without maintaining a scraper.
Response
{
"event": {},
"shots": [
{}
],
"source": "<string>",
"message": "<string>",
"event_id": 0,
"away_team": {
"xg": 0,
"xga": 0,
"side": "<string>",
"goals": 0,
"players": [
{
"xg": 0,
"goals": 0,
"team_id": 0,
"penalties": 0,
"player_id": 0,
"team_name": "<string>",
"player_name": "<string>",
"saved_shots": 0,
"total_shots": 0,
"headed_shots": 0,
"missed_shots": 0,
"blocked_shots": 0,
"result_counts": {},
"non_penalty_xg": 0,
"shots_on_target": 0,
"body_part_counts": {},
"situation_counts": {},
"shots_outside_box": 0,
"headed_shots_on_target": 0,
"shots_outside_box_on_target": 0
}
],
"team_id": 0,
"penalties": 0,
"team_name": "<string>",
"saved_shots": 0,
"total_shots": 0,
"missed_shots": 0,
"blocked_shots": 0,
"non_penalty_xg": 0,
"shots_on_target": 0
},
"home_team": {
"xg": 0,
"xga": 0,
"side": "<string>",
"goals": 0,
"players": [
{
"xg": 0,
"goals": 0,
"team_id": 0,
"penalties": 0,
"player_id": 0,
"team_name": "<string>",
"player_name": "<string>",
"saved_shots": 0,
"total_shots": 0,
"headed_shots": 0,
"missed_shots": 0,
"blocked_shots": 0,
"result_counts": {},
"non_penalty_xg": 0,
"shots_on_target": 0,
"body_part_counts": {},
"situation_counts": {},
"shots_outside_box": 0,
"headed_shots_on_target": 0,
"shots_outside_box_on_target": 0
}
],
"team_id": 0,
"penalties": 0,
"team_name": "<string>",
"saved_shots": 0,
"total_shots": 0,
"missed_shots": 0,
"blocked_shots": 0,
"non_penalty_xg": 0,
"shots_on_target": 0
},
"shot_count": 0,
"shotmap_available": true
}Call it
curl --location 'https://us-prod.notte.cc/functions/eed9d0e9-a447-41ca-8342-4b1f643c9938/runs/start' \
--header 'x-notte-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"function_id": "eed9d0e9-a447-41ca-8342-4b1f643c9938",
"variables": {
"event_id": 16390484,
"home_team_id": 2729,
"away_team_id": 2730
}
}'Ask an agent
Paste this into Claude Code, Cursor or any MCP client to have an agent call this function for you.
prompt
Use the Anything API MCP server (https://anything.notte.cc/mcp). Call run(function_id="eed9d0e9-a447-41ca-8342-4b1f643c9938") — the "get_match_xg_statistics" function, which returns xG, xGA, per-player shot aggregates, and complete non-empty shot records for a match from https://statshub.com.. It takes event_id (int), home_team_id (int), away_team_id (int). Return the result as structured JSON.