@predictorsdk/client 0.15.2 → 0.16.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.
Files changed (76) hide show
  1. package/dist/Client.d.ts +5 -5
  2. package/dist/Client.js +15 -6
  3. package/dist/api/client/requests/GetEventRequest.d.ts +1 -1
  4. package/dist/api/client/requests/GetMarketRequest.d.ts +2 -2
  5. package/dist/api/client/requests/GetMarketsRequest.d.ts +1 -1
  6. package/dist/api/client/requests/GetSportsMatchingMarketsRequest.d.ts +12 -3
  7. package/dist/api/types/CanonicalSportsSourceMarketProvider.d.ts +1 -0
  8. package/dist/api/types/CanonicalSportsSourceMarketProvider.js +1 -0
  9. package/dist/api/types/CanonicalSportsSourceOutcome.d.ts +1 -1
  10. package/dist/api/types/CanonicalSportsSubmarket.d.ts +4 -0
  11. package/dist/api/types/CanonicalSportsSubmarketSettlementEquivalence.d.ts +7 -0
  12. package/dist/api/types/CanonicalSportsSubmarketSettlementEquivalence.js +7 -0
  13. package/dist/api/types/EventMarket.d.ts +1 -1
  14. package/dist/api/types/EventResponsePlatform.d.ts +2 -0
  15. package/dist/api/types/EventResponsePlatform.js +2 -0
  16. package/dist/api/types/GetEventRequestPlatform.d.ts +2 -0
  17. package/dist/api/types/GetEventRequestPlatform.js +2 -0
  18. package/dist/api/types/GetMarketRequestPlatform.d.ts +2 -0
  19. package/dist/api/types/GetMarketRequestPlatform.js +2 -0
  20. package/dist/api/types/GetMarketsRequestProvider.d.ts +2 -0
  21. package/dist/api/types/GetMarketsRequestProvider.js +2 -0
  22. package/dist/api/types/GetSportsMatchingMarketsRequestPlayerPropMatch.d.ts +5 -0
  23. package/dist/api/types/GetSportsMatchingMarketsRequestPlayerPropMatch.js +5 -0
  24. package/dist/api/types/MarketDetailPricing.d.ts +1 -0
  25. package/dist/api/types/MarketDetailResponse.d.ts +2 -2
  26. package/dist/api/types/MarketDetailResponseProvider.d.ts +2 -0
  27. package/dist/api/types/MarketDetailResponseProvider.js +2 -0
  28. package/dist/api/types/MarketDetailTradingFees.d.ts +1 -1
  29. package/dist/api/types/PlatformMarket.d.ts +2 -2
  30. package/dist/api/types/PlatformMarketPlatform.d.ts +1 -0
  31. package/dist/api/types/PlatformMarketPlatform.js +1 -0
  32. package/dist/api/types/PlayerPropRuleComparison.d.ts +9 -0
  33. package/dist/api/types/PlayerPropRuleComparison.js +2 -0
  34. package/dist/api/types/PlayerPropRuleComparisonComparison.d.ts +7 -0
  35. package/dist/api/types/PlayerPropRuleComparisonComparison.js +7 -0
  36. package/dist/api/types/PlayerPropRuleComparisonRule.d.ts +12 -0
  37. package/dist/api/types/PlayerPropRuleComparisonRule.js +12 -0
  38. package/dist/api/types/PlayerPropRuleSourceValue.d.ts +12 -0
  39. package/dist/api/types/PlayerPropRuleSourceValue.js +2 -0
  40. package/dist/api/types/UnifiedMarketProvider.d.ts +2 -0
  41. package/dist/api/types/UnifiedMarketProvider.js +2 -0
  42. package/dist/api/types/index.d.ts +6 -0
  43. package/dist/api/types/index.js +6 -0
  44. package/dist/serialization/types/CanonicalSportsSourceMarketProvider.d.ts +1 -1
  45. package/dist/serialization/types/CanonicalSportsSourceMarketProvider.js +1 -1
  46. package/dist/serialization/types/CanonicalSportsSubmarket.d.ts +4 -0
  47. package/dist/serialization/types/CanonicalSportsSubmarket.js +4 -0
  48. package/dist/serialization/types/CanonicalSportsSubmarketSettlementEquivalence.d.ts +7 -0
  49. package/dist/serialization/types/CanonicalSportsSubmarketSettlementEquivalence.js +3 -0
  50. package/dist/serialization/types/EventResponsePlatform.d.ts +1 -1
  51. package/dist/serialization/types/EventResponsePlatform.js +10 -1
  52. package/dist/serialization/types/GetEventRequestPlatform.d.ts +1 -1
  53. package/dist/serialization/types/GetEventRequestPlatform.js +10 -1
  54. package/dist/serialization/types/GetMarketRequestPlatform.d.ts +1 -1
  55. package/dist/serialization/types/GetMarketRequestPlatform.js +10 -1
  56. package/dist/serialization/types/GetMarketsRequestProvider.d.ts +1 -1
  57. package/dist/serialization/types/GetMarketsRequestProvider.js +10 -1
  58. package/dist/serialization/types/GetSportsMatchingMarketsRequestPlayerPropMatch.d.ts +7 -0
  59. package/dist/serialization/types/GetSportsMatchingMarketsRequestPlayerPropMatch.js +3 -0
  60. package/dist/serialization/types/MarketDetailResponseProvider.d.ts +1 -1
  61. package/dist/serialization/types/MarketDetailResponseProvider.js +10 -1
  62. package/dist/serialization/types/PlatformMarketPlatform.d.ts +1 -1
  63. package/dist/serialization/types/PlatformMarketPlatform.js +1 -1
  64. package/dist/serialization/types/PlayerPropRuleComparison.d.ts +15 -0
  65. package/dist/serialization/types/PlayerPropRuleComparison.js +11 -0
  66. package/dist/serialization/types/PlayerPropRuleComparisonComparison.d.ts +7 -0
  67. package/dist/serialization/types/PlayerPropRuleComparisonComparison.js +3 -0
  68. package/dist/serialization/types/PlayerPropRuleComparisonRule.d.ts +7 -0
  69. package/dist/serialization/types/PlayerPropRuleComparisonRule.js +13 -0
  70. package/dist/serialization/types/PlayerPropRuleSourceValue.d.ts +13 -0
  71. package/dist/serialization/types/PlayerPropRuleSourceValue.js +9 -0
  72. package/dist/serialization/types/UnifiedMarketProvider.d.ts +1 -1
  73. package/dist/serialization/types/UnifiedMarketProvider.js +10 -1
  74. package/dist/serialization/types/index.d.ts +6 -0
  75. package/dist/serialization/types/index.js +6 -0
  76. package/package.json +1 -1
