propline 0.34.1 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -112,8 +112,8 @@ interface Market {
112
112
  * The book's OWN name for this market row, and the only thing that separates
113
113
  * a TEAM total from the game total — both ride the `totals` key (e.g.
114
114
  * `"Total"` at 2.5 alongside `"Team Total - Arsenal"` at 1.5). Wording is per
115
- * book, so match on the team name rather than an exact string. Present on
116
- * odds, odds history, closing lines and movement.
115
+ * book, so prefer the `team` field below rather than parsing this string.
116
+ * Present on odds, odds history, closing lines and movement.
117
117
  */
118
118
  description?: string;
119
119
  /** Game-period bucket (q1..q4, h1/h2, p1..p3, i1..i9, f3/f5/f7). Null for full-game markets. */
@@ -124,6 +124,14 @@ interface Market {
124
124
  * The outcomes are then the last quoted legs, not a live price.
125
125
  */
126
126
  suspended_at?: string | null;
127
+ /**
128
+ * Canonical event team name when this market is scoped to ONE team — i.e.
129
+ * a team total — and null for the game total. Both ride the `totals` key,
130
+ * so this is the machine-readable form of `description`: it matches the
131
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
132
+ * wording. Always null outside `totals`.
133
+ */
134
+ team?: string | null;
127
135
  outcomes: Outcome[];
128
136
  [k: string]: unknown;
129
137
  }
@@ -190,6 +198,14 @@ interface OddsHistoryMarket {
190
198
  key: string;
191
199
  /** Game-period bucket. Null for full-game markets. */
192
200
  period?: string | null;
201
+ /**
202
+ * Canonical event team name when this market is scoped to ONE team — i.e.
203
+ * a team total — and null for the game total. Both ride the `totals` key,
204
+ * so this is the machine-readable form of `description`: it matches the
205
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
206
+ * wording. Always null outside `totals`.
207
+ */
208
+ team?: string | null;
193
209
  outcomes: OddsHistoryOutcome[];
194
210
  [k: string]: unknown;
195
211
  }
@@ -249,6 +265,14 @@ interface ClosingMarket {
249
265
  description?: string;
250
266
  /** Game-period bucket. Null for full-game markets. */
251
267
  period?: string | null;
268
+ /**
269
+ * Canonical event team name when this market is scoped to ONE team — i.e.
270
+ * a team total — and null for the game total. Both ride the `totals` key,
271
+ * so this is the machine-readable form of `description`: it matches the
272
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
273
+ * wording. Always null outside `totals`.
274
+ */
275
+ team?: string | null;
252
276
  outcomes: ClosingOutcome[];
253
277
  [k: string]: unknown;
254
278
  }
@@ -421,6 +445,14 @@ interface MovementOutcome {
421
445
  interface MovementMarket {
422
446
  key: string;
423
447
  period: string | null;
448
+ /**
449
+ * Canonical event team name when this market is scoped to ONE team — i.e.
450
+ * a team total — and null for the game total. Both ride the `totals` key,
451
+ * so this is the machine-readable form of `description`: it matches the
452
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
453
+ * wording. Always null outside `totals`.
454
+ */
455
+ team?: string | null;
424
456
  outcomes: MovementOutcome[];
425
457
  [k: string]: unknown;
426
458
  }
@@ -548,6 +580,37 @@ interface PlayerTrends {
548
580
  upgrade_url?: string | null;
549
581
  [k: string]: unknown;
550
582
  }
583
+ interface PlayerGame {
584
+ event_id: string;
585
+ commence_time: string;
586
+ status: string;
587
+ home_team: string;
588
+ away_team: string;
589
+ home_score: number | null;
590
+ away_score: number | null;
591
+ /** The box score's own team abbreviation for this player. */
592
+ team_abbr: string | null;
593
+ /**
594
+ * Null when the player's side can't be identified from `team_abbr`, and
595
+ * always for individual sports (tennis, golf, UFC) which have no home side.
596
+ * Left null rather than guessed — a wrong home/away flag would corrupt
597
+ * every split built on it.
598
+ */
599
+ player_team: string | null;
600
+ opponent: string | null;
601
+ is_home: boolean | null;
602
+ /** Flat map of stat name to value. Vocabulary is per-sport. */
603
+ stats: Record<string, number>;
604
+ [k: string]: unknown;
605
+ }
606
+ interface PlayerGameLog {
607
+ player_name: string;
608
+ sport_key: string;
609
+ /** Echo of the `opponent` filter, or null. */
610
+ opponent: string | null;
611
+ games: PlayerGame[];
612
+ [k: string]: unknown;
613
+ }
551
614
  interface BestPrice {
552
615
  book: string;
553
616
  book_title: string;
@@ -1021,6 +1084,23 @@ interface GetPlayerHistoryOptions {
1021
1084
  /** Max entries (1-100). Default 20. */
1022
1085
  limit?: number;
1023
1086
  }
1087
+ interface GetPlayerGamesOptions {
1088
+ /** Games to return, 1-100. Default 20. */
1089
+ limit?: number;
1090
+ /**
1091
+ * Head-to-head filter. Accepts a full name, nickname or abbreviation
1092
+ * ("Boston Red Sox", "Red Sox", "BOS"). The limit applies AFTER this
1093
+ * filter, so `{ opponent: "BOS", limit: 10 }` is the last 10 MEETINGS,
1094
+ * not the Boston games among the last 10 games. Not capped to the
1095
+ * current season.
1096
+ */
1097
+ opponent?: string;
1098
+ /**
1099
+ * Stat name(s) to return; omit for all. Vocabulary is per-sport —
1100
+ * see https://prop-line.com/docs#stats
1101
+ */
1102
+ statType?: string | string[];
1103
+ }
1024
1104
  interface GetPlayerTrendsOptions {
1025
1105
  /** Market key (e.g. `"batter_total_bases"`). Omit for all markets. */
1026
1106
  market?: string;
@@ -1374,6 +1454,31 @@ declare class PropLine {
1374
1454
  * One entry per (event, bookmaker) pair. Pro: full. Free: redacted.
1375
1455
  */
1376
1456
  getPlayerHistory(sport: string, playerName: string, options: GetPlayerHistoryOptions): Promise<PlayerHistoryResponse>;
1457
+ /**
1458
+ * A player's game log — recent games with every raw box-score stat.
1459
+ *
1460
+ * One call replaces one request per event, so L5/L10/L20, season splits,
1461
+ * charts and head-to-head can all be built from the raw rows. Free tier.
1462
+ *
1463
+ * Reads the RAW-STATS archive, not graded-prop history: it covers every
1464
+ * game with a box score on file, including games no sportsbook priced, so
1465
+ * a "last 10 games" window here really is the last 10 games — unlike one
1466
+ * built from {@link getPlayerHistory} or {@link getPlayerTrends}. Carries
1467
+ * no line, price or grade.
1468
+ *
1469
+ * @example
1470
+ * ```ts
1471
+ * const log = await client.getPlayerGames("baseball_mlb", "Aaron Judge", { limit: 10 });
1472
+ * const hits = log.games.reduce((n, g) => n + (g.stats.hits ?? 0), 0);
1473
+ *
1474
+ * // Last 5 meetings with Boston — not the Boston games among his last 5.
1475
+ * const h2h = await client.getPlayerGames("baseball_mlb", "Aaron Judge", {
1476
+ * limit: 5,
1477
+ * opponent: "BOS",
1478
+ * });
1479
+ * ```
1480
+ */
1481
+ getPlayerGames(sportKey: string, playerName: string, options?: GetPlayerGamesOptions): Promise<PlayerGameLog>;
1377
1482
  /**
1378
1483
  * Rolling hit-rate trends for a player across one or all markets.
1379
1484
  *
@@ -1651,6 +1756,6 @@ declare const Bookmakers: {
1651
1756
  readonly PRIZEPICKS: "prizepicks";
1652
1757
  };
1653
1758
  type BookmakerKey = (typeof Bookmakers)[keyof typeof Bookmakers];
1654
- declare const VERSION = "0.34.1";
1759
+ declare const VERSION = "0.36.0";
1655
1760
 
1656
- export { AuthError, type BestLine, type BestLineSide, type BestPrice, type Bookmaker, type BookmakerKey, Bookmakers, type CalcEventEvOptions, type ClosingBookmaker, type ClosingMarket, type ClosingOutcome, type ClvBetInput, type ClvGradeResponse, type ClvGradedBet, type ClvSummary, type ContextResponse, type CreateWebhookOptions, type DfsPayoutTier, type DfsPayoutsResponse, type DfsPlayPayout, type EvLine, type EvOutcome, type Event, type EventBestLineResponse, type EventEvCalcResponse, type EventEvResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetMlbGrandSalamiOptions, type GetNhlDailyGoalsTotalOptions, type GetOddsClosingOptions, type GetOddsHistoryOptions, type GetOddsOptions, type GetPlayerHistoryOptions, type GetPlayerTrendsOptions, type GetResultsOptions, type GetScoresOptions, type GetStatsOptions, type HitRateSplit, type ListWebhookDeliveriesOptions, type Market, type MarketSummary, type MlbGrandSalamiBook, type MlbGrandSalamiResponse, type MovementBookmaker, type MovementMarket, type MovementOutcome, type MovementResponse, type NhlDailyGoalsTotalBook, type NhlDailyGoalsTotalResponse, type OddsClosingResponse, type OddsHistoryBookmaker, type OddsHistoryMarket, type OddsHistoryOutcome, type OddsHistoryResponse, type OddsResponse, type Outcome, type OutcomeSnapshot, type PeriodFilter, type PlayerHistoryEntry, type PlayerHistoryResponse, type PlayerMarketTrend, type PlayerStat, type PlayerTrends, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type Sport, type StatsResponse, type SteamMove, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
1761
+ export { AuthError, type BestLine, type BestLineSide, type BestPrice, type Bookmaker, type BookmakerKey, Bookmakers, type CalcEventEvOptions, type ClosingBookmaker, type ClosingMarket, type ClosingOutcome, type ClvBetInput, type ClvGradeResponse, type ClvGradedBet, type ClvSummary, type ContextResponse, type CreateWebhookOptions, type DfsPayoutTier, type DfsPayoutsResponse, type DfsPlayPayout, type EvLine, type EvOutcome, type Event, type EventBestLineResponse, type EventEvCalcResponse, type EventEvResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetMlbGrandSalamiOptions, type GetNhlDailyGoalsTotalOptions, type GetOddsClosingOptions, type GetOddsHistoryOptions, type GetOddsOptions, type GetPlayerGamesOptions, type GetPlayerHistoryOptions, type GetPlayerTrendsOptions, type GetResultsOptions, type GetScoresOptions, type GetStatsOptions, type HitRateSplit, type ListWebhookDeliveriesOptions, type Market, type MarketSummary, type MlbGrandSalamiBook, type MlbGrandSalamiResponse, type MovementBookmaker, type MovementMarket, type MovementOutcome, type MovementResponse, type NhlDailyGoalsTotalBook, type NhlDailyGoalsTotalResponse, type OddsClosingResponse, type OddsHistoryBookmaker, type OddsHistoryMarket, type OddsHistoryOutcome, type OddsHistoryResponse, type OddsResponse, type Outcome, type OutcomeSnapshot, type PeriodFilter, type PlayerGame, type PlayerGameLog, type PlayerHistoryEntry, type PlayerHistoryResponse, type PlayerMarketTrend, type PlayerStat, type PlayerTrends, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type Sport, type StatsResponse, type SteamMove, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
package/dist/index.d.ts CHANGED
@@ -112,8 +112,8 @@ interface Market {
112
112
  * The book's OWN name for this market row, and the only thing that separates
113
113
  * a TEAM total from the game total — both ride the `totals` key (e.g.
114
114
  * `"Total"` at 2.5 alongside `"Team Total - Arsenal"` at 1.5). Wording is per
115
- * book, so match on the team name rather than an exact string. Present on
116
- * odds, odds history, closing lines and movement.
115
+ * book, so prefer the `team` field below rather than parsing this string.
116
+ * Present on odds, odds history, closing lines and movement.
117
117
  */
118
118
  description?: string;
119
119
  /** Game-period bucket (q1..q4, h1/h2, p1..p3, i1..i9, f3/f5/f7). Null for full-game markets. */
@@ -124,6 +124,14 @@ interface Market {
124
124
  * The outcomes are then the last quoted legs, not a live price.
125
125
  */
126
126
  suspended_at?: string | null;
127
+ /**
128
+ * Canonical event team name when this market is scoped to ONE team — i.e.
129
+ * a team total — and null for the game total. Both ride the `totals` key,
130
+ * so this is the machine-readable form of `description`: it matches the
131
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
132
+ * wording. Always null outside `totals`.
133
+ */
134
+ team?: string | null;
127
135
  outcomes: Outcome[];
128
136
  [k: string]: unknown;
129
137
  }
@@ -190,6 +198,14 @@ interface OddsHistoryMarket {
190
198
  key: string;
191
199
  /** Game-period bucket. Null for full-game markets. */
192
200
  period?: string | null;
201
+ /**
202
+ * Canonical event team name when this market is scoped to ONE team — i.e.
203
+ * a team total — and null for the game total. Both ride the `totals` key,
204
+ * so this is the machine-readable form of `description`: it matches the
205
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
206
+ * wording. Always null outside `totals`.
207
+ */
208
+ team?: string | null;
193
209
  outcomes: OddsHistoryOutcome[];
194
210
  [k: string]: unknown;
195
211
  }
@@ -249,6 +265,14 @@ interface ClosingMarket {
249
265
  description?: string;
250
266
  /** Game-period bucket. Null for full-game markets. */
251
267
  period?: string | null;
268
+ /**
269
+ * Canonical event team name when this market is scoped to ONE team — i.e.
270
+ * a team total — and null for the game total. Both ride the `totals` key,
271
+ * so this is the machine-readable form of `description`: it matches the
272
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
273
+ * wording. Always null outside `totals`.
274
+ */
275
+ team?: string | null;
252
276
  outcomes: ClosingOutcome[];
253
277
  [k: string]: unknown;
254
278
  }
@@ -421,6 +445,14 @@ interface MovementOutcome {
421
445
  interface MovementMarket {
422
446
  key: string;
423
447
  period: string | null;
448
+ /**
449
+ * Canonical event team name when this market is scoped to ONE team — i.e.
450
+ * a team total — and null for the game total. Both ride the `totals` key,
451
+ * so this is the machine-readable form of `description`: it matches the
452
+ * event's `home_team` / `away_team` exactly, so you never parse a book's
453
+ * wording. Always null outside `totals`.
454
+ */
455
+ team?: string | null;
424
456
  outcomes: MovementOutcome[];
425
457
  [k: string]: unknown;
426
458
  }
@@ -548,6 +580,37 @@ interface PlayerTrends {
548
580
  upgrade_url?: string | null;
549
581
  [k: string]: unknown;
550
582
  }
583
+ interface PlayerGame {
584
+ event_id: string;
585
+ commence_time: string;
586
+ status: string;
587
+ home_team: string;
588
+ away_team: string;
589
+ home_score: number | null;
590
+ away_score: number | null;
591
+ /** The box score's own team abbreviation for this player. */
592
+ team_abbr: string | null;
593
+ /**
594
+ * Null when the player's side can't be identified from `team_abbr`, and
595
+ * always for individual sports (tennis, golf, UFC) which have no home side.
596
+ * Left null rather than guessed — a wrong home/away flag would corrupt
597
+ * every split built on it.
598
+ */
599
+ player_team: string | null;
600
+ opponent: string | null;
601
+ is_home: boolean | null;
602
+ /** Flat map of stat name to value. Vocabulary is per-sport. */
603
+ stats: Record<string, number>;
604
+ [k: string]: unknown;
605
+ }
606
+ interface PlayerGameLog {
607
+ player_name: string;
608
+ sport_key: string;
609
+ /** Echo of the `opponent` filter, or null. */
610
+ opponent: string | null;
611
+ games: PlayerGame[];
612
+ [k: string]: unknown;
613
+ }
551
614
  interface BestPrice {
552
615
  book: string;
553
616
  book_title: string;
@@ -1021,6 +1084,23 @@ interface GetPlayerHistoryOptions {
1021
1084
  /** Max entries (1-100). Default 20. */
1022
1085
  limit?: number;
1023
1086
  }
1087
+ interface GetPlayerGamesOptions {
1088
+ /** Games to return, 1-100. Default 20. */
1089
+ limit?: number;
1090
+ /**
1091
+ * Head-to-head filter. Accepts a full name, nickname or abbreviation
1092
+ * ("Boston Red Sox", "Red Sox", "BOS"). The limit applies AFTER this
1093
+ * filter, so `{ opponent: "BOS", limit: 10 }` is the last 10 MEETINGS,
1094
+ * not the Boston games among the last 10 games. Not capped to the
1095
+ * current season.
1096
+ */
1097
+ opponent?: string;
1098
+ /**
1099
+ * Stat name(s) to return; omit for all. Vocabulary is per-sport —
1100
+ * see https://prop-line.com/docs#stats
1101
+ */
1102
+ statType?: string | string[];
1103
+ }
1024
1104
  interface GetPlayerTrendsOptions {
1025
1105
  /** Market key (e.g. `"batter_total_bases"`). Omit for all markets. */
1026
1106
  market?: string;
@@ -1374,6 +1454,31 @@ declare class PropLine {
1374
1454
  * One entry per (event, bookmaker) pair. Pro: full. Free: redacted.
1375
1455
  */
1376
1456
  getPlayerHistory(sport: string, playerName: string, options: GetPlayerHistoryOptions): Promise<PlayerHistoryResponse>;
1457
+ /**
1458
+ * A player's game log — recent games with every raw box-score stat.
1459
+ *
1460
+ * One call replaces one request per event, so L5/L10/L20, season splits,
1461
+ * charts and head-to-head can all be built from the raw rows. Free tier.
1462
+ *
1463
+ * Reads the RAW-STATS archive, not graded-prop history: it covers every
1464
+ * game with a box score on file, including games no sportsbook priced, so
1465
+ * a "last 10 games" window here really is the last 10 games — unlike one
1466
+ * built from {@link getPlayerHistory} or {@link getPlayerTrends}. Carries
1467
+ * no line, price or grade.
1468
+ *
1469
+ * @example
1470
+ * ```ts
1471
+ * const log = await client.getPlayerGames("baseball_mlb", "Aaron Judge", { limit: 10 });
1472
+ * const hits = log.games.reduce((n, g) => n + (g.stats.hits ?? 0), 0);
1473
+ *
1474
+ * // Last 5 meetings with Boston — not the Boston games among his last 5.
1475
+ * const h2h = await client.getPlayerGames("baseball_mlb", "Aaron Judge", {
1476
+ * limit: 5,
1477
+ * opponent: "BOS",
1478
+ * });
1479
+ * ```
1480
+ */
1481
+ getPlayerGames(sportKey: string, playerName: string, options?: GetPlayerGamesOptions): Promise<PlayerGameLog>;
1377
1482
  /**
1378
1483
  * Rolling hit-rate trends for a player across one or all markets.
1379
1484
  *
@@ -1651,6 +1756,6 @@ declare const Bookmakers: {
1651
1756
  readonly PRIZEPICKS: "prizepicks";
1652
1757
  };
1653
1758
  type BookmakerKey = (typeof Bookmakers)[keyof typeof Bookmakers];
1654
- declare const VERSION = "0.34.1";
1759
+ declare const VERSION = "0.36.0";
1655
1760
 
1656
- export { AuthError, type BestLine, type BestLineSide, type BestPrice, type Bookmaker, type BookmakerKey, Bookmakers, type CalcEventEvOptions, type ClosingBookmaker, type ClosingMarket, type ClosingOutcome, type ClvBetInput, type ClvGradeResponse, type ClvGradedBet, type ClvSummary, type ContextResponse, type CreateWebhookOptions, type DfsPayoutTier, type DfsPayoutsResponse, type DfsPlayPayout, type EvLine, type EvOutcome, type Event, type EventBestLineResponse, type EventEvCalcResponse, type EventEvResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetMlbGrandSalamiOptions, type GetNhlDailyGoalsTotalOptions, type GetOddsClosingOptions, type GetOddsHistoryOptions, type GetOddsOptions, type GetPlayerHistoryOptions, type GetPlayerTrendsOptions, type GetResultsOptions, type GetScoresOptions, type GetStatsOptions, type HitRateSplit, type ListWebhookDeliveriesOptions, type Market, type MarketSummary, type MlbGrandSalamiBook, type MlbGrandSalamiResponse, type MovementBookmaker, type MovementMarket, type MovementOutcome, type MovementResponse, type NhlDailyGoalsTotalBook, type NhlDailyGoalsTotalResponse, type OddsClosingResponse, type OddsHistoryBookmaker, type OddsHistoryMarket, type OddsHistoryOutcome, type OddsHistoryResponse, type OddsResponse, type Outcome, type OutcomeSnapshot, type PeriodFilter, type PlayerHistoryEntry, type PlayerHistoryResponse, type PlayerMarketTrend, type PlayerStat, type PlayerTrends, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type Sport, type StatsResponse, type SteamMove, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
1761
+ export { AuthError, type BestLine, type BestLineSide, type BestPrice, type Bookmaker, type BookmakerKey, Bookmakers, type CalcEventEvOptions, type ClosingBookmaker, type ClosingMarket, type ClosingOutcome, type ClvBetInput, type ClvGradeResponse, type ClvGradedBet, type ClvSummary, type ContextResponse, type CreateWebhookOptions, type DfsPayoutTier, type DfsPayoutsResponse, type DfsPlayPayout, type EvLine, type EvOutcome, type Event, type EventBestLineResponse, type EventEvCalcResponse, type EventEvResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetMlbGrandSalamiOptions, type GetNhlDailyGoalsTotalOptions, type GetOddsClosingOptions, type GetOddsHistoryOptions, type GetOddsOptions, type GetPlayerGamesOptions, type GetPlayerHistoryOptions, type GetPlayerTrendsOptions, type GetResultsOptions, type GetScoresOptions, type GetStatsOptions, type HitRateSplit, type ListWebhookDeliveriesOptions, type Market, type MarketSummary, type MlbGrandSalamiBook, type MlbGrandSalamiResponse, type MovementBookmaker, type MovementMarket, type MovementOutcome, type MovementResponse, type NhlDailyGoalsTotalBook, type NhlDailyGoalsTotalResponse, type OddsClosingResponse, type OddsHistoryBookmaker, type OddsHistoryMarket, type OddsHistoryOutcome, type OddsHistoryResponse, type OddsResponse, type Outcome, type OutcomeSnapshot, type PeriodFilter, type PlayerGame, type PlayerGameLog, type PlayerHistoryEntry, type PlayerHistoryResponse, type PlayerMarketTrend, type PlayerStat, type PlayerTrends, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type Sport, type StatsResponse, type SteamMove, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
package/dist/index.js CHANGED
@@ -423,6 +423,46 @@ var PropLine = class {
423
423
  { params }
424
424
  );
425
425
  }
426
+ /**
427
+ * A player's game log — recent games with every raw box-score stat.
428
+ *
429
+ * One call replaces one request per event, so L5/L10/L20, season splits,
430
+ * charts and head-to-head can all be built from the raw rows. Free tier.
431
+ *
432
+ * Reads the RAW-STATS archive, not graded-prop history: it covers every
433
+ * game with a box score on file, including games no sportsbook priced, so
434
+ * a "last 10 games" window here really is the last 10 games — unlike one
435
+ * built from {@link getPlayerHistory} or {@link getPlayerTrends}. Carries
436
+ * no line, price or grade.
437
+ *
438
+ * @example
439
+ * ```ts
440
+ * const log = await client.getPlayerGames("baseball_mlb", "Aaron Judge", { limit: 10 });
441
+ * const hits = log.games.reduce((n, g) => n + (g.stats.hits ?? 0), 0);
442
+ *
443
+ * // Last 5 meetings with Boston — not the Boston games among his last 5.
444
+ * const h2h = await client.getPlayerGames("baseball_mlb", "Aaron Judge", {
445
+ * limit: 5,
446
+ * opponent: "BOS",
447
+ * });
448
+ * ```
449
+ */
450
+ getPlayerGames(sportKey, playerName, options = {}) {
451
+ const params = {
452
+ limit: options.limit ?? 20
453
+ };
454
+ if (options.opponent) {
455
+ params.opponent = options.opponent;
456
+ }
457
+ if (options.statType) {
458
+ params.stat_type = Array.isArray(options.statType) ? options.statType.join(",") : options.statType;
459
+ }
460
+ return this._request(
461
+ "GET",
462
+ `/sports/${encodeURIComponent(sportKey)}/players/${encodeURIComponent(playerName)}/games`,
463
+ { params }
464
+ );
465
+ }
426
466
  /**
427
467
  * Rolling hit-rate trends for a player across one or all markets.
428
468
  *
@@ -846,7 +886,7 @@ var Bookmakers = {
846
886
  POLYMARKET: "polymarket",
847
887
  PRIZEPICKS: "prizepicks"
848
888
  };
849
- var VERSION = "0.34.1";
889
+ var VERSION = "0.36.0";
850
890
  export {
851
891
  AuthError,
852
892
  Bookmakers,