@predictorsdk/client 0.13.1 → 0.14.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 (49) hide show
  1. package/dist/Client.d.ts +2 -0
  2. package/dist/Client.js +2 -0
  3. package/dist/api/types/MarketDetailFeeLeg.d.ts +25 -0
  4. package/dist/api/types/MarketDetailFeeLeg.js +2 -0
  5. package/dist/api/types/MarketDetailFeeLegModel.d.ts +18 -0
  6. package/dist/api/types/MarketDetailFeeLegModel.js +18 -0
  7. package/dist/api/types/MarketDetailFeeRounding.d.ts +12 -0
  8. package/dist/api/types/MarketDetailFeeRounding.js +2 -0
  9. package/dist/api/types/MarketDetailFeeRoundingDirection.d.ts +6 -0
  10. package/dist/api/types/MarketDetailFeeRoundingDirection.js +6 -0
  11. package/dist/api/types/MarketDetailPricing.d.ts +5 -2
  12. package/dist/api/types/MarketDetailPricingSource.d.ts +1 -1
  13. package/dist/api/types/MarketDetailPricingSource.js +1 -1
  14. package/dist/api/types/MarketDetailResponse.d.ts +2 -1
  15. package/dist/api/types/MarketDetailScheduledFeeChange.d.ts +12 -0
  16. package/dist/api/types/MarketDetailScheduledFeeChange.js +2 -0
  17. package/dist/api/types/MarketDetailTradingFees.d.ts +40 -0
  18. package/dist/api/types/MarketDetailTradingFees.js +2 -0
  19. package/dist/api/types/MarketDetailTradingFeesAvailability.d.ts +9 -0
  20. package/dist/api/types/MarketDetailTradingFeesAvailability.js +9 -0
  21. package/dist/api/types/MarketDetailTradingFeesChargeBasis.d.ts +10 -0
  22. package/dist/api/types/MarketDetailTradingFeesChargeBasis.js +10 -0
  23. package/dist/api/types/MarketDetailTradingFeesSource.d.ts +7 -0
  24. package/dist/api/types/MarketDetailTradingFeesSource.js +7 -0
  25. package/dist/api/types/index.d.ts +9 -0
  26. package/dist/api/types/index.js +9 -0
  27. package/dist/serialization/types/MarketDetailFeeLeg.d.ts +14 -0
  28. package/dist/serialization/types/MarketDetailFeeLeg.js +10 -0
  29. package/dist/serialization/types/MarketDetailFeeLegModel.d.ts +7 -0
  30. package/dist/serialization/types/MarketDetailFeeLegModel.js +3 -0
  31. package/dist/serialization/types/MarketDetailFeeRounding.d.ts +11 -0
  32. package/dist/serialization/types/MarketDetailFeeRounding.js +7 -0
  33. package/dist/serialization/types/MarketDetailFeeRoundingDirection.d.ts +7 -0
  34. package/dist/serialization/types/MarketDetailFeeRoundingDirection.js +3 -0
  35. package/dist/serialization/types/MarketDetailResponse.d.ts +2 -0
  36. package/dist/serialization/types/MarketDetailResponse.js +2 -0
  37. package/dist/serialization/types/MarketDetailScheduledFeeChange.d.ts +12 -0
  38. package/dist/serialization/types/MarketDetailScheduledFeeChange.js +8 -0
  39. package/dist/serialization/types/MarketDetailTradingFees.d.ts +20 -0
  40. package/dist/serialization/types/MarketDetailTradingFees.js +16 -0
  41. package/dist/serialization/types/MarketDetailTradingFeesAvailability.d.ts +7 -0
  42. package/dist/serialization/types/MarketDetailTradingFeesAvailability.js +3 -0
  43. package/dist/serialization/types/MarketDetailTradingFeesChargeBasis.d.ts +7 -0
  44. package/dist/serialization/types/MarketDetailTradingFeesChargeBasis.js +3 -0
  45. package/dist/serialization/types/MarketDetailTradingFeesSource.d.ts +7 -0
  46. package/dist/serialization/types/MarketDetailTradingFeesSource.js +3 -0
  47. package/dist/serialization/types/index.d.ts +9 -0
  48. package/dist/serialization/types/index.js +9 -0
  49. package/package.json +1 -1
package/dist/Client.d.ts CHANGED
@@ -92,6 +92,8 @@ export declare class PredictorSDKClient {
92
92
  *
93
93
  * The pricing tier adds per-outcome quotes (`price`/`bid`/`ask`/ `last` as 0–1 probability numbers — price IS the implied probability), a `pricing` envelope (`availability`/`scale`/ `source`/`as_of`/`neg_risk`), and market-level aggregates (`liquidity_usd`, `volume_24h_usd`, `volume_total_usd`, plus Kalshi contract-count mirrors and `open_interest`). Kalshi/ Polymarket/Predict quotes come from the same record the identity fetch returns (`pricing.source=market_record`). SX Bet, Hyperliquid, and AlphaArcade carry no pricing on the market record, so the server makes one bounded second fetch to the order book (`pricing.source=orderbook`) — SX Bet's best-odds endpoint, Hyperliquid's merged `l2Book`, or AlphaArcade's `get-full-orderbook` (a 4-sided YES/NO book; the second side's quotes are derived from the first by the cross-side complement, and the catalog midpoint serves as the price mark when the book is empty). On a book error the lookup still succeeds with identity intact and `pricing.availability` reflecting the marks. On timeout/error it degrades to `pricing.availability=unavailable` with identity intact — pricing failures never fail the lookup. Aggregates a platform doesn't natively expose are explicit `null` (e.g. Kalshi reports volume in contracts, so `volume_*_usd` stays null rather than fabricating a USD figure; its upstream `liquidity_dollars` field is deprecated and always zero, so `liquidity_usd` is null too).
94
94
  *
95
+ * 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.
96
+ *
95
97
  * @param {PredictorSDK.GetMarketRequest} request
96
98
  * @param {PredictorSDKClient.RequestOptions} requestOptions - Request-specific configuration.
97
99
  *