package/dist/Client.d.ts CHANGED
@@ -25,7 +25,7 @@ export declare class PredictorSDKClient {
25
25
  getPlans(requestOptions?: PredictorSDKClient.RequestOptions): core.HttpResponsePromise<PredictorSDK.PlansResponse>;
26
26
  private __getPlans;
27
27
  /**
28
- * Find cross-platform market matches for sports events. Coverage is NBA, WNBA, NHL, MLB, and NFL; `canonical_events[].league` names the league and is the first segment of the canonical `event_id`. When called without parameters, returns all currently matched sports markets with cursor-based pagination (default `limit=25`, max `100`) — games whose date has passed are excluded unless you ask for them with `include_settled=true`. Provide a canonical event key, Kalshi event ticker, Polymarket slug, Predict market ID, or SX Bet market ID to look up a specific event — lookups return the full match immediately and skip pagination. Every platform row includes its provider-native `event_id` for use with `GET /v1/events/{event_id}`; pass that row's `platform` value as the events endpoint's `platform` query parameter, which is required to disambiguate Predict and AlphaArcade identifiers.
28
+ * Find cross-platform market matches for sports events. Coverage is NBA, WNBA, NHL, MLB, and NFL; `canonical_events[].league` names the league and is the first segment of the canonical `event_id`. When called without parameters, returns all currently matched sports markets with cursor-based pagination (default `limit=25`, max `100`) — games whose date has passed are excluded unless you ask for them with `include_settled=true`. Provide a canonical event key, Kalshi event ticker, Polymarket slug, Predict market ID, SX Bet market ID, AlphaArcade market ULID, ProphetX event ID, or ProphetX market ID to look up a specific event — lookups return the full match immediately and skip pagination. Every platform row includes its provider-native `event_id` for use with `GET /v1/events/{event_id}`; pass that row's `platform` value as the events endpoint's `platform` query parameter, which is required to disambiguate Predict and AlphaArcade identifiers. Player props use strict settlement-equivalent matching by default. Set `include_submarkets=true&player_prop_match=same_prop` to compare roster-verified props with the same player, game, statistic, full-game period, and threshold even when settlement rules differ or remain unverified. Each player prop includes a nine-dimension rule matrix. This policy applies only to player props, not game lines; a same-prop match is not a guarantee of identical payouts or a perfect hedge.
29
29
  *
30
30
  * @param {PredictorSDK.GetSportsMatchingMarketsRequest} request
31
31
  * @param {PredictorSDKClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -92,9 +92,9 @@ export declare class PredictorSDKClient {
92
92
  getCategories(requestOptions?: PredictorSDKClient.RequestOptions): core.HttpResponsePromise<PredictorSDK.CategoriesResponse>;
93
93
  private __getCategories;
94
94
  /**
95
- * Returns a single market across the six supported platforms (Kalshi, Polymarket, Predict, SX Bet, Hyperliquid, AlphaArcade). The `market_id` is either the composite form returned by `GET /v1/markets` (`{provider}:{native_id}`, e.g. `kalshi:KXNBA-27-SAS`) or the platform-native identifier. Composite IDs dispatch unambiguously by prefix. Native IDs are routed by format inference: Kalshi tickers match the all-caps-with-hyphens shape (`KX…-…`); SX Bet hashes match `0x` + 64 hex characters.
95
+ * Returns a single market across the eight supported platforms (Kalshi, Polymarket, Predict, SX Bet, Hyperliquid, AlphaArcade, ProphetX, Limitless). The `market_id` is either the composite form returned by `GET /v1/markets` (`{provider}:{native_id}`, e.g. `kalshi:KXNBA-27-SAS`) or the platform-native identifier. Composite IDs dispatch unambiguously by prefix. Native IDs are routed by format inference: Kalshi tickers match the all-caps-with-hyphens shape (`KX…-…`); SX Bet hashes match `0x` + 64 hex characters.
96
96
  *
97
- * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real markets and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer outcome ids collide with Polymarket/Predict numeric ids and are deliberately not inferred — route them via the composite form (`hyperliquid:<id>`) or `?platform=hyperliquid` (alias `hl`). AlphaArcade market ids are ULIDs (26-char Crockford base32, e.g. `01K0HQE3CEM2T2RDRWSCJ3V647`); like Hyperliquid they are not inferred in v1 — route them via the composite form (`alpha-arcade:<ulid>`) or `?platform=alpha-arcade` (alias `aa`).
97
+ * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real markets and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer outcome ids collide with Polymarket/Predict numeric ids and are deliberately not inferred — route them via the composite form (`hyperliquid:<id>`) or `?platform=hyperliquid` (alias `hl`). AlphaArcade market ids are ULIDs (26-char Crockford base32, e.g. `01K0HQE3CEM2T2RDRWSCJ3V647`); like Hyperliquid they are not inferred in v1 — route them via the composite form (`alpha-arcade:<ulid>`) or `?platform=alpha-arcade` (alias `aa`). ProphetX market ids are `<event_id>:<market_id>` pairs (e.g. `1700008782:219` — the market id is a per-sport TYPE id repeated on every event of that sport, 219 being Moneyline on every NFL game, so the event half is the identity); like Hyperliquid they are not inferred in v1 — route them via the composite form (`prophetx:1700008782:219`) or `?platform=prophetx` (aliases `prophet-x`, `px`). v1 resolves the favourite (primary-line) strike of a spread/total. Limitless market ids are kebab-case slugs (e.g. `england-vs-sri-lanka-1789383376774`); like Hyperliquid they are not inferred in v1 — the shape collides with Polymarket/Predict slugs — route them via the composite form (`limitless:<slug>`) or `?platform=limitless`.
98
98
  *
99
99
  * **If you already know the platform, always say so.** Every listing that hands you an identifier also hands you its platform, so the composite form — which `GET /v1/markets` returns natively in `data[].id` — or `?platform={row.platform}` costs nothing, skips the probe, and cannot 409. It is also strictly more available: the probe has to reach both candidates to prove there is no collision, so it fails when either is having an outage, while a named platform only depends on that one.
100
100
  *
@@ -106,7 +106,7 @@ export declare class PredictorSDKClient {
106
106
  *
107
107
  * **Bounding quote freshness.** `pricing.as_of` is the provider's own timestamp and does not mean the same thing on every platform — on Hyperliquid it moves with the order book, while on Kalshi it is a record write measured anywhere from 15 hours to 137 days old on markets reporting `status: open` with a live two-sided book. `pricing.as_of_kind` names which one you received (`quote` / `record_refresh` / `record_static` / `unknown`), so read it before applying an age bound to `as_of`; only `quote` tracks the quote closely enough to bound at all. `pricing.observed_at` is when this server read the quotes, means the same thing on every provider, and is therefore the field to bound when you need one threshold that behaves identically across platforms. It bounds the age of the read, not of the quote: this route reads the venue live per request and caches nothing, so on a `record_static` provider a fresh `observed_at` beside a day-old `as_of` is the honest description of what the venue served, and the executable price should come from that venue's own book.
108
108
  *
109
- * The `trading_fees` tier reports what the VENUE charges to trade this market — its own published fee parameters, normalized to one shape across all six platforms, so cross-venue cost comparison stops requiring six private formulas. Nothing here relates to PredictorSDK's subscription pricing. It is always present, and `trading_fees.availability` distinguishes published parameters from per-account rates that need your own venue credentials (SX Bet, Hyperliquid), from a venue that publishes nothing, and from a fee of genuinely zero. Only Kalshi costs extra upstream hops for it (its parameters live on the parent series plus any scheduled per-event override, all TTL-cached and bounded); those degrade to `availability: "unavailable"` rather than failing the lookup, exactly like the pricing tier. See the `MarketDetailTradingFees` schema for the formulas and for what is deliberately out of scope.
109
+ * The `trading_fees` tier reports what the VENUE charges to trade this market — its own published fee parameters, normalized to one shape across all eight platforms, so cross-venue cost comparison stops requiring eight private formulas. Nothing here relates to PredictorSDK's subscription pricing. It is always present, and `trading_fees.availability` distinguishes published parameters from per-account rates that need your own venue credentials (SX Bet, Hyperliquid), from a venue that publishes nothing, and from a fee of genuinely zero. Only Kalshi costs extra upstream hops for it (its parameters live on the parent series plus any scheduled per-event override, all TTL-cached and bounded); those degrade to `availability: "unavailable"` rather than failing the lookup, exactly like the pricing tier. See the `MarketDetailTradingFees` schema for the formulas and for what is deliberately out of scope.
110
110
  *
111
111
  * @param {PredictorSDK.GetMarketRequest} request
112
112
  * @param {PredictorSDKClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -214,7 +214,7 @@ export declare class PredictorSDKClient {
214
214
  /**
215
215
  * Returns a single event and the markets nested under it on the identified platform. The `event_id` is the platform's native identifier — a Kalshi `event_ticker`, a Polymarket event slug, an SX Bet `eventId`, a Predict market identifier, a Hyperliquid question/outcome integer id, or an AlphaArcade market ULID. The `platform` is inferred from the ID format when unambiguous (`KX…` → Kalshi, `L\d+` → SX Bet). The composite form returned by `GET /v1/markets` (`{provider}:{native_id}`, e.g. `predict:1607914`) also dispatches unambiguously by prefix.
216
216
  *
217
- * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real events and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer ids also collide with those numerics and require `?platform=hyperliquid` (alias `hl`). AlphaArcade ULIDs are not inferred in v1 either — require `?platform=alpha-arcade` (alias `aa`). An AlphaArcade multi-choice market resolves to an event whose nested markets are its options; a binary market (or a single option id) resolves to a single-market event.
217
+ * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real events and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer ids also collide with those numerics and require `?platform=hyperliquid` (alias `hl`). AlphaArcade ULIDs are not inferred in v1 either — require `?platform=alpha-arcade` (alias `aa`). ProphetX event ids are bare positive integers that collide with Polymarket/Predict numerics — require `?platform=prophetx` (aliases `prophet-x`, `px`) or the composite form (`prophetx:1700008782`). Limitless event ids are kebab-case slugs that collide with Polymarket/Predict slugs — require `?platform=limitless` or the composite form (`limitless:england-vs-sri-lanka-1789383376774`). An AlphaArcade multi-choice market resolves to an event whose nested markets are its options; a binary market (or a single option id) resolves to a single-market event.
218
218
  *
219
219
  * **If you already know the platform, always say so.** Every listing that hands you an identifier also hands you its platform, so `?platform={row.platform}` (or the composite form) costs nothing, skips the probe, and cannot 409. It is also strictly more available: the probe has to reach both candidates to prove there is no collision, so it fails when either is having an outage, while a named platform only depends on that one.
220
220
  *
package/dist/Client.js CHANGED
@@ -75,7 +75,7 @@ export class PredictorSDKClient {
75
75
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/plans");
76
76
  }
77
77
  /**
78
- * Find cross-platform market matches for sports events. Coverage is NBA, WNBA, NHL, MLB, and NFL; `canonical_events[].league` names the league and is the first segment of the canonical `event_id`. When called without parameters, returns all currently matched sports markets with cursor-based pagination (default `limit=25`, max `100`) — games whose date has passed are excluded unless you ask for them with `include_settled=true`. Provide a canonical event key, Kalshi event ticker, Polymarket slug, Predict market ID, or SX Bet market ID to look up a specific event — lookups return the full match immediately and skip pagination. Every platform row includes its provider-native `event_id` for use with `GET /v1/events/{event_id}`; pass that row's `platform` value as the events endpoint's `platform` query parameter, which is required to disambiguate Predict and AlphaArcade identifiers.
78
+ * Find cross-platform market matches for sports events. Coverage is NBA, WNBA, NHL, MLB, and NFL; `canonical_events[].league` names the league and is the first segment of the canonical `event_id`. When called without parameters, returns all currently matched sports markets with cursor-based pagination (default `limit=25`, max `100`) — games whose date has passed are excluded unless you ask for them with `include_settled=true`. Provide a canonical event key, Kalshi event ticker, Polymarket slug, Predict market ID, SX Bet market ID, AlphaArcade market ULID, ProphetX event ID, or ProphetX market ID to look up a specific event — lookups return the full match immediately and skip pagination. Every platform row includes its provider-native `event_id` for use with `GET /v1/events/{event_id}`; pass that row's `platform` value as the events endpoint's `platform` query parameter, which is required to disambiguate Predict and AlphaArcade identifiers. Player props use strict settlement-equivalent matching by default. Set `include_submarkets=true&player_prop_match=same_prop` to compare roster-verified props with the same player, game, statistic, full-game period, and threshold even when settlement rules differ or remain unverified. Each player prop includes a nine-dimension rule matrix. This policy applies only to player props, not game lines; a same-prop match is not a guarantee of identical payouts or a perfect hedge.
79
79
  *
80
80
  * @param {PredictorSDK.GetSportsMatchingMarketsRequest} request
81
81
  * @param {PredictorSDKClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -97,17 +97,26 @@ export class PredictorSDKClient {
97
97
  return core.HttpResponsePromise.fromPromise(this.__getSportsMatchingMarkets(request, requestOptions));
98
98
  }
99
99
  async __getSportsMatchingMarkets(request = {}, requestOptions) {
100
- const { limit, cursor, includeSettled, includeSubmarkets, eventId, kalshiEventTicker, polymarketMarketSlug, predictMarketId, sxbetMarketId, } = request;
100
+ const { limit, cursor, includeSettled, playerPropMatch, includeSubmarkets, eventId, kalshiEventTicker, polymarketMarketSlug, predictMarketId, sxbetMarketId, alphaArcadeMarketId, prophetxEventId, prophetxMarketId, } = request;
101
101
  const _queryParams = {
102
102
  limit,
103
103
  cursor,
104
104
  include_settled: includeSettled,
105
+ player_prop_match: playerPropMatch != null
106
+ ? serializers.GetSportsMatchingMarketsRequestPlayerPropMatch.jsonOrThrow(playerPropMatch, {
107
+ unrecognizedObjectKeys: "strip",
108
+ omitUndefined: true,
109
+ })
110
+ : undefined,
105
111
  include_submarkets: includeSubmarkets,
106
112
  event_id: eventId,
107
113
  kalshi_event_ticker: kalshiEventTicker,
108
114
  polymarket_market_slug: polymarketMarketSlug,
109
115
  predict_market_id: predictMarketId,
110
116
  sxbet_market_id: sxbetMarketId,
117
+ alpha_arcade_market_id: alphaArcadeMarketId,
118
+ prophetx_event_id: prophetxEventId,
119
+ prophetx_market_id: prophetxMarketId,
111
120
  };
112
121
  const _authRequest = await this._options.authProvider.getAuthRequest();
113
122
  const _headers = mergeHeaders(_authRequest.headers, this._options?.headers, requestOptions?.headers);
@@ -462,9 +471,9 @@ export class PredictorSDKClient {
462
471
  return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/categories");
463
472
  }
464
473
  /**
465
- * Returns a single market across the six supported platforms (Kalshi, Polymarket, Predict, SX Bet, Hyperliquid, AlphaArcade). The `market_id` is either the composite form returned by `GET /v1/markets` (`{provider}:{native_id}`, e.g. `kalshi:KXNBA-27-SAS`) or the platform-native identifier. Composite IDs dispatch unambiguously by prefix. Native IDs are routed by format inference: Kalshi tickers match the all-caps-with-hyphens shape (`KX…-…`); SX Bet hashes match `0x` + 64 hex characters.
474
+ * Returns a single market across the eight supported platforms (Kalshi, Polymarket, Predict, SX Bet, Hyperliquid, AlphaArcade, ProphetX, Limitless). The `market_id` is either the composite form returned by `GET /v1/markets` (`{provider}:{native_id}`, e.g. `kalshi:KXNBA-27-SAS`) or the platform-native identifier. Composite IDs dispatch unambiguously by prefix. Native IDs are routed by format inference: Kalshi tickers match the all-caps-with-hyphens shape (`KX…-…`); SX Bet hashes match `0x` + 64 hex characters.
466
475
  *
467
- * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real markets and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer outcome ids collide with Polymarket/Predict numeric ids and are deliberately not inferred — route them via the composite form (`hyperliquid:<id>`) or `?platform=hyperliquid` (alias `hl`). AlphaArcade market ids are ULIDs (26-char Crockford base32, e.g. `01K0HQE3CEM2T2RDRWSCJ3V647`); like Hyperliquid they are not inferred in v1 — route them via the composite form (`alpha-arcade:<ulid>`) or `?platform=alpha-arcade` (alias `aa`).
476
+ * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real markets and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer outcome ids collide with Polymarket/Predict numeric ids and are deliberately not inferred — route them via the composite form (`hyperliquid:<id>`) or `?platform=hyperliquid` (alias `hl`). AlphaArcade market ids are ULIDs (26-char Crockford base32, e.g. `01K0HQE3CEM2T2RDRWSCJ3V647`); like Hyperliquid they are not inferred in v1 — route them via the composite form (`alpha-arcade:<ulid>`) or `?platform=alpha-arcade` (alias `aa`). ProphetX market ids are `<event_id>:<market_id>` pairs (e.g. `1700008782:219` — the market id is a per-sport TYPE id repeated on every event of that sport, 219 being Moneyline on every NFL game, so the event half is the identity); like Hyperliquid they are not inferred in v1 — route them via the composite form (`prophetx:1700008782:219`) or `?platform=prophetx` (aliases `prophet-x`, `px`). v1 resolves the favourite (primary-line) strike of a spread/total. Limitless market ids are kebab-case slugs (e.g. `england-vs-sri-lanka-1789383376774`); like Hyperliquid they are not inferred in v1 — the shape collides with Polymarket/Predict slugs — route them via the composite form (`limitless:<slug>`) or `?platform=limitless`.
468
477
  *
469
478
  * **If you already know the platform, always say so.** Every listing that hands you an identifier also hands you its platform, so the composite form — which `GET /v1/markets` returns natively in `data[].id` — or `?platform={row.platform}` costs nothing, skips the probe, and cannot 409. It is also strictly more available: the probe has to reach both candidates to prove there is no collision, so it fails when either is having an outage, while a named platform only depends on that one.
470
479
  *
@@ -476,7 +485,7 @@ export class PredictorSDKClient {
476
485
  *
477
486
  * **Bounding quote freshness.** `pricing.as_of` is the provider's own timestamp and does not mean the same thing on every platform — on Hyperliquid it moves with the order book, while on Kalshi it is a record write measured anywhere from 15 hours to 137 days old on markets reporting `status: open` with a live two-sided book. `pricing.as_of_kind` names which one you received (`quote` / `record_refresh` / `record_static` / `unknown`), so read it before applying an age bound to `as_of`; only `quote` tracks the quote closely enough to bound at all. `pricing.observed_at` is when this server read the quotes, means the same thing on every provider, and is therefore the field to bound when you need one threshold that behaves identically across platforms. It bounds the age of the read, not of the quote: this route reads the venue live per request and caches nothing, so on a `record_static` provider a fresh `observed_at` beside a day-old `as_of` is the honest description of what the venue served, and the executable price should come from that venue's own book.
478
487
  *
479
- * The `trading_fees` tier reports what the VENUE charges to trade this market — its own published fee parameters, normalized to one shape across all six platforms, so cross-venue cost comparison stops requiring six private formulas. Nothing here relates to PredictorSDK's subscription pricing. It is always present, and `trading_fees.availability` distinguishes published parameters from per-account rates that need your own venue credentials (SX Bet, Hyperliquid), from a venue that publishes nothing, and from a fee of genuinely zero. Only Kalshi costs extra upstream hops for it (its parameters live on the parent series plus any scheduled per-event override, all TTL-cached and bounded); those degrade to `availability: "unavailable"` rather than failing the lookup, exactly like the pricing tier. See the `MarketDetailTradingFees` schema for the formulas and for what is deliberately out of scope.
488
+ * The `trading_fees` tier reports what the VENUE charges to trade this market — its own published fee parameters, normalized to one shape across all eight platforms, so cross-venue cost comparison stops requiring eight private formulas. Nothing here relates to PredictorSDK's subscription pricing. It is always present, and `trading_fees.availability` distinguishes published parameters from per-account rates that need your own venue credentials (SX Bet, Hyperliquid), from a venue that publishes nothing, and from a fee of genuinely zero. Only Kalshi costs extra upstream hops for it (its parameters live on the parent series plus any scheduled per-event override, all TTL-cached and bounded); those degrade to `availability: "unavailable"` rather than failing the lookup, exactly like the pricing tier. See the `MarketDetailTradingFees` schema for the formulas and for what is deliberately out of scope.
480
489
  *
481
490
  * @param {PredictorSDK.GetMarketRequest} request
482
491
  * @param {PredictorSDKClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -1049,7 +1058,7 @@ export class PredictorSDKClient {
1049
1058
  /**
1050
1059
  * Returns a single event and the markets nested under it on the identified platform. The `event_id` is the platform's native identifier — a Kalshi `event_ticker`, a Polymarket event slug, an SX Bet `eventId`, a Predict market identifier, a Hyperliquid question/outcome integer id, or an AlphaArcade market ULID. The `platform` is inferred from the ID format when unambiguous (`KX…` → Kalshi, `L\d+` → SX Bet). The composite form returned by `GET /v1/markets` (`{provider}:{native_id}`, e.g. `predict:1607914`) also dispatches unambiguously by prefix.
1051
1060
  *
1052
- * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real events and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer ids also collide with those numerics and require `?platform=hyperliquid` (alias `hl`). AlphaArcade ULIDs are not inferred in v1 either — require `?platform=alpha-arcade` (alias `aa`). An AlphaArcade multi-choice market resolves to an event whose nested markets are its options; a binary market (or a single option id) resolves to a single-market event.
1061
+ * **A bare numeric id or kebab-case slug does not name its platform.** Polymarket and Predict share both shapes, so when `?platform=` is omitted the service probes every candidate and answers only if exactly one of them holds that identifier. If two do, the identifier names two different real events and the request fails with `409` listing both — it does not pick one. Retry with `?platform=` or the composite form. Hyperliquid integer ids also collide with those numerics and require `?platform=hyperliquid` (alias `hl`). AlphaArcade ULIDs are not inferred in v1 either — require `?platform=alpha-arcade` (alias `aa`). ProphetX event ids are bare positive integers that collide with Polymarket/Predict numerics — require `?platform=prophetx` (aliases `prophet-x`, `px`) or the composite form (`prophetx:1700008782`). Limitless event ids are kebab-case slugs that collide with Polymarket/Predict slugs — require `?platform=limitless` or the composite form (`limitless:england-vs-sri-lanka-1789383376774`). An AlphaArcade multi-choice market resolves to an event whose nested markets are its options; a binary market (or a single option id) resolves to a single-market event.
1053
1062
  *
1054
1063
  * **If you already know the platform, always say so.** Every listing that hands you an identifier also hands you its platform, so `?platform={row.platform}` (or the composite form) costs nothing, skips the probe, and cannot 409. It is also strictly more available: the probe has to reach both candidates to prove there is no collision, so it fails when either is having an outage, while a named platform only depends on that one.
1055
1064
  *
@@ -7,7 +7,7 @@ import type * as PredictorSDK from "../../index.js";
7
7
  */
8
8
  export interface GetEventRequest {
9
9
  /**
10
- * Platform-native event identifier. Examples per platform: Kalshi event ticker (`KXNBAGAME-26OCT20OKCSAS`), Polymarket event slug (`mlb-tor-cle-2026-09-02`), SX Bet event id (`L19766755`), Predict market id (`1607914`), Hyperliquid question or outcome integer id (requires `?platform=hyperliquid` since integer ids aren't inferred). The composite `{provider}:{native_id}` form (e.g. `predict:1607914`) is accepted here too and dispatches without probing.
10
+ * Platform-native event identifier. Examples per platform: Kalshi event ticker (`KXNBAGAME-26OCT20OKCSAS`), Polymarket event slug (`nfl-pit-ne-2026-09-20`), SX Bet event id (`L19766755`), Predict market id (`1607914`), Hyperliquid question or outcome integer id (requires `?platform=hyperliquid` since integer ids aren't inferred). The composite `{provider}:{native_id}` form (e.g. `predict:1607914`) is accepted here too and dispatches without probing.
11
11
  *
12
12
  * **A bare numeric id or slug is not unique across platforms.** Polymarket and Predict both use these shapes and their id spaces overlap, so sending one without a platform can fail with `409` (see that response). Pass `?platform=` — every row of `GET /v1/matching-markets/sports` carries the `platform` that goes with its `event_id`.
13
13
  *
@@ -7,13 +7,13 @@ import type * as PredictorSDK from "../../index.js";
7
7
  */
8
8
  export interface GetMarketRequest {
9
9
  /**
10
- * Composite (`{provider}:{native_id}`) or platform-native market identifier. Examples per platform: Kalshi market ticker (`KXNBA-27-SAS`), Polymarket numeric id or slug (`540817` or `mlb-tor-cle-2026-09-02`), Predict market id (`356635`), SX Bet `marketHash` (`0x…64hex`), Hyperliquid outcome id (use the composite `hyperliquid:<outcome-id>` or `?platform=hyperliquid` — bare integer ids aren't inferred).
10
+ * Composite (`{provider}:{native_id}`) or platform-native market identifier. Examples per platform: Kalshi market ticker (`KXNBA-27-SAS`), Polymarket numeric id or slug (`540817` or `nfl-pit-ne-2026-09-20`), Predict market id (`356635`), SX Bet `marketHash` (`0x…64hex`), Hyperliquid outcome id (use the composite `hyperliquid:<outcome-id>` or `?platform=hyperliquid` — bare integer ids aren't inferred).
11
11
  *
12
12
  * **A bare numeric id or slug is not unique across platforms.** Polymarket and Predict both use these shapes and their id spaces overlap, so sending one without a platform can fail with `409` (see that response). Prefer the composite form — it is what `GET /v1/markets` returns in `data[].id` — or pass `?platform=`.
13
13
  *
14
14
  * **Sports identifiers expire.** Kalshi game tickers, Polymarket game slugs, and Hyperliquid outcome ids are recycled or delisted as events settle — Hyperliquid's live catalog is a handful of daily-recurring outcomes, so any specific integer id there is valid for roughly a day. Take current ids from `GET /v1/markets` or `GET /v1/matching-markets/sports` rather than copying one out of this reference. Long-dated markets (Kalshi season futures, multi-year AlphaArcade questions) and settled Polymarket/Predict/SX Bet ids stay resolvable.
15
15
  */
16
16
  marketId: string;
17
- /** Optional platform override. When omitted, inferred from the composite prefix or from the native ID format (`KX…` → Kalshi, `0x…64hex` → SX Bet). Numeric IDs and kebab-case slugs are shared shape between Polymarket and Predict; in that case the service probes both and returns `409` rather than guessing if the identifier resolves on both. Hyperliquid integer ids collide with these numerics and are not inferred — use the composite `hyperliquid:<id>` or `?platform=hyperliquid` (alias `hl`). Passing `platform` explicitly skips the probe entirely and is the recommended call whenever you know it. When the override contradicts a composite prefix (e.g. `kalshi:X` with `?platform=polymarket`), the request returns 400. */
17
+ /** Optional platform override. When omitted, inferred from the composite prefix or from the native ID format (`KX…` → Kalshi, `0x…64hex` → SX Bet). Numeric IDs and kebab-case slugs are shared shape between Polymarket and Predict; in that case the service probes both and returns `409` rather than guessing if the identifier resolves on both. Hyperliquid integer ids collide with these numerics and are not inferred — use the composite `hyperliquid:<id>` or `?platform=hyperliquid` (alias `hl`). AlphaArcade ULIDs and Limitless slugs are not inferred either — use the composite form (`alpha-arcade:<ulid>`, `limitless:<slug>`) or the matching `?platform=` value. Passing `platform` explicitly skips the probe entirely and is the recommended call whenever you know it. When the override contradicts a composite prefix (e.g. `kalshi:X` with `?platform=polymarket`), the request returns 400. */
18
18
  platform?: PredictorSDK.GetMarketRequestPlatform;
19
19
  }
@@ -6,7 +6,7 @@ import type * as PredictorSDK from "../../index.js";
6
6
  export interface GetMarketsRequest {
7
7
  /** Maximum number of markets to return per page. Range 1–100, default 25. */
8
8
  limit?: number;
9
- /** Opaque cursor from a previous response's `pagination.nextCursor` in the SDKs (raw JSON: `pagination.next_cursor`). Market cursors stay bound to the immutable catalog snapshot that issued them. Replaced snapshots normally remain available for up to 24 hours, but storage pressure can evict a retained snapshot sooner; retry from the first page after a stale-cursor `400`. */
9
+ /** Opaque cursor from a previous response's `pagination.nextCursor` in the SDKs (raw JSON: `pagination.next_cursor`). Market cursors stay bound to the immutable catalog snapshot that issued them. Replaced snapshots normally remain available for up to 8 hours, but storage pressure can evict a retained snapshot sooner; retry from the first page after a stale-cursor `400`. */
10
10
  cursor?: string;
11
11
  /** Canonical top-level category filter. This is PredictorSDK's normalized category, not a provider-native tag. Cursors are bound to the category filter used to create them. */
12
12
  category?: PredictorSDK.MarketCategory;
@@ -1,3 +1,4 @@
1
+ import type * as PredictorSDK from "../../index.js";
1
2
  /**
2
3
  * @example
3
4
  * {}
@@ -12,19 +13,27 @@ export interface GetSportsMatchingMarketsRequest {
12
13
  *
13
14
  * A venue can keep quoting a market for months after the game (a 94-day-old row was still `status: open` with a live two-sided book when this was written), so the endpoint filters on the game date it already holds — the trailing date of the canonical `event_id` — rather than on an upstream status it cannot verify. Nothing is reported as settled that the venue has not settled; these events are simply not *current*, which is what the default page is for.
14
15
  *
15
- * Because it selects the population, a lookup (`?event_id=`, `?polymarket_market_slug=`, …) for a past-dated event answers `200` with an empty `markets` object unless this is `true`.
16
+ * Because it selects the population, a lookup (`?event_id=`, `?polymarket_market_slug=`, `?alpha_arcade_market_id=`, …) for a past-dated event answers `200` with an empty `markets` object unless this is `true`.
16
17
  */
17
18
  includeSettled?: boolean;
18
- /** When `true`, add `canonical_events` with normalized event, submarket, line, segment, outcome, and exact source market/outcome identity. This is an identity mapping only; fetch current status, quotes, and liquidity from the referenced market resources. Defaults to `false` so the compact Dome-compatible response is unchanged. */
19
+ /** Player-prop admission policy. Explicit use requires `include_submarkets=true`; otherwise returns 400. `strict` (the default) includes only groups of at least two distinct providers with verified player/game/stat/threshold/side identity and a completely reviewed equivalent settlement profile. `same_prop` retains exact prop identity but also admits different or unverified settlement rules, identified by `settlement_equivalence` and `rule_comparisons`. Unknown rules never prove equivalence. Applies in list and lookup mode, including `include_settled`; cursors cannot be reused between policies. Does not change game-line matching or the compact moneyline bridge. Historical snapshots without verified player identity do not expose props. */
20
+ playerPropMatch?: PredictorSDK.GetSportsMatchingMarketsRequestPlayerPropMatch;
21
+ /** When `true`, add `canonical_events` with normalized event, submarket, line, segment, outcome, and exact source market/outcome identity. This is an identity mapping only; fetch current status, quotes, and liquidity from the referenced market resources. Defaults to `false` so the compact Dome-compatible response is unchanged. Explicit `player_prop_match` requires this to be `true`. */
19
22
  includeSubmarkets?: boolean;
20
23
  /** Canonical event key(s) to look up directly (for example, `nba-okc-sas-2026-10-20`). Provide the parameter multiple times for multiple events, up to 100 unique keys. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
21
24
  eventId?: string | string[];
22
25
  /** Kalshi event ticker(s) to find matching markets for (e.g. `KXNBAGAME-26OCT20OKCSAS`). Provide the parameter multiple times for multiple tickers, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
23
26
  kalshiEventTicker?: string | string[];
24
- /** Polymarket market slug(s) to find matching markets for (e.g. `mlb-tor-cle-2026-09-02`). Provide the parameter multiple times for multiple slugs, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
27
+ /** Polymarket market slug(s) to find matching markets for (e.g. `nfl-pit-ne-2026-09-20`). Provide the parameter multiple times for multiple slugs, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
25
28
  polymarketMarketSlug?: string | string[];
26
29
  /** Predict market ID(s) to find matching markets for (e.g. `1607914`). Provide the parameter multiple times for multiple IDs, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
27
30
  predictMarketId?: string | string[];
28
31
  /** SX Bet market ID(s) to find matching markets for (e.g. `0xb4d047a709aae881e5ccad9d123592967644ee1df1f17078c762b388e41b81c5`). Provide the parameter multiple times for multiple IDs, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
29
32
  sxbetMarketId?: string | string[];
33
+ /** AlphaArcade market ULID(s) to find matching markets for. Use `market_id` from an `ALPHA-ARCADE` row in a current matching list response; game-scoped IDs can disappear when the venue delists the game. Provide the parameter multiple times for multiple IDs, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
34
+ alphaArcadeMarketId?: string | string[];
35
+ /** ProphetX event ID(s) to find matching markets for (e.g. `1700008782`). Provide the parameter multiple times for multiple IDs, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
36
+ prophetxEventId?: string | string[];
37
+ /** ProphetX market ID(s) to find matching markets for (e.g. `1700008782:219`, resolving the favourite primary-line strike). Accepts a market ID or an event ID (mirroring how `kalshi_event_ticker` accepts market tickers). Provide the parameter multiple times for multiple IDs, up to 100 unique values. Only one filter type may be used per request. Lookup mode — pagination parameters are ignored. */
38
+ prophetxMarketId?: string | string[];
30
39
  }
@@ -4,5 +4,6 @@ export declare const CanonicalSportsSourceMarketProvider: {
4
4
  readonly Predict: "predict";
5
5
  readonly Sxbet: "sxbet";
6
6
  readonly AlphaArcade: "alpha-arcade";
7
+ readonly Prophetx: "prophetx";
7
8
  };
8
9
  export type CanonicalSportsSourceMarketProvider = (typeof CanonicalSportsSourceMarketProvider)[keyof typeof CanonicalSportsSourceMarketProvider];
@@ -5,4 +5,5 @@ export const CanonicalSportsSourceMarketProvider = {
5
5
  Predict: "predict",
6
6
  Sxbet: "sxbet",
7
7
  AlphaArcade: "alpha-arcade",
8
+ Prophetx: "prophetx",
8
9
  };
@@ -7,7 +7,7 @@ export interface CanonicalSportsSourceOutcome {
7
7
  *
8
8
  * On every provider this is the same value `GET /v1/markets/{market_id}` returns as `outcomes[].outcome_id` for the market named by this row's `market_id`, so the two surfaces join directly.
9
9
  *
10
- * `polymarket`, `predict` and `alpha-arcade` publish a globally unique per-outcome token (Polymarket CLOB token id, Predict on-chain id, AlphaArcade CLOB token id). `sxbet` and `kalshi` publish no per-outcome token at all, so their references are market-scoped and must be read together with `market_id`: an SX Bet market has one hash and two named positions (`outcomeOne` / `outcomeTwo`), and a Kalshi market is binary (`yes` / `no`). Both are the spelling the venue itself uses to address a side — SX Bet keys its order-book snapshot by `outcomeOne`/`outcomeTwo`, and Kalshi keys its book by `yes`/`no` and reports a trade's `taker_side` the same way.
10
+ * `polymarket`, `predict` and `alpha-arcade` publish a globally unique per-outcome token (Polymarket CLOB token id, Predict on-chain id, AlphaArcade CLOB token id). `sxbet` and `kalshi` publish no per-outcome token at all, so their references are market-scoped and must be read together with `market_id`: an SX Bet market has one hash and two named positions (`outcomeOne` / `outcomeTwo`), and a Kalshi market is binary (`yes` / `no`). Both are the spelling the venue itself uses to address a side — SX Bet keys its order-book snapshot by `outcomeOne`/`outcomeTwo`, and Kalshi keys its book by `yes`/`no` and reports a trade's `taker_side` the same way. `prophetx` publishes small market-scoped integer outcome ids (e.g. `4`, `5`) that join to the same market's detail row, like SX Bet's positions.
11
11
  */
12
12
  outcomeId?: string;
13
13
  /** Optional source-native side such as `yes` or `no`. */
@@ -1,5 +1,9 @@
1
1
  import type * as PredictorSDK from "../index.js";
2
2
  export interface CanonicalSportsSubmarket {
3
+ /** Player props only. `equivalent` requires a complete reviewed profile for every source contract; `different` means at least one known payout-rule difference, even if other rules are unknown; `unverified` means equivalence has not been established and no known difference was found. Absence on game lines makes no claim about their full settlement equivalence. */
4
+ settlementEquivalence?: PredictorSDK.CanonicalSportsSubmarketSettlementEquivalence;
5
+ /** Player props only. A deterministic matrix covering all nine settlement dimensions. Filter rows with `comparison=different` for known differences and `comparison=unverified` for gaps. Row-level agreement is not a complete contract review. Source values reference individual native market IDs, not venue-wide defaults. Evidence describes captured source clauses; additional unreviewed terms can apply. No prices or payout estimates. */
6
+ ruleComparisons?: PredictorSDK.PlayerPropRuleComparison[];
3
7
  /** Stable canonical submarket key within the event. */
4
8
  key: string;
5
9
  marketType: string;
@@ -0,0 +1,7 @@
1
+ /** Player props only. `equivalent` requires a complete reviewed profile for every source contract; `different` means at least one known payout-rule difference, even if other rules are unknown; `unverified` means equivalence has not been established and no known difference was found. Absence on game lines makes no claim about their full settlement equivalence. */
2
+ export declare const CanonicalSportsSubmarketSettlementEquivalence: {
3
+ readonly Equivalent: "equivalent";
4
+ readonly Different: "different";
5
+ readonly Unverified: "unverified";
6
+ };
7
+ export type CanonicalSportsSubmarketSettlementEquivalence = (typeof CanonicalSportsSubmarketSettlementEquivalence)[keyof typeof CanonicalSportsSubmarketSettlementEquivalence];
@@ -0,0 +1,7 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ /** Player props only. `equivalent` requires a complete reviewed profile for every source contract; `different` means at least one known payout-rule difference, even if other rules are unknown; `unverified` means equivalence has not been established and no known difference was found. Absence on game lines makes no claim about their full settlement equivalence. */
3
+ export const CanonicalSportsSubmarketSettlementEquivalence = {
4
+ Equivalent: "equivalent",
5
+ Different: "different",
6
+ Unverified: "unverified",
7
+ };
@@ -1,5 +1,5 @@
1
1
  export interface EventMarket {
2
- /** Platform-native market identifier. Kalshi ticker (`KXMLBGAME-26AUG272145AZSF-AZ`), Polymarket numeric market id, SX Bet `marketHash`, or Predict market id. */
2
+ /** Platform-native market identifier. Kalshi ticker (`KXMLBGAME-26AUG272145AZSF-AZ`), Polymarket numeric market id, SX Bet `marketHash`, Predict market id, Hyperliquid outcome id, AlphaArcade market ULID, or ProphetX `<event_id>:<market_id>`. */
3
3
  marketId: string;
4
4
  /** Human-readable market title/question. */
5
5
  title: string;
@@ -6,5 +6,7 @@ export declare const EventResponsePlatform: {
6
6
  readonly Sxbet: "sxbet";
7
7
  readonly Hyperliquid: "hyperliquid";
8
8
  readonly AlphaArcade: "alpha-arcade";
9
+ readonly Prophetx: "prophetx";
10
+ readonly Limitless: "limitless";
9
11
  };
10
12
  export type EventResponsePlatform = (typeof EventResponsePlatform)[keyof typeof EventResponsePlatform];
@@ -7,4 +7,6 @@ export const EventResponsePlatform = {
7
7
  Sxbet: "sxbet",
8
8
  Hyperliquid: "hyperliquid",
9
9
  AlphaArcade: "alpha-arcade",
10
+ Prophetx: "prophetx",
11
+ Limitless: "limitless",
10
12
  };
@@ -5,5 +5,7 @@ export declare const GetEventRequestPlatform: {
5
5
  readonly Sxbet: "sxbet";
6
6
  readonly Hyperliquid: "hyperliquid";
7
7
  readonly AlphaArcade: "alpha-arcade";
8
+ readonly Prophetx: "prophetx";
9
+ readonly Limitless: "limitless";
8
10
  };
9
11
  export type GetEventRequestPlatform = (typeof GetEventRequestPlatform)[keyof typeof GetEventRequestPlatform];
@@ -6,4 +6,6 @@ export const GetEventRequestPlatform = {
6
6
  Sxbet: "sxbet",
7
7
  Hyperliquid: "hyperliquid",
8
8
  AlphaArcade: "alpha-arcade",
9
+ Prophetx: "prophetx",
10
+ Limitless: "limitless",
9
11
  };
@@ -5,5 +5,7 @@ export declare const GetMarketRequestPlatform: {
5
5
  readonly Sxbet: "sxbet";
6
6
  readonly Hyperliquid: "hyperliquid";
7
7
  readonly AlphaArcade: "alpha-arcade";
8
+ readonly Prophetx: "prophetx";
9
+ readonly Limitless: "limitless";
8
10
  };
9
11
  export type GetMarketRequestPlatform = (typeof GetMarketRequestPlatform)[keyof typeof GetMarketRequestPlatform];
@@ -6,4 +6,6 @@ export const GetMarketRequestPlatform = {
6
6
  Sxbet: "sxbet",
7
7
  Hyperliquid: "hyperliquid",
8
8
  AlphaArcade: "alpha-arcade",
9
+ Prophetx: "prophetx",
10
+ Limitless: "limitless",
9
11
  };
@@ -5,5 +5,7 @@ export declare const GetMarketsRequestProvider: {
5
5
  readonly Sxbet: "sxbet";
6
6
  readonly Hyperliquid: "hyperliquid";
7
7
  readonly AlphaArcade: "alpha-arcade";
8
+ readonly Prophetx: "prophetx";
9
+ readonly Limitless: "limitless";
8
10
  };
9
11
  export type GetMarketsRequestProvider = (typeof GetMarketsRequestProvider)[keyof typeof GetMarketsRequestProvider];
@@ -6,4 +6,6 @@ export const GetMarketsRequestProvider = {
6
6
  Sxbet: "sxbet",
7
7
  Hyperliquid: "hyperliquid",
8
8
  AlphaArcade: "alpha-arcade",
9
+ Prophetx: "prophetx",
10
+ Limitless: "limitless",
9
11
  };
@@ -0,0 +1,5 @@
1
+ export declare const GetSportsMatchingMarketsRequestPlayerPropMatch: {
2
+ readonly Strict: "strict";
3
+ readonly SameProp: "same_prop";
4
+ };
5
+ export type GetSportsMatchingMarketsRequestPlayerPropMatch = (typeof GetSportsMatchingMarketsRequestPlayerPropMatch)[keyof typeof GetSportsMatchingMarketsRequestPlayerPropMatch];
@@ -0,0 +1,5 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export const GetSportsMatchingMarketsRequestPlayerPropMatch = {
3
+ Strict: "strict",
4
+ SameProp: "same_prop",
5
+ };
@@ -32,6 +32,7 @@ export interface MarketDetailPricing {
32
32
  * * `polymarket` — 45 s to 405 s old; advanced on 60 of 60 and 25 of 25 markets, while only 1 of those 25 prices changed. Values recur identically across dozens of unrelated markets (one batch write, not one quote). Bounds record age in minutes, not quote age in seconds.
33
33
  * * `sxbet` — a real per-side quote stamp on the V2 best-odds path, but it marks when the resting top-of-book order was posted, so on a thin book it is legitimately old: measured 39 s to 2.5 h, median ~24 min. It advances when the quote advances, which is what makes it a quote stamp — but size the bound to the venue's liquidity, not in seconds. Null from the 2026-08-25 V3 cutover onward.
34
34
  * * `hyperliquid` — the `l2Book` server timestamp, a real quote stamp and the one field here that genuinely supports a seconds-scale bound: polled directly it tracks wall clock to the second.
35
+ * * `limitless` — the market record's `updatedAt`: a record write stamp in the same family as Polymarket's, advancing on the venue's own rewrite cadence rather than with the quote. Bounds record age in minutes, not quote age in seconds. The order book itself carries no wall-clock stamp.
35
36
  * * `predict`, `alpha-arcade` — always null.
36
37
  *
37
38
  * These ranges are observed behaviour, not a contract: they are published so a consumer can pick a threshold from measured data rather than guessing, and they can change whenever a venue changes how it writes its records. Server ingest time is never substituted into this field — that would masquerade as an upstream stamp. Use `observed_at` for the read time.
@@ -1,13 +1,13 @@
1
1
  import type * as PredictorSDK from "../index.js";
2
2
  /**
3
- * Single-market detail across all six supported platforms. Identity fields are strict-universal (no second fetch on any platform); the pricing tier carries per-outcome quotes plus market-level aggregates with explicit nulls where a platform doesn't natively expose a figure — values are never fabricated. The trading_fees tier applies the same rule to the venue's own published fee parameters. closes_at/event_id remain deliberately omitted, see the endpoint description for the rationale.
3
+ * Single-market detail across all eight supported platforms. Identity fields are strict-universal (no second fetch on any platform); the pricing tier carries per-outcome quotes plus market-level aggregates with explicit nulls where a platform doesn't natively expose a figure — values are never fabricated. The trading_fees tier applies the same rule to the venue's own published fee parameters. closes_at/event_id remain deliberately omitted, see the endpoint description for the rationale.
4
4
  */
5
5
  export interface MarketDetailResponse {
6
6
  /** Composite market identifier in the format `{provider}:{provider_id}`. Matches the `id` field returned by `GET /v1/markets` so list output flows into detail lookups without preprocessing. */
7
7
  id: string;
8
8
  /** Prediction market provider the market_id resolved against. */
9
9
  provider: PredictorSDK.MarketDetailResponseProvider;
10
- /** Platform-native market identifier. Kalshi ticker, Polymarket numeric id, Predict numeric id, SX Bet `marketHash`, or Hyperliquid outcome id. For Polymarket markets resolved by slug, this is normalized to the numeric id. Hyperliquid integer ids collide with Polymarket/Predict numeric ids, so look them up via the composite id (`hyperliquid:<id>`, as returned by `/v1/markets`) or `?platform=hyperliquid`. */
10
+ /** Platform-native market identifier. Kalshi ticker, Polymarket numeric id, Predict numeric id, SX Bet `marketHash`, Hyperliquid outcome id, AlphaArcade market ULID, ProphetX `<event_id>:<market_id>` (resolving the favourite primary-line strike), or Limitless slug. For Polymarket markets resolved by slug, this is normalized to the numeric id. Hyperliquid integer ids collide with Polymarket/Predict numeric ids, so look them up via the composite id (`hyperliquid:<id>`, as returned by `/v1/markets`) or `?platform=hyperliquid`. Limitless slugs collide with Polymarket/Predict slugs, so look them up via the composite id (`limitless:<slug>`) or `?platform=limitless`. */
11
11
  providerId: string;
12
12
  /** Human-readable market title. Each platform exposes a slightly different field — Kalshi `title`, Polymarket `question`, Predict `title`, SX Bet composed from outcome labels (team-pair fallback) so a game's moneyline, spread, and total markets stay distinguishable, and Hyperliquid composed from outcome/question metadata. */
13
13
  title: string;
@@ -6,5 +6,7 @@ export declare const MarketDetailResponseProvider: {
6
6
  readonly Sxbet: "sxbet";
7
7
  readonly Hyperliquid: "hyperliquid";
8
8
  readonly AlphaArcade: "alpha-arcade";
9
+ readonly Prophetx: "prophetx";
10
+ readonly Limitless: "limitless";
9
11
  };
10
12
  export type MarketDetailResponseProvider = (typeof MarketDetailResponseProvider)[keyof typeof MarketDetailResponseProvider];
@@ -7,4 +7,6 @@ export const MarketDetailResponseProvider = {
7
7
  Sxbet: "sxbet",
8
8
  Hyperliquid: "hyperliquid",
9
9
  AlphaArcade: "alpha-arcade",
10
+ Prophetx: "prophetx",
11
+ Limitless: "limitless",
10
12
  };
@@ -2,7 +2,7 @@ import type * as PredictorSDK from "../index.js";
2
2
  /**
3
3
  * The trading fee the PREDICTION MARKET charges on a trade in this market — the venue's own published parameters, normalized. This has nothing to do with PredictorSDK's subscription pricing.
4
4
  *
5
- * Always present on the response. Every published model across the six platforms is a per-share fee times the traded share count, and only the price term differs, so `taker.model` plus its parameters expresses each venue exactly rather than approximating any of them. Compute the fee yourself:
5
+ * Always present on the response. Every published model across the eight platforms is a per-share fee times the traded share count, and only the price term differs, so `taker.model` plus its parameters expresses each venue exactly rather than approximating any of them — except Limitless, whose taker curve is published as table rows with no closed form: its descriptor reports `partial` with a null taker leg instead of inventing a number. (A Limitless market with fees disabled reports `published` with both legs zero — an asserted free, never an unknown.) Compute the fee yourself:
6
6
  *
7
7
  * `fee = shares × f(price)`, then apply `rounding`, where `f` is
8
8
  *
@@ -1,7 +1,7 @@
1
1
  import type * as PredictorSDK from "../index.js";
2
2
  export interface PlatformMarket {
3
3
  platform: PredictorSDK.PlatformMarketPlatform;
4
- /** Provider-native parent event or fixture identifier for the path in `GET /v1/events/{event_id}`. Kalshi uses its event ticker, Polymarket its event slug (or numeric event ID fallback), Predict its market ID, SX Bet its `L...` fixture ID, and AlphaArcade its parent market ULID. Always pair it with the events endpoint's `platform` query parameter, passing this row's `platform` value (matched case-insensitively). Predict market IDs and AlphaArcade ULIDs are not shape-distinguishable from Polymarket identifiers, so without that override the events endpoint probes Polymarket first and can answer `200` with an unrelated Polymarket event instead of `404`. Retained snapshots created before this field was introduced may omit it. */
4
+ /** Provider-native parent event or fixture identifier for the path in `GET /v1/events/{event_id}`. Kalshi uses its event ticker, Polymarket its event slug (or numeric event ID fallback), Predict its market ID, SX Bet its `L...` fixture ID, AlphaArcade its parent market ULID, and ProphetX its integer event id. Always pair it with the events endpoint's `platform` query parameter, passing this row's `platform` value (matched case-insensitively). Without that override, ambiguous identifiers probe only Polymarket and Predict: two hits return `409`, one hit returns that provider's event, and no hits return `404`. AlphaArcade and ProphetX are never probed or inferred; their native IDs require the override or a provider-prefixed composite ID to reach the correct venue. Retained snapshots created before this field was introduced may omit it. */
5
5
  eventId?: string;
6
6
  /** Kalshi event ticker. Present when platform is KALSHI. */
7
7
  eventTicker?: string;
@@ -13,6 +13,6 @@ export interface PlatformMarket {
13
13
  tokenIds?: string[];
14
14
  /** Source market ID. Present for platforms other than Kalshi and Polymarket. */
15
15
  marketId?: string;
16
- /** Source outcome IDs for the market named by `market_id`, sorted and de-duplicated. These are the same values `GET /v1/markets/{market_id}` returns as `outcomes[].outcome_id`, so they join directly. SX Bet's are `outcomeOne`/`outcomeTwo` — market-scoped, because SX Bet publishes no per-outcome token; read them together with `market_id`. Present for platforms that use outcome IDs. */
16
+ /** Source outcome IDs for the market named by `market_id`, sorted and de-duplicated. These are the same values `GET /v1/markets/{market_id}` returns as `outcomes[].outcome_id`, so they join directly. SX Bet's are `outcomeOne`/`outcomeTwo` — market-scoped, because SX Bet publishes no per-outcome token; read them together with `market_id`. ProphetX's are small integers (`4`, `5`) that are likewise market-scoped. Present for platforms that use outcome IDs. */
17
17
  outcomeIds?: string[];
18
18
  }
@@ -4,5 +4,6 @@ export declare const PlatformMarketPlatform: {
4
4
  readonly Predict: "PREDICT";
5
5
  readonly Sxbet: "SXBET";
6
6
  readonly AlphaArcade: "ALPHA-ARCADE";
7
+ readonly Prophetx: "PROPHETX";
7
8
  };
8
9
  export type PlatformMarketPlatform = (typeof PlatformMarketPlatform)[keyof typeof PlatformMarketPlatform];
@@ -5,4 +5,5 @@ export const PlatformMarketPlatform = {
5
5
  Predict: "PREDICT",
6
6
  Sxbet: "SXBET",
7
7
  AlphaArcade: "ALPHA-ARCADE",
8
+ Prophetx: "PROPHETX",
8
9
  };
@@ -0,0 +1,9 @@
1
+ import type * as PredictorSDK from "../index.js";
2
+ export interface PlayerPropRuleComparison {
3
+ rule: PredictorSDK.PlayerPropRuleComparisonRule;
4
+ /** Human-readable name of the rule dimension. */
5
+ label: string;
6
+ /** Known differences take precedence over unknown source values. */
7
+ comparison: PredictorSDK.PlayerPropRuleComparisonComparison;
8
+ sourceValues: PredictorSDK.PlayerPropRuleSourceValue[];
9
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,7 @@
1
+ /** Known differences take precedence over unknown source values. */
2
+ export declare const PlayerPropRuleComparisonComparison: {
3
+ readonly Equivalent: "equivalent";
4
+ readonly Different: "different";
5
+ readonly Unverified: "unverified";
6
+ };
7
+ export type PlayerPropRuleComparisonComparison = (typeof PlayerPropRuleComparisonComparison)[keyof typeof PlayerPropRuleComparisonComparison];
@@ -0,0 +1,7 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ /** Known differences take precedence over unknown source values. */
3
+ export const PlayerPropRuleComparisonComparison = {
4
+ Equivalent: "equivalent",
5
+ Different: "different",
6
+ Unverified: "unverified",
7
+ };
@@ -0,0 +1,12 @@
1
+ export declare const PlayerPropRuleComparisonRule: {
2
+ readonly NonParticipation: "non_participation";
3
+ readonly Overtime: "overtime";
4
+ readonly StatDefinition: "stat_definition";
5
+ readonly Threshold: "threshold";
6
+ readonly StatCorrections: "stat_corrections";
7
+ readonly Postponement: "postponement";
8
+ readonly Cancellation: "cancellation";
9
+ readonly Interruption: "interruption";
10
+ readonly ResolutionSource: "resolution_source";
11
+ };
12
+ export type PlayerPropRuleComparisonRule = (typeof PlayerPropRuleComparisonRule)[keyof typeof PlayerPropRuleComparisonRule];
@@ -0,0 +1,12 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export const PlayerPropRuleComparisonRule = {
3
+ NonParticipation: "non_participation",
4
+ Overtime: "overtime",
5
+ StatDefinition: "stat_definition",
6
+ Threshold: "threshold",
7
+ StatCorrections: "stat_corrections",
8
+ Postponement: "postponement",
9
+ Cancellation: "cancellation",
10
+ Interruption: "interruption",
11
+ ResolutionSource: "resolution_source",
12
+ };
@@ -0,0 +1,12 @@
1
+ export interface PlayerPropRuleSourceValue {
2
+ /** Lowercase provider slug matching a source_markets entry. */
3
+ provider: string;
4
+ /** Exact native market ID matching a source_markets entry. */
5
+ marketId: string;
6
+ /** Machine-readable observed rule value, or `unknown`. Values are extensible; clients must tolerate unfamiliar values and read description. Never interpret unknown as no restriction. */
7
+ value: string;
8
+ /** Plain-language meaning, including relevant qualifications. */
9
+ description: string;
10
+ /** Source contract containing the observed clause; omitted for unknown rules. */
11
+ evidenceUrl?: string;
12
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -6,5 +6,7 @@ export declare const UnifiedMarketProvider: {
6
6
  readonly Sxbet: "sxbet";
7
7
  readonly Hyperliquid: "hyperliquid";
8
8
  readonly AlphaArcade: "alpha-arcade";
9
+ readonly Prophetx: "prophetx";
10
+ readonly Limitless: "limitless";
9
11
  };
10
12
  export type UnifiedMarketProvider = (typeof UnifiedMarketProvider)[keyof typeof UnifiedMarketProvider];
@@ -7,4 +7,6 @@ export const UnifiedMarketProvider = {
7
7
  Sxbet: "sxbet",
8
8
  Hyperliquid: "hyperliquid",
9
9
  AlphaArcade: "alpha-arcade",
10
+ Prophetx: "prophetx",
11
+ Limitless: "limitless",
10
12
  };
@@ -8,6 +8,7 @@ export * from "./CanonicalSportsSourceMarketProvider.js";
8
8
  export * from "./CanonicalSportsSourceOutcome.js";
9
9
  export * from "./CanonicalSportsSubject.js";
10
10
  export * from "./CanonicalSportsSubmarket.js";
11
+ export * from "./CanonicalSportsSubmarketSettlementEquivalence.js";
11
12
  export * from "./CategoriesResponse.js";
12
13
  export * from "./CategoryInfo.js";
13
14
  export * from "./CryptoPriceItem.js";
@@ -20,6 +21,7 @@ export * from "./EventResponsePlatform.js";
20
21
  export * from "./GetEventRequestPlatform.js";
21
22
  export * from "./GetMarketRequestPlatform.js";
22
23
  export * from "./GetMarketsRequestProvider.js";
24
+ export * from "./GetSportsMatchingMarketsRequestPlayerPropMatch.js";
23
25
  export * from "./MarketCategory.js";
24
26
  export * from "./MarketDetailFeeLeg.js";
25
27
  export * from "./MarketDetailFeeLegModel.js";
@@ -48,6 +50,10 @@ export * from "./Plan.js";
48
50
  export * from "./PlansResponse.js";
49
51
  export * from "./PlatformMarket.js";
50
52
  export * from "./PlatformMarketPlatform.js";
53
+ export * from "./PlayerPropRuleComparison.js";
54
+ export * from "./PlayerPropRuleComparisonComparison.js";
55
+ export * from "./PlayerPropRuleComparisonRule.js";
56
+ export * from "./PlayerPropRuleSourceValue.js";
51
57
  export * from "./PolymarketPosition.js";
52
58
  export * from "./PolymarketPositionsResponse.js";
53
59
  export * from "./PolymarketWalletResponse.js";
@@ -8,6 +8,7 @@ export * from "./CanonicalSportsSourceMarketProvider.js";
8
8
  export * from "./CanonicalSportsSourceOutcome.js";
9
9
  export * from "./CanonicalSportsSubject.js";
10
10
  export * from "./CanonicalSportsSubmarket.js";
11
+ export * from "./CanonicalSportsSubmarketSettlementEquivalence.js";
11
12
  export * from "./CategoriesResponse.js";
12
13
  export * from "./CategoryInfo.js";
13
14
  export * from "./CryptoPriceItem.js";
@@ -20,6 +21,7 @@ export * from "./EventResponsePlatform.js";
20
21
  export * from "./GetEventRequestPlatform.js";
21
22
  export * from "./GetMarketRequestPlatform.js";
22
23
  export * from "./GetMarketsRequestProvider.js";
24
+ export * from "./GetSportsMatchingMarketsRequestPlayerPropMatch.js";
23
25
  export * from "./MarketCategory.js";
24
26
  export * from "./MarketDetailFeeLeg.js";
25
27
  export * from "./MarketDetailFeeLegModel.js";
@@ -48,6 +50,10 @@ export * from "./Plan.js";
48
50
  export * from "./PlansResponse.js";
49
51
  export * from "./PlatformMarket.js";
50
52
  export * from "./PlatformMarketPlatform.js";
53
+ export * from "./PlayerPropRuleComparison.js";
54
+ export * from "./PlayerPropRuleComparisonComparison.js";
55
+ export * from "./PlayerPropRuleComparisonRule.js";
56
+ export * from "./PlayerPropRuleSourceValue.js";
51
57
  export * from "./PolymarketPosition.js";
52
58
  export * from "./PolymarketPositionsResponse.js";
53
59
  export * from "./PolymarketWalletResponse.js";
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const CanonicalSportsSourceMarketProvider: core.serialization.Schema<serializers.CanonicalSportsSourceMarketProvider.Raw, PredictorSDK.CanonicalSportsSourceMarketProvider>;
5
5
  export declare namespace CanonicalSportsSourceMarketProvider {
6
- type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "alpha-arcade";
6
+ type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "alpha-arcade" | "prophetx";
7
7
  }
@@ -1,3 +1,3 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const CanonicalSportsSourceMarketProvider = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "alpha-arcade"]);
3
+ export const CanonicalSportsSourceMarketProvider = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "alpha-arcade", "prophetx"]);
@@ -5,9 +5,13 @@ import { CanonicalSportsOutcome } from "./CanonicalSportsOutcome.js";
5
5
  import { CanonicalSportsRules } from "./CanonicalSportsRules.js";
6
6
  import { CanonicalSportsSourceMarket } from "./CanonicalSportsSourceMarket.js";
7
7
  import { CanonicalSportsSubject } from "./CanonicalSportsSubject.js";
8
+ import { CanonicalSportsSubmarketSettlementEquivalence } from "./CanonicalSportsSubmarketSettlementEquivalence.js";
9
+ import { PlayerPropRuleComparison } from "./PlayerPropRuleComparison.js";
8
10
  export declare const CanonicalSportsSubmarket: core.serialization.ObjectSchema<serializers.CanonicalSportsSubmarket.Raw, PredictorSDK.CanonicalSportsSubmarket>;
9
11
  export declare namespace CanonicalSportsSubmarket {
10
12
  interface Raw {
13
+ settlement_equivalence?: CanonicalSportsSubmarketSettlementEquivalence.Raw | null;
14
+ rule_comparisons?: PlayerPropRuleComparison.Raw[] | null;
11
15
  key: string;
12
16
  market_type: string;
13
17
  segment: string;
@@ -4,7 +4,11 @@ import { CanonicalSportsOutcome } from "./CanonicalSportsOutcome.js";
4
4
  import { CanonicalSportsRules } from "./CanonicalSportsRules.js";
5
5
  import { CanonicalSportsSourceMarket } from "./CanonicalSportsSourceMarket.js";
6
6
  import { CanonicalSportsSubject } from "./CanonicalSportsSubject.js";
7
+ import { CanonicalSportsSubmarketSettlementEquivalence } from "./CanonicalSportsSubmarketSettlementEquivalence.js";
8
+ import { PlayerPropRuleComparison } from "./PlayerPropRuleComparison.js";
7
9
  export const CanonicalSportsSubmarket = core.serialization.object({
10
+ settlementEquivalence: core.serialization.property("settlement_equivalence", CanonicalSportsSubmarketSettlementEquivalence.optional()),
11
+ ruleComparisons: core.serialization.property("rule_comparisons", core.serialization.list(PlayerPropRuleComparison).optional()),
8
12
  key: core.serialization.string(),
9
13
  marketType: core.serialization.property("market_type", core.serialization.string()),
10
14
  segment: core.serialization.string(),
@@ -0,0 +1,7 @@
1
+ import type * as PredictorSDK from "../../api/index.js";
2
+ import * as core from "../../core/index.js";
3
+ import type * as serializers from "../index.js";
4
+ export declare const CanonicalSportsSubmarketSettlementEquivalence: core.serialization.Schema<serializers.CanonicalSportsSubmarketSettlementEquivalence.Raw, PredictorSDK.CanonicalSportsSubmarketSettlementEquivalence>;
5
+ export declare namespace CanonicalSportsSubmarketSettlementEquivalence {
6
+ type Raw = "equivalent" | "different" | "unverified";
7
+ }
@@ -0,0 +1,3 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ export const CanonicalSportsSubmarketSettlementEquivalence = core.serialization.enum_(["equivalent", "different", "unverified"]);
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const EventResponsePlatform: core.serialization.Schema<serializers.EventResponsePlatform.Raw, PredictorSDK.EventResponsePlatform>;
5
5
  export declare namespace EventResponsePlatform {
6
- type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade";
6
+ type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade" | "prophetx" | "limitless";
7
7
  }
@@ -1,3 +1,12 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const EventResponsePlatform = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "hyperliquid", "alpha-arcade"]);
3
+ export const EventResponsePlatform = core.serialization.enum_([
4
+ "kalshi",
5
+ "polymarket",
6
+ "predict",
7
+ "sxbet",
8
+ "hyperliquid",
9
+ "alpha-arcade",
10
+ "prophetx",
11
+ "limitless",
12
+ ]);
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const GetEventRequestPlatform: core.serialization.Schema<serializers.GetEventRequestPlatform.Raw, PredictorSDK.GetEventRequestPlatform>;
5
5
  export declare namespace GetEventRequestPlatform {
6
- type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade";
6
+ type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade" | "prophetx" | "limitless";
7
7
  }
@@ -1,3 +1,12 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const GetEventRequestPlatform = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "hyperliquid", "alpha-arcade"]);
3
+ export const GetEventRequestPlatform = core.serialization.enum_([
4
+ "kalshi",
5
+ "polymarket",
6
+ "predict",
7
+ "sxbet",
8
+ "hyperliquid",
9
+ "alpha-arcade",
10
+ "prophetx",
11
+ "limitless",
12
+ ]);
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const GetMarketRequestPlatform: core.serialization.Schema<serializers.GetMarketRequestPlatform.Raw, PredictorSDK.GetMarketRequestPlatform>;
5
5
  export declare namespace GetMarketRequestPlatform {
6
- type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade";
6
+ type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade" | "prophetx" | "limitless";
7
7
  }
@@ -1,3 +1,12 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const GetMarketRequestPlatform = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "hyperliquid", "alpha-arcade"]);
3
+ export const GetMarketRequestPlatform = core.serialization.enum_([
4
+ "kalshi",
5
+ "polymarket",
6
+ "predict",
7
+ "sxbet",
8
+ "hyperliquid",
9
+ "alpha-arcade",
10
+ "prophetx",
11
+ "limitless",
12
+ ]);
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const GetMarketsRequestProvider: core.serialization.Schema<serializers.GetMarketsRequestProvider.Raw, PredictorSDK.GetMarketsRequestProvider>;
5
5
  export declare namespace GetMarketsRequestProvider {
6
- type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade";
6
+ type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade" | "prophetx" | "limitless";
7
7
  }
@@ -1,3 +1,12 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const GetMarketsRequestProvider = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "hyperliquid", "alpha-arcade"]);
3
+ export const GetMarketsRequestProvider = core.serialization.enum_([
4
+ "kalshi",
5
+ "polymarket",
6
+ "predict",
7
+ "sxbet",
8
+ "hyperliquid",
9
+ "alpha-arcade",
10
+ "prophetx",
11
+ "limitless",
12
+ ]);
@@ -0,0 +1,7 @@
1
+ import type * as PredictorSDK from "../../api/index.js";
2
+ import * as core from "../../core/index.js";
3
+ import type * as serializers from "../index.js";
4
+ export declare const GetSportsMatchingMarketsRequestPlayerPropMatch: core.serialization.Schema<serializers.GetSportsMatchingMarketsRequestPlayerPropMatch.Raw, PredictorSDK.GetSportsMatchingMarketsRequestPlayerPropMatch>;
5
+ export declare namespace GetSportsMatchingMarketsRequestPlayerPropMatch {
6
+ type Raw = "strict" | "same_prop";
7
+ }
@@ -0,0 +1,3 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ export const GetSportsMatchingMarketsRequestPlayerPropMatch = core.serialization.enum_(["strict", "same_prop"]);
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const MarketDetailResponseProvider: core.serialization.Schema<serializers.MarketDetailResponseProvider.Raw, PredictorSDK.MarketDetailResponseProvider>;
5
5
  export declare namespace MarketDetailResponseProvider {
6
- type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade";
6
+ type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade" | "prophetx" | "limitless";
7
7
  }
@@ -1,3 +1,12 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const MarketDetailResponseProvider = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "hyperliquid", "alpha-arcade"]);
3
+ export const MarketDetailResponseProvider = core.serialization.enum_([
4
+ "kalshi",
5
+ "polymarket",
6
+ "predict",
7
+ "sxbet",
8
+ "hyperliquid",
9
+ "alpha-arcade",
10
+ "prophetx",
11
+ "limitless",
12
+ ]);
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const PlatformMarketPlatform: core.serialization.Schema<serializers.PlatformMarketPlatform.Raw, PredictorSDK.PlatformMarketPlatform>;
5
5
  export declare namespace PlatformMarketPlatform {
6
- type Raw = "KALSHI" | "POLYMARKET" | "PREDICT" | "SXBET" | "ALPHA-ARCADE";
6
+ type Raw = "KALSHI" | "POLYMARKET" | "PREDICT" | "SXBET" | "ALPHA-ARCADE" | "PROPHETX";
7
7
  }
