返回检索中心
智能体就绪 API 终端

Grant Hak

GET /api/knowledge/player-grant-hak-8J6PRM

cURL Request

curl -H "Accept: application/json" \
  https://picklegravity.com/api/knowledge/player-grant-hak-8J6PRM

实时数据响应 (JSON)

{
  "version": "2.6.0",
  "id": "player-grant-hak-8J6PRM",
  "type": "player",
  "data": {
    "dupr_id": "8J6PRM",
    "full_name": "Grant Hak",
    "gender": "MALE",
    "age": 26,
    "location": "Lawrenceville, GA, US",
    "profile_pic_url": null,
    "ratings": {
      "singles": 4.453,
      "singles_reliability": 4,
      "doubles": 4.646,
      "doubles_reliability": 91
    },
    "career": {
      "total_matches": 319,
      "wins": 174,
      "losses": 145,
      "avg_points_won_pct": 51.32,
      "avg_partner_dupr": 4.11,
      "avg_opponent_dupr": 4.23,
      "preferred_court": ""
    },
    "stats": {
      "sos": 4.674,
      "clutch_index": 0,
      "dpg": -5.04,
      "home_club": {
        "id": "club-rj-pickle-5416865514",
        "name": "RJ Pickle"
      }
    },
    "playstyle": {
      "power": 71,
      "control": 81,
      "agility": 81,
      "spin": 61,
      "stamina": 71,
      "playstyle": "Tactical Baseline Driver",
      "description": "A patient, tactical player who focuses on deep baseline drives and calculated court placement to draw opponent errors."
    },
    "streaks": {
      "current": 1,
      "max": 1
    },
    "chemistry": {
      "name": "Jason Vu",
      "dupr_id": "KDGOR6",
      "rating": "4.47",
      "matches": 8,
      "winRate": 13,
      "chemistryScore": 92,
      "chemistryDescription": "Calibrated counter-punching: Precision dinks force errors, allowing surgical poaching."
    },
    "dedication_matrix": {
      "total_matches": 51,
      "active_days": 36,
      "grid": [
        {
          "date": "2026-02-02",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-02-03",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-02-04",
          "dayOfWeek": 3,
          "count": 2
        },
        {
          "date": "2026-02-05",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-02-06",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-02-07",
          "dayOfWeek": 6,
          "count": 2
        },
        {
          "date": "2026-02-08",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-02-09",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-02-10",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-02-11",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-02-12",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-02-13",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-02-14",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-02-15",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-02-16",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-02-17",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-02-18",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-02-19",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-02-20",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-02-21",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-02-22",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-02-23",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-02-24",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-02-25",
          "dayOfWeek": 3,
          "count": 2
        },
        {
          "date": "2026-02-26",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-02-27",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-02-28",
          "dayOfWeek": 6,
          "count": 2
        },
        {
          "date": "2026-03-01",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-03-02",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-03-03",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-03-04",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-03-05",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-03-06",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-03-07",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-03-08",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-03-09",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-03-10",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-03-11",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-03-12",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-03-13",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-03-14",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-03-15",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-03-16",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-03-17",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-03-18",
          "dayOfWeek": 3,
          "count": 2
        },
        {
          "date": "2026-03-19",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-03-20",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-03-21",
          "dayOfWeek": 6,
          "count": 2
        },
        {
          "date": "2026-03-22",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-03-23",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-03-24",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-03-25",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-03-26",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-03-27",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-03-28",
          "dayOfWeek": 6,
          "count": 3
        },
        {
          "date": "2026-03-29",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-03-30",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-03-31",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-04-01",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-04-02",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-04-03",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-04-04",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-04-05",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-04-06",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-04-07",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-04-08",
          "dayOfWeek": 3,
          "count": 2
        },
        {
          "date": "2026-04-09",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-04-10",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-04-11",
          "dayOfWeek": 6,
          "count": 2
        },
        {
          "date": "2026-04-12",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-04-13",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-04-14",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-04-15",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-04-16",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-04-17",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-04-18",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-04-19",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-04-20",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-04-21",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-04-22",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-04-23",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-04-24",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-04-25",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-04-26",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-04-27",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-04-28",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-04-29",
          "dayOfWeek": 3,
          "count": 2
        },
        {
          "date": "2026-04-30",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-05-01",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-05-02",
          "dayOfWeek": 6,
          "count": 2
        },
        {
          "date": "2026-05-03",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-05-04",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-05-05",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-05-06",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-05-07",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-05-08",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-05-09",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-05-10",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-05-11",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-05-12",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-05-13",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-05-14",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-05-15",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-05-16",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-05-17",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-05-18",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-05-19",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-05-20",
          "dayOfWeek": 3,
          "count": 2
        },
        {
          "date": "2026-05-21",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-05-22",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-05-23",
          "dayOfWeek": 6,
          "count": 2
        },
        {
          "date": "2026-05-24",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-05-25",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-05-26",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-05-27",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-05-28",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-05-29",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-05-30",
          "dayOfWeek": 6,
          "count": 2
        },
        {
          "date": "2026-05-31",
          "dayOfWeek": 0,
          "count": 0
        },
        {
          "date": "2026-06-01",
          "dayOfWeek": 1,
          "count": 0
        },
        {
          "date": "2026-06-02",
          "dayOfWeek": 2,
          "count": 0
        },
        {
          "date": "2026-06-03",
          "dayOfWeek": 3,
          "count": 1
        },
        {
          "date": "2026-06-04",
          "dayOfWeek": 4,
          "count": 0
        },
        {
          "date": "2026-06-05",
          "dayOfWeek": 5,
          "count": 0
        },
        {
          "date": "2026-06-06",
          "dayOfWeek": 6,
          "count": 1
        },
        {
          "date": "2026-06-07",
          "dayOfWeek": 0,
          "count": 0
        }
      ]
    },
    "rating_trajectory": [
      {
        "match_id": "hist-90",
        "date": "2025-07-26",
        "rating": 4.507,
        "event_name": "Initial Progression Point",
        "outcome": "N/A"
      },
      {
        "match_id": "hist-75",
        "date": "2025-08-10",
        "rating": 4.538,
        "event_name": "Initial Progression Point",
        "outcome": "N/A"
      },
      {
        "match_id": "hist-60",
        "date": "2025-08-25",
        "rating": 4.554,
        "event_name": "Initial Progression Point",
        "outcome": "N/A"
      },
      {
        "match_id": "hist-45",
        "date": "2025-09-09",
        "rating": 4.568,
        "event_name": "Initial Progression Point",
        "outcome": "N/A"
      },
      {
        "match_id": "hist-30",
        "date": "2025-09-24",
        "rating": 4.597,
        "event_name": "Initial Progression Point",
        "outcome": "N/A"
      },
      {
        "match_id": "hist-15",
        "date": "2025-10-09",
        "rating": 4.63,
        "event_name": "Initial Progression Point",
        "outcome": "N/A"
      },
      {
        "match_id": "4903323029",
        "date": "2025-10-24",
        "rating": 4.584,
        "event_name": "The Kitchen Open Atlanta 2025 - Mens Doubles Skill: (4.5) Age: (16 To 39)",
        "outcome": "Loss"
      },
      {
        "match_id": "5746205946",
        "date": "2025-10-24",
        "rating": 4.613,
        "event_name": "The Kitchen Open Atlanta 2025 - Mens Doubles Skill: (4.5) Age: (16 To 39)",
        "outcome": "Loss"
      },
      {
        "match_id": "7432912625",
        "date": "2025-10-24",
        "rating": 4.587,
        "event_name": "The Kitchen Open Atlanta 2025 - Mens Doubles Skill: (4.5) Age: (16 To 39)",
        "outcome": "Loss"
      },
      {
        "match_id": "7677848020",
        "date": "2025-12-13",
        "rating": 4.655,
        "event_name": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ Bronze",
        "outcome": "Loss"
      },
      {
        "match_id": "4671333248",
        "date": "2025-12-13",
        "rating": 4.66,
        "event_name": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ SF",
        "outcome": "Loss"
      },
      {
        "match_id": "4578178949",
        "date": "2025-12-13",
        "rating": 4.663,
        "event_name": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ QF",
        "outcome": "Win"
      },
      {
        "match_id": "4931902969",
        "date": "2025-12-13",
        "rating": 4.608,
        "event_name": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ RR",
        "outcome": "Loss"
      },
      {
        "match_id": "7155849114",
        "date": "2025-12-14",
        "rating": 4.64,
        "event_name": "MTP 18th December Indoor Tournament / $1,000 Moneyball at More Than Pickleball - $1,000 Moneyball: DUPR 5.5 & below",
        "outcome": "Loss"
      },
      {
        "match_id": "8478425309",
        "date": "2025-12-14",
        "rating": 4.635,
        "event_name": "MTP 18th December Indoor Tournament / $1,000 Moneyball at More Than Pickleball - $1,000 Moneyball: DUPR 5.5 & below",
        "outcome": "Win"
      },
      {
        "match_id": "8041374168",
        "date": "2026-03-28",
        "rating": 4.564,
        "event_name": "March Masters @ Planet Pickle - $500 Standard Doubles Open (5.25 AND BELOW) ",
        "outcome": "Loss"
      },
      {
        "match_id": "6393843833",
        "date": "2026-03-28",
        "rating": 4.534,
        "event_name": "March Masters @ Planet Pickle - $500 Standard Doubles Open (5.25 AND BELOW) ",
        "outcome": "Loss"
      },
      {
        "match_id": "4501510664",
        "date": "2026-05-30",
        "rating": 4.673,
        "event_name": "Brick Wall Southeast #5",
        "outcome": "Loss"
      }
    ],
    "upcoming_matches": [
      {
        "match_id": "up-8J6PRM-1",
        "opponent_name": "Paul Olin",
        "opponent_id": "8K5XE7",
        "opponent_rating": 5.519,
        "opponent_pic_url": null,
        "date": "Saturday, June 13, 2026",
        "time": "10:00 AM",
        "location": "Rouge Woods Community Centre",
        "status": "Scheduled",
        "event_type": "League Ladder"
      },
      {
        "match_id": "up-8J6PRM-2",
        "opponent_name": "Jack Foster",
        "opponent_id": "1NRWQ6",
        "opponent_rating": 5.585,
        "opponent_pic_url": "https://images.weserv.nl/?url=https://prod-cdn.utrsports.net/v1/player/133494/images/profile/2c5baee7-9c0c-4648-a286-388b310fbe54.png",
        "date": "Tuesday, June 16, 2026",
        "time": "6:30 PM",
        "location": "L'Amoreaux Tennis Centre",
        "status": "Pending Confirmation",
        "event_type": "Practice Match"
      }
    ],
    "recent_matches": [
      {
        "match_id": "4501510664",
        "event": "Brick Wall Southeast #5",
        "date": "2026-05-30",
        "outcome": "Loss",
        "scores": "9-11",
        "location": ""
      },
      {
        "match_id": "8041374168",
        "event": "March Masters @ Planet Pickle - $500 Standard Doubles Open (5.25 AND BELOW) ",
        "date": "2026-03-28",
        "outcome": "Loss",
        "scores": "11-7",
        "location": ""
      },
      {
        "match_id": "6393843833",
        "event": "March Masters @ Planet Pickle - $500 Standard Doubles Open (5.25 AND BELOW) ",
        "date": "2026-03-28",
        "outcome": "Loss",
        "scores": "11-1",
        "location": ""
      },
      {
        "match_id": "7155849114",
        "event": "MTP 18th December Indoor Tournament / $1,000 Moneyball at More Than Pickleball - $1,000 Moneyball: DUPR 5.5 & below",
        "date": "2025-12-14",
        "outcome": "Loss",
        "scores": "11-6, 9-11, 11-9",
        "location": "Buford, GA"
      },
      {
        "match_id": "8478425309",
        "event": "MTP 18th December Indoor Tournament / $1,000 Moneyball at More Than Pickleball - $1,000 Moneyball: DUPR 5.5 & below",
        "date": "2025-12-14",
        "outcome": "Win",
        "scores": "8-11",
        "location": "Buford, GA"
      },
      {
        "match_id": "7677848020",
        "event": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ Bronze",
        "date": "2025-12-13",
        "outcome": "Loss",
        "scores": "15-12",
        "location": ""
      },
      {
        "match_id": "4671333248",
        "event": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ SF",
        "date": "2025-12-13",
        "outcome": "Loss",
        "scores": "15-13",
        "location": ""
      },
      {
        "match_id": "4578178949",
        "event": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ QF",
        "date": "2025-12-13",
        "outcome": "Win",
        "scores": "15-9",
        "location": ""
      },
      {
        "match_id": "4931902969",
        "event": "Dinkster Tour: Naughty Nice Dinking Mens 5.0+ RR",
        "date": "2025-12-13",
        "outcome": "Loss",
        "scores": "15-13",
        "location": ""
      },
      {
        "match_id": "4903323029",
        "event": "The Kitchen Open Atlanta 2025 - Mens Doubles Skill: (4.5) Age: (16 To 39)",
        "date": "2025-10-24",
        "outcome": "Loss",
        "scores": "15-9",
        "location": "Atlanta, GA"
      }
    ]
  },
  "canonical": "https://picklegravity.com/en/knowledge/player-grant-hak-8J6PRM"
}