package/dist/Client.js CHANGED
@@ -456,6 +456,8 @@ export class PredictorSDKClient {
456
456
  *
457
457
  * The pricing tier adds per-outcome quotes (`price`/`bid`/`ask`/ `last` as 0–1 probability numbers — price IS the implied probability), a `pricing` envelope (`availability`/`scale`/ `source`/`as_of`/`neg_risk`), and market-level aggregates (`liquidity_usd`, `volume_24h_usd`, `volume_total_usd`, plus Kalshi contract-count mirrors and `open_interest`). Kalshi/ Polymarket/Predict quotes come from the same record the identity fetch returns (`pricing.source=market_record`). SX Bet, Hyperliquid, and AlphaArcade carry no pricing on the market record, so the server makes one bounded second fetch to the order book (`pricing.source=orderbook`) — SX Bet's best-odds endpoint, Hyperliquid's merged `l2Book`, or AlphaArcade's `get-full-orderbook` (a 4-sided YES/NO book; the second side's quotes are derived from the first by the cross-side complement, and the catalog midpoint serves as the price mark when the book is empty). On a book error the lookup still succeeds with identity intact and `pricing.availability` reflecting the marks. On timeout/error it degrades to `pricing.availability=unavailable` with identity intact — pricing failures never fail the lookup. Aggregates a platform doesn't natively expose are explicit `null` (e.g. Kalshi reports volume in contracts, so `volume_*_usd` stays null rather than fabricating a USD figure; its upstream `liquidity_dollars` field is deprecated and always zero, so `liquidity_usd` is null too).
458
458
  *
459
+ * 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.
460
+ *
459
461
  * @param {PredictorSDK.GetMarketRequest} request
460
462
  * @param {PredictorSDKClient.RequestOptions} requestOptions - Request-specific configuration.
461
463
  *