@@ -1,3 +1,3 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const PlatformMarketPlatform = core.serialization.enum_(["KALSHI", "POLYMARKET", "PREDICT", "SXBET", "ALPHA-ARCADE"]);
3
+ export const PlatformMarketPlatform = core.serialization.enum_(["KALSHI", "POLYMARKET", "PREDICT", "SXBET", "ALPHA-ARCADE", "PROPHETX"]);
@@ -0,0 +1,15 @@
1
+ import type * as PredictorSDK from "../../api/index.js";
2
+ import * as core from "../../core/index.js";
3
+ import type * as serializers from "../index.js";
4
+ import { PlayerPropRuleComparisonComparison } from "./PlayerPropRuleComparisonComparison.js";
5
+ import { PlayerPropRuleComparisonRule } from "./PlayerPropRuleComparisonRule.js";
6
+ import { PlayerPropRuleSourceValue } from "./PlayerPropRuleSourceValue.js";
7
+ export declare const PlayerPropRuleComparison: core.serialization.ObjectSchema<serializers.PlayerPropRuleComparison.Raw, PredictorSDK.PlayerPropRuleComparison>;
8
+ export declare namespace PlayerPropRuleComparison {
9
+ interface Raw {
10
+ rule: PlayerPropRuleComparisonRule.Raw;
11
+ label: string;
12
+ comparison: PlayerPropRuleComparisonComparison.Raw;
13
+ source_values: PlayerPropRuleSourceValue.Raw[];
14
+ }
15
+ }
@@ -0,0 +1,11 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ import { PlayerPropRuleComparisonComparison } from "./PlayerPropRuleComparisonComparison.js";
4
+ import { PlayerPropRuleComparisonRule } from "./PlayerPropRuleComparisonRule.js";
5
+ import { PlayerPropRuleSourceValue } from "./PlayerPropRuleSourceValue.js";
6
+ export const PlayerPropRuleComparison = core.serialization.object({
7
+ rule: PlayerPropRuleComparisonRule,
8
+ label: core.serialization.string(),
9
+ comparison: PlayerPropRuleComparisonComparison,
10
+ sourceValues: core.serialization.property("source_values", core.serialization.list(PlayerPropRuleSourceValue)),
11
+ });
@@ -0,0 +1,7 @@
1
+ import type * as PredictorSDK from "../../api/index.js";
2
+ import * as core from "../../core/index.js";
3
+ import type * as serializers from "../index.js";
4
+ export declare const PlayerPropRuleComparisonComparison: core.serialization.Schema<serializers.PlayerPropRuleComparisonComparison.Raw, PredictorSDK.PlayerPropRuleComparisonComparison>;
5
+ export declare namespace PlayerPropRuleComparisonComparison {
6
+ type Raw = "equivalent" | "different" | "unverified";
7
+ }
@@ -0,0 +1,3 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ export const PlayerPropRuleComparisonComparison = core.serialization.enum_(["equivalent", "different", "unverified"]);
@@ -0,0 +1,7 @@
1
+ import type * as PredictorSDK from "../../api/index.js";
2
+ import * as core from "../../core/index.js";
3
+ import type * as serializers from "../index.js";
4
+ export declare const PlayerPropRuleComparisonRule: core.serialization.Schema<serializers.PlayerPropRuleComparisonRule.Raw, PredictorSDK.PlayerPropRuleComparisonRule>;
5
+ export declare namespace PlayerPropRuleComparisonRule {
6
+ type Raw = "non_participation" | "overtime" | "stat_definition" | "threshold" | "stat_corrections" | "postponement" | "cancellation" | "interruption" | "resolution_source";
7
+ }
@@ -0,0 +1,13 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ export const PlayerPropRuleComparisonRule = core.serialization.enum_([
4
+ "non_participation",
5
+ "overtime",
6
+ "stat_definition",
7
+ "threshold",
8
+ "stat_corrections",
9
+ "postponement",
10
+ "cancellation",
11
+ "interruption",
12
+ "resolution_source",
13
+ ]);
@@ -0,0 +1,13 @@
1
+ import type * as PredictorSDK from "../../api/index.js";
2
+ import * as core from "../../core/index.js";
3
+ import type * as serializers from "../index.js";
4
+ export declare const PlayerPropRuleSourceValue: core.serialization.ObjectSchema<serializers.PlayerPropRuleSourceValue.Raw, PredictorSDK.PlayerPropRuleSourceValue>;
5
+ export declare namespace PlayerPropRuleSourceValue {
6
+ interface Raw {
7
+ provider: string;
8
+ market_id: string;
9
+ value: string;
10
+ description: string;
11
+ evidence_url?: string | null;
12
+ }
13
+ }
@@ -0,0 +1,9 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ export const PlayerPropRuleSourceValue = core.serialization.object({
4
+ provider: core.serialization.string(),
5
+ marketId: core.serialization.property("market_id", core.serialization.string()),
6
+ value: core.serialization.string(),
7
+ description: core.serialization.string(),
8
+ evidenceUrl: core.serialization.property("evidence_url", core.serialization.string().optional()),
9
+ });
@@ -3,5 +3,5 @@ import * as core from "../../core/index.js";
3
3
  import type * as serializers from "../index.js";
