2ae8a5697e
Research (verified against live MLB Stats / ESPN / The Odds APIs): - specs/propline-audit.md — every stat_type mapped against our 4-layer pipeline; real MLB boxscore fields; sport coverage status; pipeline gap analysis. - specs/vyndr-roadmap.md — priority-ordered Sessions 57–64 + coverage targets. - scripts/propline-audit.js + specs/audit-data/ (raw capture). Headline bug: oddsNormalizer mapped batter_rbis → 'rbis' while the whole grade/feature/outcome chain keys on 'rbi' — every PropLine RBI prop silently failed to grade AND settle. Fixed (+ regression test). Phase 4 — wired missing MLB stats end-to-end: - PropLine MLB markets 6 → 12 (+runs, walks, doubles, earned_runs, hits_allowed, outs — same request, no extra quota). - doubles/outs/triples added to featureCache + outcomeService MLB_LOG_FIELD and all three grade whitelists (analyze/scan/validation.py). Phase 6 — pipeline resilience: - opsNotify.js: ntfy alerts (never throws, test-disabled). Snapshot success/ stale/failure alerts; retry-once on hard odds error (not on empty slate). - Missed-cron watchdog (mostRecentExpectedSlot/isSnapshotOverdue); status probe now returns `overdue`. Coverage truth: MLB is the only end-to-end-live sport; outcome settlement is MLB-only (WNBA/NBA/soccer never settle) — documented as the #1 roadmap gap. Backend 2276 → 2289 tests (+13). Web build exit 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
876 lines
21 KiB
JSON
876 lines
21 KiB
JSON
{
|
|
"generatedAt": "2026-07-10T20:48:09.307Z",
|
|
"sections": {
|
|
"proplineInventory": {
|
|
"nba": {
|
|
"sportKey": "basketball_nba",
|
|
"requested": [
|
|
{
|
|
"market": "player_points",
|
|
"stat_type": "points"
|
|
},
|
|
{
|
|
"market": "player_rebounds",
|
|
"stat_type": "rebounds"
|
|
},
|
|
{
|
|
"market": "player_assists",
|
|
"stat_type": "assists"
|
|
},
|
|
{
|
|
"market": "player_threes",
|
|
"stat_type": "threes"
|
|
},
|
|
{
|
|
"market": "player_blocks",
|
|
"stat_type": "blocks"
|
|
},
|
|
{
|
|
"market": "player_steals",
|
|
"stat_type": "steals"
|
|
}
|
|
]
|
|
},
|
|
"wnba": {
|
|
"sportKey": "basketball_wnba",
|
|
"requested": [
|
|
{
|
|
"market": "player_points",
|
|
"stat_type": "points"
|
|
},
|
|
{
|
|
"market": "player_rebounds",
|
|
"stat_type": "rebounds"
|
|
},
|
|
{
|
|
"market": "player_assists",
|
|
"stat_type": "assists"
|
|
},
|
|
{
|
|
"market": "player_threes",
|
|
"stat_type": "threes"
|
|
}
|
|
]
|
|
},
|
|
"mlb": {
|
|
"sportKey": "baseball_mlb",
|
|
"requested": [
|
|
{
|
|
"market": "batter_hits",
|
|
"stat_type": "hits"
|
|
},
|
|
{
|
|
"market": "batter_home_runs",
|
|
"stat_type": "home_runs"
|
|
},
|
|
{
|
|
"market": "batter_total_bases",
|
|
"stat_type": "total_bases"
|
|
},
|
|
{
|
|
"market": "batter_rbis",
|
|
"stat_type": "rbis"
|
|
},
|
|
{
|
|
"market": "batter_stolen_bases",
|
|
"stat_type": "stolen_bases"
|
|
},
|
|
{
|
|
"market": "pitcher_strikeouts",
|
|
"stat_type": "strikeouts"
|
|
}
|
|
]
|
|
},
|
|
"nfl": {
|
|
"sportKey": "football_nfl",
|
|
"requested": [
|
|
{
|
|
"market": "player_pass_yds",
|
|
"stat_type": "passing_yards"
|
|
},
|
|
{
|
|
"market": "player_rush_yds",
|
|
"stat_type": "rushing_yards"
|
|
},
|
|
{
|
|
"market": "player_reception_yds",
|
|
"stat_type": "receiving_yards"
|
|
},
|
|
{
|
|
"market": "player_receptions",
|
|
"stat_type": "receptions"
|
|
},
|
|
{
|
|
"market": "player_anytime_td",
|
|
"stat_type": "anytime_td"
|
|
},
|
|
{
|
|
"market": "player_pass_tds",
|
|
"stat_type": "pass_tds"
|
|
}
|
|
]
|
|
},
|
|
"nhl": {
|
|
"sportKey": "hockey_nhl",
|
|
"requested": [
|
|
{
|
|
"market": "player_goals",
|
|
"stat_type": "goals"
|
|
},
|
|
{
|
|
"market": "player_shots_on_goal",
|
|
"stat_type": "shots_on_goal"
|
|
},
|
|
{
|
|
"market": "goalie_saves",
|
|
"stat_type": "saves"
|
|
}
|
|
]
|
|
},
|
|
"ncaab": {
|
|
"sportKey": "basketball_ncaab",
|
|
"requested": [
|
|
{
|
|
"market": "player_points",
|
|
"stat_type": "points"
|
|
},
|
|
{
|
|
"market": "player_rebounds",
|
|
"stat_type": "rebounds"
|
|
},
|
|
{
|
|
"market": "player_assists",
|
|
"stat_type": "assists"
|
|
}
|
|
]
|
|
},
|
|
"_allMappedMarkets": [
|
|
{
|
|
"market": "player_points",
|
|
"stat_type": "points"
|
|
},
|
|
{
|
|
"market": "player_rebounds",
|
|
"stat_type": "rebounds"
|
|
},
|
|
{
|
|
"market": "player_assists",
|
|
"stat_type": "assists"
|
|
},
|
|
{
|
|
"market": "player_threes",
|
|
"stat_type": "threes"
|
|
},
|
|
{
|
|
"market": "player_blocks",
|
|
"stat_type": "blocks"
|
|
},
|
|
{
|
|
"market": "player_steals",
|
|
"stat_type": "steals"
|
|
},
|
|
{
|
|
"market": "player_points_rebounds_assists",
|
|
"stat_type": "pra"
|
|
},
|
|
{
|
|
"market": "player_turnovers",
|
|
"stat_type": "turnovers"
|
|
},
|
|
{
|
|
"market": "batter_hits",
|
|
"stat_type": "hits"
|
|
},
|
|
{
|
|
"market": "batter_home_runs",
|
|
"stat_type": "home_runs"
|
|
},
|
|
{
|
|
"market": "batter_total_bases",
|
|
"stat_type": "total_bases"
|
|
},
|
|
{
|
|
"market": "batter_rbis",
|
|
"stat_type": "rbis"
|
|
},
|
|
{
|
|
"market": "batter_runs",
|
|
"stat_type": "runs"
|
|
},
|
|
{
|
|
"market": "batter_stolen_bases",
|
|
"stat_type": "stolen_bases"
|
|
},
|
|
{
|
|
"market": "batter_singles",
|
|
"stat_type": "singles"
|
|
},
|
|
{
|
|
"market": "batter_doubles",
|
|
"stat_type": "doubles"
|
|
},
|
|
{
|
|
"market": "batter_walks",
|
|
"stat_type": "walks"
|
|
},
|
|
{
|
|
"market": "batter_strikeouts",
|
|
"stat_type": "batter_strikeouts"
|
|
},
|
|
{
|
|
"market": "pitcher_strikeouts",
|
|
"stat_type": "strikeouts"
|
|
},
|
|
{
|
|
"market": "pitcher_earned_runs",
|
|
"stat_type": "earned_runs"
|
|
},
|
|
{
|
|
"market": "pitcher_hits_allowed",
|
|
"stat_type": "hits_allowed"
|
|
},
|
|
{
|
|
"market": "pitcher_outs",
|
|
"stat_type": "outs"
|
|
},
|
|
{
|
|
"market": "player_pass_yds",
|
|
"stat_type": "passing_yards"
|
|
},
|
|
{
|
|
"market": "player_pass_yards",
|
|
"stat_type": "passing_yards"
|
|
},
|
|
{
|
|
"market": "player_pass_tds",
|
|
"stat_type": "pass_tds"
|
|
},
|
|
{
|
|
"market": "player_pass_completions",
|
|
"stat_type": "pass_completions"
|
|
},
|
|
{
|
|
"market": "player_pass_attempts",
|
|
"stat_type": "pass_attempts"
|
|
},
|
|
{
|
|
"market": "player_pass_interceptions",
|
|
"stat_type": "interceptions"
|
|
},
|
|
{
|
|
"market": "player_rush_yds",
|
|
"stat_type": "rushing_yards"
|
|
},
|
|
{
|
|
"market": "player_rush_yards",
|
|
"stat_type": "rushing_yards"
|
|
},
|
|
{
|
|
"market": "player_rush_attempts",
|
|
"stat_type": "rush_attempts"
|
|
},
|
|
{
|
|
"market": "player_rush_tds",
|
|
"stat_type": "rush_tds"
|
|
},
|
|
{
|
|
"market": "player_receptions",
|
|
"stat_type": "receptions"
|
|
},
|
|
{
|
|
"market": "player_reception_yds",
|
|
"stat_type": "receiving_yards"
|
|
},
|
|
{
|
|
"market": "player_receiving_yards",
|
|
"stat_type": "receiving_yards"
|
|
},
|
|
{
|
|
"market": "player_reception_tds",
|
|
"stat_type": "reception_tds"
|
|
},
|
|
{
|
|
"market": "player_anytime_td",
|
|
"stat_type": "anytime_td"
|
|
},
|
|
{
|
|
"market": "player_kicking_points",
|
|
"stat_type": "kicking_points"
|
|
},
|
|
{
|
|
"market": "player_goals",
|
|
"stat_type": "goals"
|
|
},
|
|
{
|
|
"market": "player_shots_on_target",
|
|
"stat_type": "shots_on_target"
|
|
},
|
|
{
|
|
"market": "player_shots",
|
|
"stat_type": "shots"
|
|
},
|
|
{
|
|
"market": "player_tackles",
|
|
"stat_type": "tackles"
|
|
},
|
|
{
|
|
"market": "player_cards",
|
|
"stat_type": "cards"
|
|
},
|
|
{
|
|
"market": "player_corners",
|
|
"stat_type": "corners"
|
|
},
|
|
{
|
|
"market": "player_saves",
|
|
"stat_type": "saves"
|
|
},
|
|
{
|
|
"market": "player_goals_conceded",
|
|
"stat_type": "goals_conceded"
|
|
},
|
|
{
|
|
"market": "player_passes",
|
|
"stat_type": "passes"
|
|
},
|
|
{
|
|
"market": "team_clean_sheet",
|
|
"stat_type": "clean_sheet"
|
|
},
|
|
{
|
|
"market": "player_shots_on_goal",
|
|
"stat_type": "shots_on_goal"
|
|
},
|
|
{
|
|
"market": "goalie_saves",
|
|
"stat_type": "saves"
|
|
}
|
|
],
|
|
"_hasKeys": false
|
|
},
|
|
"oddsApiActiveSports": [
|
|
{
|
|
"key": "americanfootball_cfl",
|
|
"group": "American Football",
|
|
"title": "CFL"
|
|
},
|
|
{
|
|
"key": "americanfootball_ncaaf",
|
|
"group": "American Football",
|
|
"title": "NCAAF"
|
|
},
|
|
{
|
|
"key": "americanfootball_ncaaf_championship_winner",
|
|
"group": "American Football",
|
|
"title": "NCAAF Championship Winner"
|
|
},
|
|
{
|
|
"key": "americanfootball_nfl",
|
|
"group": "American Football",
|
|
"title": "NFL"
|
|
},
|
|
{
|
|
"key": "americanfootball_nfl_preseason",
|
|
"group": "American Football",
|
|
"title": "NFL Preseason"
|
|
},
|
|
{
|
|
"key": "americanfootball_nfl_super_bowl_winner",
|
|
"group": "American Football",
|
|
"title": "NFL Super Bowl Winner"
|
|
},
|
|
{
|
|
"key": "aussierules_afl",
|
|
"group": "Aussie Rules",
|
|
"title": "AFL"
|
|
},
|
|
{
|
|
"key": "baseball_milb",
|
|
"group": "Baseball",
|
|
"title": "MiLB"
|
|
},
|
|
{
|
|
"key": "baseball_mlb",
|
|
"group": "Baseball",
|
|
"title": "MLB"
|
|
},
|
|
{
|
|
"key": "baseball_mlb_world_series_winner",
|
|
"group": "Baseball",
|
|
"title": "MLB World Series Winner"
|
|
},
|
|
{
|
|
"key": "baseball_npb",
|
|
"group": "Baseball",
|
|
"title": "NPB"
|
|
},
|
|
{
|
|
"key": "basketball_nba_summer_league",
|
|
"group": "Basketball",
|
|
"title": "NBA Summer League"
|
|
},
|
|
{
|
|
"key": "basketball_wnba",
|
|
"group": "Basketball",
|
|
"title": "WNBA"
|
|
},
|
|
{
|
|
"key": "boxing_boxing",
|
|
"group": "Boxing",
|
|
"title": "Boxing"
|
|
},
|
|
{
|
|
"key": "cricket_international_t20",
|
|
"group": "Cricket",
|
|
"title": "International Twenty20"
|
|
},
|
|
{
|
|
"key": "cricket_odi",
|
|
"group": "Cricket",
|
|
"title": "One Day Internationals"
|
|
},
|
|
{
|
|
"key": "cricket_t20_blast",
|
|
"group": "Cricket",
|
|
"title": "T20 Blast"
|
|
},
|
|
{
|
|
"key": "golf_the_open_championship_winner",
|
|
"group": "Golf",
|
|
"title": "The Open Winner"
|
|
},
|
|
{
|
|
"key": "lacrosse_pll",
|
|
"group": "Lacrosse",
|
|
"title": "PLL"
|
|
},
|
|
{
|
|
"key": "mma_mixed_martial_arts",
|
|
"group": "Mixed Martial Arts",
|
|
"title": "MMA"
|
|
},
|
|
{
|
|
"key": "politics_us_presidential_election_winner",
|
|
"group": "Politics",
|
|
"title": "US Presidential Elections Winner"
|
|
},
|
|
{
|
|
"key": "rugbyleague_nrl",
|
|
"group": "Rugby League",
|
|
"title": "NRL"
|
|
},
|
|
{
|
|
"key": "soccer_argentina_primera_division",
|
|
"group": "Soccer",
|
|
"title": "Primera División - Argentina"
|
|
},
|
|
{
|
|
"key": "soccer_austria_bundesliga",
|
|
"group": "Soccer",
|
|
"title": "Austrian Football Bundesliga"
|
|
},
|
|
{
|
|
"key": "soccer_brazil_campeonato",
|
|
"group": "Soccer",
|
|
"title": "Brazil Série A"
|
|
},
|
|
{
|
|
"key": "soccer_brazil_serie_b",
|
|
"group": "Soccer",
|
|
"title": "Brazil Série B"
|
|
},
|
|
{
|
|
"key": "soccer_china_superleague",
|
|
"group": "Soccer",
|
|
"title": "Super League - China"
|
|
},
|
|
{
|
|
"key": "soccer_conmebol_copa_libertadores",
|
|
"group": "Soccer",
|
|
"title": "Copa Libertadores"
|
|
},
|
|
{
|
|
"key": "soccer_conmebol_copa_sudamericana",
|
|
"group": "Soccer",
|
|
"title": "Copa Sudamericana"
|
|
},
|
|
{
|
|
"key": "soccer_denmark_superliga",
|
|
"group": "Soccer",
|
|
"title": "Denmark Superliga"
|
|
},
|
|
{
|
|
"key": "soccer_efl_champ",
|
|
"group": "Soccer",
|
|
"title": "Championship"
|
|
},
|
|
{
|
|
"key": "soccer_england_efl_cup",
|
|
"group": "Soccer",
|
|
"title": "EFL Cup"
|
|
},
|
|
{
|
|
"key": "soccer_england_league1",
|
|
"group": "Soccer",
|
|
"title": "League 1"
|
|
},
|
|
{
|
|
"key": "soccer_england_league2",
|
|
"group": "Soccer",
|
|
"title": "League 2"
|
|
},
|
|
{
|
|
"key": "soccer_epl",
|
|
"group": "Soccer",
|
|
"title": "EPL"
|
|
},
|
|
{
|
|
"key": "soccer_fifa_world_cup",
|
|
"group": "Soccer",
|
|
"title": "FIFA World Cup"
|
|
},
|
|
{
|
|
"key": "soccer_fifa_world_cup_winner",
|
|
"group": "Soccer",
|
|
"title": "FIFA World Cup Winner"
|
|
},
|
|
{
|
|
"key": "soccer_finland_veikkausliiga",
|
|
"group": "Soccer",
|
|
"title": "Veikkausliiga - Finland"
|
|
},
|
|
{
|
|
"key": "soccer_france_ligue_one",
|
|
"group": "Soccer",
|
|
"title": "Ligue 1 - France"
|
|
},
|
|
{
|
|
"key": "soccer_germany_bundesliga",
|
|
"group": "Soccer",
|
|
"title": "Bundesliga - Germany"
|
|
},
|
|
{
|
|
"key": "soccer_germany_bundesliga2",
|
|
"group": "Soccer",
|
|
"title": "Bundesliga 2 - Germany"
|
|
},
|
|
{
|
|
"key": "soccer_germany_dfb_pokal",
|
|
"group": "Soccer",
|
|
"title": "DFB-Pokal"
|
|
},
|
|
{
|
|
"key": "soccer_germany_liga3",
|
|
"group": "Soccer",
|
|
"title": "3. Liga - Germany"
|
|
},
|
|
{
|
|
"key": "soccer_italy_serie_a",
|
|
"group": "Soccer",
|
|
"title": "Serie A - Italy"
|
|
},
|
|
{
|
|
"key": "soccer_korea_kleague1",
|
|
"group": "Soccer",
|
|
"title": "K League 1"
|
|
},
|
|
{
|
|
"key": "soccer_league_of_ireland",
|
|
"group": "Soccer",
|
|
"title": "League of Ireland"
|
|
},
|
|
{
|
|
"key": "soccer_mexico_ligamx",
|
|
"group": "Soccer",
|
|
"title": "Liga MX"
|
|
},
|
|
{
|
|
"key": "soccer_netherlands_eredivisie",
|
|
"group": "Soccer",
|
|
"title": "Dutch Eredivisie"
|
|
},
|
|
{
|
|
"key": "soccer_norway_eliteserien",
|
|
"group": "Soccer",
|
|
"title": "Eliteserien - Norway"
|
|
},
|
|
{
|
|
"key": "soccer_russia_premier_league",
|
|
"group": "Soccer",
|
|
"title": "Premier League - Russia"
|
|
},
|
|
{
|
|
"key": "soccer_spain_la_liga",
|
|
"group": "Soccer",
|
|
"title": "La Liga - Spain"
|
|
},
|
|
{
|
|
"key": "soccer_spl",
|
|
"group": "Soccer",
|
|
"title": "Premiership - Scotland"
|
|
},
|
|
{
|
|
"key": "soccer_sweden_allsvenskan",
|
|
"group": "Soccer",
|
|
"title": "Allsvenskan - Sweden"
|
|
},
|
|
{
|
|
"key": "soccer_sweden_superettan",
|
|
"group": "Soccer",
|
|
"title": "Superettan - Sweden"
|
|
},
|
|
{
|
|
"key": "soccer_switzerland_superleague",
|
|
"group": "Soccer",
|
|
"title": "Swiss Superleague"
|
|
},
|
|
{
|
|
"key": "soccer_uefa_champs_league_qualification",
|
|
"group": "Soccer",
|
|
"title": "UEFA Champions League Qualification"
|
|
},
|
|
{
|
|
"key": "soccer_usa_mls",
|
|
"group": "Soccer",
|
|
"title": "MLS"
|
|
},
|
|
{
|
|
"key": "tennis_atp_wimbledon",
|
|
"group": "Tennis",
|
|
"title": "ATP Wimbledon"
|
|
},
|
|
{
|
|
"key": "tennis_wta_wimbledon",
|
|
"group": "Tennis",
|
|
"title": "WTA Wimbledon"
|
|
}
|
|
],
|
|
"mlbBoxscore": {
|
|
"date": "2026-07-09",
|
|
"gamePk": 823359,
|
|
"matchup": "Atlanta Braves @ Pittsburgh Pirates",
|
|
"battingFields": [
|
|
"summary",
|
|
"gamesPlayed",
|
|
"flyOuts",
|
|
"groundOuts",
|
|
"airOuts",
|
|
"runs",
|
|
"doubles",
|
|
"triples",
|
|
"homeRuns",
|
|
"strikeOuts",
|
|
"baseOnBalls",
|
|
"intentionalWalks",
|
|
"hits",
|
|
"hitByPitch",
|
|
"atBats",
|
|
"caughtStealing",
|
|
"stolenBases",
|
|
"stolenBasePercentage",
|
|
"groundIntoDoublePlay",
|
|
"groundIntoTriplePlay",
|
|
"plateAppearances",
|
|
"totalBases",
|
|
"rbi",
|
|
"leftOnBase",
|
|
"sacBunts",
|
|
"sacFlies",
|
|
"catchersInterference",
|
|
"pickoffs",
|
|
"atBatsPerHomeRun",
|
|
"popOuts",
|
|
"lineOuts"
|
|
],
|
|
"pitchingFields": [
|
|
"note",
|
|
"summary",
|
|
"gamesPlayed",
|
|
"gamesStarted",
|
|
"flyOuts",
|
|
"groundOuts",
|
|
"airOuts",
|
|
"runs",
|
|
"doubles",
|
|
"triples",
|
|
"homeRuns",
|
|
"strikeOuts",
|
|
"baseOnBalls",
|
|
"intentionalWalks",
|
|
"hits",
|
|
"hitByPitch",
|
|
"atBats",
|
|
"caughtStealing",
|
|
"stolenBases",
|
|
"stolenBasePercentage",
|
|
"numberOfPitches",
|
|
"inningsPitched",
|
|
"wins",
|
|
"losses",
|
|
"saves",
|
|
"saveOpportunities",
|
|
"holds",
|
|
"blownSaves",
|
|
"earnedRuns",
|
|
"battersFaced",
|
|
"outs",
|
|
"gamesPitched",
|
|
"completeGames",
|
|
"shutouts",
|
|
"pitchesThrown",
|
|
"balls",
|
|
"strikes",
|
|
"strikePercentage",
|
|
"hitBatsmen",
|
|
"balks",
|
|
"wildPitches",
|
|
"pickoffs",
|
|
"rbi",
|
|
"gamesFinished",
|
|
"runsScoredPer9",
|
|
"homeRunsPer9",
|
|
"inheritedRunners",
|
|
"inheritedRunnersScored",
|
|
"catchersInterference",
|
|
"sacBunts",
|
|
"sacFlies",
|
|
"passedBall",
|
|
"popOuts",
|
|
"lineOuts"
|
|
],
|
|
"sampleBatting": {
|
|
"summary": "1-6 | K, R, SB",
|
|
"gamesPlayed": 1,
|
|
"flyOuts": 1,
|
|
"groundOuts": 1,
|
|
"airOuts": 3,
|
|
"runs": 1,
|
|
"doubles": 0,
|
|
"triples": 0,
|
|
"homeRuns": 0,
|
|
"strikeOuts": 1,
|
|
"baseOnBalls": 0,
|
|
"intentionalWalks": 0,
|
|
"hits": 1,
|
|
"hitByPitch": 0,
|
|
"atBats": 6,
|
|
"caughtStealing": 0,
|
|
"stolenBases": 1,
|
|
"stolenBasePercentage": "1.000",
|
|
"groundIntoDoublePlay": 0,
|
|
"groundIntoTriplePlay": 0,
|
|
"plateAppearances": 6,
|
|
"totalBases": 1,
|
|
"rbi": 0,
|
|
"leftOnBase": 3,
|
|
"sacBunts": 0,
|
|
"sacFlies": 0,
|
|
"catchersInterference": 0,
|
|
"pickoffs": 0,
|
|
"atBatsPerHomeRun": "-.--",
|
|
"popOuts": 0,
|
|
"lineOuts": 2
|
|
},
|
|
"samplePitching": {
|
|
"note": "(W, 2-0)",
|
|
"summary": "1.0 IP, 0 ER, 0 K, 0 BB",
|
|
"gamesPlayed": 1,
|
|
"gamesStarted": 0,
|
|
"flyOuts": 1,
|
|
"groundOuts": 1,
|
|
"airOuts": 2,
|
|
"runs": 0,
|
|
"doubles": 0,
|
|
"triples": 0,
|
|
"homeRuns": 0,
|
|
"strikeOuts": 0,
|
|
"baseOnBalls": 0,
|
|
"intentionalWalks": 0,
|
|
"hits": 0,
|
|
"hitByPitch": 0,
|
|
"atBats": 3,
|
|
"caughtStealing": 0,
|
|
"stolenBases": 0,
|
|
"stolenBasePercentage": ".---",
|
|
"numberOfPitches": 15,
|
|
"inningsPitched": "1.0",
|
|
"wins": 1,
|
|
"losses": 0,
|
|
"saves": 0,
|
|
"saveOpportunities": 0,
|
|
"holds": 0,
|
|
"blownSaves": 0,
|
|
"earnedRuns": 0,
|
|
"battersFaced": 3,
|
|
"outs": 3,
|
|
"gamesPitched": 1,
|
|
"completeGames": 0,
|
|
"shutouts": 0,
|
|
"pitchesThrown": 15,
|
|
"balls": 6,
|
|
"strikes": 9,
|
|
"strikePercentage": ".600",
|
|
"hitBatsmen": 0,
|
|
"balks": 0,
|
|
"wildPitches": 0,
|
|
"pickoffs": 0,
|
|
"rbi": 0,
|
|
"gamesFinished": 0,
|
|
"runsScoredPer9": "0.00",
|
|
"homeRunsPer9": "0.00",
|
|
"inheritedRunners": 0,
|
|
"inheritedRunnersScored": 0,
|
|
"catchersInterference": 0,
|
|
"sacBunts": 0,
|
|
"sacFlies": 0,
|
|
"passedBall": 0,
|
|
"popOuts": 1,
|
|
"lineOuts": 0
|
|
}
|
|
},
|
|
"espnWnba": {
|
|
"count": 3,
|
|
"events": [
|
|
{
|
|
"name": "Golden State Valkyries at Connecticut Sun",
|
|
"status": "Scheduled",
|
|
"date": "2026-07-10T23:30Z"
|
|
},
|
|
{
|
|
"name": "Dallas Wings at Toronto Tempo",
|
|
"status": "Scheduled",
|
|
"date": "2026-07-10T23:30Z"
|
|
},
|
|
{
|
|
"name": "Chicago Sky at Los Angeles Sparks",
|
|
"status": "Scheduled",
|
|
"date": "2026-07-11T02:00Z"
|
|
}
|
|
],
|
|
"completedBoxLabels": null
|
|
},
|
|
"espnSoccer": {
|
|
"league": "usa.1 (MLS)",
|
|
"count": 4,
|
|
"events": [
|
|
{
|
|
"name": "Toronto FC at CF Montréal",
|
|
"status": "Scheduled"
|
|
},
|
|
{
|
|
"name": "Vancouver Whitecaps at Chicago Fire FC",
|
|
"status": "Scheduled"
|
|
},
|
|
{
|
|
"name": "Sporting Kansas City at St. Louis CITY SC",
|
|
"status": "Scheduled"
|
|
},
|
|
{
|
|
"name": "Portland Timbers at Seattle Sounders FC",
|
|
"status": "Scheduled"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|