propline 0.52.0 → 0.54.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/README.md +17 -4
- package/dist/index.cjs +12 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +152 -7
- package/dist/index.d.ts +152 -7
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -54,8 +54,28 @@ interface Event {
|
|
|
54
54
|
* it now resolves — costs one request per stored event.
|
|
55
55
|
*/
|
|
56
56
|
merged_from_event_ids?: string[] | null;
|
|
57
|
+
/**
|
|
58
|
+
* True for a tournament/outright listing (a tennis, golf, racing or
|
|
59
|
+
* cycling event with no away side — `away_team` is "").
|
|
60
|
+
*/
|
|
61
|
+
is_outright?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Tennis only: the competition this match belongs to (e.g. "US Open").
|
|
64
|
+
* One `tennis` key mixes every tour, so this and `tour` say which. `null`
|
|
65
|
+
* for every other sport and where unknown.
|
|
66
|
+
*/
|
|
67
|
+
tournament?: string | null;
|
|
68
|
+
/** Tennis only: the tour — "ATP", "WTA", "Challenger", "ITF", "UTR", "Exhibition" or "Team". `null` elsewhere. */
|
|
69
|
+
tour?: string | null;
|
|
57
70
|
[k: string]: unknown;
|
|
58
71
|
}
|
|
72
|
+
/** One order-book level beyond an outcome's served price (see `Outcome.depth`). */
|
|
73
|
+
interface DepthLevel {
|
|
74
|
+
/** American odds at this level. */
|
|
75
|
+
price: number;
|
|
76
|
+
/** Dollars a taker can spend at this level. */
|
|
77
|
+
size: number | null;
|
|
78
|
+
}
|
|
59
79
|
interface Outcome {
|
|
60
80
|
name: string;
|
|
61
81
|
description?: string | null;
|
|
@@ -132,6 +152,23 @@ interface Outcome {
|
|
|
132
152
|
* `line_movement` webhooks.
|
|
133
153
|
*/
|
|
134
154
|
liquidity?: number | null;
|
|
155
|
+
/**
|
|
156
|
+
* When the exchange last touched the resting order behind `liquidity`
|
|
157
|
+
* (ISO datetime, the book's own timestamp). Discount sizes that are old.
|
|
158
|
+
*/
|
|
159
|
+
liquidity_updated_at?: string | null;
|
|
160
|
+
/**
|
|
161
|
+
* Up to three order-book levels BEYOND the served `price`. Only present
|
|
162
|
+
* when the request passed `includeDepth: true`; `[]` when the book has
|
|
163
|
+
* nothing further or PropLine does not read its depth (sportsbooks).
|
|
164
|
+
*/
|
|
165
|
+
depth?: DepthLevel[];
|
|
166
|
+
/**
|
|
167
|
+
* Which side of the EVENT this leg is on: `"home"`, `"away"` or
|
|
168
|
+
* `"draw"`; `null` for Over/Under, Yes/No and player legs. Lets you pair
|
|
169
|
+
* legs without matching a book's own team spelling.
|
|
170
|
+
*/
|
|
171
|
+
side?: "home" | "away" | "draw" | null;
|
|
135
172
|
/**
|
|
136
173
|
* Signed line-difficulty delta for a PrizePicks goblin/demon outcome:
|
|
137
174
|
* `point - standard_point` for the same player+stat. Positive on a harder
|
|
@@ -278,6 +315,19 @@ interface OddsResponse {
|
|
|
278
315
|
* it now resolves — costs one request per stored event.
|
|
279
316
|
*/
|
|
280
317
|
merged_from_event_ids?: string[] | null;
|
|
318
|
+
/**
|
|
319
|
+
* True for a tournament/outright listing (a tennis, golf, racing or
|
|
320
|
+
* cycling event with no away side — `away_team` is "").
|
|
321
|
+
*/
|
|
322
|
+
is_outright?: boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Tennis only: the competition this match belongs to (e.g. "US Open").
|
|
325
|
+
* One `tennis` key mixes every tour, so this and `tour` say which. `null`
|
|
326
|
+
* for every other sport and where unknown.
|
|
327
|
+
*/
|
|
328
|
+
tournament?: string | null;
|
|
329
|
+
/** Tennis only: the tour — "ATP", "WTA", "Challenger", "ITF", "UTR", "Exhibition" or "Team". `null` elsewhere. */
|
|
330
|
+
tour?: string | null;
|
|
281
331
|
bookmakers: Bookmaker[];
|
|
282
332
|
[k: string]: unknown;
|
|
283
333
|
}
|
|
@@ -445,6 +495,10 @@ interface ScoreEvent {
|
|
|
445
495
|
home_team_logo_url?: string | null;
|
|
446
496
|
/** Away-side counterpart of `home_team_logo_url`. */
|
|
447
497
|
away_team_logo_url?: string | null;
|
|
498
|
+
/** Tennis only — see `Event.tournament`. */
|
|
499
|
+
tournament?: string | null;
|
|
500
|
+
/** Tennis only — see `Event.tour`. */
|
|
501
|
+
tour?: string | null;
|
|
448
502
|
status: "upcoming" | "in_progress" | "final" | string;
|
|
449
503
|
home_score: number | null;
|
|
450
504
|
away_score: number | null;
|
|
@@ -587,6 +641,10 @@ interface MovementOutcome {
|
|
|
587
641
|
direction: string | null;
|
|
588
642
|
num_snapshots: number;
|
|
589
643
|
redacted: boolean;
|
|
644
|
+
/** PropLine's stable id for this selection — the same id `/odds` and webhook payloads carry. */
|
|
645
|
+
outcome_id?: number | null;
|
|
646
|
+
/** The book's own selection id. Only set when the request passed `includeBookIds: true`. */
|
|
647
|
+
book_outcome_id?: string | null;
|
|
590
648
|
[k: string]: unknown;
|
|
591
649
|
}
|
|
592
650
|
interface MovementMarket {
|
|
@@ -620,6 +678,66 @@ interface SteamMove {
|
|
|
620
678
|
avg_prob_shift: number;
|
|
621
679
|
consensus_point_shift: number | null;
|
|
622
680
|
steam_score: number;
|
|
681
|
+
/** Canonical team name for a team-total steam move; `null` otherwise. */
|
|
682
|
+
team?: string | null;
|
|
683
|
+
/** Median opening line across the books that moved. */
|
|
684
|
+
open_point?: number | null;
|
|
685
|
+
/** Median latest line across the books that moved. */
|
|
686
|
+
latest_point?: number | null;
|
|
687
|
+
[k: string]: unknown;
|
|
688
|
+
}
|
|
689
|
+
/** One side of a `line_movement` webhook payload (`previous` / `current`). */
|
|
690
|
+
interface LineMovementPrice {
|
|
691
|
+
price_american: number | null;
|
|
692
|
+
point: number | null;
|
|
693
|
+
/** Dollars stakeable at this price (exchanges / Pinnacle); `null` for other books. */
|
|
694
|
+
liquidity?: number | null;
|
|
695
|
+
/** The book's own timestamp for that size (ISO datetime). */
|
|
696
|
+
liquidity_updated_at?: string | null;
|
|
697
|
+
}
|
|
698
|
+
/** Body of a `line_movement` webhook delivery. */
|
|
699
|
+
interface LineMovementWebhookPayload {
|
|
700
|
+
event_type: "line_movement";
|
|
701
|
+
sport_key: string;
|
|
702
|
+
event: Record<string, unknown>;
|
|
703
|
+
bookmaker_key: string;
|
|
704
|
+
bookmaker_title: string;
|
|
705
|
+
market_id: number;
|
|
706
|
+
market_key: string;
|
|
707
|
+
market_description: string | null;
|
|
708
|
+
outcome_id: number;
|
|
709
|
+
book_outcome_id: string | null;
|
|
710
|
+
player_id: string | null;
|
|
711
|
+
player_name: string | null;
|
|
712
|
+
outcome_name: string;
|
|
713
|
+
dfs_odds_type: "standard" | "goblin" | "demon" | null;
|
|
714
|
+
payout_multiplier: number | null;
|
|
715
|
+
previous: LineMovementPrice;
|
|
716
|
+
current: LineMovementPrice;
|
|
717
|
+
price_change_pct: number;
|
|
718
|
+
timestamp: string;
|
|
719
|
+
[k: string]: unknown;
|
|
720
|
+
}
|
|
721
|
+
/** Body of a `steam` webhook delivery. */
|
|
722
|
+
interface SteamWebhookPayload {
|
|
723
|
+
event_type: "steam";
|
|
724
|
+
sport_key: string;
|
|
725
|
+
event: Record<string, unknown>;
|
|
726
|
+
market_key: string;
|
|
727
|
+
period: string | null;
|
|
728
|
+
outcome_name: string;
|
|
729
|
+
player_name: string | null;
|
|
730
|
+
/** Canonical team name for a team-total move; `null` otherwise. */
|
|
731
|
+
team: string | null;
|
|
732
|
+
open_point: number | null;
|
|
733
|
+
latest_point: number | null;
|
|
734
|
+
consensus_direction: string;
|
|
735
|
+
books_quoting: number;
|
|
736
|
+
books_moved: number;
|
|
737
|
+
avg_prob_shift: number;
|
|
738
|
+
consensus_point_shift: number | null;
|
|
739
|
+
steam_score: number;
|
|
740
|
+
timestamp: string;
|
|
623
741
|
[k: string]: unknown;
|
|
624
742
|
}
|
|
625
743
|
interface MovementResponse {
|
|
@@ -1366,6 +1484,14 @@ interface GetOddsOptions {
|
|
|
1366
1484
|
* equivalent.
|
|
1367
1485
|
*/
|
|
1368
1486
|
includeBookIds?: boolean;
|
|
1487
|
+
/**
|
|
1488
|
+
* When true, every outcome carries `depth`: up to three order-book levels
|
|
1489
|
+
* BEYOND the served price, each `{ price, size }` (American odds, dollars).
|
|
1490
|
+
* `[]` when the book has nothing further or PropLine does not read depth
|
|
1491
|
+
* for that book (sportsbooks). Omitted from the response unless requested.
|
|
1492
|
+
* PropLine-specific (`includeDepth=true`).
|
|
1493
|
+
*/
|
|
1494
|
+
includeDepth?: boolean;
|
|
1369
1495
|
}
|
|
1370
1496
|
interface GetOddsHistoryOptions {
|
|
1371
1497
|
markets?: string[];
|
|
@@ -1392,6 +1518,12 @@ interface GetOddsClosingOptions {
|
|
|
1392
1518
|
period?: PeriodFilter;
|
|
1393
1519
|
/** Bookmaker key(s) to restrict the response to. Omitted = all books. */
|
|
1394
1520
|
bookmakers?: string | string[];
|
|
1521
|
+
/**
|
|
1522
|
+
* Limit the opening lookback to this many days before kickoff (1-3650), or
|
|
1523
|
+
* `"all"` (the default: the first snapshot held). `14` matches the
|
|
1524
|
+
* resolved-props export's opening columns.
|
|
1525
|
+
*/
|
|
1526
|
+
openingWindow?: number | "all";
|
|
1395
1527
|
}
|
|
1396
1528
|
interface GetMovementOptions {
|
|
1397
1529
|
markets?: string[];
|
|
@@ -1399,6 +1531,19 @@ interface GetMovementOptions {
|
|
|
1399
1531
|
period?: PeriodFilter;
|
|
1400
1532
|
/** Bookmaker key(s) to restrict the response to. Omitted = all books. */
|
|
1401
1533
|
bookmakers?: string | string[];
|
|
1534
|
+
/**
|
|
1535
|
+
* Measure movement from this moment instead of from each line's first
|
|
1536
|
+
* quote. ISO-8601 timestamp or a negative offset from now (`"-6h"`,
|
|
1537
|
+
* `"-30m"`, `"-2d"`). Each outcome's opening is the price it held at
|
|
1538
|
+
* `since` (or its first quote after), so steam covers only moves inside
|
|
1539
|
+
* the window.
|
|
1540
|
+
*/
|
|
1541
|
+
since?: string;
|
|
1542
|
+
/**
|
|
1543
|
+
* When true, each movement outcome carries `book_outcome_id` (the book's
|
|
1544
|
+
* own selection id). `outcome_id` (PropLine's id) is always present.
|
|
1545
|
+
*/
|
|
1546
|
+
includeBookIds?: boolean;
|
|
1402
1547
|
}
|
|
1403
1548
|
interface GetScoresOptions {
|
|
1404
1549
|
/** Days back to include (default 3). */
|
|
@@ -1746,9 +1891,9 @@ declare class PropLine {
|
|
|
1746
1891
|
/**
|
|
1747
1892
|
* Get the opening AND closing line per `(book, market, outcome)` for an
|
|
1748
1893
|
* event. Closing is the last snapshot at or before commence_time
|
|
1749
|
-
* (`price` / `point` / `closing_at`); opening is the first snapshot
|
|
1750
|
-
* the
|
|
1751
|
-
* / `opening_at`). Canonical CLV helper: replaces "fetch full history →
|
|
1894
|
+
* (`price` / `point` / `closing_at`); opening is the first snapshot
|
|
1895
|
+
* PropLine holds for the outcome, however far before kickoff the book
|
|
1896
|
+
* posted it (`opening_price` / `opening_point` / `opening_at`). Canonical CLV helper: replaces "fetch full history →
|
|
1752
1897
|
* find the first and last pre-game rows" with one call.
|
|
1753
1898
|
*
|
|
1754
1899
|
* Compare the *points* as well as the prices — on spreads and totals
|
|
@@ -1772,7 +1917,7 @@ declare class PropLine {
|
|
|
1772
1917
|
*/
|
|
1773
1918
|
getDfsPayouts(options?: GetDfsPayoutsOptions): Promise<DfsPayoutsResponse>;
|
|
1774
1919
|
/**
|
|
1775
|
-
* Synthetic MLB Grand Salami for a given
|
|
1920
|
+
* Synthetic MLB Grand Salami for a given US Eastern date — total runs scored
|
|
1776
1921
|
* across every MLB game on the slate, plus each book's implied Grand
|
|
1777
1922
|
* Salami line (median of per-game primary totals across our MLB books).
|
|
1778
1923
|
*
|
|
@@ -1782,7 +1927,7 @@ declare class PropLine {
|
|
|
1782
1927
|
*/
|
|
1783
1928
|
getMlbGrandSalami(options?: GetMlbGrandSalamiOptions): Promise<MlbGrandSalamiResponse>;
|
|
1784
1929
|
/**
|
|
1785
|
-
* Synthetic NHL Daily Goals Total for a given
|
|
1930
|
+
* Synthetic NHL Daily Goals Total for a given US Eastern date — total goals
|
|
1786
1931
|
* scored (incl. OT/SO) across every NHL game on the slate, plus each
|
|
1787
1932
|
* book's implied Daily Goals Total line (median of per-game primary
|
|
1788
1933
|
* totals across our NHL books).
|
|
@@ -2269,6 +2414,6 @@ declare const Bookmakers: {
|
|
|
2269
2414
|
readonly PRIZEPICKS: "prizepicks";
|
|
2270
2415
|
};
|
|
2271
2416
|
type BookmakerKey = (typeof Bookmakers)[keyof typeof Bookmakers];
|
|
2272
|
-
declare const VERSION = "0.
|
|
2417
|
+
declare const VERSION = "0.54.0";
|
|
2273
2418
|
|
|
2274
|
-
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 EventProjectionsResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetEventProjectionsOptions, 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, type ProjectionRow, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ReplayEvent, type ReplayPage, type ReplayWebhookEventsOptions, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type SgpBookError, type SgpLegInput, type SgpLegQuote, type SgpMultiQuoteResponse, type SgpQuoteResponse, type Sport, type StatsResponse, type SteamMove, type StreamOptions, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
|
|
2419
|
+
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 DepthLevel, type DfsPayoutTier, type DfsPayoutsResponse, type DfsPlayPayout, type EvLine, type EvOutcome, type Event, type EventBestLineResponse, type EventEvCalcResponse, type EventEvResponse, type EventProjectionsResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetEventProjectionsOptions, type GetMlbGrandSalamiOptions, type GetMovementOptions, type GetNhlDailyGoalsTotalOptions, type GetOddsClosingOptions, type GetOddsHistoryOptions, type GetOddsOptions, type GetPlayerGamesOptions, type GetPlayerHistoryOptions, type GetPlayerTrendsOptions, type GetResultsOptions, type GetScoresOptions, type GetStatsOptions, type HitRateSplit, type LineMovementPrice, type LineMovementWebhookPayload, 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, type ProjectionRow, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ReplayEvent, type ReplayPage, type ReplayWebhookEventsOptions, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type SgpBookError, type SgpLegInput, type SgpLegQuote, type SgpMultiQuoteResponse, type SgpQuoteResponse, type Sport, type StatsResponse, type SteamMove, type SteamWebhookPayload, type StreamOptions, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
|
package/dist/index.d.ts
CHANGED
|
@@ -54,8 +54,28 @@ interface Event {
|
|
|
54
54
|
* it now resolves — costs one request per stored event.
|
|
55
55
|
*/
|
|
56
56
|
merged_from_event_ids?: string[] | null;
|
|
57
|
+
/**
|
|
58
|
+
* True for a tournament/outright listing (a tennis, golf, racing or
|
|
59
|
+
* cycling event with no away side — `away_team` is "").
|
|
60
|
+
*/
|
|
61
|
+
is_outright?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Tennis only: the competition this match belongs to (e.g. "US Open").
|
|
64
|
+
* One `tennis` key mixes every tour, so this and `tour` say which. `null`
|
|
65
|
+
* for every other sport and where unknown.
|
|
66
|
+
*/
|
|
67
|
+
tournament?: string | null;
|
|
68
|
+
/** Tennis only: the tour — "ATP", "WTA", "Challenger", "ITF", "UTR", "Exhibition" or "Team". `null` elsewhere. */
|
|
69
|
+
tour?: string | null;
|
|
57
70
|
[k: string]: unknown;
|
|
58
71
|
}
|
|
72
|
+
/** One order-book level beyond an outcome's served price (see `Outcome.depth`). */
|
|
73
|
+
interface DepthLevel {
|
|
74
|
+
/** American odds at this level. */
|
|
75
|
+
price: number;
|
|
76
|
+
/** Dollars a taker can spend at this level. */
|
|
77
|
+
size: number | null;
|
|
78
|
+
}
|
|
59
79
|
interface Outcome {
|
|
60
80
|
name: string;
|
|
61
81
|
description?: string | null;
|
|
@@ -132,6 +152,23 @@ interface Outcome {
|
|
|
132
152
|
* `line_movement` webhooks.
|
|
133
153
|
*/
|
|
134
154
|
liquidity?: number | null;
|
|
155
|
+
/**
|
|
156
|
+
* When the exchange last touched the resting order behind `liquidity`
|
|
157
|
+
* (ISO datetime, the book's own timestamp). Discount sizes that are old.
|
|
158
|
+
*/
|
|
159
|
+
liquidity_updated_at?: string | null;
|
|
160
|
+
/**
|
|
161
|
+
* Up to three order-book levels BEYOND the served `price`. Only present
|
|
162
|
+
* when the request passed `includeDepth: true`; `[]` when the book has
|
|
163
|
+
* nothing further or PropLine does not read its depth (sportsbooks).
|
|
164
|
+
*/
|
|
165
|
+
depth?: DepthLevel[];
|
|
166
|
+
/**
|
|
167
|
+
* Which side of the EVENT this leg is on: `"home"`, `"away"` or
|
|
168
|
+
* `"draw"`; `null` for Over/Under, Yes/No and player legs. Lets you pair
|
|
169
|
+
* legs without matching a book's own team spelling.
|
|
170
|
+
*/
|
|
171
|
+
side?: "home" | "away" | "draw" | null;
|
|
135
172
|
/**
|
|
136
173
|
* Signed line-difficulty delta for a PrizePicks goblin/demon outcome:
|
|
137
174
|
* `point - standard_point` for the same player+stat. Positive on a harder
|
|
@@ -278,6 +315,19 @@ interface OddsResponse {
|
|
|
278
315
|
* it now resolves — costs one request per stored event.
|
|
279
316
|
*/
|
|
280
317
|
merged_from_event_ids?: string[] | null;
|
|
318
|
+
/**
|
|
319
|
+
* True for a tournament/outright listing (a tennis, golf, racing or
|
|
320
|
+
* cycling event with no away side — `away_team` is "").
|
|
321
|
+
*/
|
|
322
|
+
is_outright?: boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Tennis only: the competition this match belongs to (e.g. "US Open").
|
|
325
|
+
* One `tennis` key mixes every tour, so this and `tour` say which. `null`
|
|
326
|
+
* for every other sport and where unknown.
|
|
327
|
+
*/
|
|
328
|
+
tournament?: string | null;
|
|
329
|
+
/** Tennis only: the tour — "ATP", "WTA", "Challenger", "ITF", "UTR", "Exhibition" or "Team". `null` elsewhere. */
|
|
330
|
+
tour?: string | null;
|
|
281
331
|
bookmakers: Bookmaker[];
|
|
282
332
|
[k: string]: unknown;
|
|
283
333
|
}
|
|
@@ -445,6 +495,10 @@ interface ScoreEvent {
|
|
|
445
495
|
home_team_logo_url?: string | null;
|
|
446
496
|
/** Away-side counterpart of `home_team_logo_url`. */
|
|
447
497
|
away_team_logo_url?: string | null;
|
|
498
|
+
/** Tennis only — see `Event.tournament`. */
|
|
499
|
+
tournament?: string | null;
|
|
500
|
+
/** Tennis only — see `Event.tour`. */
|
|
501
|
+
tour?: string | null;
|
|
448
502
|
status: "upcoming" | "in_progress" | "final" | string;
|
|
449
503
|
home_score: number | null;
|
|
450
504
|
away_score: number | null;
|
|
@@ -587,6 +641,10 @@ interface MovementOutcome {
|
|
|
587
641
|
direction: string | null;
|
|
588
642
|
num_snapshots: number;
|
|
589
643
|
redacted: boolean;
|
|
644
|
+
/** PropLine's stable id for this selection — the same id `/odds` and webhook payloads carry. */
|
|
645
|
+
outcome_id?: number | null;
|
|
646
|
+
/** The book's own selection id. Only set when the request passed `includeBookIds: true`. */
|
|
647
|
+
book_outcome_id?: string | null;
|
|
590
648
|
[k: string]: unknown;
|
|
591
649
|
}
|
|
592
650
|
interface MovementMarket {
|
|
@@ -620,6 +678,66 @@ interface SteamMove {
|
|
|
620
678
|
avg_prob_shift: number;
|
|
621
679
|
consensus_point_shift: number | null;
|
|
622
680
|
steam_score: number;
|
|
681
|
+
/** Canonical team name for a team-total steam move; `null` otherwise. */
|
|
682
|
+
team?: string | null;
|
|
683
|
+
/** Median opening line across the books that moved. */
|
|
684
|
+
open_point?: number | null;
|
|
685
|
+
/** Median latest line across the books that moved. */
|
|
686
|
+
latest_point?: number | null;
|
|
687
|
+
[k: string]: unknown;
|
|
688
|
+
}
|
|
689
|
+
/** One side of a `line_movement` webhook payload (`previous` / `current`). */
|
|
690
|
+
interface LineMovementPrice {
|
|
691
|
+
price_american: number | null;
|
|
692
|
+
point: number | null;
|
|
693
|
+
/** Dollars stakeable at this price (exchanges / Pinnacle); `null` for other books. */
|
|
694
|
+
liquidity?: number | null;
|
|
695
|
+
/** The book's own timestamp for that size (ISO datetime). */
|
|
696
|
+
liquidity_updated_at?: string | null;
|
|
697
|
+
}
|
|
698
|
+
/** Body of a `line_movement` webhook delivery. */
|
|
699
|
+
interface LineMovementWebhookPayload {
|
|
700
|
+
event_type: "line_movement";
|
|
701
|
+
sport_key: string;
|
|
702
|
+
event: Record<string, unknown>;
|
|
703
|
+
bookmaker_key: string;
|
|
704
|
+
bookmaker_title: string;
|
|
705
|
+
market_id: number;
|
|
706
|
+
market_key: string;
|
|
707
|
+
market_description: string | null;
|
|
708
|
+
outcome_id: number;
|
|
709
|
+
book_outcome_id: string | null;
|
|
710
|
+
player_id: string | null;
|
|
711
|
+
player_name: string | null;
|
|
712
|
+
outcome_name: string;
|
|
713
|
+
dfs_odds_type: "standard" | "goblin" | "demon" | null;
|
|
714
|
+
payout_multiplier: number | null;
|
|
715
|
+
previous: LineMovementPrice;
|
|
716
|
+
current: LineMovementPrice;
|
|
717
|
+
price_change_pct: number;
|
|
718
|
+
timestamp: string;
|
|
719
|
+
[k: string]: unknown;
|
|
720
|
+
}
|
|
721
|
+
/** Body of a `steam` webhook delivery. */
|
|
722
|
+
interface SteamWebhookPayload {
|
|
723
|
+
event_type: "steam";
|
|
724
|
+
sport_key: string;
|
|
725
|
+
event: Record<string, unknown>;
|
|
726
|
+
market_key: string;
|
|
727
|
+
period: string | null;
|
|
728
|
+
outcome_name: string;
|
|
729
|
+
player_name: string | null;
|
|
730
|
+
/** Canonical team name for a team-total move; `null` otherwise. */
|
|
731
|
+
team: string | null;
|
|
732
|
+
open_point: number | null;
|
|
733
|
+
latest_point: number | null;
|
|
734
|
+
consensus_direction: string;
|
|
735
|
+
books_quoting: number;
|
|
736
|
+
books_moved: number;
|
|
737
|
+
avg_prob_shift: number;
|
|
738
|
+
consensus_point_shift: number | null;
|
|
739
|
+
steam_score: number;
|
|
740
|
+
timestamp: string;
|
|
623
741
|
[k: string]: unknown;
|
|
624
742
|
}
|
|
625
743
|
interface MovementResponse {
|
|
@@ -1366,6 +1484,14 @@ interface GetOddsOptions {
|
|
|
1366
1484
|
* equivalent.
|
|
1367
1485
|
*/
|
|
1368
1486
|
includeBookIds?: boolean;
|
|
1487
|
+
/**
|
|
1488
|
+
* When true, every outcome carries `depth`: up to three order-book levels
|
|
1489
|
+
* BEYOND the served price, each `{ price, size }` (American odds, dollars).
|
|
1490
|
+
* `[]` when the book has nothing further or PropLine does not read depth
|
|
1491
|
+
* for that book (sportsbooks). Omitted from the response unless requested.
|
|
1492
|
+
* PropLine-specific (`includeDepth=true`).
|
|
1493
|
+
*/
|
|
1494
|
+
includeDepth?: boolean;
|
|
1369
1495
|
}
|
|
1370
1496
|
interface GetOddsHistoryOptions {
|
|
1371
1497
|
markets?: string[];
|
|
@@ -1392,6 +1518,12 @@ interface GetOddsClosingOptions {
|
|
|
1392
1518
|
period?: PeriodFilter;
|
|
1393
1519
|
/** Bookmaker key(s) to restrict the response to. Omitted = all books. */
|
|
1394
1520
|
bookmakers?: string | string[];
|
|
1521
|
+
/**
|
|
1522
|
+
* Limit the opening lookback to this many days before kickoff (1-3650), or
|
|
1523
|
+
* `"all"` (the default: the first snapshot held). `14` matches the
|
|
1524
|
+
* resolved-props export's opening columns.
|
|
1525
|
+
*/
|
|
1526
|
+
openingWindow?: number | "all";
|
|
1395
1527
|
}
|
|
1396
1528
|
interface GetMovementOptions {
|
|
1397
1529
|
markets?: string[];
|
|
@@ -1399,6 +1531,19 @@ interface GetMovementOptions {
|
|
|
1399
1531
|
period?: PeriodFilter;
|
|
1400
1532
|
/** Bookmaker key(s) to restrict the response to. Omitted = all books. */
|
|
1401
1533
|
bookmakers?: string | string[];
|
|
1534
|
+
/**
|
|
1535
|
+
* Measure movement from this moment instead of from each line's first
|
|
1536
|
+
* quote. ISO-8601 timestamp or a negative offset from now (`"-6h"`,
|
|
1537
|
+
* `"-30m"`, `"-2d"`). Each outcome's opening is the price it held at
|
|
1538
|
+
* `since` (or its first quote after), so steam covers only moves inside
|
|
1539
|
+
* the window.
|
|
1540
|
+
*/
|
|
1541
|
+
since?: string;
|
|
1542
|
+
/**
|
|
1543
|
+
* When true, each movement outcome carries `book_outcome_id` (the book's
|
|
1544
|
+
* own selection id). `outcome_id` (PropLine's id) is always present.
|
|
1545
|
+
*/
|
|
1546
|
+
includeBookIds?: boolean;
|
|
1402
1547
|
}
|
|
1403
1548
|
interface GetScoresOptions {
|
|
1404
1549
|
/** Days back to include (default 3). */
|
|
@@ -1746,9 +1891,9 @@ declare class PropLine {
|
|
|
1746
1891
|
/**
|
|
1747
1892
|
* Get the opening AND closing line per `(book, market, outcome)` for an
|
|
1748
1893
|
* event. Closing is the last snapshot at or before commence_time
|
|
1749
|
-
* (`price` / `point` / `closing_at`); opening is the first snapshot
|
|
1750
|
-
* the
|
|
1751
|
-
* / `opening_at`). Canonical CLV helper: replaces "fetch full history →
|
|
1894
|
+
* (`price` / `point` / `closing_at`); opening is the first snapshot
|
|
1895
|
+
* PropLine holds for the outcome, however far before kickoff the book
|
|
1896
|
+
* posted it (`opening_price` / `opening_point` / `opening_at`). Canonical CLV helper: replaces "fetch full history →
|
|
1752
1897
|
* find the first and last pre-game rows" with one call.
|
|
1753
1898
|
*
|
|
1754
1899
|
* Compare the *points* as well as the prices — on spreads and totals
|
|
@@ -1772,7 +1917,7 @@ declare class PropLine {
|
|
|
1772
1917
|
*/
|
|
1773
1918
|
getDfsPayouts(options?: GetDfsPayoutsOptions): Promise<DfsPayoutsResponse>;
|
|
1774
1919
|
/**
|
|
1775
|
-
* Synthetic MLB Grand Salami for a given
|
|
1920
|
+
* Synthetic MLB Grand Salami for a given US Eastern date — total runs scored
|
|
1776
1921
|
* across every MLB game on the slate, plus each book's implied Grand
|
|
1777
1922
|
* Salami line (median of per-game primary totals across our MLB books).
|
|
1778
1923
|
*
|
|
@@ -1782,7 +1927,7 @@ declare class PropLine {
|
|
|
1782
1927
|
*/
|
|
1783
1928
|
getMlbGrandSalami(options?: GetMlbGrandSalamiOptions): Promise<MlbGrandSalamiResponse>;
|
|
1784
1929
|
/**
|
|
1785
|
-
* Synthetic NHL Daily Goals Total for a given
|
|
1930
|
+
* Synthetic NHL Daily Goals Total for a given US Eastern date — total goals
|
|
1786
1931
|
* scored (incl. OT/SO) across every NHL game on the slate, plus each
|
|
1787
1932
|
* book's implied Daily Goals Total line (median of per-game primary
|
|
1788
1933
|
* totals across our NHL books).
|
|
@@ -2269,6 +2414,6 @@ declare const Bookmakers: {
|
|
|
2269
2414
|
readonly PRIZEPICKS: "prizepicks";
|
|
2270
2415
|
};
|
|
2271
2416
|
type BookmakerKey = (typeof Bookmakers)[keyof typeof Bookmakers];
|
|
2272
|
-
declare const VERSION = "0.
|
|
2417
|
+
declare const VERSION = "0.54.0";
|
|
2273
2418
|
|
|
2274
|
-
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 EventProjectionsResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetEventProjectionsOptions, 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, type ProjectionRow, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ReplayEvent, type ReplayPage, type ReplayWebhookEventsOptions, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type SgpBookError, type SgpLegInput, type SgpLegQuote, type SgpMultiQuoteResponse, type SgpQuoteResponse, type Sport, type StatsResponse, type SteamMove, type StreamOptions, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
|
|
2419
|
+
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 DepthLevel, type DfsPayoutTier, type DfsPayoutsResponse, type DfsPlayPayout, type EvLine, type EvOutcome, type Event, type EventBestLineResponse, type EventEvCalcResponse, type EventEvResponse, type EventProjectionsResponse, type ExportOddsHistoryOptions, type ExportResolvedPropsOptions, type FuturesEvent, type FuturesMarket, type FuturesOutcome, type GetDfsPayoutsOptions, type GetEventBestLineOptions, type GetEventEvOptions, type GetEventProjectionsOptions, type GetMlbGrandSalamiOptions, type GetMovementOptions, type GetNhlDailyGoalsTotalOptions, type GetOddsClosingOptions, type GetOddsHistoryOptions, type GetOddsOptions, type GetPlayerGamesOptions, type GetPlayerHistoryOptions, type GetPlayerTrendsOptions, type GetResultsOptions, type GetScoresOptions, type GetStatsOptions, type HitRateSplit, type LineMovementPrice, type LineMovementWebhookPayload, 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, type ProjectionRow, PropLine, PropLineError, type PropLineErrorInfo, type PropLineOptions, type QuotaStatus, RateLimitError, type ReplayEvent, type ReplayPage, type ReplayWebhookEventsOptions, type ResolutionSummary, type ResolutionSummaryMarket, type ResolutionSummarySport, type ResolvedOutcome, type ResultsMarket, type ResultsResponse, type ScoreEvent, type SgpBookError, type SgpLegInput, type SgpLegQuote, type SgpMultiQuoteResponse, type SgpQuoteResponse, type Sport, type StatsResponse, type SteamMove, type SteamWebhookPayload, type StreamOptions, type TrendLastGame, type TrendStreak, type UpdateWebhookOptions, VERSION, type VerifySignatureOptions, type WeatherInfo, type Webhook, type WebhookDelivery, type WebhookEventType };
|
package/dist/index.js
CHANGED
|
@@ -169,6 +169,7 @@ var PropLine = class {
|
|
|
169
169
|
if (bookmakersParam !== void 0) params.bookmakers = bookmakersParam;
|
|
170
170
|
if (options.includeLinks) params.includeLinks = "true";
|
|
171
171
|
if (options.includeBookIds) params.includeBookIds = "true";
|
|
172
|
+
if (options.includeDepth) params.includeDepth = "true";
|
|
172
173
|
const sp = encodeURIComponent(sport);
|
|
173
174
|
if (options.eventId !== void 0) {
|
|
174
175
|
return this._request(
|
|
@@ -221,9 +222,9 @@ var PropLine = class {
|
|
|
221
222
|
/**
|
|
222
223
|
* Get the opening AND closing line per `(book, market, outcome)` for an
|
|
223
224
|
* event. Closing is the last snapshot at or before commence_time
|
|
224
|
-
* (`price` / `point` / `closing_at`); opening is the first snapshot
|
|
225
|
-
* the
|
|
226
|
-
* / `opening_at`). Canonical CLV helper: replaces "fetch full history →
|
|
225
|
+
* (`price` / `point` / `closing_at`); opening is the first snapshot
|
|
226
|
+
* PropLine holds for the outcome, however far before kickoff the book
|
|
227
|
+
* posted it (`opening_price` / `opening_point` / `opening_at`). Canonical CLV helper: replaces "fetch full history →
|
|
227
228
|
* find the first and last pre-game rows" with one call.
|
|
228
229
|
*
|
|
229
230
|
* Compare the *points* as well as the prices — on spreads and totals
|
|
@@ -241,6 +242,9 @@ var PropLine = class {
|
|
|
241
242
|
if (periodParam3 !== void 0) params.period = periodParam3;
|
|
242
243
|
const bookmakersParam3 = _bookmakersParam(options.bookmakers);
|
|
243
244
|
if (bookmakersParam3 !== void 0) params.bookmakers = bookmakersParam3;
|
|
245
|
+
if (options.openingWindow !== void 0) {
|
|
246
|
+
params.opening_window = String(options.openingWindow);
|
|
247
|
+
}
|
|
244
248
|
return this._request(
|
|
245
249
|
"GET",
|
|
246
250
|
`/sports/${encodeURIComponent(sport)}/events/${encodeURIComponent(String(eventId))}/odds/closing`,
|
|
@@ -273,7 +277,7 @@ var PropLine = class {
|
|
|
273
277
|
return this._request("GET", "/dfs/payouts", { params });
|
|
274
278
|
}
|
|
275
279
|
/**
|
|
276
|
-
* Synthetic MLB Grand Salami for a given
|
|
280
|
+
* Synthetic MLB Grand Salami for a given US Eastern date — total runs scored
|
|
277
281
|
* across every MLB game on the slate, plus each book's implied Grand
|
|
278
282
|
* Salami line (median of per-game primary totals across our MLB books).
|
|
279
283
|
*
|
|
@@ -291,7 +295,7 @@ var PropLine = class {
|
|
|
291
295
|
);
|
|
292
296
|
}
|
|
293
297
|
/**
|
|
294
|
-
* Synthetic NHL Daily Goals Total for a given
|
|
298
|
+
* Synthetic NHL Daily Goals Total for a given US Eastern date — total goals
|
|
295
299
|
* scored (incl. OT/SO) across every NHL game on the slate, plus each
|
|
296
300
|
* book's implied Daily Goals Total line (median of per-game primary
|
|
297
301
|
* totals across our NHL books).
|
|
@@ -383,6 +387,8 @@ var PropLine = class {
|
|
|
383
387
|
}
|
|
384
388
|
params.period = _periodParam(options.period);
|
|
385
389
|
params.bookmakers = _bookmakersParam(options.bookmakers);
|
|
390
|
+
if (options.since) params.since = options.since;
|
|
391
|
+
if (options.includeBookIds) params.includeBookIds = "true";
|
|
386
392
|
return this._request(
|
|
387
393
|
"GET",
|
|
388
394
|
`/sports/${encodeURIComponent(sport)}/events/${encodeURIComponent(String(eventId))}/movement`,
|
|
@@ -1072,7 +1078,7 @@ var Bookmakers = {
|
|
|
1072
1078
|
POLYMARKET: "polymarket",
|
|
1073
1079
|
PRIZEPICKS: "prizepicks"
|
|
1074
1080
|
};
|
|
1075
|
-
var VERSION = "0.
|
|
1081
|
+
var VERSION = "0.54.0";
|
|
1076
1082
|
export {
|
|
1077
1083
|
AuthError,
|
|
1078
1084
|
Bookmakers,
|