4
4
  export declare const UnifiedMarketProvider: core.serialization.Schema<serializers.UnifiedMarketProvider.Raw, PredictorSDK.UnifiedMarketProvider>;
5
5
  export declare namespace UnifiedMarketProvider {
6
- type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade";
6
+ type Raw = "kalshi" | "polymarket" | "predict" | "sxbet" | "hyperliquid" | "alpha-arcade" | "prophetx" | "limitless";
7
7
  }
@@ -1,3 +1,12 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
2
  import * as core from "../../core/index.js";
3
- export const UnifiedMarketProvider = core.serialization.enum_(["kalshi", "polymarket", "predict", "sxbet", "hyperliquid", "alpha-arcade"]);
3
+ export const UnifiedMarketProvider = core.serialization.enum_([
4
+ "kalshi",
5
+ "polymarket",
6
+ "predict",
7
+ "sxbet",
8
+ "hyperliquid",
9
+ "alpha-arcade",
10
+ "prophetx",
11
+ "limitless",
12
+ ]);
@@ -8,6 +8,7 @@ export * from "./CanonicalSportsSourceMarketProvider.js";
8
8
  export * from "./CanonicalSportsSourceOutcome.js";
9
9
  export * from "./CanonicalSportsSubject.js";
10
10
  export * from "./CanonicalSportsSubmarket.js";