@@ -0,0 +1,25 @@
1
+ import type * as PredictorSDK from "../index.js";
2
+ /**
3
+ * One side's fee model. Both `taker` and `maker` are always returned and you pick: PredictorSDK does not infer which side you will be, since that needs an order it has not seen. Null when the model is not determinable for that side.
4
+ *
5
+ * Note that "maker" and "taker" mean the venue's own definition — the resting order is the maker, the incoming order that fills it is the taker.
6
+ */
7
+ export interface MarketDetailFeeLeg {
8
+ /**
9
+ * The price term of the per-share fee.
10
+ *
11
+ * `quadratic` — `rate × (price × (1 − price)) ^ exponent`. Kalshi (`roundup(0.07 × C × P × (1−P))`, exponent 1 by published formula), Polymarket (`fee = C × feeRate × p × (1 − p)`, exponent read per market), AlphaArcade (`feeBase × quantity × price × (1 − price)`).
12
+ *
13
+ * `min_price` — `rate × min(price, 1 − price)`. Predict (`Base Fee % × min(Price, 1 − Price) × Shares`). A TENT, not a parabola: the effective rate on notional is flat at `rate` for every price at or below 0.5 and only declines above it. Do not collapse this into `quadratic`; it would overstate the fee at every price below 0.5.
14
+ *
15
+ * `notional` — `rate × price`, i.e. a flat fraction of traded notional with no price curve at all.
16
+ *
17
+ * `none` — zero, asserted.
18
+ */
19
+ model: PredictorSDK.MarketDetailFeeLegModel;
20
+ /** A DECIMAL FRACTION, never basis points — matching each venue's own published unit. `0.07` is 7% of the price term, not 7 bps. Null means the shape is known but the value is not (Hyperliquid, where the effective rate is account-tiered). `0` means zero, asserted. */
21
+ rate: number | null;
22
+ /** Only meaningful for `model: "quadratic"`; null otherwise. Read per market from Polymarket's `feeSchedule.exponent`; `1` on Kalshi and AlphaArcade, whose published formulas are exponent-1 by construction. Never defaulted when unknown — a quadratic leg with an unreadable exponent makes the whole descriptor `partial`, because the exponent moves the fee by roughly 4x and can flip which venue is cheaper. */
23
+ exponent: number | null;
24
+ rounding: PredictorSDK.MarketDetailFeeRounding | null;
25
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The price term of the per-share fee.
3
+ *
4
+ * `quadratic` — `rate × (price × (1 − price)) ^ exponent`. Kalshi (`roundup(0.07 × C × P × (1−P))`, exponent 1 by published formula), Polymarket (`fee = C × feeRate × p × (1 − p)`, exponent read per market), AlphaArcade (`feeBase × quantity × price × (1 − price)`).
5
+ *
6
+ * `min_price` — `rate × min(price, 1 − price)`. Predict (`Base Fee % × min(Price, 1 − Price) × Shares`). A TENT, not a parabola: the effective rate on notional is flat at `rate` for every price at or below 0.5 and only declines above it. Do not collapse this into `quadratic`; it would overstate the fee at every price below 0.5.
7
+ *
8
+ * `notional` — `rate × price`, i.e. a flat fraction of traded notional with no price curve at all.
9
+ *
10
+ * `none` — zero, asserted.
11
+ */
12
+ export declare const MarketDetailFeeLegModel: {
13
+ readonly Quadratic: "quadratic";
14
+ readonly MinPrice: "min_price";
15
+ readonly Notional: "notional";
16
+ readonly None: "none";
17
+ };
18
+ export type MarketDetailFeeLegModel = (typeof MarketDetailFeeLegModel)[keyof typeof MarketDetailFeeLegModel];
@@ -0,0 +1,18 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ /**
3
+ * The price term of the per-share fee.
4
+ *
5
+ * `quadratic` — `rate × (price × (1 − price)) ^ exponent`. Kalshi (`roundup(0.07 × C × P × (1−P))`, exponent 1 by published formula), Polymarket (`fee = C × feeRate × p × (1 − p)`, exponent read per market), AlphaArcade (`feeBase × quantity × price × (1 − price)`).
6
+ *
7
+ * `min_price` — `rate × min(price, 1 − price)`. Predict (`Base Fee % × min(Price, 1 − Price) × Shares`). A TENT, not a parabola: the effective rate on notional is flat at `rate` for every price at or below 0.5 and only declines above it. Do not collapse this into `quadratic`; it would overstate the fee at every price below 0.5.
8
+ *
9
+ * `notional` — `rate × price`, i.e. a flat fraction of traded notional with no price curve at all.
10
+ *
11
+ * `none` — zero, asserted.
12
+ */
13
+ export const MarketDetailFeeLegModel = {
14
+ Quadratic: "quadratic",
15
+ MinPrice: "min_price",
16
+ Notional: "notional",
17
+ None: "none",
18
+ };
@@ -0,0 +1,12 @@
1
+ import type * as PredictorSDK from "../index.js";
2
+ /**
3
+ * The venue's published rounding rule, applied to the computed fee. Null where the venue publishes no rule (Predict) — treat that as UNKNOWN rather than as "no rounding", which would understate small trades.
4
+ *
5
+ * Kalshi additionally charges a per-fill rounding fee that restores the member's balance precision ($0.01 for non-direct members, $0.0001 for direct), offset by a rebate once accumulated rounding exceeds $0.01. That depends on fill fragmentation and member type, so it is not predictable pre-trade and is deliberately not modeled here — expect a small positive difference between the figure you compute and the figure Kalshi charges across many partial fills.
6
+ */
7
+ export interface MarketDetailFeeRounding {
8
+ /** `up` — the venue rounds the fee UP to the next increment (Kalshi ceils to $0.0001; AlphaArcade ceils to 1e-6 USDC). `nearest` — the venue rounds to the nearest increment (Polymarket rounds to 5 decimal places, with 0.00001 USDC the smallest fee charged). */
9
+ direction: PredictorSDK.MarketDetailFeeRoundingDirection;
10
+ /** The rounding increment in the market's quote currency. */
11
+ increment: number;
12
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,6 @@
1
+ /** `up` — the venue rounds the fee UP to the next increment (Kalshi ceils to $0.0001; AlphaArcade ceils to 1e-6 USDC). `nearest` — the venue rounds to the nearest increment (Polymarket rounds to 5 decimal places, with 0.00001 USDC the smallest fee charged). */
2
+ export declare const MarketDetailFeeRoundingDirection: {
3
+ readonly Up: "up";
4
+ readonly Nearest: "nearest";
5
+ };
6
+ export type MarketDetailFeeRoundingDirection = (typeof MarketDetailFeeRoundingDirection)[keyof typeof MarketDetailFeeRoundingDirection];
@@ -0,0 +1,6 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ /** `up` — the venue rounds the fee UP to the next increment (Kalshi ceils to $0.0001; AlphaArcade ceils to 1e-6 USDC). `nearest` — the venue rounds to the nearest increment (Polymarket rounds to 5 decimal places, with 0.00001 USDC the smallest fee charged). */
3
+ export const MarketDetailFeeRoundingDirection = {
4
+ Up: "up",
5
+ Nearest: "nearest",
6
+ };
@@ -7,9 +7,12 @@ export interface MarketDetailPricing {
7
7
  availability: PredictorSDK.MarketDetailPricingAvailability;
8
8
  /** Self-describing unit declaration for all price fields. Single canonical scale today; new values would be added alongside (never replacing) this one. */
9
9
  scale: PredictorSDK.MarketDetailPricingScale;
10
- /** Where the quotes came from. `market_record` — embedded in the same single-market record as the identity fetch (Kalshi, Polymarket, Predict). `orderbook` — required one bounded second fetch against the platform's order-book surface (SX Bet `/orders/odds/best`, Hyperliquid `l2Book`). */
10
+ /** Where the quotes came from. `market_record` — embedded in the same single-market record as the identity fetch (Kalshi, Polymarket, Predict). `orderbook` — required one bounded second fetch against the platform's order-book surface (SX Bet `/orderbook-v3/snapshot`, Hyperliquid `l2Book`). */
11
11
  source: PredictorSDK.MarketDetailPricingSource;
12
- /** Quote freshness as RFC3339. When the two sides carry independent upstream timestamps (SX Bet), this is the OLDER of them — a conservative floor that never over-claims freshness. Hyperliquid uses the `l2Book` server timestamp. Null when the upstream record carries no quote timestamp at all (Predict) — treat freshness as UNKNOWN, not as fresh. Timestamps come from each platform's own clock; for Kalshi/Polymarket the value is the record's last-update time, the closest the platform exposes to a quote timestamp. */
12
+ /**
13
+ * Quote freshness as RFC3339. When the two sides carry independent upstream timestamps, this is the OLDER of them — a conservative floor that never over-claims freshness. Hyperliquid uses the `l2Book` server timestamp. Null when the upstream record carries no quote timestamp at all (Predict, AlphaArcade, and SX Bet) — treat freshness as UNKNOWN, not as fresh. Timestamps come from each platform's own clock; for Kalshi/Polymarket the value is the record's last-update time, the closest the platform exposes to a quote timestamp.
14
+ * SX Bet moved from timestamped to null at its V3 order-book cutover (2026-08-25): V3 publishes an opaque monotonic book `version` and no wall-clock stamp anywhere, and server ingest time is not substituted because it would masquerade as an upstream stamp.
15
+ */
13
16
  asOf: Date | null;
14
17
  /** True when this market belongs to a negative-risk multi-outcome event (Polymarket `negRisk`, Predict `isNegRisk`). On a multi-outcome record, outcome prices intentionally need not sum to 1 — do not "normalize" the book. Note that for the BINARY member markets these platforms serve today the flag signals event-level structure (this market is one leg of a mutually-exclusive set); the binary pair itself still sums to ~1. Omitted when false. */
15
18
  negRisk?: boolean;
@@ -1,4 +1,4 @@
1
- /** Where the quotes came from. `market_record` — embedded in the same single-market record as the identity fetch (Kalshi, Polymarket, Predict). `orderbook` — required one bounded second fetch against the platform's order-book surface (SX Bet `/orders/odds/best`, Hyperliquid `l2Book`). */
1
+ /** Where the quotes came from. `market_record` — embedded in the same single-market record as the identity fetch (Kalshi, Polymarket, Predict). `orderbook` — required one bounded second fetch against the platform's order-book surface (SX Bet `/orderbook-v3/snapshot`, Hyperliquid `l2Book`). */
2
2
  export declare const MarketDetailPricingSource: {
3
3
  readonly MarketRecord: "market_record";
4
4
  readonly Orderbook: "orderbook";
@@ -1,5 +1,5 @@
1
1
  // This file was auto-generated by Fern from our API Definition.
2
- /** Where the quotes came from. `market_record` — embedded in the same single-market record as the identity fetch (Kalshi, Polymarket, Predict). `orderbook` — required one bounded second fetch against the platform's order-book surface (SX Bet `/orders/odds/best`, Hyperliquid `l2Book`). */
2
+ /** Where the quotes came from. `market_record` — embedded in the same single-market record as the identity fetch (Kalshi, Polymarket, Predict). `orderbook` — required one bounded second fetch against the platform's order-book surface (SX Bet `/orderbook-v3/snapshot`, Hyperliquid `l2Book`). */
3
3
  export const MarketDetailPricingSource = {
4
4
  MarketRecord: "market_record",
5
5
  Orderbook: "orderbook",
@@ -1,6 +1,6 @@
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. closes_at/event_id remain deliberately omitted, see the endpoint description for the rationale.
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.
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. */
@@ -16,6 +16,7 @@ export interface MarketDetailResponse {
16
16
  /** Outcomes with per-outcome quotes. ORDERING GUARANTEE: `outcomes[0]` is the platform's primary/headline outcome — Kalshi `Yes`, Polymarket's first outcome token (its `bestBid`/`bestAsk` side), Predict `indexSet=1`, SX Bet `outcomeOne`, Hyperliquid's first `sideSpec`. Render `outcomes[0].price` as the headline probability; do NOT search for an outcome named "Yes" (names are free-text on Predict/SX Bet/Hyperliquid). Every supported platform models per-market outcomes as a 2-element list in practice (multi-outcome events are modeled as multiple binary markets nested under one event/category); the per-outcome quote shape handles binary and any future multi-outcome record identically with no special-casing. */
17
17
  outcomes: PredictorSDK.MarketDetailOutcome[];
18
18
  pricing: PredictorSDK.MarketDetailPricing;
19
+ tradingFees: PredictorSDK.MarketDetailTradingFees;
19
20
  /** Resting order-book depth valued in USD — strictly CLOB book depth, never an AMM pool size or a synthetic score. Polymarket exposes it natively (`liquidityNum`); null for Kalshi (its upstream `liquidity_dollars` is deprecated and always zero), Predict (stats is null on the record), and SX Bet/Hyperliquid (no scalar without summing the raw order book). */
20
21
  liquidityUsd: number | null;
21
22
  /** Trailing-24h traded volume in USD notional. Null where the platform doesn't denominate volume in USD — notably Kalshi (contracts; see `volume_24h_contracts`) — or doesn't expose a volume aggregate at all (SX Bet, Hyperliquid, Predict's record). */
@@ -0,0 +1,12 @@
1
+ import type * as PredictorSDK from "../index.js";
2
+ /**
3
+ * The next PUBLISHED change to this market's fee parameters and when it takes effect. OMITTED (not null) when there is no pending change, matching `pricing.neg_risk`.
4
+ *
5
+ * Kalshi is the only platform that publishes this today, and it matters: every MLB series currently runs at a `fee_multiplier` of 0.5 with a per-event override restoring 1.0 at first pitch, so the fee DOUBLES mid-market on a game that is already trading. On a $100 taker order at a price of 0.42 that is 203 bps before the first pitch and 406 bps after — enough to change which venue is cheaper for the same canonical outcome at the same price. Without this field a consumer mis-costs every order placed near a game start with no way to see it coming.
6
+ */
7
+ export interface MarketDetailScheduledFeeChange {
8
+ /** When the new parameters take effect, RFC3339. */
9
+ effectiveAt: Date;
10
+ taker: PredictorSDK.MarketDetailFeeLeg | null;
11
+ maker: PredictorSDK.MarketDetailFeeLeg | null;
12
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,40 @@
1
+ import type * as PredictorSDK from "../index.js";
2
+ /**
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
+ *
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:
6
+ *
7
+ * `fee = shares × f(price)`, then apply `rounding`, where `f` is
8
+ *
9
+ * - `quadratic`: `rate × (price × (1 − price)) ^ exponent`
10
+ * - `min_price`: `rate × min(price, 1 − price)`
11
+ * - `notional`: `rate × price`
12
+ * - `none`: `0`
13
+ *
14
+ * The effective rate on notional — what you actually compare across venues — is `f(price) / price`. For `quadratic` at `exponent: 1` that reduces to `rate × (1 − price)`, which is why no single basis-point figure can express any of these venues: at `rate: 0.07` the effective cost runs from 693 bps at a price of 0.01 down to 7 bps at 0.99.
15
+ *
16
+ * `availability` and the legs are on separate axes on purpose: availability says what is KNOWN, the legs say what is CHARGED. A fee-free market is `availability: published` with `model: "none"` and `rate: 0` — an asserted zero, distinguishable from `unpublished` (the venue publishes nothing) and from `account_specific` (rates exist but are per-account).
17
+ *
18
+ * OUT OF SCOPE and therefore not modeled as fields, though each is real and moves the number: rebates (Polymarket's maker-rebate and taker-rebate programs), per-account discounts (Predict's 10% invite discount), volume/staking tiers (Hyperliquid), and third-party pass-through (Kalshi FCM customers, Polymarket builder fees). The parameters here are the venue's PUBLISHED base for this market; a specific account may pay less.
19
+ */
20
+ export interface MarketDetailTradingFees {
21
+ /** `published` — the full parameter set for this market is known. `partial` — fees may be charged here but a parameter is missing or uninterpretable upstream; the legs carry what is known and null the rest, never a guess. It also covers the case where the parameters in force are known but the venue's pending-change list was unreadable, so an omitted `scheduled_change` means "unknown" rather than "none". `account_specific` — rates exist but are set per trading account and require your own venue credentials (SX Bet's `GET /user/fees-v3`, Hyperliquid's `POST /info {"type":"userFees"}`). `unpublished` — the venue publishes no fee model for this market at all. `unavailable` — our own bounded parameter fetch failed or timed out; identity and pricing are still served. Same contract as `pricing.availability`. */
22
+ availability: PredictorSDK.MarketDetailTradingFeesAvailability;
23
+ /**
24
+ * When PredictorSDK READ these parameter values — an observation timestamp, not an upstream stamp.
25
+ *
26
+ * Named `observed_at` rather than `as_of` deliberately: `pricing.as_of` is the provider record's own last-update time, which is a different thing, and reusing the name for a differently-defined timestamp would bake that confusion into a second field. Null when nothing is read at request time (`source: venue_schedule`) or when nothing could be read (`availability: unavailable`).
27
+ */
28
+ observedAt: Date | null;
29
+ /** Where the parameters came from, so a latency-sensitive consumer knows which platforms cost extra hops. `market_record` — embedded in the same market record the identity fetch already returned (Polymarket `feeSchedule`, Predict `feeRateBps`, AlphaArcade `feeBasePercent`); zero extra fetches. `series_record` — the parameters live on parent records and cost up to three small, TTL-cached hops (Kalshi: the event record for its series ticker and any fee override in force, the series for the base `fee_type`/`fee_multiplier` that override supersedes, then the event's pending fee changes for `scheduled_change`). `venue_schedule` — the venue exposes no per-market parameter and the answer comes from its published schedule (SX Bet, Hyperliquid). */
30
+ source: PredictorSDK.MarketDetailTradingFeesSource;
31
+ /**
32
+ * What the fee is assessed on. `fill` — assessed when the order fills, from the traded share count and the fill price. `settlement_profit` — assessed at settlement, on profit (total return − stake), and only on a position that WON; a loss or a void is never charged.
33
+ *
34
+ * Read this before comparing rates across venues. SX Bet charges on winning profit at settlement, so its fee is an expected-value haircut rather than an entry cost — a consumer that models it as a percentage of notional is wrong about the shape before it is wrong about the rate. The reported basis is the one that applies to trading: SX Bet's four payout fees. Its separate `refundFee` is charged at fill time on the capital-efficiency refund rather than on profit, and is out of scope here along with its rates.
35
+ */
36
+ chargeBasis: PredictorSDK.MarketDetailTradingFeesChargeBasis | null;
37
+ taker: PredictorSDK.MarketDetailFeeLeg | null;
38
+ maker: PredictorSDK.MarketDetailFeeLeg | null;
39
+ scheduledChange?: PredictorSDK.MarketDetailScheduledFeeChange | null;
40
+ }
@@ -0,0 +1,2 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ export {};
@@ -0,0 +1,9 @@
1
+ /** `published` — the full parameter set for this market is known. `partial` — fees may be charged here but a parameter is missing or uninterpretable upstream; the legs carry what is known and null the rest, never a guess. It also covers the case where the parameters in force are known but the venue's pending-change list was unreadable, so an omitted `scheduled_change` means "unknown" rather than "none". `account_specific` — rates exist but are set per trading account and require your own venue credentials (SX Bet's `GET /user/fees-v3`, Hyperliquid's `POST /info {"type":"userFees"}`). `unpublished` — the venue publishes no fee model for this market at all. `unavailable` — our own bounded parameter fetch failed or timed out; identity and pricing are still served. Same contract as `pricing.availability`. */
2
+ export declare const MarketDetailTradingFeesAvailability: {
3
+ readonly Published: "published";
4
+ readonly Partial: "partial";
5
+ readonly AccountSpecific: "account_specific";
6
+ readonly Unpublished: "unpublished";
7
+ readonly Unavailable: "unavailable";
8
+ };
9
+ export type MarketDetailTradingFeesAvailability = (typeof MarketDetailTradingFeesAvailability)[keyof typeof MarketDetailTradingFeesAvailability];
@@ -0,0 +1,9 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ /** `published` — the full parameter set for this market is known. `partial` — fees may be charged here but a parameter is missing or uninterpretable upstream; the legs carry what is known and null the rest, never a guess. It also covers the case where the parameters in force are known but the venue's pending-change list was unreadable, so an omitted `scheduled_change` means "unknown" rather than "none". `account_specific` — rates exist but are set per trading account and require your own venue credentials (SX Bet's `GET /user/fees-v3`, Hyperliquid's `POST /info {"type":"userFees"}`). `unpublished` — the venue publishes no fee model for this market at all. `unavailable` — our own bounded parameter fetch failed or timed out; identity and pricing are still served. Same contract as `pricing.availability`. */
3
+ export const MarketDetailTradingFeesAvailability = {
4
+ Published: "published",
5
+ Partial: "partial",
6
+ AccountSpecific: "account_specific",
7
+ Unpublished: "unpublished",
8
+ Unavailable: "unavailable",
9
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * What the fee is assessed on. `fill` — assessed when the order fills, from the traded share count and the fill price. `settlement_profit` — assessed at settlement, on profit (total return − stake), and only on a position that WON; a loss or a void is never charged.
3
+ *
4
+ * Read this before comparing rates across venues. SX Bet charges on winning profit at settlement, so its fee is an expected-value haircut rather than an entry cost — a consumer that models it as a percentage of notional is wrong about the shape before it is wrong about the rate. The reported basis is the one that applies to trading: SX Bet's four payout fees. Its separate `refundFee` is charged at fill time on the capital-efficiency refund rather than on profit, and is out of scope here along with its rates.
5
+ */
6
+ export declare const MarketDetailTradingFeesChargeBasis: {
7
+ readonly Fill: "fill";
8
+ readonly SettlementProfit: "settlement_profit";
9
+ };
10
+ export type MarketDetailTradingFeesChargeBasis = (typeof MarketDetailTradingFeesChargeBasis)[keyof typeof MarketDetailTradingFeesChargeBasis];
@@ -0,0 +1,10 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ /**
3
+ * What the fee is assessed on. `fill` — assessed when the order fills, from the traded share count and the fill price. `settlement_profit` — assessed at settlement, on profit (total return − stake), and only on a position that WON; a loss or a void is never charged.
4
+ *
5
+ * Read this before comparing rates across venues. SX Bet charges on winning profit at settlement, so its fee is an expected-value haircut rather than an entry cost — a consumer that models it as a percentage of notional is wrong about the shape before it is wrong about the rate. The reported basis is the one that applies to trading: SX Bet's four payout fees. Its separate `refundFee` is charged at fill time on the capital-efficiency refund rather than on profit, and is out of scope here along with its rates.
6
+ */
7
+ export const MarketDetailTradingFeesChargeBasis = {
8
+ Fill: "fill",
9
+ SettlementProfit: "settlement_profit",
10
+ };
@@ -0,0 +1,7 @@
1
+ /** Where the parameters came from, so a latency-sensitive consumer knows which platforms cost extra hops. `market_record` — embedded in the same market record the identity fetch already returned (Polymarket `feeSchedule`, Predict `feeRateBps`, AlphaArcade `feeBasePercent`); zero extra fetches. `series_record` — the parameters live on parent records and cost up to three small, TTL-cached hops (Kalshi: the event record for its series ticker and any fee override in force, the series for the base `fee_type`/`fee_multiplier` that override supersedes, then the event's pending fee changes for `scheduled_change`). `venue_schedule` — the venue exposes no per-market parameter and the answer comes from its published schedule (SX Bet, Hyperliquid). */
2
+ export declare const MarketDetailTradingFeesSource: {
3
+ readonly MarketRecord: "market_record";
4
+ readonly SeriesRecord: "series_record";
5
+ readonly VenueSchedule: "venue_schedule";
6
+ };
7
+ export type MarketDetailTradingFeesSource = (typeof MarketDetailTradingFeesSource)[keyof typeof MarketDetailTradingFeesSource];
@@ -0,0 +1,7 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ /** Where the parameters came from, so a latency-sensitive consumer knows which platforms cost extra hops. `market_record` — embedded in the same market record the identity fetch already returned (Polymarket `feeSchedule`, Predict `feeRateBps`, AlphaArcade `feeBasePercent`); zero extra fetches. `series_record` — the parameters live on parent records and cost up to three small, TTL-cached hops (Kalshi: the event record for its series ticker and any fee override in force, the series for the base `fee_type`/`fee_multiplier` that override supersedes, then the event's pending fee changes for `scheduled_change`). `venue_schedule` — the venue exposes no per-market parameter and the answer comes from its published schedule (SX Bet, Hyperliquid). */
3
+ export const MarketDetailTradingFeesSource = {
4
+ MarketRecord: "market_record",
5
+ SeriesRecord: "series_record",
6
+ VenueSchedule: "venue_schedule",
7
+ };
@@ -19,6 +19,10 @@ export * from "./EventResponsePlatform.js";
19
19
  export * from "./GetEventRequestPlatform.js";
20
20
  export * from "./GetMarketRequestPlatform.js";
21
21
  export * from "./MarketCategory.js";
22
+ export * from "./MarketDetailFeeLeg.js";
23
+ export * from "./MarketDetailFeeLegModel.js";
24
+ export * from "./MarketDetailFeeRounding.js";
25
+ export * from "./MarketDetailFeeRoundingDirection.js";
22
26
  export * from "./MarketDetailOutcome.js";
23
27
  export * from "./MarketDetailPricing.js";
24
28
  export * from "./MarketDetailPricingAvailability.js";
@@ -27,6 +31,11 @@ export * from "./MarketDetailPricingSource.js";
27
31
  export * from "./MarketDetailResponse.js";
28
32
  export * from "./MarketDetailResponseProvider.js";
29
33
  export * from "./MarketDetailResponseStatus.js";
34
+ export * from "./MarketDetailScheduledFeeChange.js";
35
+ export * from "./MarketDetailTradingFees.js";
36
+ export * from "./MarketDetailTradingFeesAvailability.js";
37
+ export * from "./MarketDetailTradingFeesChargeBasis.js";
38
+ export * from "./MarketDetailTradingFeesSource.js";
30
39
  export * from "./MarketsListResponse.js";
31
40
  export * from "./PaginationBlock.js";
32
41
  export * from "./PaymentRequiredErrorAction.js";
@@ -19,6 +19,10 @@ export * from "./EventResponsePlatform.js";
19
19
  export * from "./GetEventRequestPlatform.js";
20
20
  export * from "./GetMarketRequestPlatform.js";
21
21
  export * from "./MarketCategory.js";
22
+ export * from "./MarketDetailFeeLeg.js";
23
+ export * from "./MarketDetailFeeLegModel.js";
24
+ export * from "./MarketDetailFeeRounding.js";
25
+ export * from "./MarketDetailFeeRoundingDirection.js";
22
26
  export * from "./MarketDetailOutcome.js";
23
27
  export * from "./MarketDetailPricing.js";
24
28
  export * from "./MarketDetailPricingAvailability.js";
@@ -27,6 +31,11 @@ export * from "./MarketDetailPricingSource.js";
27
31
  export * from "./MarketDetailResponse.js";
28
32
  export * from "./MarketDetailResponseProvider.js";
29
33
  export * from "./MarketDetailResponseStatus.js";
34
+ export * from "./MarketDetailScheduledFeeChange.js";
35
+ export * from "./MarketDetailTradingFees.js";
36
+ export * from "./MarketDetailTradingFeesAvailability.js";
37
+ export * from "./MarketDetailTradingFeesChargeBasis.js";
38
+ export * from "./MarketDetailTradingFeesSource.js";
30
39
  export * from "./MarketsListResponse.js";
31
40
  export * from "./PaginationBlock.js";
32
41
  export * from "./PaymentRequiredErrorAction.js";
@@ -0,0 +1,14 @@
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 { MarketDetailFeeLegModel } from "./MarketDetailFeeLegModel.js";
5
+ import { MarketDetailFeeRounding } from "./MarketDetailFeeRounding.js";
6
+ export declare const MarketDetailFeeLeg: core.serialization.ObjectSchema<serializers.MarketDetailFeeLeg.Raw, PredictorSDK.MarketDetailFeeLeg>;
7
+ export declare namespace MarketDetailFeeLeg {
8
+ interface Raw {
9
+ model: MarketDetailFeeLegModel.Raw;
10
+ rate?: number | null;
11
+ exponent?: number | null;
12
+ rounding?: MarketDetailFeeRounding.Raw | null;
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ import { MarketDetailFeeLegModel } from "./MarketDetailFeeLegModel.js";
4
+ import { MarketDetailFeeRounding } from "./MarketDetailFeeRounding.js";
5
+ export const MarketDetailFeeLeg = core.serialization.object({
6
+ model: MarketDetailFeeLegModel,
7
+ rate: core.serialization.number().nullable(),
8
+ exponent: core.serialization.number().nullable(),
9
+ rounding: MarketDetailFeeRounding.nullable(),
10
+ });
@@ -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 MarketDetailFeeLegModel: core.serialization.Schema<serializers.MarketDetailFeeLegModel.Raw, PredictorSDK.MarketDetailFeeLegModel>;
5
+ export declare namespace MarketDetailFeeLegModel {
6
+ type Raw = "quadratic" | "min_price" | "notional" | "none";
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 MarketDetailFeeLegModel = core.serialization.enum_(["quadratic", "min_price", "notional", "none"]);
@@ -0,0 +1,11 @@
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 { MarketDetailFeeRoundingDirection } from "./MarketDetailFeeRoundingDirection.js";
5
+ export declare const MarketDetailFeeRounding: core.serialization.ObjectSchema<serializers.MarketDetailFeeRounding.Raw, PredictorSDK.MarketDetailFeeRounding>;
6
+ export declare namespace MarketDetailFeeRounding {
7
+ interface Raw {
8
+ direction: MarketDetailFeeRoundingDirection.Raw;
9
+ increment: number;
10
+ }
11
+ }
@@ -0,0 +1,7 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ import { MarketDetailFeeRoundingDirection } from "./MarketDetailFeeRoundingDirection.js";
4
+ export const MarketDetailFeeRounding = core.serialization.object({
5
+ direction: MarketDetailFeeRoundingDirection,
6
+ increment: core.serialization.number(),
7
+ });
@@ -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 MarketDetailFeeRoundingDirection: core.serialization.Schema<serializers.MarketDetailFeeRoundingDirection.Raw, PredictorSDK.MarketDetailFeeRoundingDirection>;
5
+ export declare namespace MarketDetailFeeRoundingDirection {
6
+ type Raw = "up" | "nearest";
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 MarketDetailFeeRoundingDirection = core.serialization.enum_(["up", "nearest"]);
@@ -5,6 +5,7 @@ import { MarketDetailOutcome } from "./MarketDetailOutcome.js";
5
5
  import { MarketDetailPricing } from "./MarketDetailPricing.js";
6
6
  import { MarketDetailResponseProvider } from "./MarketDetailResponseProvider.js";
7
7
  import { MarketDetailResponseStatus } from "./MarketDetailResponseStatus.js";
8
+ import { MarketDetailTradingFees } from "./MarketDetailTradingFees.js";
8
9
  export declare const MarketDetailResponse: core.serialization.ObjectSchema<serializers.MarketDetailResponse.Raw, PredictorSDK.MarketDetailResponse>;
9
10
  export declare namespace MarketDetailResponse {
10
11
  interface Raw {
@@ -15,6 +16,7 @@ export declare namespace MarketDetailResponse {
15
16
  status: MarketDetailResponseStatus.Raw;
16
17
  outcomes: MarketDetailOutcome.Raw[];
17
18
  pricing: MarketDetailPricing.Raw;
19
+ trading_fees: MarketDetailTradingFees.Raw;
18
20
  liquidity_usd?: number | null;
19
21
  volume_24h_usd?: number | null;
20
22
  volume_total_usd?: number | null;
@@ -4,6 +4,7 @@ import { MarketDetailOutcome } from "./MarketDetailOutcome.js";
4
4
  import { MarketDetailPricing } from "./MarketDetailPricing.js";
5
5
  import { MarketDetailResponseProvider } from "./MarketDetailResponseProvider.js";
6
6
  import { MarketDetailResponseStatus } from "./MarketDetailResponseStatus.js";
7
+ import { MarketDetailTradingFees } from "./MarketDetailTradingFees.js";
7
8
  export const MarketDetailResponse = core.serialization.object({
8
9
  id: core.serialization.string(),
9
10
  provider: MarketDetailResponseProvider,
@@ -12,6 +13,7 @@ export const MarketDetailResponse = core.serialization.object({
12
13
  status: MarketDetailResponseStatus,
13
14
  outcomes: core.serialization.list(MarketDetailOutcome),
14
15
  pricing: MarketDetailPricing,
16
+ tradingFees: core.serialization.property("trading_fees", MarketDetailTradingFees),
15
17
  liquidityUsd: core.serialization.property("liquidity_usd", core.serialization.number().nullable()),
16
18
  volume24HUsd: core.serialization.property("volume_24h_usd", core.serialization.number().nullable()),
17
19
  volumeTotalUsd: core.serialization.property("volume_total_usd", core.serialization.number().nullable()),
@@ -0,0 +1,12 @@
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 { MarketDetailFeeLeg } from "./MarketDetailFeeLeg.js";
5
+ export declare const MarketDetailScheduledFeeChange: core.serialization.ObjectSchema<serializers.MarketDetailScheduledFeeChange.Raw, PredictorSDK.MarketDetailScheduledFeeChange>;
6
+ export declare namespace MarketDetailScheduledFeeChange {
7
+ interface Raw {
8
+ effective_at: string;
9
+ taker?: MarketDetailFeeLeg.Raw | null;
10
+ maker?: MarketDetailFeeLeg.Raw | null;
11
+ }
12
+ }
@@ -0,0 +1,8 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ import { MarketDetailFeeLeg } from "./MarketDetailFeeLeg.js";
4
+ export const MarketDetailScheduledFeeChange = core.serialization.object({
5
+ effectiveAt: core.serialization.property("effective_at", core.serialization.date()),
6
+ taker: MarketDetailFeeLeg.nullable(),
7
+ maker: MarketDetailFeeLeg.nullable(),
8
+ });
@@ -0,0 +1,20 @@
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 { MarketDetailFeeLeg } from "./MarketDetailFeeLeg.js";
5
+ import { MarketDetailScheduledFeeChange } from "./MarketDetailScheduledFeeChange.js";
6
+ import { MarketDetailTradingFeesAvailability } from "./MarketDetailTradingFeesAvailability.js";
7
+ import { MarketDetailTradingFeesChargeBasis } from "./MarketDetailTradingFeesChargeBasis.js";
8
+ import { MarketDetailTradingFeesSource } from "./MarketDetailTradingFeesSource.js";
9
+ export declare const MarketDetailTradingFees: core.serialization.ObjectSchema<serializers.MarketDetailTradingFees.Raw, PredictorSDK.MarketDetailTradingFees>;
10
+ export declare namespace MarketDetailTradingFees {
11
+ interface Raw {
12
+ availability: MarketDetailTradingFeesAvailability.Raw;
13
+ observed_at?: string | null;
14
+ source: MarketDetailTradingFeesSource.Raw;
15
+ charge_basis?: MarketDetailTradingFeesChargeBasis.Raw | null;
16
+ taker?: MarketDetailFeeLeg.Raw | null;
17
+ maker?: MarketDetailFeeLeg.Raw | null;
18
+ scheduled_change?: (MarketDetailScheduledFeeChange.Raw | null | undefined) | null;
19
+ }
20
+ }
@@ -0,0 +1,16 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../core/index.js";
3
+ import { MarketDetailFeeLeg } from "./MarketDetailFeeLeg.js";
4
+ import { MarketDetailScheduledFeeChange } from "./MarketDetailScheduledFeeChange.js";
5
+ import { MarketDetailTradingFeesAvailability } from "./MarketDetailTradingFeesAvailability.js";
6
+ import { MarketDetailTradingFeesChargeBasis } from "./MarketDetailTradingFeesChargeBasis.js";
7
+ import { MarketDetailTradingFeesSource } from "./MarketDetailTradingFeesSource.js";
8
+ export const MarketDetailTradingFees = core.serialization.object({
9
+ availability: MarketDetailTradingFeesAvailability,
10
+ observedAt: core.serialization.property("observed_at", core.serialization.date().nullable()),
11
+ source: MarketDetailTradingFeesSource,
12
+ chargeBasis: core.serialization.property("charge_basis", MarketDetailTradingFeesChargeBasis.nullable()),
13
+ taker: MarketDetailFeeLeg.nullable(),
14
+ maker: MarketDetailFeeLeg.nullable(),
15
+ scheduledChange: core.serialization.property("scheduled_change", MarketDetailScheduledFeeChange.optionalNullable()),
16
+ });
@@ -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 MarketDetailTradingFeesAvailability: core.serialization.Schema<serializers.MarketDetailTradingFeesAvailability.Raw, PredictorSDK.MarketDetailTradingFeesAvailability>;
5
+ export declare namespace MarketDetailTradingFeesAvailability {
6
+ type Raw = "published" | "partial" | "account_specific" | "unpublished" | "unavailable";
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 MarketDetailTradingFeesAvailability = core.serialization.enum_(["published", "partial", "account_specific", "unpublished", "unavailable"]);
@@ -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 MarketDetailTradingFeesChargeBasis: core.serialization.Schema<serializers.MarketDetailTradingFeesChargeBasis.Raw, PredictorSDK.MarketDetailTradingFeesChargeBasis>;
5
+ export declare namespace MarketDetailTradingFeesChargeBasis {
6
+ type Raw = "fill" | "settlement_profit";
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 MarketDetailTradingFeesChargeBasis = core.serialization.enum_(["fill", "settlement_profit"]);
@@ -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 MarketDetailTradingFeesSource: core.serialization.Schema<serializers.MarketDetailTradingFeesSource.Raw, PredictorSDK.MarketDetailTradingFeesSource>;
5
+ export declare namespace MarketDetailTradingFeesSource {
6
+ type Raw = "market_record" | "series_record" | "venue_schedule";
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 MarketDetailTradingFeesSource = core.serialization.enum_(["market_record", "series_record", "venue_schedule"]);
@@ -19,6 +19,10 @@ export * from "./EventResponsePlatform.js";
19
19
  export * from "./GetEventRequestPlatform.js";
20
20
  export * from "./GetMarketRequestPlatform.js";
21
21
  export * from "./MarketCategory.js";
22
+ export * from "./MarketDetailFeeLeg.js";
23
+ export * from "./MarketDetailFeeLegModel.js";
24
+ export * from "./MarketDetailFeeRounding.js";
25
+ export * from "./MarketDetailFeeRoundingDirection.js";
22
26
  export * from "./MarketDetailOutcome.js";
23
27
  export * from "./MarketDetailPricing.js";
24
28
  export * from "./MarketDetailPricingAvailability.js";
@@ -27,6 +31,11 @@ export * from "./MarketDetailPricingSource.js";
27
31
  export * from "./MarketDetailResponse.js";
28
32
  export * from "./MarketDetailResponseProvider.js";
29
33
  export * from "./MarketDetailResponseStatus.js";
34
+ export * from "./MarketDetailScheduledFeeChange.js";
35
+ export * from "./MarketDetailTradingFees.js";
36
+ export * from "./MarketDetailTradingFeesAvailability.js";
37
+ export * from "./MarketDetailTradingFeesChargeBasis.js";
38
+ export * from "./MarketDetailTradingFeesSource.js";
30
39
  export * from "./MarketsListResponse.js";
31
40
  export * from "./PaginationBlock.js";
32
41
  export * from "./PaymentRequiredErrorAction.js";
@@ -19,6 +19,10 @@ export * from "./EventResponsePlatform.js";
19
19
  export * from "./GetEventRequestPlatform.js";
20
20
  export * from "./GetMarketRequestPlatform.js";
21
21
  export * from "./MarketCategory.js";
22
+ export * from "./MarketDetailFeeLeg.js";
23
+ export * from "./MarketDetailFeeLegModel.js";
24
+ export * from "./MarketDetailFeeRounding.js";
25
+ export * from "./MarketDetailFeeRoundingDirection.js";
22
26
  export * from "./MarketDetailOutcome.js";
23
27
  export * from "./MarketDetailPricing.js";
24
28
  export * from "./MarketDetailPricingAvailability.js";
@@ -27,6 +31,11 @@ export * from "./MarketDetailPricingSource.js";
27
31
  export * from "./MarketDetailResponse.js";
28
32
  export * from "./MarketDetailResponseProvider.js";
29
33
  export * from "./MarketDetailResponseStatus.js";
34
+ export * from "./MarketDetailScheduledFeeChange.js";
35
+ export * from "./MarketDetailTradingFees.js";
36
+ export * from "./MarketDetailTradingFeesAvailability.js";
37
+ export * from "./MarketDetailTradingFeesChargeBasis.js";
38
+ export * from "./MarketDetailTradingFeesSource.js";
30
39
  export * from "./MarketsListResponse.js";
31
40
  export * from "./PaginationBlock.js";
32
41
  export * from "./PaymentRequiredErrorAction.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@predictorsdk/client",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "The official TypeScript/JavaScript client for the PredictorSDK matching markets API",
5
5
  "license": "MIT",
6
6
  "keywords": [