Marketplace
No threads yet
Live

get_match_xg_statistics

statshub.com

Returns 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 agotoday

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.