11
+ export * from "./CanonicalSportsSubmarketSettlementEquivalence.js";
11
12
  export * from "./CategoriesResponse.js";
12
13
  export * from "./CategoryInfo.js";
13
14
  export * from "./CryptoPriceItem.js";
@@ -20,6 +21,7 @@ export * from "./EventResponsePlatform.js";
20
21
  export * from "./GetEventRequestPlatform.js";
21
22
  export * from "./GetMarketRequestPlatform.js";
22
23
  export * from "./GetMarketsRequestProvider.js";
24
+ export * from "./GetSportsMatchingMarketsRequestPlayerPropMatch.js";
23
25
  export * from "./MarketCategory.js";
24
26
  export * from "./MarketDetailFeeLeg.js";
25
27
  export * from "./MarketDetailFeeLegModel.js";
@@ -48,6 +50,10 @@ export * from "./Plan.js";
48
50
  export * from "./PlansResponse.js";
49
51
  export * from "./PlatformMarket.js";
50
52
  export * from "./PlatformMarketPlatform.js";
53
+ export * from "./PlayerPropRuleComparison.js";
54
+ export * from "./PlayerPropRuleComparisonComparison.js";
55
+ export * from "./PlayerPropRuleComparisonRule.js";
56
+ export * from "./PlayerPropRuleSourceValue.js";
51
57
  export * from "./PolymarketPosition.js";
52
58
  export * from "./PolymarketPositionsResponse.js";
53
59
  export * from "./PolymarketWalletResponse.js";
@@ -8,6 +8,7 @@ export * from "./CanonicalSportsSourceMarketProvider.js";
8
8
  export * from "./CanonicalSportsSourceOutcome.js";
9
9
  export * from "./CanonicalSportsSubject.js";
10
10
  export * from "./CanonicalSportsSubmarket.js";
11
+ export * from "./CanonicalSportsSubmarketSettlementEquivalence.js";
11
12
  export * from "./CategoriesResponse.js";
12
13
  export * from "./CategoryInfo.js";
13
14
  export * from "./CryptoPriceItem.js";
@@ -20,6 +21,7 @@ export * from "./EventResponsePlatform.js";
20
21
  export * from "./GetEventRequestPlatform.js";
21
22
  export * from "./GetMarketRequestPlatform.js";
22
23
  export * from "./GetMarketsRequestProvider.js";
24
+ export * from "./GetSportsMatchingMarketsRequestPlayerPropMatch.js";
23
25
  export * from "./MarketCategory.js";
24
26
  export * from "./MarketDetailFeeLeg.js";
25
27
  export * from "./MarketDetailFeeLegModel.js";
@@ -48,6 +50,10 @@ export * from "./Plan.js";
48
50
  export * from "./PlansResponse.js";
49
51
  export * from "./PlatformMarket.js";
50
52
  export * from "./PlatformMarketPlatform.js";
53
+ export * from "./PlayerPropRuleComparison.js";
54
+ export * from "./PlayerPropRuleComparisonComparison.js";
55
+ export * from "./PlayerPropRuleComparisonRule.js";
56
+ export * from "./PlayerPropRuleSourceValue.js";
51
57
  export * from "./PolymarketPosition.js";
52
58
  export * from "./PolymarketPositionsResponse.js";
53
59
  export * from "./PolymarketWalletResponse.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@predictorsdk/client",
3
- "version": "0.15.2",
3
+ "version": "0.16.0",
4
4
  "description": "The official TypeScript/JavaScript client for the PredictorSDK matching markets API",
5
5
  "license": "MIT",
6
6
  "keywords": [