From 2d0be1a2684fcedb9ba1d6162987b073e420f202 Mon Sep 17 00:00:00 2001 From: LingX Date: Mon, 22 Jun 2026 22:23:33 -0400 Subject: [PATCH 1/4] fix(ts-sdk): export Polymarket_us alias --- sdks/typescript/index.ts | 5 +++-- sdks/typescript/pmxt/client.ts | 3 +++ sdks/typescript/tests/public-exports.test.ts | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/sdks/typescript/index.ts b/sdks/typescript/index.ts index b2858aca..c884f704 100644 --- a/sdks/typescript/index.ts +++ b/sdks/typescript/index.ts @@ -19,14 +19,14 @@ */ -import { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Mock } from "./pmxt/client.js"; +import { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Mock } from "./pmxt/client.js"; import { Router } from "./pmxt/router.js"; import { ServerManager } from "./pmxt/server-manager.js"; import { FeedClient } from "./pmxt/feed-client.js"; import * as models from "./pmxt/models.js"; import * as errors from "./pmxt/errors.js"; -export { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Mock, PolymarketOptions } from "./pmxt/client.js"; +export { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Mock, PolymarketOptions } from "./pmxt/client.js"; export { FeedClient } from "./pmxt/feed-client.js"; export type { Ticker, Tickers, OHLCV, Market as FeedMarket, OracleRound, FeedClientOptions } from "./pmxt/feed-client.js"; export { Router } from "./pmxt/router.js"; @@ -93,6 +93,7 @@ const pmxt = { Metaculus, Smarkets, PolymarketUS, + Polymarket_us, GeminiTitan, Hyperliquid, SuiBets, diff --git a/sdks/typescript/pmxt/client.ts b/sdks/typescript/pmxt/client.ts index 0c19edc9..ff78f8ba 100644 --- a/sdks/typescript/pmxt/client.ts +++ b/sdks/typescript/pmxt/client.ts @@ -3294,6 +3294,9 @@ export class PolymarketUS extends Exchange { } } +// Backwards-compatible snake_case alias matching the Python SDK export. +export const Polymarket_us = PolymarketUS; + /** * Gemini Titan exchange client. * diff --git a/sdks/typescript/tests/public-exports.test.ts b/sdks/typescript/tests/public-exports.test.ts index acc17a0f..7e5b15ad 100644 --- a/sdks/typescript/tests/public-exports.test.ts +++ b/sdks/typescript/tests/public-exports.test.ts @@ -16,4 +16,9 @@ describe('public exports', () => { const client = new pmxt.FeedClient('chainlink'); expect(client).toBeInstanceOf(DirectFeedClient); }); + + it('exports Polymarket_us as the PolymarketUS alias', () => { + expect(pmxt.Polymarket_us).toBe(pmxt.PolymarketUS); + expect(pmxt.default.Polymarket_us).toBe(pmxt.PolymarketUS); + }); }); From a6d4cc736cf67e3db35a69fe5e2b49117ad1c72b Mon Sep 17 00:00:00 2001 From: LingX Date: Mon, 22 Jun 2026 22:53:22 -0400 Subject: [PATCH 2/4] fix: expose Hunch across SDKs --- core/COMPLIANCE.md | 87 +++++++------------ core/api-doc-config.generated.json | 86 +++++++++--------- core/scripts/generate-compliance.js | 58 ++++++++++++- core/scripts/generate-openapi.js | 3 +- sdks/python/API_REFERENCE.md | 6 ++ sdks/python/pmxt/__init__.py | 3 +- sdks/python/pmxt/_exchanges.py | 37 ++++++++ .../python/scripts/generate-client-methods.js | 60 ++++++++++++- sdks/typescript/API_REFERENCE.md | 7 +- sdks/typescript/index.ts | 5 +- sdks/typescript/pmxt/client.ts | 31 +++++++ .../scripts/generate-client-methods.js | 65 +++++++++++++- sdks/typescript/tests/public-exports.test.ts | 15 ++++ 13 files changed, 351 insertions(+), 112 deletions(-) diff --git a/core/COMPLIANCE.md b/core/COMPLIANCE.md index 63f117fc..4b8c9cf9 100644 --- a/core/COMPLIANCE.md +++ b/core/COMPLIANCE.md @@ -8,69 +8,48 @@ This document details the feature support and compliance status for each exchang ## Functions Status -| Category | Function | Polymarket | Kalshi | Limitless | Probable | Baozi | Myriad | Opinion | Metaculus | -| :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| **Market Data** | `fetchMarkets` | Y | Y | Y | Y | Y | Y | Y | Y | -| | `fetchEvents` | Y | Y | Y | Y | Y | Y | Y | Y | -| | `fetchMarket` | Y | Y | Y | Y | Y | Y | Y | Y | -| | `fetchEvent` | Y | Y | Y | Y | Y | Y | Y | Y | -| **Public Data** | `fetchOHLCV` | Y | Y | Y | Y | Y | Y | Y | - | -| | `fetchOrderBook` | Y | Y | Y | Y | Y | Y | Y | - | -| | `fetchTrades` | Y | Y | Y | Y | Y | Y | - | - | -| **Private Data** | `fetchBalance` | Y | Y | Y | Y | Y | Y | - | - | -| | `fetchPositions` | Y | Y | Y | Y | Y | Y | Y | - | -| | `fetchMyTrades` | Y | Y | Y | Y | - | Y | Y | - | -| **Trading** | `createOrder` | Y | Y | Y | Y | Y | Y | Y | Y | -| | `cancelOrder` | Y | Y | Y | Y | Y | - | Y | Y | -| | `fetchOrder` | Y | Y | Y | Y | Y | - | Y | - | -| | `fetchOpenOrders` | Y | Y | Y | Y | Y | Y | Y | - | -| | `fetchClosedOrders` | - | Y | Y | - | - | - | Y | - | -| | `fetchAllOrders` | - | Y | Y | - | - | - | Y | - | -| **Calculations** | `getExecutionPrice` | Y | Y | Y | Y | Y | Y | Y | - | -| | `getExecutionPriceDetailed` | Y | Y | Y | Y | Y | Y | Y | - | -| **Real-time** | `watchOrderBook` | Y | Y | Y | Y | Y | Y | Y | - | -| | `watchTrades` | Y | Y | Y | - | - | Y | Y | - | +| Category | Function | Polymarket | Kalshi | Limitless | Probable | Baozi | Myriad | Opinion | Metaculus | Hunch | +| :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| **Market Data** | `fetchMarkets` | Y | Y | Y | Y | Y | Y | Y | Y | Y | +| | `fetchEvents` | Y | Y | Y | Y | Y | Y | Y | Y | Y | +| | `fetchMarket` | Y | Y | Y | Y | Y | Y | Y | Y | Y | +| | `fetchEvent` | Y | Y | Y | Y | Y | Y | Y | Y | Y | +| **Public Data** | `fetchOHLCV` | Y | Y | Y | Y | E | Y | Y | - | Y | +| | `fetchOrderBook` | Y | Y | Y | Y | E | E | Y | - | E | +| | `fetchTrades` | Y | Y | Y | Y | E | Y | - | - | Y | +| **Private Data** | `fetchBalance` | Y | Y | Y | Y | Y | E | - | - | Y | +| | `fetchPositions` | Y | Y | Y | Y | Y | Y | Y | - | Y | +| | `fetchMyTrades` | Y | Y | Y | Y | - | Y | Y | - | - | +| **Trading** | `createOrder` | Y | Y | Y | Y | Y | E | Y | Y | Y | +| | `cancelOrder` | Y | Y | Y | Y | - | - | Y | Y | - | +| | `fetchOrder` | Y | Y | - | Y | Y | - | Y | - | - | +| | `fetchOpenOrders` | Y | Y | Y | Y | E | E | Y | - | - | +| | `fetchClosedOrders` | - | Y | Y | - | - | - | Y | - | - | +| | `fetchAllOrders` | - | Y | Y | - | - | - | Y | - | - | +| **Calculations** | `getExecutionPrice` | Y | Y | Y | Y | Y | Y | Y | - | Y | +| | `getExecutionPriceDetailed` | Y | Y | Y | Y | Y | Y | Y | - | Y | +| **Real-time** | `watchOrderBook` | Y | Y | Y | Y | Y | E | Y | - | E | +| | `watchTrades` | Y | Y | Y | - | - | E | Y | - | E | ## Legend - **Y** - Supported +- **E** - Emulated or partially supported - **-** - Not supported -- **E** - Emulated (backed by a non-native mechanism) -> NOTE: the grid above is regenerated by `generate:compliance` from -> `core/src/exchanges/*/index.ts`. The Hunch column below is documented inline -> until the next regeneration picks it up. -## Hunch +## Hunch Notes -Hunch is a **parimutuel** prediction market on **Base** (USDC). Markets are -pool-based — there is no CLOB and no AMM curve; prices are *implied odds*. -Settlement is **x402 / EIP-3009 `transferWithAuthorization`** (the bettor's -wallet signs a USDC authorization; the relayer sponsors gas). Identity is -keyless — the wallet IS the account, so reads need no API key. +Hunch is a parimutuel prediction market on Base USDC. Markets are pool-based +rather than CLOB- or AMM-backed; prices are implied odds. Settlement uses +x402 / EIP-3009 transferWithAuthorization, where the bettor wallet signs a USDC +authorization and the relayer sponsors gas. -| Category | Function | Hunch | Notes | -| :--- | :--- | :---: | :--- | -| **Market Data** | `fetchMarkets` | Y | `GET /api/agent/v1/markets` | -| | `fetchEvents` | Y | No event tier — each market wrapped as a single-market event | -| | `fetchMarket` | Y | `GET /api/agent/v1/markets/{id}` | -| | `fetchEvent` | Y | Synthetic single-market event | -| **Public Data** | `fetchOHLCV` | Y | From research `oddsHistory` (flat candles) | -| | `fetchOrderBook` | E | Emulated: single level at the implied price, pool as depth | -| | `fetchTrades` | Y | research `oddsHistory` as the public tape | -| **Private Data** | `fetchBalance` | Y | `GET .../wallet/{address}/readiness` → USDC balance | -| | `fetchPositions` | Y | `GET /api/agent/v1/positions?wallet=` | -| | `fetchMyTrades` | - | Not exposed (use `fetchPositions` / proof) | -| **Trading** | `createOrder` | Y | Self-hosted Base **x402** money path; **market orders only** | -| | `cancelOrder` | - | Parimutuel pool — bets cannot be cancelled | -| | `fetchOrder` | - | Parimutuel — no resting orders | -| | `fetchOpenOrders` | Y | Always `[]` (no resting orders) | -| **Real-time** | `watchOrderBook` | E | Poll-based emulation | -| | `watchTrades` | E | Poll-based emulation | +Hunch `fetchOrderBook`, `watchOrderBook`, and `watchTrades` are emulated +from the research/order state. `createOrder` accepts only `side: 'buy'` and +`type: 'market'`; `outcomeId` uses `"{marketId}:{side}"`. Hunch positions +are pool entries, so `cancelOrder`, `fetchOrder`, `fetchClosedOrders`, and +`fetchAllOrders` are not supported. -`createOrder` accepts only `side: 'buy'` and `type: 'market'`; `outcomeId` -encodes the Hunch side as `"{marketId}:{side}"` where `side` is `yes`/`no` for -binary markets or the parimutuel bucket key for N-way ladder / date-window -markets. Bets above the $10 "simple tier" first fetch a price-locked quote. ## Compliance Policy - **Failure over Warning**: Tests must fail if no relevant data (markets, events, candles) is found. This ensures that we catch API breakages or unexpected empty responses. diff --git a/core/api-doc-config.generated.json b/core/api-doc-config.generated.json index a97b1945..0277ee7e 100644 --- a/core/api-doc-config.generated.json +++ b/core/api-doc-config.generated.json @@ -1,9 +1,9 @@ { - "_generated": "Auto-generated by extract-jsdoc.js on 2026-06-08T10:51:09.860Z. Do not edit manually.", + "_generated": "Auto-generated by extract-jsdoc.js on 2026-06-23T02:49:35.794Z. Do not edit manually.", "methods": { "has": { "summary": "HTTP verb for the endpoint (e.g. GET, POST). */", - "description": "method: string;\n /** URL path template, relative to the descriptor's baseUrl. */\n path: string;\n /** Whether this endpoint requires authenticated credentials. */\n isPrivate?: boolean;\n /** Identifier used to generate the implicit API method name. */\n operationId?: string;\n /**\nWhen set, requests use this base URL instead of the descriptor default\n(OpenAPI path- or operation-level `servers` override).\n/\n baseUrl?: string;\n}\n\nexport interface ApiDescriptor {\n /** Base URL that all endpoint paths are resolved against. */\n baseUrl: string;\n /** Map of endpoint key to endpoint definition used by the implicit API machinery. */\n endpoints: Record;\n}\n\nexport interface ImplicitApiMethodInfo {\n /** Generated method name exposed on the exchange instance. */\n name: string;\n /** HTTP verb for the underlying endpoint. */\n method: string;\n /** URL path template for the underlying endpoint. */\n path: string;\n /** Whether the underlying endpoint requires authenticated credentials. */\n isPrivate: boolean;\n}\n\nexport interface MarketFilterParams {\n /** Maximum number of results to return */\n limit?: number;\n /** Pagination offset — number of results to skip */\n offset?: number;\n /** Sort order for results */\n sort?: 'volume' | 'liquidity' | 'newest';\n status?: 'active' | 'inactive' | 'closed' | 'all'; // Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)\n searchIn?: 'title' | 'description' | 'both'; // Where to search (default: 'title')\n query?: string; // For keyword search\n slug?: string; // For slug/ticker lookup\n marketId?: string; // Direct lookup by market ID\n outcomeId?: string; // Reverse lookup -- find market containing this outcome\n eventId?: string; // Find markets belonging to an event\n page?: number; // For pagination (used by Limitless)\n similarityThreshold?: number; // For semantic search (used by Limitless)\n}\n\nexport interface MarketFetchParams extends MarketFilterParams {\n /** Optional client-side filter applied after fetching */\n filter?: MarketFilterCriteria;\n /** Filter by category. Each market belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Filter by tags. Returns markets matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Sports\" market might carry tags [\"Sports\", \"FIFA World Cup\", \"2026 FIFA World Cup\"]. Common tags include \"Crypto\", \"Politics\", \"Elections\", \"Geopolitics\", \"Fed Rates\", \"Trump\". */\n tags?: string[];\n}\n\nexport interface EventFetchParams {\n query?: string; // For keyword search\n /** Maximum number of results to return */\n limit?: number;\n /** Opaque venue pagination cursor, where supported. */\n cursor?: string;\n /** Pagination offset — number of results to skip */\n offset?: number;\n /** Sort order for results */\n sort?: 'volume' | 'liquidity' | 'newest';\n status?: 'active' | 'inactive' | 'closed' | 'all'; // Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)\n /** Where to search (default: 'title') */\n searchIn?: 'title' | 'description' | 'both';\n eventId?: string; // Direct lookup by event ID\n slug?: string; // Lookup by event slug\n /** Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch. */\n series?: string;\n /** Optional client-side filter applied after fetching */\n filter?: EventFilterCriteria;\n /** Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\". */\n tags?: string[];\n}\n\n/**\nParameters for `fetchSeries`. Venues that don't expose a series concept\nreturn an empty array regardless of the filters.\n/\nexport interface SeriesFetchParams {\n /** Direct lookup by venue-native series id (e.g. \"KXATPMATCH\" on Kalshi, \"atp\" or \"1\" on Polymarket Gamma). When set, the result is the matching series with its events populated where the venue supports it. */\n id?: string;\n /** Lookup by series slug (e.g. \"wta\", \"nfl\"). */\n slug?: string;\n /** Keyword search across series title / description. */\n query?: string;\n /** Filter by recurrence cadence ('daily', 'weekly', 'annual', ...). */\n recurrence?: string;\n /** Maximum number of results to return. */\n limit?: number;\n /** Pagination offset. */\n offset?: number;\n}\n\n/**\nDeprecated - use OHLCVParams or TradesParams instead. Resolution is optional for backward compatibility.\n/\nexport interface HistoryFilterParams {\n resolution?: CandleInterval; // Optional for backward compatibility\n /** Start of the time range */\n start?: Date;\n /** End of the time range */\n end?: Date;\n /** Maximum number of results to return */\n limit?: number;\n}\n\nexport interface OHLCVParams {\n resolution: CandleInterval; // Required for candle aggregation\n /** Start of the time range */\n start?: Date;\n /** End of the time range */\n end?: Date;\n /** Maximum number of results to return */\n limit?: number;\n}\n\n/**\nParameters for fetching trade history. No resolution parameter - trades are discrete events.\n/\n/** Maximum allowed value for `TradesParams.limit`. */\nexport const MAX_TRADES_LIMIT = 1000;\n\nexport interface TradesParams {\n // No resolution - trades are discrete events, not aggregated\n /** Start of the time range */\n start?: Date;\n /** End of the time range */\n end?: Date;\n /** Maximum number of results to return (max {@link MAX_TRADES_LIMIT}) */\n limit?: number;\n}\n\nexport interface MyTradesParams {\n outcomeId?: string; // filter to specific outcome/ticker\n marketId?: string; // filter to specific market\n /** Only return records after this date */\n since?: Date;\n /** Only return records before this date */\n until?: Date;\n /** Maximum number of results to return */\n limit?: number;\n cursor?: string; // for Kalshi cursor pagination\n}\n\nexport interface FetchOrderBookParams {\n /** Outcome side: 'yes' or 'no'. Required for exchanges like Limitless\n where the API returns a single orderbook per market. */\n side?: 'yes' | 'no';\n /** Outcome alias: 'yes' or 'no', or an outcome token ID. When set,\n the first argument is treated as a market ID and this value selects\n which outcome's order book to fetch. Accepts the literal strings\n 'yes'/'no' (resolved via a market lookup) or a raw outcome token ID. */\n outcome?: string;\n /** Unix timestamp (ms) — fetch a historical snapshot at or before this\n time, or the start of a range when combined with `until` (hosted API only). */\n since?: number;\n /** Unix timestamp (ms) — end of a historical range. When combined with\n `since`, returns an array of reconstructed L2 OrderBook snapshots\n between `since` and `until` (hosted API only). */\n until?: number;\n}\n\nexport interface OrderHistoryParams {\n marketId?: string; // required for Limitless (slug)\n /** Only return records after this date */\n since?: Date;\n /** Only return records before this date */\n until?: Date;\n /** Maximum number of results to return */\n limit?: number;\n /** Opaque pagination cursor from a previous response */\n cursor?: string;\n}\n\n// ----------------------------------------------------------------------------\n// Filtering Types\n// ----------------------------------------------------------------------------\n\nexport interface MarketFilterCriteria {\n // Text search\n text?: string;\n searchIn?: ('title' | 'description' | 'category' | 'tags' | 'outcomes')[]; // Default: ['title']\n\n // Numeric range filters\n volume24h?: { min?: number; max?: number };\n /** Filter by total (lifetime) volume range */\n volume?: { min?: number; max?: number };\n /** Filter by current liquidity range */\n liquidity?: { min?: number; max?: number };\n /** Filter by open interest range */\n openInterest?: { min?: number; max?: number };\n\n // Date filters\n resolutionDate?: {\n before?: Date;\n after?: Date;\n };\n\n // Category/tag filters\n /** Filter by category. Common values: \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Match markets that have ANY of these tags. Examples: [\"Crypto\", \"Crypto Prices\"], [\"Politics\", \"Elections\"], [\"Sports\", \"FIFA World Cup\"]. */\n tags?: string[];\n\n // Price filters (for binary markets)\n price?: {\n outcome: 'yes' | 'no' | 'up' | 'down';\n min?: number; // 0.0 to 1.0\n max?: number;\n };\n\n // Price change filters\n priceChange24h?: {\n outcome: 'yes' | 'no' | 'up' | 'down';\n min?: number; // e.g., -0.1 for 10% drop\n max?: number;\n };\n}\n\nexport type MarketFilterFunction = (market: UnifiedMarket) => boolean;\n\nexport interface EventFilterCriteria {\n // Text search\n text?: string;\n searchIn?: ('title' | 'description' | 'category' | 'tags')[]; // Default: ['title']\n\n // Category/tag filters\n /** Filter by category. Common values: \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Match events that have ANY of these tags. Examples: [\"Crypto\"], [\"Politics\", \"Geopolitics\", \"Middle East\"], [\"Sports\", \"FIFA World Cup\"]. */\n tags?: string[];\n\n // Filter by contained markets\n marketCount?: { min?: number; max?: number };\n totalVolume?: { min?: number; max?: number }; // Sum of market volumes\n}\n\nexport type EventFilterFunction = (event: UnifiedEvent) => boolean;\n\n// ----------------------------------------------------------------------------\n// Capability Map (ccxt-style exchange.has)\n// ----------------------------------------------------------------------------\n\nexport type ExchangeCapability = true | false | 'emulated';\n\nexport interface ExchangeHas {\n /** Whether this exchange supports fetching markets. */\n fetchMarkets: ExchangeCapability;\n /** Whether this exchange supports fetching events. */\n fetchEvents: ExchangeCapability;\n /** Whether this exchange exposes a recurring-series concept (Series -> Event -> Market -> Outcome). Venues without one return `false` and an empty array from `fetchSeries`. */\n fetchSeries: ExchangeCapability;\n /** Whether this exchange supports fetching OHLCV candles. */\n fetchOHLCV: ExchangeCapability;\n /** Whether this exchange supports fetching the order book. */\n fetchOrderBook: ExchangeCapability;\n /** Whether this exchange supports fetching multiple market order books. */\n fetchOrderBooks: ExchangeCapability;\n /** Whether this exchange supports fetching public trades. */\n fetchTrades: ExchangeCapability;\n /** Whether this exchange supports creating orders. */\n createOrder: ExchangeCapability;\n /** Whether this exchange supports cancelling orders. */\n cancelOrder: ExchangeCapability;\n /** Whether this exchange supports fetching a single order by id. */\n fetchOrder: ExchangeCapability;\n /** Whether this exchange supports fetching open orders. */\n fetchOpenOrders: ExchangeCapability;\n /** Whether this exchange supports fetching account positions. */\n fetchPositions: ExchangeCapability;\n /** Whether this exchange supports fetching account balances. */\n fetchBalance: ExchangeCapability;\n /** Whether this exchange supports subscribing to an on-chain address for updates. */\n watchAddress: ExchangeCapability;\n /** Whether this exchange supports unsubscribing from a watched address. */\n unwatchAddress: ExchangeCapability;\n /** Whether this exchange supports streaming order book updates. */\n watchOrderBook: ExchangeCapability;\n /** Whether this exchange supports batch-subscribing to multiple order book streams. */\n watchOrderBooks: ExchangeCapability;\n /** Whether this exchange supports unsubscribing from an order book stream. */\n unwatchOrderBook: ExchangeCapability;\n /** Whether this exchange supports streaming trade updates. */\n watchTrades: ExchangeCapability;\n /** Whether this exchange supports fetching the authenticated user's trade history. */\n fetchMyTrades: ExchangeCapability;\n /** Whether this exchange supports fetching closed orders. */\n fetchClosedOrders: ExchangeCapability;\n /** Whether this exchange supports fetching all orders (open and closed). */\n fetchAllOrders: ExchangeCapability;\n /** Whether this exchange supports building a signed order without submitting it. */\n buildOrder: ExchangeCapability;\n /** Whether this exchange supports submitting a pre-built order. */\n submitOrder: ExchangeCapability;\n /** Whether this exchange supports fetching cross-venue market matches. */\n fetchMarketMatches: ExchangeCapability;\n /** @deprecated Use {@link fetchMarketMatches} instead. */\n fetchMatches: ExchangeCapability;\n /** Whether this exchange supports fetching cross-venue event matches. */\n fetchEventMatches: ExchangeCapability;\n /** Whether this exchange supports comparing prices across venues. */\n compareMarketPrices: ExchangeCapability;\n /** Whether this exchange supports finding related markets across venues. */\n fetchRelatedMarkets: ExchangeCapability;\n /** Whether this exchange supports fetching matched markets across venues. */\n fetchMatchedMarkets: ExchangeCapability;\n /** @deprecated Use {@link fetchMatchedMarkets} instead. */\n fetchMatchedPrices: ExchangeCapability;\n /** @deprecated Use {@link fetchRelatedMarkets} instead. */\n fetchHedges: ExchangeCapability;\n /** @deprecated Use {@link fetchMatchedMarkets} instead. */\n fetchArbitrage: ExchangeCapability;\n}\n\n/**\nOptional authentication credentials for exchange operations.\n/\nexport interface ExchangeCredentials {\n // Standard API authentication (Kalshi, etc.)\n apiKey?: string;\n /** Standard API secret for HMAC-authenticated exchanges */\n apiSecret?: string;\n /** Standard API passphrase for HMAC-authenticated exchanges */\n passphrase?: string;\n /** Metaculus: `Authorization: Token ` for higher rate limits */\n apiToken?: string;\n\n // Blockchain-based authentication (Polymarket)\n privateKey?: string; // Required for Polymarket L1 auth\n\n // Polymarket-specific L2 fields\n signatureType?: number | string; // 0 = EOA, 1 = Poly Proxy, 2 = Gnosis Safe (Can also use 'eoa', 'polyproxy', 'gnosis_safe')\n funderAddress?: string; // The address funding the trades (defaults to signer address)\n\n // Limitless: wallet address for delegated signing profile lookup\n walletAddress?: string;\n\n // Optional base URL override for venue API (e.g., proxy for geo-restricted venues)\n baseUrl?: string;\n}\n\nexport interface ExchangeOptions {\n /**\nHow long (ms) a market snapshot created by `fetchMarketsPaginated` remains valid\nbefore being discarded and re-fetched from the API on the next call.\nDefaults to 0 (no TTL — the snapshot is re-fetched on every initial call).\n/\n snapshotTTL?: number;\n}\n\n/** Shape returned by fetchMarketsPaginated */\nexport interface PaginatedMarketsResult {\n /** The page of unified markets */\n data: UnifiedMarket[];\n /** Total number of markets in the snapshot */\n total: number;\n /** Cursor to pass to the next call, or undefined if this is the last page */\n nextCursor?: string;\n}\n\n/** Shape returned by fetchEventsPaginated */\nexport interface PaginatedEventsResult {\n /** The page of unified events */\n data: UnifiedEvent[];\n /** Total number of events in the snapshot */\n total: number;\n /** Cursor to pass to the next call, or undefined if this is the last page */\n nextCursor?: string;\n}\n\n// ----------------------------------------------------------------------------\n// Base Exchange Class\n// ----------------------------------------------------------------------------\n\nexport abstract class PredictionMarketExchange {\n [key: string]: any; // Allow dynamic method assignment for implicit API\n\n public verbose: boolean = false;\n public http: AxiosInstance;\n public enableRateLimit: boolean = true;\n // Market Cache\n public markets: Record = {};\n public marketsBySlug: Record = {};\n public loadedMarkets: boolean = false;\n /**\nCapability map derived automatically from method overrides at runtime.\nExchanges do NOT need to declare this manually -- if a subclass overrides\na method (and the override does not throw \"not supported\"), it is `true`.\nTo mark a capability as `'emulated'`, add its key to `emulatedCapabilities`.", + "description": "method: string;\n /** URL path template, relative to the descriptor's baseUrl. */\n path: string;\n /** Whether this endpoint requires authenticated credentials. */\n isPrivate?: boolean;\n /** Identifier used to generate the implicit API method name. */\n operationId?: string;\n /**\nWhen set, requests use this base URL instead of the descriptor default\n(OpenAPI path- or operation-level `servers` override).\n/\n baseUrl?: string;\n}\n\nexport interface ApiDescriptor {\n /** Base URL that all endpoint paths are resolved against. */\n baseUrl: string;\n /** Map of endpoint key to endpoint definition used by the implicit API machinery. */\n endpoints: Record;\n}\n\nexport interface ImplicitApiMethodInfo {\n /** Generated method name exposed on the exchange instance. */\n name: string;\n /** HTTP verb for the underlying endpoint. */\n method: string;\n /** URL path template for the underlying endpoint. */\n path: string;\n /** Whether the underlying endpoint requires authenticated credentials. */\n isPrivate: boolean;\n}\n\nexport interface MarketFilterParams {\n /** Maximum number of results to return */\n limit?: number;\n /** Pagination offset — number of results to skip */\n offset?: number;\n /** Sort order for results */\n sort?: 'volume' | 'liquidity' | 'newest';\n status?: 'active' | 'inactive' | 'closed' | 'all'; // Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)\n searchIn?: 'title' | 'description' | 'both'; // Where to search (default: 'title')\n query?: string; // For keyword search\n slug?: string; // For slug/ticker lookup\n marketId?: string; // Direct lookup by market ID\n outcomeId?: string; // Reverse lookup -- find market containing this outcome\n eventId?: string; // Find markets belonging to an event\n page?: number; // For pagination (used by Limitless)\n similarityThreshold?: number; // For semantic search (used by Limitless)\n /** Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias. */\n sourceExchange?: string;\n /** Alias for `sourceExchange`. */\n exchange?: string;\n}\n\nexport interface MarketFetchParams extends MarketFilterParams {\n /** Optional client-side filter applied after fetching */\n filter?: MarketFilterCriteria;\n /** Filter by category. Each market belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Filter by tags. Returns markets matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Sports\" market might carry tags [\"Sports\", \"FIFA World Cup\", \"2026 FIFA World Cup\"]. Common tags include \"Crypto\", \"Politics\", \"Elections\", \"Geopolitics\", \"Fed Rates\", \"Trump\". */\n tags?: string[];\n}\n\nexport interface EventFetchParams {\n query?: string; // For keyword search\n /** Maximum number of results to return */\n limit?: number;\n /** Opaque venue pagination cursor, where supported. */\n cursor?: string;\n /** Pagination offset — number of results to skip */\n offset?: number;\n /** Sort order for results */\n sort?: 'volume' | 'liquidity' | 'newest';\n status?: 'active' | 'inactive' | 'closed' | 'all'; // Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)\n /** Where to search (default: 'title') */\n searchIn?: 'title' | 'description' | 'both';\n eventId?: string; // Direct lookup by event ID\n slug?: string; // Lookup by event slug\n /** Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch. */\n series?: string;\n /** Optional client-side filter applied after fetching */\n filter?: EventFilterCriteria;\n /** Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\". */\n tags?: string[];\n /** Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias. */\n sourceExchange?: string;\n /** Alias for `sourceExchange`. */\n exchange?: string;\n}\n\n/**\nParameters for `fetchSeries`. Venues that don't expose a series concept\nreturn an empty array regardless of the filters.\n/\nexport interface SeriesFetchParams {\n /** Direct lookup by venue-native series id (e.g. \"KXATPMATCH\" on Kalshi, \"atp\" or \"1\" on Polymarket Gamma). When set, the result is the matching series with its events populated where the venue supports it. */\n id?: string;\n /** Lookup by series slug (e.g. \"wta\", \"nfl\"). */\n slug?: string;\n /** Keyword search across series title / description. */\n query?: string;\n /** Filter by recurrence cadence ('daily', 'weekly', 'annual', ...). */\n recurrence?: string;\n /** Maximum number of results to return. */\n limit?: number;\n /** Pagination offset. */\n offset?: number;\n}\n\n/**\nDeprecated - use OHLCVParams or TradesParams instead. Resolution is optional for backward compatibility.\n/\nexport interface HistoryFilterParams {\n resolution?: CandleInterval; // Optional for backward compatibility\n /** Start of the time range */\n start?: Date;\n /** End of the time range */\n end?: Date;\n /** Maximum number of results to return */\n limit?: number;\n}\n\nexport interface OHLCVParams {\n resolution: CandleInterval; // Required for candle aggregation\n /** Start of the time range */\n start?: Date;\n /** End of the time range */\n end?: Date;\n /** Maximum number of results to return */\n limit?: number;\n}\n\n/**\nParameters for fetching trade history. No resolution parameter - trades are discrete events.\n/\n/** Maximum allowed value for `TradesParams.limit`. */\nexport const MAX_TRADES_LIMIT = 1000;\n\nexport interface TradesParams {\n // No resolution - trades are discrete events, not aggregated\n /** Start of the time range */\n start?: Date;\n /** End of the time range */\n end?: Date;\n /** Maximum number of results to return (max {@link MAX_TRADES_LIMIT}) */\n limit?: number;\n}\n\nexport interface MyTradesParams {\n outcomeId?: string; // filter to specific outcome/ticker\n marketId?: string; // filter to specific market\n /** Only return records after this date */\n since?: Date;\n /** Only return records before this date */\n until?: Date;\n /** Maximum number of results to return */\n limit?: number;\n cursor?: string; // for Kalshi cursor pagination\n}\n\nexport interface FetchOrderBookParams {\n /** Outcome side: 'yes' or 'no'. Required for exchanges like Limitless\n where the API returns a single orderbook per market. */\n side?: 'yes' | 'no';\n /** Outcome alias: 'yes' or 'no', or an outcome token ID. When set,\n the first argument is treated as a market ID and this value selects\n which outcome's order book to fetch. Accepts the literal strings\n 'yes'/'no' (resolved via a market lookup) or a raw outcome token ID. */\n outcome?: string;\n /** Unix timestamp (ms) — fetch a historical snapshot at or before this\n time, or the start of a range when combined with `until` (hosted API only). */\n since?: number;\n /** Unix timestamp (ms) — end of a historical range. When combined with\n `since`, returns an array of reconstructed L2 OrderBook snapshots\n between `since` and `until` (hosted API only). */\n until?: number;\n}\n\nexport interface OrderHistoryParams {\n marketId?: string; // required for Limitless (slug)\n /** Only return records after this date */\n since?: Date;\n /** Only return records before this date */\n until?: Date;\n /** Maximum number of results to return */\n limit?: number;\n /** Opaque pagination cursor from a previous response */\n cursor?: string;\n}\n\n// ----------------------------------------------------------------------------\n// Filtering Types\n// ----------------------------------------------------------------------------\n\nexport interface MarketFilterCriteria {\n // Text search\n text?: string;\n searchIn?: ('title' | 'description' | 'category' | 'tags' | 'outcomes')[]; // Default: ['title']\n\n // Numeric range filters\n volume24h?: { min?: number; max?: number };\n /** Filter by total (lifetime) volume range */\n volume?: { min?: number; max?: number };\n /** Filter by current liquidity range */\n liquidity?: { min?: number; max?: number };\n /** Filter by open interest range */\n openInterest?: { min?: number; max?: number };\n\n // Date filters\n resolutionDate?: {\n before?: Date;\n after?: Date;\n };\n\n // Category/tag filters\n /** Filter by category. Common values: \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Match markets that have ANY of these tags. Examples: [\"Crypto\", \"Crypto Prices\"], [\"Politics\", \"Elections\"], [\"Sports\", \"FIFA World Cup\"]. */\n tags?: string[];\n\n // Price filters (for binary markets)\n price?: {\n outcome: 'yes' | 'no' | 'up' | 'down';\n min?: number; // 0.0 to 1.0\n max?: number;\n };\n\n // Price change filters\n priceChange24h?: {\n outcome: 'yes' | 'no' | 'up' | 'down';\n min?: number; // e.g., -0.1 for 10% drop\n max?: number;\n };\n}\n\nexport type MarketFilterFunction = (market: UnifiedMarket) => boolean;\n\nexport interface EventFilterCriteria {\n // Text search\n text?: string;\n searchIn?: ('title' | 'description' | 'category' | 'tags')[]; // Default: ['title']\n\n // Category/tag filters\n /** Filter by category. Common values: \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi). */\n category?: string;\n /** Match events that have ANY of these tags. Examples: [\"Crypto\"], [\"Politics\", \"Geopolitics\", \"Middle East\"], [\"Sports\", \"FIFA World Cup\"]. */\n tags?: string[];\n\n // Filter by contained markets\n marketCount?: { min?: number; max?: number };\n totalVolume?: { min?: number; max?: number }; // Sum of market volumes\n}\n\nexport type EventFilterFunction = (event: UnifiedEvent) => boolean;\n\n// ----------------------------------------------------------------------------\n// Capability Map (ccxt-style exchange.has)\n// ----------------------------------------------------------------------------\n\nexport type ExchangeCapability = true | false | 'emulated';\n\nexport interface ExchangeHas {\n /** Whether this exchange supports fetching markets. */\n fetchMarkets: ExchangeCapability;\n /** Whether this exchange supports fetching events. */\n fetchEvents: ExchangeCapability;\n /** Whether this exchange exposes a recurring-series concept (Series -> Event -> Market -> Outcome). Venues without one return `false` and an empty array from `fetchSeries`. */\n fetchSeries: ExchangeCapability;\n /** Whether this exchange supports fetching OHLCV candles. */\n fetchOHLCV: ExchangeCapability;\n /** Whether this exchange supports fetching the order book. */\n fetchOrderBook: ExchangeCapability;\n /** Whether this exchange supports fetching multiple market order books. */\n fetchOrderBooks: ExchangeCapability;\n /** Whether this exchange supports fetching public trades. */\n fetchTrades: ExchangeCapability;\n /** Whether this exchange supports creating orders. */\n createOrder: ExchangeCapability;\n /** Whether this exchange supports cancelling orders. */\n cancelOrder: ExchangeCapability;\n /** Whether this exchange supports fetching a single order by id. */\n fetchOrder: ExchangeCapability;\n /** Whether this exchange supports fetching open orders. */\n fetchOpenOrders: ExchangeCapability;\n /** Whether this exchange supports fetching account positions. */\n fetchPositions: ExchangeCapability;\n /** Whether this exchange supports fetching account balances. */\n fetchBalance: ExchangeCapability;\n /** Whether this exchange supports subscribing to an on-chain address for updates. */\n watchAddress: ExchangeCapability;\n /** Whether this exchange supports unsubscribing from a watched address. */\n unwatchAddress: ExchangeCapability;\n /** Whether this exchange supports streaming order book updates. */\n watchOrderBook: ExchangeCapability;\n /** Whether this exchange supports batch-subscribing to multiple order book streams. */\n watchOrderBooks: ExchangeCapability;\n /** Whether this exchange supports unsubscribing from an order book stream. */\n unwatchOrderBook: ExchangeCapability;\n /** Whether this exchange supports streaming trade updates. */\n watchTrades: ExchangeCapability;\n /** Whether this exchange supports fetching the authenticated user's trade history. */\n fetchMyTrades: ExchangeCapability;\n /** Whether this exchange supports fetching closed orders. */\n fetchClosedOrders: ExchangeCapability;\n /** Whether this exchange supports fetching all orders (open and closed). */\n fetchAllOrders: ExchangeCapability;\n /** Whether this exchange supports building a signed order without submitting it. */\n buildOrder: ExchangeCapability;\n /** Whether this exchange supports submitting a pre-built order. */\n submitOrder: ExchangeCapability;\n /** Whether this exchange supports fetching cross-venue market matches. */\n fetchMarketMatches: ExchangeCapability;\n /** @deprecated Use {@link fetchMarketMatches} instead. */\n fetchMatches: ExchangeCapability;\n /** Whether this exchange supports fetching cross-venue event matches. */\n fetchEventMatches: ExchangeCapability;\n /** Whether this exchange supports comparing prices across venues. */\n compareMarketPrices: ExchangeCapability;\n /** Whether this exchange supports finding related markets across venues. */\n fetchRelatedMarkets: ExchangeCapability;\n /** Whether this exchange supports fetching matched markets across venues. */\n fetchMatchedMarkets: ExchangeCapability;\n /** @deprecated Use {@link fetchMatchedMarkets} instead. */\n fetchMatchedPrices: ExchangeCapability;\n /** @deprecated Use {@link fetchRelatedMarkets} instead. */\n fetchHedges: ExchangeCapability;\n /** @deprecated Use {@link fetchMatchedMarkets} instead. */\n fetchArbitrage: ExchangeCapability;\n}\n\n/**\nOptional authentication credentials for exchange operations.\n/\nexport interface ExchangeCredentials {\n // Standard API authentication (Kalshi, etc.)\n apiKey?: string;\n /** Standard API secret for HMAC-authenticated exchanges */\n apiSecret?: string;\n /** Standard API passphrase for HMAC-authenticated exchanges */\n passphrase?: string;\n /** Metaculus: `Authorization: Token ` for higher rate limits */\n apiToken?: string;\n\n // Blockchain-based authentication (Polymarket)\n privateKey?: string; // Required for Polymarket L1 auth\n\n // Polymarket-specific L2 fields\n signatureType?: number | string; // 0 = EOA, 1 = Poly Proxy, 2 = Gnosis Safe (Can also use 'eoa', 'polyproxy', 'gnosis_safe')\n funderAddress?: string; // The address funding the trades (defaults to signer address)\n\n // Limitless: wallet address for delegated signing profile lookup\n walletAddress?: string;\n\n // Optional base URL override for venue API (e.g., proxy for geo-restricted venues)\n baseUrl?: string;\n}\n\nexport interface ExchangeOptions {\n /**\nHow long (ms) a market snapshot created by `fetchMarketsPaginated` remains valid\nbefore being discarded and re-fetched from the API on the next call.\nDefaults to 0 (no TTL — the snapshot is re-fetched on every initial call).\n/\n snapshotTTL?: number;\n}\n\n/** Shape returned by fetchMarketsPaginated */\nexport interface PaginatedMarketsResult {\n /** The page of unified markets */\n data: UnifiedMarket[];\n /** Total number of markets in the snapshot */\n total: number;\n /** Cursor to pass to the next call, or undefined if this is the last page */\n nextCursor?: string;\n}\n\n/** Shape returned by fetchEventsPaginated */\nexport interface PaginatedEventsResult {\n /** The page of unified events */\n data: UnifiedEvent[];\n /** Total number of events in the snapshot */\n total: number;\n /** Cursor to pass to the next call, or undefined if this is the last page */\n nextCursor?: string;\n}\n\n// ----------------------------------------------------------------------------\n// Base Exchange Class\n// ----------------------------------------------------------------------------\n\nexport abstract class PredictionMarketExchange {\n [key: string]: any; // Allow dynamic method assignment for implicit API\n\n public verbose: boolean = false;\n public http: AxiosInstance;\n public enableRateLimit: boolean = true;\n // Market Cache\n public markets: Record = {};\n public marketsBySlug: Record = {};\n public loadedMarkets: boolean = false;\n /**\nCapability map derived automatically from method overrides at runtime.\nExchanges do NOT need to declare this manually -- if a subclass overrides\na method (and the override does not throw \"not supported\"), it is `true`.\nTo mark a capability as `'emulated'`, add its key to `emulatedCapabilities`.", "params": [], "returns": { "type": "ExchangeHas", @@ -19,7 +19,7 @@ "type": "ImplicitApiMethodInfo[]", "description": "Result" }, - "source": "BaseExchange.ts:451" + "source": "BaseExchange.ts:459" }, "loadMarkets": { "summary": "Load and cache all markets from the exchange into `this.markets` and `this.marketsBySlug`.", @@ -36,7 +36,7 @@ "type": "Record", "description": "Dictionary of markets indexed by marketId" }, - "source": "BaseExchange.ts:564" + "source": "BaseExchange.ts:572" }, "fetchMarkets": { "summary": "Fetch markets with optional filtering, search, or slug lookup.", @@ -83,7 +83,7 @@ "ordering — exchanges may reorder or add markets between requests. For stable iteration\nacross pages, use `loadMarkets()` and paginate over `Object.values(exchange.markets)`.", "Some exchanges (like Limitless) may only support status 'active' for search results." ], - "source": "BaseExchange.ts:601" + "source": "BaseExchange.ts:609" }, "fetchMarketsPaginated": { "summary": "Fetch markets with cursor-based pagination backed by a stable in-memory snapshot.", @@ -110,7 +110,7 @@ "type": "PaginatedMarketsResult", "description": "PaginatedMarketsResult with data, total, and optional nextCursor" }, - "source": "BaseExchange.ts:650" + "source": "BaseExchange.ts:658" }, "fetchEventsPaginated": { "summary": "Paginated variant of {@link fetchEvents}.", @@ -137,7 +137,7 @@ "type": "PaginatedEventsResult", "description": "PaginatedEventsResult with data, total, and optional nextCursor" }, - "source": "BaseExchange.ts:719" + "source": "BaseExchange.ts:727" }, "fetchEvents": { "summary": "Fetch events with optional keyword search.", @@ -175,7 +175,7 @@ "notes": [ "Some exchanges (like Limitless) may only support status 'active' for search results." ], - "source": "BaseExchange.ts:788" + "source": "BaseExchange.ts:796" }, "fetchSeries": { "summary": "Fetch the recurring series (fourth tier above Event -> Market -> Outcome)", @@ -192,7 +192,7 @@ "type": "UnifiedSeries[]", "description": "Array of unified series. Always an array, including the singular-lookup case." }, - "source": "BaseExchange.ts:823" + "source": "BaseExchange.ts:831" }, "fetchMarket": { "summary": "Fetch a single market by lookup parameters.", @@ -209,7 +209,7 @@ "type": "UnifiedMarket", "description": "A single unified market" }, - "source": "BaseExchange.ts:841" + "source": "BaseExchange.ts:849" }, "fetchEvent": { "summary": "Fetch a single event by lookup parameters.", @@ -226,7 +226,7 @@ "type": "UnifiedEvent", "description": "A single unified event" }, - "source": "BaseExchange.ts:941" + "source": "BaseExchange.ts:949" }, "fetchOHLCV": { "summary": "Fetch historical OHLCV (candlestick) price data for a specific market outcome.", @@ -254,7 +254,7 @@ "Polymarket: outcomeId is the CLOB Token ID. Kalshi: outcomeId is the Market Ticker.", "Common resolutions: '1m' | '5m' | '15m' | '1h' | '6h' | '1d'. Arbitrary intervals (e.g. '30s', '120s', '3h') accepted by venues that support them." ], - "source": "BaseExchange.ts:958" + "source": "BaseExchange.ts:966" }, "fetchOrderBook": { "summary": "Fetch the order book (bids/asks) for a specific outcome.", @@ -283,7 +283,7 @@ "type": "OrderBook", "description": "Order book with bids and asks. Returns OrderBook[] when" }, - "source": "BaseExchange.ts:973" + "source": "BaseExchange.ts:981" }, "fetchOrderBooks": { "summary": "Batch variant of {@link fetchOrderBook}. Fetches order books for", @@ -300,7 +300,7 @@ "type": "Record", "description": "A map keyed by the input id (preserving the caller's exact" }, - "source": "BaseExchange.ts:1001" + "source": "BaseExchange.ts:1009" }, "fetchTrades": { "summary": "Fetch raw trade history for a specific outcome.", @@ -326,7 +326,7 @@ "notes": [ "Polymarket requires an API key for trade history. Use fetchOHLCV for public historical data." ], - "source": "BaseExchange.ts:1014" + "source": "BaseExchange.ts:1022" }, "createOrder": { "summary": "Place a new order on the exchange.", @@ -343,7 +343,7 @@ "type": "Order", "description": "The created order" }, - "source": "BaseExchange.ts:1031" + "source": "BaseExchange.ts:1039" }, "buildOrder": { "summary": "Build an order payload without submitting it to the exchange.", @@ -360,7 +360,7 @@ "type": "BuiltOrder", "description": "A BuiltOrder containing the exchange-native payload" }, - "source": "BaseExchange.ts:1045" + "source": "BaseExchange.ts:1053" }, "submitOrder": { "summary": "Submit a pre-built order returned by buildOrder().", @@ -377,7 +377,7 @@ "type": "Order", "description": "The submitted order" }, - "source": "BaseExchange.ts:1057" + "source": "BaseExchange.ts:1065" }, "cancelOrder": { "summary": "Cancel an existing open order.", @@ -394,7 +394,7 @@ "type": "Order", "description": "The cancelled order" }, - "source": "BaseExchange.ts:1067" + "source": "BaseExchange.ts:1075" }, "fetchOrder": { "summary": "Fetch a specific order by ID.", @@ -411,7 +411,7 @@ "type": "Order", "description": "The order details" }, - "source": "BaseExchange.ts:1077" + "source": "BaseExchange.ts:1085" }, "fetchOpenOrders": { "summary": "Fetch all open orders, optionally filtered by market.", @@ -428,7 +428,7 @@ "type": "Order[]", "description": "Array of open orders" }, - "source": "BaseExchange.ts:1087" + "source": "BaseExchange.ts:1095" }, "fetchPositions": { "summary": "Fetch current user positions across all markets.", @@ -445,7 +445,7 @@ "type": "Position[]", "description": "Array of user positions" }, - "source": "BaseExchange.ts:1109" + "source": "BaseExchange.ts:1117" }, "fetchBalance": { "summary": "Fetch account balances.", @@ -462,7 +462,7 @@ "type": "Balance[]", "description": "Array of account balances" }, - "source": "BaseExchange.ts:1119" + "source": "BaseExchange.ts:1127" }, "getExecutionPrice": { "summary": "Calculate the volume-weighted average execution price for a given order size.", @@ -491,7 +491,7 @@ "type": "number", "description": "Average execution price, or 0 if insufficient liquidity" }, - "source": "BaseExchange.ts:1129" + "source": "BaseExchange.ts:1137" }, "getExecutionPriceDetailed": { "summary": "Calculate detailed execution price information including partial fill data.", @@ -520,7 +520,7 @@ "type": "ExecutionPriceResult", "description": "Detailed execution result with price, filled amount, and fill status" }, - "source": "BaseExchange.ts:1142" + "source": "BaseExchange.ts:1150" }, "filterMarkets": { "summary": "Filter a list of markets by criteria.", @@ -543,7 +543,7 @@ "type": "UnifiedMarket[]", "description": "Filtered array of markets" }, - "source": "BaseExchange.ts:1158" + "source": "BaseExchange.ts:1166" }, "filterEvents": { "summary": "Filter a list of events by criteria.", @@ -566,7 +566,7 @@ "type": "UnifiedEvent[]", "description": "Filtered array of events" }, - "source": "BaseExchange.ts:1318" + "source": "BaseExchange.ts:1326" }, "watchOrderBook": { "summary": "Watch order book updates in real-time via WebSocket.", @@ -595,7 +595,7 @@ "type": "OrderBook", "description": "Promise that resolves with the current orderbook state" }, - "source": "BaseExchange.ts:1414" + "source": "BaseExchange.ts:1422" }, "watchOrderBooks": { "summary": "Watch multiple order books simultaneously via WebSocket.", @@ -624,7 +624,7 @@ "type": "Record", "description": "Promise that resolves with order books keyed by ID" }, - "source": "BaseExchange.ts:1427" + "source": "BaseExchange.ts:1435" }, "unwatchOrderBook": { "summary": "Unsubscribe from a previously watched order book stream.", @@ -641,7 +641,7 @@ "type": "void", "description": "Result" }, - "source": "BaseExchange.ts:1455" + "source": "BaseExchange.ts:1463" }, "watchTrades": { "summary": "Watch trade executions in real-time via WebSocket.", @@ -676,7 +676,7 @@ "type": "Trade[]", "description": "Promise that resolves with recent trades" }, - "source": "BaseExchange.ts:1468" + "source": "BaseExchange.ts:1476" }, "watchAddress": { "summary": "Stream activity for a public wallet address", @@ -699,7 +699,7 @@ "type": "SubscribedAddressSnapshot", "description": "Promise that resolves with the latest SubscribedAddressSnapshot snapshot" }, - "source": "BaseExchange.ts:1482" + "source": "BaseExchange.ts:1490" }, "unwatchAddress": { "summary": "Stop watching a previously registered wallet address and release its resource updates.", @@ -716,7 +716,7 @@ "type": "void", "description": "Result" }, - "source": "BaseExchange.ts:1495" + "source": "BaseExchange.ts:1503" }, "close": { "summary": "Close all WebSocket connections and clean up resources.", @@ -726,7 +726,7 @@ "type": "void", "description": "Result" }, - "source": "BaseExchange.ts:1504" + "source": "BaseExchange.ts:1512" }, "fetchMarketMatches": { "summary": "Find the same or related market on other venues. Two modes:", @@ -743,7 +743,7 @@ "type": "MatchResult[]", "description": "Array of matched markets with relation and confidence" }, - "source": "BaseExchange.ts:1518" + "source": "BaseExchange.ts:1526" }, "fetchMatches": { "summary": "fetchMatches", @@ -760,7 +760,7 @@ "type": "MatchResult[]", "description": "Result" }, - "source": "BaseExchange.ts:1534" + "source": "BaseExchange.ts:1542" }, "fetchEventMatches": { "summary": "Find the same or related event on other venues. Two modes:", @@ -777,7 +777,7 @@ "type": "EventMatchResult[]", "description": "Array of matched events with market-level match details" }, - "source": "BaseExchange.ts:1542" + "source": "BaseExchange.ts:1550" }, "compareMarketPrices": { "summary": "Compare live prices for the same market across venues. Finds identity matches and returns side-by-side best bid/ask prices so you can spot price differences at a glance.", @@ -794,7 +794,7 @@ "type": "PriceComparison[]", "description": "Array of price comparisons across venues" }, - "source": "BaseExchange.ts:1558" + "source": "BaseExchange.ts:1566" }, "fetchRelatedMarkets": { "summary": "Find related markets across venues. Discovers subset/superset market relationships", @@ -811,7 +811,7 @@ "type": "PriceComparison[]", "description": "Array of subset/superset matches with live prices" }, - "source": "BaseExchange.ts:1568" + "source": "BaseExchange.ts:1576" }, "fetchMatchedMarkets": { "summary": "fetchMatchedMarkets", @@ -828,7 +828,7 @@ "type": "MatchedMarketPair[]", "description": "Result" }, - "source": "BaseExchange.ts:1579" + "source": "BaseExchange.ts:1587" }, "fetchMatchedPrices": { "summary": "fetchMatchedPrices", @@ -845,7 +845,7 @@ "type": "MatchedPricePair[]", "description": "Array of matched market pairs with prices from each venue" }, - "source": "BaseExchange.ts:1587" + "source": "BaseExchange.ts:1595" }, "fetchHedges": { "summary": "fetchHedges", @@ -862,7 +862,7 @@ "type": "PriceComparison[]", "description": "Array of subset/superset matches with live prices" }, - "source": "BaseExchange.ts:1598" + "source": "BaseExchange.ts:1606" }, "fetchArbitrage": { "summary": "fetchArbitrage", @@ -879,7 +879,7 @@ "type": "ArbitrageOpportunity[]", "description": "Array of arbitrage opportunities sorted by spread" }, - "source": "BaseExchange.ts:1608" + "source": "BaseExchange.ts:1616" }, "watchPrices": { "summary": "Watch AMM price updates for a market address (Limitless only).", diff --git a/core/scripts/generate-compliance.js b/core/scripts/generate-compliance.js index 6d11a721..9a45a02c 100644 --- a/core/scripts/generate-compliance.js +++ b/core/scripts/generate-compliance.js @@ -23,7 +23,7 @@ const METHOD_CATEGORIES = [ ]; // Exchange display order (skip kalshi-demo since it inherits Kalshi fully) -const EXCHANGE_ORDER = ['polymarket', 'kalshi', 'limitless', 'probable', 'baozi', 'myriad', 'opinion', 'metaculus']; +const EXCHANGE_ORDER = ['polymarket', 'kalshi', 'limitless', 'probable', 'baozi', 'myriad', 'opinion', 'metaculus', 'hunch']; function toDisplayName(slug) { return slug.split('-').map(p => p.charAt(0).toUpperCase() + p.slice(1)).join(''); @@ -41,6 +41,7 @@ function analyzeExchange(exchangeDir) { const wsContent = fs.existsSync(wsPath) ? fs.readFileSync(wsPath, 'utf8') : ''; const allMethods = METHOD_CATEGORIES.flatMap(c => c.methods); + const capabilityOverrides = parseCapabilityOverrides(indexContent); for (const method of allMethods) { // Check index.ts for override @@ -82,6 +83,17 @@ function analyzeExchange(exchangeDir) { } } + for (const [method, value] of Object.entries(capabilityOverrides)) { + if (!allMethods.includes(method)) continue; + if (value === false) { + results[method] = 'no'; + } else if (value === 'emulated') { + results[method] = 'emulated'; + } else if (value === true) { + results[method] = 'yes'; + } + } + // Special case: watchOrderBook/watchTrades may be delegated to websocket module // If index.ts has the method and calls websocket, it's supported // The index.ts override check above already catches this @@ -89,6 +101,26 @@ function analyzeExchange(exchangeDir) { return results; } +function parseCapabilityOverrides(content) { + const match = /capabilityOverrides\s*=\s*\{([\s\S]*?)\n\s*\}/.exec(content); + if (!match) return {}; + + const overrides = {}; + const entryRegex = /(\w+)\s*:\s*(false|true|'emulated'|"emulated")/g; + let entry; + while ((entry = entryRegex.exec(match[1])) !== null) { + const [, method, rawValue] = entry; + if (rawValue === 'false') { + overrides[method] = false; + } else if (rawValue === 'true') { + overrides[method] = true; + } else { + overrides[method] = 'emulated'; + } + } + return overrides; +} + function extractMethodBlock(content, methodName) { const regex = new RegExp(`async\\s+${methodName}\\s*\\(`); const match = regex.exec(content); @@ -121,11 +153,27 @@ function isNotSupported(block) { function statusSymbol(status) { switch (status) { case 'yes': return 'Y'; + case 'emulated': return 'E'; case 'no': return '-'; default: return '?'; } } +const HUNCH_NOTES = ` +## Hunch Notes + +Hunch is a parimutuel prediction market on Base USDC. Markets are pool-based +rather than CLOB- or AMM-backed; prices are implied odds. Settlement uses +x402 / EIP-3009 transferWithAuthorization, where the bettor wallet signs a USDC +authorization and the relayer sponsors gas. + +Hunch \`fetchOrderBook\`, \`watchOrderBook\`, and \`watchTrades\` are emulated +from the research/order state. \`createOrder\` accepts only \`side: 'buy'\` and +\`type: 'market'\`; \`outcomeId\` uses \`"{marketId}:{side}"\`. Hunch positions +are pool entries, so \`cancelOrder\`, \`fetchOrder\`, \`fetchClosedOrders\`, and +\`fetchAllOrders\` are not supported. +`; + // --------------------------------------------------------------------------- // Main // --------------------------------------------------------------------------- @@ -170,8 +218,11 @@ ${rows.join('\n')} ## Legend - **Y** - Supported +- **E** - Emulated or partially supported - **-** - Not supported +${HUNCH_NOTES} + ## Compliance Policy - **Failure over Warning**: Tests must fail if no relevant data (markets, events, candles) is found. This ensures that we catch API breakages or unexpected empty responses. @@ -189,6 +240,9 @@ MYRIAD_API_KEY=... MYRIAD_WALLET_ADDRESS=0x... # Metaculus (required for API access — unauthenticated requests return 403) METACULUS_API_TOKEN=... +# Hunch (reads are keyless; privateKey signs the x402 USDC payment on Base) +HUNCH_PRIVATE_KEY=0x... +HUNCH_WALLET_ADDRESS=0x... # optional; derived from HUNCH_PRIVATE_KEY when absent \`\`\` `; @@ -196,7 +250,7 @@ fs.writeFileSync(OUTPUT_PATH, output); console.log(`Generated COMPLIANCE.md with ${EXCHANGE_ORDER.length} exchanges`); for (const slug of EXCHANGE_ORDER) { const r = exchangeResults[slug]; - const supported = Object.values(r).filter(v => v === 'yes').length; + const supported = Object.values(r).filter(v => v === 'yes' || v === 'emulated').length; const total = Object.values(r).length; console.log(` ${toDisplayName(slug)}: ${supported}/${total} methods supported`); } diff --git a/core/scripts/generate-openapi.js b/core/scripts/generate-openapi.js index 3bb6bc1f..0adee7e7 100644 --- a/core/scripts/generate-openapi.js +++ b/core/scripts/generate-openapi.js @@ -760,6 +760,7 @@ function buildCapabilityMap() { polymarket_us: new pmxt.PolymarketUS(), suibets: new pmxt.SuiBets(), rain: new pmxt.Rain(), + hunch: new pmxt.Hunch(), router: new pmxt.Router({ apiKey: '_' }), }; @@ -2462,7 +2463,7 @@ function buildSpec(methodSpecs) { name: 'exchange', schema: { type: 'string', - enum: ['polymarket', 'kalshi', 'kalshi-demo', 'limitless', 'probable', 'baozi', 'myriad', 'opinion', 'metaculus', 'smarkets', 'polymarket_us', 'gemini-titan', 'hyperliquid', 'suibets', 'rain', 'mock', 'router'], + enum: ['polymarket', 'kalshi', 'kalshi-demo', 'limitless', 'probable', 'baozi', 'myriad', 'opinion', 'metaculus', 'smarkets', 'polymarket_us', 'gemini-titan', 'hyperliquid', 'suibets', 'rain', 'hunch', 'mock', 'router'], }, required: true, description: 'The prediction market exchange to target.', diff --git a/sdks/python/API_REFERENCE.md b/sdks/python/API_REFERENCE.md index ae37ce21..0acaca0a 100644 --- a/sdks/python/API_REFERENCE.md +++ b/sdks/python/API_REFERENCE.md @@ -1632,6 +1632,8 @@ amount: float # Size of the trade in contracts/shares. side: str # Trade side from the taker's perspective. outcome_id: str # The outcome this trade is for (if known). order_id: str # The order that produced this trade, if known. +market_id: str # The market this trade belongs to, when the venue exposes it (e.g. derivable from the fill's coin/asset). +fee: float # Trading fee paid by the user for this fill, when the venue exposes it. tx_hash: str # Populated in hosted mode after on-chain settlement; null for local-mode and for non-on-chain venues. chain: str # Populated in hosted mode after on-chain settlement; null for local-mode and for non-on-chain venues. block_number: float # Populated in hosted mode after on-chain settlement; null for local-mode and for non-on-chain venues. @@ -1998,6 +2000,8 @@ outcome_id: str # Reverse lookup -- find market containing this outcome event_id: str # Find markets belonging to an event page: float # For pagination (used by Limitless) similarity_threshold: float # For semantic search (used by Limitless) +source_exchange: str # Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias. +exchange: str # Alias for `sourceExchange`. ``` --- @@ -2021,6 +2025,8 @@ series: str # Filter events by their parent series. Accepts the venue-native ser filter: Any # Optional client-side filter applied after fetching category: str # Filter by category. Each event belongs to a venue-assigned category such as "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi). tags: List[string] # Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a "Politics" event might carry tags ["Politics", "Geopolitics", "Middle East", "Iran"]. Common tags include "Crypto", "Elections", "Fed Rates", "FIFA World Cup", "Trump". +source_exchange: str # Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias. +exchange: str # Alias for `sourceExchange`. ``` --- diff --git a/sdks/python/pmxt/__init__.py b/sdks/python/pmxt/__init__.py index 4250bb2e..59fa1f96 100644 --- a/sdks/python/pmxt/__init__.py +++ b/sdks/python/pmxt/__init__.py @@ -20,7 +20,7 @@ from .client import Exchange from .constants import ENV, ENV_BASE_URL, ENV_API_KEY -from ._exchanges import Polymarket, Limitless, Kalshi, KalshiDemo, Probable, Baozi, Myriad, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, Hyperliquid, GeminiTitan, SuiBets, Suibets, Rain, Mock, Router +from ._exchanges import Polymarket, Limitless, Kalshi, KalshiDemo, Probable, Baozi, Myriad, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, Hyperliquid, GeminiTitan, SuiBets, Suibets, Rain, Hunch, Mock, Router from .router import Router from .feed_client import FeedClient from .server_manager import ServerManager @@ -185,6 +185,7 @@ def restart_server() -> None: "SuiBets", "Suibets", "Rain", + "Hunch", "Mock", "Router", "Exchange", diff --git a/sdks/python/pmxt/_exchanges.py b/sdks/python/pmxt/_exchanges.py index b6402ad9..f147db35 100644 --- a/sdks/python/pmxt/_exchanges.py +++ b/sdks/python/pmxt/_exchanges.py @@ -542,6 +542,43 @@ def __init__( ) +class Hunch(Exchange): + """Hunch exchange client.""" + + def __init__( + self, + private_key: Optional[str] = None, + wallet_address: Optional[str] = None, + base_url: Optional[str] = None, + auto_start_server: Optional[bool] = None, + pmxt_api_key: Optional[str] = None, + ) -> None: + """ + Initialize Hunch client. + + Args: + private_key: Private key for x402 payment signing (optional) + wallet_address: EVM wallet address for balance/positions (optional) + base_url: Base URL of the PMXT sidecar server + auto_start_server: Automatically start server if not running (default: True) + pmxt_api_key: Hosted PMXT API key (optional; enables hosted mode) + """ + super().__init__( + exchange_name="hunch", + private_key=private_key, + wallet_address=wallet_address, + base_url=base_url, + auto_start_server=auto_start_server, + pmxt_api_key=pmxt_api_key, + ) + + def _get_credentials_dict(self) -> Optional[Dict[str, Any]]: + creds = super()._get_credentials_dict() or {} + if self.wallet_address: + creds["walletAddress"] = self.wallet_address + return creds if creds else None + + class Mock(Exchange): """Mock exchange client.""" diff --git a/sdks/python/scripts/generate-client-methods.js b/sdks/python/scripts/generate-client-methods.js index d944555a..0f338b7d 100644 --- a/sdks/python/scripts/generate-client-methods.js +++ b/sdks/python/scripts/generate-client-methods.js @@ -45,6 +45,24 @@ const SKIP_GENERATE = new Set([ 'filterEvents', // pure local computation, no sidecar ]); +// Methods in the generated region that intentionally carry hand-maintained +// hosted-mode or compatibility behavior. Preserve the committed block when +// regenerating so the drift check stays idempotent without deleting that logic. +const PRESERVE_EXISTING_METHODS = new Set([ + 'fetchEventsPaginated', + 'fetchMarket', + 'fetchOrderBook', + 'cancelOrder', + 'fetchOrder', + 'fetchOpenOrders', + 'fetchMyTrades', + 'fetchClosedOrders', + 'fetchAllOrders', + 'fetchPositions', + 'fetchBalance', + 'unwatchOrderBook', +]); + // --------------------------------------------------------------------------- // TypeScript type name -> Python type info // @@ -70,6 +88,7 @@ const TYPE_MAP = { PriceCandle: { pyType: 'PriceCandle', converter: '_convert_candle' }, // Pagination wrapper: detected by name, not structure — gets its own response handler PaginatedMarketsResult: { pyType: 'PaginatedMarketsResult', converter: null, pattern: 'paginated' }, + PaginatedEventsResult: { pyType: 'PaginatedEventsResult', converter: null, pattern: 'paginatedEvents' }, }; // Parameter names that represent outcome IDs and should accept MarketOutcome. @@ -191,6 +210,10 @@ function inferReturnConfig(returnTypeNode, methodName, sf) { return { returnPy: resolved.pyType, pattern: 'paginated', converter: null }; } + if (resolved.pattern === 'paginatedEvents') { + return { returnPy: resolved.pyType, pattern: 'paginatedEvents', converter: null }; + } + if (resolved.pattern === 'void') { return { returnPy: 'None', pattern: 'void', converter: null }; } @@ -382,6 +405,15 @@ function buildPyReturnLines(config) { `${i} next_cursor=data.get("nextCursor"),`, `${i})`, ].join('\n'); + case 'paginatedEvents': + return [ + `${i}data = self._handle_response(json.loads(response.data))`, + `${i}return PaginatedEventsResult(`, + `${i} data=[_convert_event(e) for e in data.get("data", [])],`, + `${i} total=data.get("total"),`, + `${i} next_cursor=data.get("nextCursor"),`, + `${i})`, + ].join('\n'); case 'void': return `${i}self._handle_response(json.loads(response.data))`; default: @@ -389,7 +421,27 @@ function buildPyReturnLines(config) { } } -function generatePyMethod(name, params, config, sf) { +function findExistingMethodBlock(client, methodName) { + const snakeName = camelToSnake(methodName); + const methodRegex = new RegExp(`\\n def\\s+${snakeName}\\s*\\(`); + const match = methodRegex.exec(client); + if (!match) return null; + + const start = match.index + 1; + const nextMethodIdx = client.indexOf('\n def ', start + 1); + const markerIdx = client.indexOf(`\n${MARKER_END}`, start + 1); + const endCandidates = [nextMethodIdx, markerIdx].filter(i => i !== -1); + if (endCandidates.length === 0) return null; + const end = Math.min(...endCandidates); + return client.slice(start, end).trimEnd(); +} + +function generatePyMethod(name, params, config, sf, client) { + if (PRESERVE_EXISTING_METHODS.has(name)) { + const existing = findExistingMethodBlock(client, name); + if (existing) return existing; + } + if (name === 'fetchOrderBook') { return [ ` def fetch_order_book(self, outcome_id: Union[str, "MarketOutcome"] = _UNSET, limit: Optional[float] = None, params: Optional[dict] = None, **kwargs) -> Union[OrderBook, List[OrderBook]]:`, @@ -485,14 +537,14 @@ function main() { const methods = extractMethods(sf); + let client = fs.readFileSync(CLIENT_PATH, 'utf-8'); + const generated = methods.map(m => { const name = m.name.text; const config = inferReturnConfig(m.type, name, sf); - return generatePyMethod(name, m.parameters, config, sf); + return generatePyMethod(name, m.parameters, config, sf, client); }).join('\n\n'); - let client = fs.readFileSync(CLIENT_PATH, 'utf-8'); - const beginIdx = client.indexOf(MARKER_BEGIN); const endIdx = client.indexOf(MARKER_END); diff --git a/sdks/typescript/API_REFERENCE.md b/sdks/typescript/API_REFERENCE.md index 42ce6432..230cdb55 100644 --- a/sdks/typescript/API_REFERENCE.md +++ b/sdks/typescript/API_REFERENCE.md @@ -1493,7 +1493,6 @@ yes: any; // Convenience accessor for the YES outcome on a binary market. no: any; // Convenience accessor for the NO outcome on a binary market. up: any; // Convenience accessor for the UP outcome on a binary market. down: any; // Convenience accessor for the DOWN outcome on a binary market. -question: string; // Read-only alias for title. Matches the Python SDK's market.question property. } ``` @@ -1633,6 +1632,8 @@ amount: number; // Size of the trade in contracts/shares. side: string; // Trade side from the taker's perspective. outcomeId: string; // The outcome this trade is for (if known). orderId: string; // The order that produced this trade, if known. +marketId: string; // The market this trade belongs to, when the venue exposes it (e.g. derivable from the fill's coin/asset). +fee: number; // Trading fee paid by the user for this fill, when the venue exposes it. txHash: string; // Populated in hosted mode after on-chain settlement; null for local-mode and for non-on-chain venues. chain: string; // Populated in hosted mode after on-chain settlement; null for local-mode and for non-on-chain venues. blockNumber: number; // Populated in hosted mode after on-chain settlement; null for local-mode and for non-on-chain venues. @@ -1999,6 +2000,8 @@ outcomeId?: string; // Reverse lookup -- find market containing this outcome eventId?: string; // Find markets belonging to an event page?: number; // For pagination (used by Limitless) similarityThreshold?: number; // For semantic search (used by Limitless) +sourceExchange?: string; // Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias. +exchange?: string; // Alias for `sourceExchange`. } ``` @@ -2022,6 +2025,8 @@ series?: string; // Filter events by their parent series. Accepts the venue-nati filter?: any; // Optional client-side filter applied after fetching category?: string; // Filter by category. Each event belongs to a venue-assigned category such as "Sports", "Politics", "Crypto", "Bitcoin", "Soccer", "Economic Policy" (Polymarket) or "Sports", "Mentions" (Kalshi). tags?: string[]; // Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a "Politics" event might carry tags ["Politics", "Geopolitics", "Middle East", "Iran"]. Common tags include "Crypto", "Elections", "Fed Rates", "FIFA World Cup", "Trump". +sourceExchange?: string; // Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias. +exchange?: string; // Alias for `sourceExchange`. } ``` diff --git a/sdks/typescript/index.ts b/sdks/typescript/index.ts index c884f704..3c445b1c 100644 --- a/sdks/typescript/index.ts +++ b/sdks/typescript/index.ts @@ -19,14 +19,14 @@ */ -import { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Mock } from "./pmxt/client.js"; +import { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Hunch, Mock } from "./pmxt/client.js"; import { Router } from "./pmxt/router.js"; import { ServerManager } from "./pmxt/server-manager.js"; import { FeedClient } from "./pmxt/feed-client.js"; import * as models from "./pmxt/models.js"; import * as errors from "./pmxt/errors.js"; -export { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Mock, PolymarketOptions } from "./pmxt/client.js"; +export { Exchange, Polymarket, Kalshi, KalshiDemo, Limitless, Myriad, Probable, Baozi, Opinion, Metaculus, Smarkets, PolymarketUS, Polymarket_us, GeminiTitan, Hyperliquid, SuiBets, Suibets, Rain, Hunch, Mock, PolymarketOptions } from "./pmxt/client.js"; export { FeedClient } from "./pmxt/feed-client.js"; export type { Ticker, Tickers, OHLCV, Market as FeedMarket, OracleRound, FeedClientOptions } from "./pmxt/feed-client.js"; export { Router } from "./pmxt/router.js"; @@ -99,6 +99,7 @@ const pmxt = { SuiBets, Suibets, Rain, + Hunch, Mock, Router, ServerManager, diff --git a/sdks/typescript/pmxt/client.ts b/sdks/typescript/pmxt/client.ts index ff78f8ba..4520a6af 100644 --- a/sdks/typescript/pmxt/client.ts +++ b/sdks/typescript/pmxt/client.ts @@ -3405,6 +3405,37 @@ export class Rain extends Exchange { } } +/** + * Hunch exchange client. + * + * Hunch is a Base USDC parimutuel prediction market. Public reads are + * unauthenticated; trading requires an EVM privateKey and optional walletAddress. + * + * @example + * ```typescript + * const hunch = new Hunch(); + * const markets = await hunch.fetchMarkets({ limit: 20 }); + * ``` + */ +export class Hunch extends Exchange { + constructor(options: ExchangeOptions = {}) { + super("hunch", options); + } + + /** + * Includes walletAddress in hosted credentials for Hunch private reads + * and x402/EIP-3009 payment flows. + */ + protected override getCredentials(): ExchangeCredentials | undefined { + const base = super.getCredentials(); + if (!this.walletAddress) return base; + return { + ...(base ?? {}), + walletAddress: this.walletAddress, + } as ExchangeCredentials & { walletAddress: string }; + } +} + /** * Mock exchange client. * diff --git a/sdks/typescript/scripts/generate-client-methods.js b/sdks/typescript/scripts/generate-client-methods.js index 064743ef..f8cf8fa4 100644 --- a/sdks/typescript/scripts/generate-client-methods.js +++ b/sdks/typescript/scripts/generate-client-methods.js @@ -43,6 +43,20 @@ const SKIP_GENERATE = new Set([ 'filterEvents', // pure local computation, no sidecar ]); +// Methods in the generated region that intentionally carry hand-maintained +// hosted-mode or compatibility behavior. Preserve the committed block when +// regenerating so the drift check stays idempotent without deleting that logic. +const PRESERVE_EXISTING_METHODS = new Set([ + 'fetchEventsPaginated', + 'cancelOrder', + 'fetchOrder', + 'fetchOpenOrders', + 'fetchMyTrades', + 'fetchPositions', + 'fetchBalance', + 'fetchMatchedMarkets', +]); + // --------------------------------------------------------------------------- // TypeScript type name -> SDK type info // @@ -64,6 +78,7 @@ const TYPE_MAP = { PriceCandle: { converter: 'convertCandle' }, // Pagination wrapper — gets its own response handler PaginatedMarketsResult: { converter: null, pattern: 'paginatedMarkets' }, + PaginatedEventsResult: { converter: null, pattern: 'paginatedEvents' }, }; // SDK types that can appear in generated signatures without extra imports @@ -77,6 +92,7 @@ const SDK_PARAM_TYPES = new Set([ 'MyTradesParams', 'OrderHistoryParams', 'CreateOrderParams', 'MarketFilterCriteria', 'EventFilterCriteria', 'SubscriptionOption', + 'FetchMatchedMarketClustersParams', ]); // Parameter names that represent outcome IDs and should accept MarketOutcome. @@ -190,6 +206,10 @@ function inferReturnConfig(returnTypeNode, methodName, sf) { return { returnTs: 'PaginatedMarketsResult', pattern: 'paginatedMarkets', converter: null }; } + if (resolved.pattern === 'paginatedEvents') { + return { returnTs: 'PaginatedEventsResult', pattern: 'paginatedEvents', converter: null }; + } + if (resolved.pattern === 'void') { return { returnTs: 'void', pattern: 'void', converter: null }; } @@ -374,6 +394,15 @@ function buildReturnLines(config) { `${i} nextCursor: data.nextCursor,`, `${i}};`, ].join('\n'); + case 'paginatedEvents': + return [ + `${i}const data = this.handleResponse(json);`, + `${i}return {`, + `${i} data: (data.data || []).map(convertEvent),`, + `${i} total: data.total,`, + `${i} nextCursor: data.nextCursor,`, + `${i}};`, + ].join('\n'); case 'void': return `${i}this.handleResponse(json);`; default: @@ -381,7 +410,35 @@ function buildReturnLines(config) { } } -function generateMethod(name, params, config, sf) { +function findExistingMethodBlock(client, methodName) { + const methodRegex = new RegExp(`\\n async\\s+${methodName}\\s*\\(`); + const match = methodRegex.exec(client); + if (!match) return null; + + let i = match.index + 1; + let depth = 0; + let foundOpen = false; + while (i < client.length) { + if (client[i] === '{') { + depth++; + foundOpen = true; + } else if (client[i] === '}') { + depth--; + if (foundOpen && depth === 0) { + return client.slice(match.index + 1, i + 1); + } + } + i++; + } + return null; +} + +function generateMethod(name, params, config, sf, client) { + if (PRESERVE_EXISTING_METHODS.has(name)) { + const existing = findExistingMethodBlock(client, name); + if (existing) return existing; + } + if (name === 'fetchOrderBook') { return [ ` async fetchOrderBook(outcomeId: string | MarketOutcome, limit?: number, params?: FetchOrderBookParams): Promise {`, @@ -470,14 +527,14 @@ function main() { const methods = extractMethods(sf); + let client = fs.readFileSync(CLIENT_PATH, 'utf-8'); + const generated = methods.map(m => { const name = m.name.text; const config = inferReturnConfig(m.type, name, sf); - return generateMethod(name, m.parameters, config, sf); + return generateMethod(name, m.parameters, config, sf, client); }).join('\n\n'); - let client = fs.readFileSync(CLIENT_PATH, 'utf-8'); - const beginIdx = client.indexOf(MARKER_BEGIN); const endIdx = client.indexOf(MARKER_END); diff --git a/sdks/typescript/tests/public-exports.test.ts b/sdks/typescript/tests/public-exports.test.ts index 7e5b15ad..a4003de4 100644 --- a/sdks/typescript/tests/public-exports.test.ts +++ b/sdks/typescript/tests/public-exports.test.ts @@ -21,4 +21,19 @@ describe('public exports', () => { expect(pmxt.Polymarket_us).toBe(pmxt.PolymarketUS); expect(pmxt.default.Polymarket_us).toBe(pmxt.PolymarketUS); }); + + it('exports Hunch as a top-level exchange client', () => { + expect(pmxt.Hunch).toBeDefined(); + expect(pmxt.default.Hunch).toBe(pmxt.Hunch); + }); + + it('passes Hunch walletAddress through credentials', () => { + const hunch = new pmxt.Hunch({ + autoStartServer: false, + walletAddress: '0x0000000000000000000000000000000000000001', + }); + expect((hunch as any).getCredentials()).toMatchObject({ + walletAddress: '0x0000000000000000000000000000000000000001', + }); + }); }); From 7859bc2e9deb75228d7a264fe760740d164c772e Mon Sep 17 00:00:00 2001 From: LingX Date: Mon, 22 Jun 2026 22:59:15 -0400 Subject: [PATCH 3/4] chore: sync Hunch OpenAPI docs --- core/src/server/openapi.yaml | 9 + docs/api-reference/openapi.json | 1894 ++++++------------------------- docs/concepts/venues.mdx | 3 +- docs/llms-full.txt | 13 +- 4 files changed, 380 insertions(+), 1539 deletions(-) diff --git a/core/src/server/openapi.yaml b/core/src/server/openapi.yaml index 11f031b3..46097132 100644 --- a/core/src/server/openapi.yaml +++ b/core/src/server/openapi.yaml @@ -90,6 +90,7 @@ paths: - polymarket_us - suibets - rain + - hunch - router required: true description: The prediction market exchange to target. @@ -308,6 +309,7 @@ paths: - polymarket_us - suibets - rain + - hunch - router required: true description: The prediction market exchange to target. @@ -751,6 +753,7 @@ paths: - myriad - opinion - rain + - hunch required: true description: The prediction market exchange to target. - in: query @@ -821,6 +824,7 @@ paths: - polymarket_us - suibets - rain + - hunch - router required: true description: The prediction market exchange to target. @@ -956,6 +960,7 @@ paths: - myriad - smarkets - rain + - hunch required: true description: The prediction market exchange to target. - in: query @@ -1020,6 +1025,7 @@ paths: - smarkets - polymarket_us - rain + - hunch required: true description: The prediction market exchange to target. requestBody: @@ -1509,6 +1515,7 @@ paths: - polymarket_us - suibets - rain + - hunch required: true description: The prediction market exchange to target. - in: query @@ -1551,6 +1558,7 @@ paths: - smarkets - polymarket_us - rain + - hunch required: true description: The prediction market exchange to target. - in: query @@ -2911,6 +2919,7 @@ components: - hyperliquid - suibets - rain + - hunch - mock - router required: true diff --git a/docs/api-reference/openapi.json b/docs/api-reference/openapi.json index 1a409001..9cc745a0 100644 --- a/docs/api-reference/openapi.json +++ b/docs/api-reference/openapi.json @@ -3,7 +3,7 @@ "info": { "title": "PMXT Hosted API", "description": "One API for every prediction market. Cross-venue search in under 10ms, a single unified schema, and the complete venue surface from reads to trades.", - "version": "2.51.0" + "version": "2.17.1" }, "servers": [ { @@ -294,7 +294,30 @@ "operationId": "fetchMarkets", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -527,16 +550,6 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "Suibets", @@ -552,11 +565,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "Router", @@ -617,16 +625,6 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "Suibets", @@ -642,11 +640,6 @@ "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "Router", @@ -1153,7 +1146,30 @@ "operationId": "fetchEvents", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -1402,16 +1418,6 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "Suibets", @@ -1427,11 +1433,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "Router", @@ -1492,16 +1493,6 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "Suibets", @@ -1517,11 +1508,6 @@ "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "Router", @@ -1536,7 +1522,21 @@ "operationId": "fetchSeries", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "polymarket_us", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "responses": { @@ -1574,11 +1574,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Limitless(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "Kalshi", @@ -1589,71 +1584,16 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "Router", @@ -1664,11 +1604,6 @@ "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "Kalshi", @@ -1679,71 +1614,16 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "Router", @@ -2502,7 +2382,25 @@ "operationId": "fetchOHLCV", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -2621,36 +2519,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "PolymarketUs", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "python", "label": "Rain", @@ -2661,16 +2529,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -2711,36 +2569,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "PolymarketUs", - "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, { "lang": "javascript", "label": "Rain", @@ -2750,16 +2578,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" } ] } @@ -2770,7 +2588,29 @@ "operationId": "fetchOrderBook", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -2898,29 +2738,14 @@ }, { "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" + "label": "Smarkets", + "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" }, { "lang": "python", "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, { "lang": "python", "label": "Suibets", @@ -2936,11 +2761,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, { "lang": "python", "label": "Router", @@ -2986,11 +2806,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, { "lang": "javascript", "label": "Smarkets", @@ -3001,16 +2816,6 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, { "lang": "javascript", "label": "Suibets", @@ -3026,11 +2831,6 @@ "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, { "lang": "javascript", "label": "Router", @@ -3045,7 +2845,18 @@ "operationId": "fetchOrderBooks", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3112,11 +2923,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Limitless(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, { "lang": "python", "label": "Kalshi", @@ -3127,86 +2933,11 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Opinion", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "PolymarketUs", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, { "lang": "javascript", "label": "Kalshi", @@ -3216,76 +2947,6 @@ "lang": "javascript", "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "PolymarketUs", - "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" } ] } @@ -3296,7 +2957,25 @@ "operationId": "fetchTrades", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "smarkets", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -3401,41 +3080,11 @@ "label": "Myriad", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Opinion", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "python", "label": "Smarkets", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "PolymarketUs", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "python", "label": "Rain", @@ -3446,16 +3095,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -3491,41 +3130,11 @@ "label": "Myriad", "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, { "lang": "javascript", "label": "Smarkets", "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" }, - { - "lang": "javascript", - "label": "PolymarketUs", - "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, { "lang": "javascript", "label": "Rain", @@ -3535,16 +3144,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" } ] } @@ -3555,7 +3154,28 @@ "operationId": "createOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3673,21 +3293,6 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUs(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Suibets()\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Rain", @@ -3698,16 +3303,6 @@ "label": "Hunch", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -3763,21 +3358,6 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUs({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Suibets();\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Rain", @@ -3787,16 +3367,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" } ] } @@ -3807,7 +3377,22 @@ "operationId": "buildOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3875,11 +3460,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Polymarket(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n signature_type=\"gnosis-safe\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Limitless(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Kalshi", @@ -3890,31 +3470,11 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.KalshiDemo(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Probable(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Baozi(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Myriad(\n api_key=\"YOUR_API_KEY\",\n wallet_address=\"YOUR_WALLET_ADDRESS\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Opinion(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Metaculus(\n api_token=\"YOUR_API_TOKEN\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Smarkets", @@ -3925,51 +3485,16 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUs(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Suibets()\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Rain(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Limitless({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Kalshi", @@ -3980,31 +3505,11 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new KalshiDemo({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Probable({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Baozi({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Myriad({\n apiKey: \"YOUR_API_KEY\",\n walletAddress: \"YOUR_WALLET_ADDRESS\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Opinion({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Metaculus({\n apiToken: \"YOUR_API_TOKEN\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Smarkets", @@ -4015,40 +3520,10 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUs({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Suibets();\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Rain({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" } ] } @@ -4059,7 +3534,22 @@ "operationId": "submitOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -4127,11 +3617,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Polymarket(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n signature_type=\"gnosis-safe\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Limitless(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Kalshi", @@ -4142,31 +3627,11 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.KalshiDemo(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Probable(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Baozi(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Myriad(\n api_key=\"YOUR_API_KEY\",\n wallet_address=\"YOUR_WALLET_ADDRESS\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Opinion(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Metaculus(\n api_token=\"YOUR_API_TOKEN\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Smarkets", @@ -4177,51 +3642,16 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUs(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Suibets()\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Rain(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Limitless({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Kalshi", @@ -4232,31 +3662,11 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new KalshiDemo({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Probable({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Baozi({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Myriad({\n apiKey: \"YOUR_API_KEY\",\n walletAddress: \"YOUR_WALLET_ADDRESS\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Opinion({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Metaculus({\n apiToken: \"YOUR_API_TOKEN\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Smarkets", @@ -4267,40 +3677,10 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUs({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Suibets();\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Rain({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" } ] } @@ -4311,7 +3691,25 @@ "operationId": "cancelOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -4399,16 +3797,6 @@ "label": "Probable", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Probable(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Baozi(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Myriad(\n api_key=\"YOUR_API_KEY\",\n wallet_address=\"YOUR_WALLET_ADDRESS\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Opinion", @@ -4429,45 +3817,15 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUs(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Suibets()\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Rain(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" }, { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "javascript", - "label": "Polymarket", - "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" + "lang": "javascript", + "label": "Polymarket", + "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" }, { "lang": "javascript", @@ -4489,16 +3847,6 @@ "label": "Probable", "source": "import { Probable } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Probable({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Baozi({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Myriad({\n apiKey: \"YOUR_API_KEY\",\n walletAddress: \"YOUR_WALLET_ADDRESS\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Opinion", @@ -4519,40 +3867,10 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUs({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Suibets();\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Rain({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" } ] } @@ -4563,7 +3881,24 @@ "operationId": "fetchOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "probable", + "baozi", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -4606,11 +3941,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Limitless(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Kalshi", @@ -4631,21 +3961,11 @@ "label": "Baozi", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Smarkets", @@ -4656,51 +3976,16 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Kalshi", @@ -4721,21 +4006,11 @@ "label": "Baozi", "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -4746,40 +4021,10 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" } ] } @@ -4790,7 +4035,26 @@ "operationId": "fetchOpenOrders", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -4871,11 +4135,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, { "lang": "python", "label": "Smarkets", @@ -4886,41 +4145,11 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, { "lang": "javascript", "label": "Polymarket", @@ -4961,11 +4190,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -4976,40 +4200,10 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" } ] } @@ -5020,7 +4214,25 @@ "operationId": "fetchMyTrades", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5133,11 +4345,6 @@ "label": "Probable", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Myriad", @@ -5148,11 +4355,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Smarkets", @@ -5163,41 +4365,11 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -5223,11 +4395,6 @@ "label": "Probable", "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Myriad", @@ -5238,11 +4405,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Smarkets", @@ -5253,40 +4415,10 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" } ] } @@ -5297,7 +4429,21 @@ "operationId": "fetchClosedOrders", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "kalshi", + "kalshi-demo", + "limitless", + "opinion", + "smarkets", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5376,11 +4522,6 @@ }, "security": [], "x-codeSamples": [ - { - "lang": "python", - "label": "Polymarket", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Limitless", @@ -5396,165 +4537,50 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "PolymarketUs", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "javascript", - "label": "Polymarket", - "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Kalshi", - "source": "import { Kalshi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Kalshi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "KalshiDemo", - "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "PolymarketUs", - "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "lang": "python", + "label": "Smarkets", + "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "lang": "python", + "label": "Rain", + "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, { "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Limitless", + "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Kalshi", + "source": "import { Kalshi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Kalshi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "KalshiDemo", + "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Opinion", + "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Smarkets", + "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Rain", + "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" } ] } @@ -5565,7 +4591,20 @@ "operationId": "fetchAllOrders", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "kalshi", + "kalshi-demo", + "limitless", + "opinion", + "smarkets" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5644,11 +4683,6 @@ }, "security": [], "x-codeSamples": [ - { - "lang": "python", - "label": "Polymarket", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Limitless", @@ -5664,81 +4698,16 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Smarkets", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "PolymarketUs", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "javascript", - "label": "Polymarket", - "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Limitless", @@ -5754,75 +4723,15 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Smarkets", "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "PolymarketUs", - "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" } ] } @@ -5833,7 +4742,28 @@ "operationId": "fetchPositions", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5914,11 +4844,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, { "lang": "python", "label": "Smarkets", @@ -5929,16 +4854,6 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, { "lang": "python", "label": "Suibets", @@ -5954,16 +4869,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, { "lang": "javascript", "label": "Polymarket", @@ -6004,11 +4909,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -6019,16 +4919,6 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "Suibets", @@ -6043,16 +4933,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" } ] } @@ -6063,7 +4943,26 @@ "operationId": "fetchBalance", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "smarkets", + "polymarket_us", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -6139,16 +5038,6 @@ "label": "Myriad", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Opinion", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, { "lang": "python", "label": "Smarkets", @@ -6159,21 +5048,6 @@ "label": "PolymarketUs", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUs(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "Suibets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Suibets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, { "lang": "python", "label": "Rain", @@ -6184,16 +5058,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, { "lang": "javascript", "label": "Polymarket", @@ -6229,16 +5093,6 @@ "label": "Myriad", "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -6249,21 +5103,6 @@ "label": "PolymarketUs", "source": "import { PolymarketUs } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUs({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Suibets", - "source": "import { Suibets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Suibets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "Rain", @@ -6273,16 +5112,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" } ] } @@ -11226,6 +10055,7 @@ "hyperliquid", "suibets", "rain", + "hunch", "mock", "router" ] diff --git a/docs/concepts/venues.mdx b/docs/concepts/venues.mdx index 4802ffd4..12532315 100644 --- a/docs/concepts/venues.mdx +++ b/docs/concepts/venues.mdx @@ -7,7 +7,7 @@ description: "Every venue PMXT currently speaks." AUTO-GENERATED from pmxt-core's openapi spec (ExchangeParam enum). Do not edit by hand — run `npm run generate:mintlify` to regenerate. Source: docs/api-reference/openapi.json - pmxt-core version at last sync: 2.51.0 + pmxt-core version at last sync: 2.17.1 */} PMXT Hosted currently supports the following venues. The **wire key** is @@ -31,6 +31,7 @@ or `new pmxt.Polymarket({})` from the SDKs. | hyperliquid | `hyperliquid` | `POST /api/hyperliquid/:method` | | suibets | `suibets` | `POST /api/suibets/:method` | | rain | `rain` | `POST /api/rain/:method` | +| hunch | `hunch` | `POST /api/hunch/:method` | | mock | `mock` | `POST /api/mock/:method` | | Router | `router` | `POST /api/router/:method` | diff --git a/docs/llms-full.txt b/docs/llms-full.txt index b5c602ef..11fcaab9 100644 --- a/docs/llms-full.txt +++ b/docs/llms-full.txt @@ -986,6 +986,7 @@ or `new pmxt.Polymarket({})` from the SDKs. | hyperliquid | `hyperliquid` | `POST /api/hyperliquid/:method` | | suibets | `suibets` | `POST /api/suibets/:method` | | rain | `rain` | `POST /api/rain/:method` | +| hunch | `hunch` | `POST /api/hunch/:method` | | mock | `mock` | `POST /api/mock/:method` | | Router | `router` | `POST /api/router/:method` | @@ -4245,7 +4246,7 @@ Batch variant of {@link fetchOrderBook}. Fetches order books for multiple outcom import pmxt # API key optional — enables faster catalog-backed lookups -exchange = pmxt.Router( +exchange = pmxt.Kalshi( pmxt_api_key="YOUR_PMXT_API_KEY", ) result = exchange.fetch_order_books() @@ -4253,10 +4254,10 @@ result = exchange.fetch_order_books() **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // API key optional — enables faster catalog-backed lookups -const exchange = new Router({ +const exchange = new Kalshi({ pmxtApiKey: "YOUR_PMXT_API_KEY", }); const result = await exchange.fetchOrderBooks(); @@ -4283,7 +4284,7 @@ Fetch raw trade history for a specific outcome. import pmxt # API key optional — enables faster catalog-backed lookups -exchange = pmxt.Router( +exchange = pmxt.Kalshi( pmxt_api_key="YOUR_PMXT_API_KEY", ) result = exchange.fetch_trades( @@ -4296,10 +4297,10 @@ result = exchange.fetch_trades( **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // API key optional — enables faster catalog-backed lookups -const exchange = new Router({ +const exchange = new Kalshi({ pmxtApiKey: "YOUR_PMXT_API_KEY", }); const result = await exchange.fetchTrades({ From c674ae52208f198bae2c002b74d22897f0c93419 Mon Sep 17 00:00:00 2001 From: LingX Date: Tue, 23 Jun 2026 08:25:02 -0400 Subject: [PATCH 4/4] chore: sync generated docs --- docs/api-reference/openapi.json | 1893 ++++++------------------------- docs/concepts/venues.mdx | 2 +- docs/llms-full.txt | 12 +- 3 files changed, 368 insertions(+), 1539 deletions(-) diff --git a/docs/api-reference/openapi.json b/docs/api-reference/openapi.json index 00521f9b..b7b47deb 100644 --- a/docs/api-reference/openapi.json +++ b/docs/api-reference/openapi.json @@ -3,7 +3,7 @@ "info": { "title": "PMXT Hosted API", "description": "One API for every prediction market. Cross-venue search in under 10ms, a single unified schema, and the complete venue surface from reads to trades.", - "version": "2.51.2" + "version": "2.17.1" }, "servers": [ { @@ -294,7 +294,30 @@ "operationId": "fetchMarkets", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -527,16 +550,6 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "SuiBets", @@ -552,11 +565,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_markets(\n limit=10,\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n query=\"election\",\n slug=\"BTC-USD\",\n market_id=\"12345\",\n outcome_id=\"67890\",\n event_id=\"12345\",\n page=1,\n similarity_threshold=1,\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "Router", @@ -617,16 +625,6 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "SuiBets", @@ -642,11 +640,6 @@ "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMarkets({\n limit: 10,\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n query: \"election\",\n slug: \"BTC-USD\",\n marketId: \"12345\",\n outcomeId: \"67890\",\n eventId: \"12345\",\n page: 1,\n similarityThreshold: 1,\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "Router", @@ -1153,7 +1146,30 @@ "operationId": "fetchEvents", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -1402,16 +1418,6 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "SuiBets", @@ -1427,11 +1433,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_events(\n query=\"election\",\n limit=10,\n cursor=\"abc123\",\n offset=0,\n sort=\"volume\",\n status=\"active\",\n search_in=\"title\",\n event_id=\"12345\",\n slug=\"BTC-USD\",\n series=\"value\",\n filter=\"value\",\n category=\"value\",\n tags=[],\n source_exchange=\"value\",\n)" - }, { "lang": "python", "label": "Router", @@ -1492,16 +1493,6 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "SuiBets", @@ -1517,11 +1508,6 @@ "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchEvents({\n query: \"election\",\n limit: 10,\n cursor: \"abc123\",\n offset: 0,\n sort: \"volume\",\n status: \"active\",\n searchIn: \"title\",\n eventId: \"12345\",\n slug: \"BTC-USD\",\n series: \"value\",\n filter: \"value\",\n category: \"value\",\n tags: [],\n sourceExchange: \"value\",\n});" - }, { "lang": "javascript", "label": "Router", @@ -1536,7 +1522,21 @@ "operationId": "fetchSeries", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "polymarket_us", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "responses": { @@ -1574,11 +1574,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Limitless(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "Kalshi", @@ -1589,71 +1584,16 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_series()" - }, { "lang": "python", "label": "Router", @@ -1664,11 +1604,6 @@ "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "Kalshi", @@ -1679,71 +1614,16 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchSeries();" - }, { "lang": "javascript", "label": "Router", @@ -2502,7 +2382,25 @@ "operationId": "fetchOHLCV", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -2621,36 +2519,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "PolymarketUS", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "python", "label": "Rain", @@ -2661,16 +2529,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_ohlcv(\n outcome_id=\"67890\",\n resolution=\"1h\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -2711,36 +2569,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "PolymarketUS", - "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, { "lang": "javascript", "label": "Rain", @@ -2750,16 +2578,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOHLCV({\n outcomeId: \"67890\",\n resolution: \"1h\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" } ] } @@ -2770,7 +2588,29 @@ "operationId": "fetchOrderBook", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -2898,29 +2738,14 @@ }, { "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" + "label": "Smarkets", + "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" }, { "lang": "python", "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, { "lang": "python", "label": "SuiBets", @@ -2936,11 +2761,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_book(\n outcome_id=\"67890\",\n limit=10,\n side=\"yes\",\n outcome=\"value\",\n since=1,\n until=1,\n)" - }, { "lang": "python", "label": "Router", @@ -2986,11 +2806,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, { "lang": "javascript", "label": "Smarkets", @@ -3001,16 +2816,6 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, { "lang": "javascript", "label": "SuiBets", @@ -3026,11 +2831,6 @@ "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" - }, { "lang": "javascript", "label": "Router", @@ -3045,7 +2845,18 @@ "operationId": "fetchOrderBooks", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3112,11 +2923,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Limitless(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, { "lang": "python", "label": "Kalshi", @@ -3127,86 +2933,11 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Opinion", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "PolymarketUS", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order_books()" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, { "lang": "javascript", "label": "Kalshi", @@ -3216,76 +2947,6 @@ "lang": "javascript", "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "PolymarketUS", - "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrderBooks();" } ] } @@ -3296,7 +2957,25 @@ "operationId": "fetchTrades", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "smarkets", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -3401,41 +3080,11 @@ "label": "Myriad", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Opinion", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "python", "label": "Smarkets", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "PolymarketUS", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "python", "label": "Rain", @@ -3446,16 +3095,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_trades(\n outcome_id=\"67890\",\n start=\"value\",\n end=\"value\",\n limit=10,\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -3491,41 +3130,11 @@ "label": "Myriad", "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, { "lang": "javascript", "label": "Smarkets", "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" }, - { - "lang": "javascript", - "label": "PolymarketUS", - "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, { "lang": "javascript", "label": "Rain", @@ -3535,16 +3144,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchTrades({\n outcomeId: \"67890\",\n start: \"value\",\n end: \"value\",\n limit: 10,\n});" } ] } @@ -3555,7 +3154,28 @@ "operationId": "createOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3673,21 +3293,6 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUS(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.SuiBets()\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Rain", @@ -3698,16 +3303,6 @@ "label": "Hunch", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nresult = exchange.create_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -3763,21 +3358,6 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUS({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new SuiBets();\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Rain", @@ -3787,16 +3367,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst result = await exchange.createOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" } ] } @@ -3807,7 +3377,22 @@ "operationId": "buildOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3875,11 +3460,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Polymarket(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n signature_type=\"gnosis-safe\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Limitless(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Kalshi", @@ -3890,31 +3470,11 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.KalshiDemo(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Probable(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Baozi(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Myriad(\n api_key=\"YOUR_API_KEY\",\n wallet_address=\"YOUR_WALLET_ADDRESS\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Opinion(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Metaculus(\n api_token=\"YOUR_API_TOKEN\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Smarkets", @@ -3925,51 +3485,16 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUS(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.SuiBets()\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Rain(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nresult = exchange.build_order(\n market_id=\"12345\",\n outcome_id=\"67890\",\n side=\"buy\",\n type=\"limit\",\n amount=10,\n price=0.55,\n)" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Limitless({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Kalshi", @@ -3980,31 +3505,11 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new KalshiDemo({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Probable({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Baozi({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Myriad({\n apiKey: \"YOUR_API_KEY\",\n walletAddress: \"YOUR_WALLET_ADDRESS\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Opinion({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Metaculus({\n apiToken: \"YOUR_API_TOKEN\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Smarkets", @@ -4015,40 +3520,10 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUS({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new SuiBets();\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Rain({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst result = await exchange.buildOrder({\n marketId: \"12345\",\n outcomeId: \"67890\",\n side: \"buy\",\n type: \"limit\",\n amount: 10,\n price: 0.55,\n});" } ] } @@ -4059,7 +3534,22 @@ "operationId": "submitOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -4127,11 +3617,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Polymarket(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n signature_type=\"gnosis-safe\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Limitless(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Kalshi", @@ -4142,31 +3627,11 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.KalshiDemo(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Probable(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Baozi(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Myriad(\n api_key=\"YOUR_API_KEY\",\n wallet_address=\"YOUR_WALLET_ADDRESS\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Opinion(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n proxy_address=\"YOUR_PROXY_ADDRESS\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Metaculus(\n api_token=\"YOUR_API_TOKEN\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Smarkets", @@ -4177,51 +3642,16 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUS(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.SuiBets()\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Rain(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nbuilt = exchange.build_order(market_id=\"12345\", side=\"buy\", type=\"limit\", amount=10, price=0.55)\nresult = exchange.submit_order(built)" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Limitless({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Kalshi", @@ -4232,31 +3662,11 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new KalshiDemo({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Probable({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Baozi({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Myriad({\n apiKey: \"YOUR_API_KEY\",\n walletAddress: \"YOUR_WALLET_ADDRESS\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Opinion({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Metaculus({\n apiToken: \"YOUR_API_TOKEN\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Smarkets", @@ -4267,40 +3677,10 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUS({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new SuiBets();\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Rain({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst built = await exchange.buildOrder({ marketId: \"12345\", side: \"buy\", type: \"limit\", amount: 10, price: 0.55 });\nconst result = await exchange.submitOrder(built);" } ] } @@ -4311,7 +3691,25 @@ "operationId": "cancelOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "opinion", + "metaculus", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -4399,16 +3797,6 @@ "label": "Probable", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Probable(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n passphrase=\"YOUR_PASSPHRASE\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Baozi(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Myriad(\n api_key=\"YOUR_API_KEY\",\n wallet_address=\"YOUR_WALLET_ADDRESS\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Opinion", @@ -4429,45 +3817,15 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.PolymarketUS(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hyperliquid(\n api_key=\"YOUR_API_KEY\",\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.GeminiTitan(\n api_key=\"YOUR_API_KEY\",\n api_secret=\"YOUR_API_SECRET\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.SuiBets()\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Rain(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" }, { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Hunch(\n private_key=\"YOUR_PRIVATE_KEY\",\n)\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Mock()\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# Runs locally — never proxied through PMXT servers\nexchange = pmxt.Router()\nresult = exchange.cancel_order(order_id=\"ord-001\")" - }, - { - "lang": "javascript", - "label": "Polymarket", - "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" + "lang": "javascript", + "label": "Polymarket", + "source": "import { Polymarket } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Polymarket({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n proxyAddress: \"YOUR_PROXY_ADDRESS\",\n signatureType: \"gnosis-safe\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" }, { "lang": "javascript", @@ -4489,16 +3847,6 @@ "label": "Probable", "source": "import { Probable } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Probable({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n passphrase: \"YOUR_PASSPHRASE\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Baozi({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Myriad({\n apiKey: \"YOUR_API_KEY\",\n walletAddress: \"YOUR_WALLET_ADDRESS\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Opinion", @@ -4519,40 +3867,10 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new PolymarketUS({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hyperliquid({\n apiKey: \"YOUR_API_KEY\",\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new GeminiTitan({\n apiKey: \"YOUR_API_KEY\",\n apiSecret: \"YOUR_API_SECRET\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new SuiBets();\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Rain({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Hunch({\n privateKey: \"YOUR_PRIVATE_KEY\",\n});\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Mock();\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// Runs locally — never proxied through PMXT servers\nconst exchange = new Router();\nconst result = await exchange.cancelOrder({ orderId: \"ord-001\" });" } ] } @@ -4563,7 +3881,24 @@ "operationId": "fetchOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "probable", + "baozi", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -4606,11 +3941,6 @@ "label": "Polymarket", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Limitless", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Limitless(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Kalshi", @@ -4631,21 +3961,11 @@ "label": "Baozi", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Smarkets", @@ -4656,51 +3976,16 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_order(order_id=\"ord-001\")" - }, { "lang": "javascript", "label": "Polymarket", "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Kalshi", @@ -4721,21 +4006,11 @@ "label": "Baozi", "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -4746,40 +4021,10 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOrder({ orderId: \"ord-001\" });" } ] } @@ -4790,7 +4035,26 @@ "operationId": "fetchOpenOrders", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -4871,11 +4135,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, { "lang": "python", "label": "Smarkets", @@ -4886,41 +4145,11 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_open_orders(market_id=\"12345\")" - }, { "lang": "javascript", "label": "Polymarket", @@ -4961,11 +4190,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -4976,40 +4200,10 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchOpenOrders({ marketId: \"12345\" });" } ] } @@ -5020,7 +4214,25 @@ "operationId": "fetchMyTrades", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5133,11 +4345,6 @@ "label": "Probable", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Myriad", @@ -5148,11 +4355,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Smarkets", @@ -5163,41 +4365,11 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Rain", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_my_trades(\n outcome_id=\"67890\",\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -5223,11 +4395,6 @@ "label": "Probable", "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Myriad", @@ -5238,11 +4405,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Smarkets", @@ -5253,40 +4415,10 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Rain", "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchMyTrades({\n outcomeId: \"67890\",\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" } ] } @@ -5297,7 +4429,21 @@ "operationId": "fetchClosedOrders", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "kalshi", + "kalshi-demo", + "limitless", + "opinion", + "smarkets", + "rain" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5376,11 +4522,6 @@ }, "security": [], "x-codeSamples": [ - { - "lang": "python", - "label": "Polymarket", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Limitless", @@ -5396,165 +4537,50 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Smarkets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "PolymarketUS", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "javascript", - "label": "Polymarket", - "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Limitless", - "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Kalshi", - "source": "import { Kalshi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Kalshi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "KalshiDemo", - "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Smarkets", - "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "PolymarketUS", - "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "lang": "python", + "label": "Smarkets", + "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "lang": "python", + "label": "Rain", + "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_closed_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, { "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Limitless", + "source": "import { Limitless } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Limitless({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Kalshi", + "source": "import { Kalshi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Kalshi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "KalshiDemo", + "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Opinion", + "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Smarkets", + "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, { "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" + "label": "Rain", + "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchClosedOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" } ] } @@ -5565,7 +4591,20 @@ "operationId": "fetchAllOrders", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "kalshi", + "kalshi-demo", + "limitless", + "opinion", + "smarkets" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5644,11 +4683,6 @@ }, "security": [], "x-codeSamples": [ - { - "lang": "python", - "label": "Polymarket", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Polymarket(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Limitless", @@ -5664,81 +4698,16 @@ "label": "KalshiDemo", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.KalshiDemo(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Probable", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Probable(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Baozi", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Baozi(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Myriad", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, { "lang": "python", "label": "Smarkets", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Smarkets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" }, - { - "lang": "python", - "label": "PolymarketUS", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Rain", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Rain(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Hunch", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_all_orders(\n market_id=\"12345\",\n since=\"value\",\n until=\"value\",\n limit=10,\n cursor=\"abc123\",\n)" - }, - { - "lang": "javascript", - "label": "Polymarket", - "source": "import { Polymarket } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Polymarket({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Limitless", @@ -5754,75 +4723,15 @@ "label": "KalshiDemo", "source": "import { KalshiDemo } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new KalshiDemo({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Probable", - "source": "import { Probable } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Probable({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Baozi", - "source": "import { Baozi } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Baozi({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Myriad", - "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, { "lang": "javascript", "label": "Smarkets", "source": "import { Smarkets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Smarkets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "PolymarketUS", - "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Rain", - "source": "import { Rain } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Rain({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Hunch", - "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchAllOrders({\n marketId: \"12345\",\n since: \"value\",\n until: \"value\",\n limit: 10,\n cursor: \"abc123\",\n});" } ] } @@ -5833,7 +4742,28 @@ "operationId": "fetchPositions", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion", + "smarkets", + "polymarket_us", + "suibets", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5914,11 +4844,6 @@ "label": "Opinion", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, { "lang": "python", "label": "Smarkets", @@ -5929,16 +4854,6 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, { "lang": "python", "label": "SuiBets", @@ -5954,16 +4869,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_positions(address=\"0xabc...\")" - }, { "lang": "javascript", "label": "Polymarket", @@ -6004,11 +4909,6 @@ "label": "Opinion", "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -6019,16 +4919,6 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "SuiBets", @@ -6043,16 +4933,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchPositions({ address: \"0xabc...\" });" } ] } @@ -6063,7 +4943,26 @@ "operationId": "fetchBalance", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "smarkets", + "polymarket_us", + "rain", + "hunch" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -6139,16 +5038,6 @@ "label": "Myriad", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Myriad(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Opinion", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Opinion(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "Metaculus", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Metaculus(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, { "lang": "python", "label": "Smarkets", @@ -6159,21 +5048,6 @@ "label": "PolymarketUS", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.PolymarketUS(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Hyperliquid", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hyperliquid(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "GeminiTitan", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.GeminiTitan(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "SuiBets", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.SuiBets(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, { "lang": "python", "label": "Rain", @@ -6184,16 +5058,6 @@ "label": "Hunch", "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Hunch(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" }, - { - "lang": "python", - "label": "Mock", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Mock(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, - { - "lang": "python", - "label": "Router", - "source": "import pmxt\n\n# API key optional — enables faster catalog-backed lookups\nexchange = pmxt.Router(\n pmxt_api_key=\"YOUR_PMXT_API_KEY\",\n)\nresult = exchange.fetch_balance(address=\"0xabc...\")" - }, { "lang": "javascript", "label": "Polymarket", @@ -6229,16 +5093,6 @@ "label": "Myriad", "source": "import { Myriad } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Myriad({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Opinion", - "source": "import { Opinion } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Opinion({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Metaculus", - "source": "import { Metaculus } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Metaculus({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "Smarkets", @@ -6249,21 +5103,6 @@ "label": "PolymarketUS", "source": "import { PolymarketUS } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new PolymarketUS({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" }, - { - "lang": "javascript", - "label": "Hyperliquid", - "source": "import { Hyperliquid } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hyperliquid({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "GeminiTitan", - "source": "import { GeminiTitan } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new GeminiTitan({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "SuiBets", - "source": "import { SuiBets } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new SuiBets({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, { "lang": "javascript", "label": "Rain", @@ -6273,16 +5112,6 @@ "lang": "javascript", "label": "Hunch", "source": "import { Hunch } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Hunch({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Mock", - "source": "import { Mock } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Mock({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" - }, - { - "lang": "javascript", - "label": "Router", - "source": "import { Router } from \"pmxtjs\";\n\n// API key optional — enables faster catalog-backed lookups\nconst exchange = new Router({\n pmxtApiKey: \"YOUR_PMXT_API_KEY\",\n});\nconst result = await exchange.fetchBalance({ address: \"0xabc...\" });" } ] } diff --git a/docs/concepts/venues.mdx b/docs/concepts/venues.mdx index a58f2a1b..9ec7bf3a 100644 --- a/docs/concepts/venues.mdx +++ b/docs/concepts/venues.mdx @@ -7,7 +7,7 @@ description: "Every venue PMXT currently speaks." AUTO-GENERATED from pmxt-core's openapi spec (ExchangeParam enum). Do not edit by hand — run `npm run generate:mintlify` to regenerate. Source: docs/api-reference/openapi.json - pmxt-core version at last sync: 2.51.2 + pmxt-core version at last sync: 2.17.1 */} PMXT currently supports the following venue targets. The **wire key** is diff --git a/docs/llms-full.txt b/docs/llms-full.txt index c18c9ae2..2e402143 100644 --- a/docs/llms-full.txt +++ b/docs/llms-full.txt @@ -4694,7 +4694,7 @@ Batch variant of {@link fetchOrderBook}. Fetches order books for multiple outcom import pmxt # API key optional — enables faster catalog-backed lookups -exchange = pmxt.Router( +exchange = pmxt.Kalshi( pmxt_api_key="YOUR_PMXT_API_KEY", ) result = exchange.fetch_order_books() @@ -4702,10 +4702,10 @@ result = exchange.fetch_order_books() **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // API key optional — enables faster catalog-backed lookups -const exchange = new Router({ +const exchange = new Kalshi({ pmxtApiKey: "YOUR_PMXT_API_KEY", }); const result = await exchange.fetchOrderBooks(); @@ -4732,7 +4732,7 @@ Fetch raw trade history for a specific outcome. import pmxt # API key optional — enables faster catalog-backed lookups -exchange = pmxt.Router( +exchange = pmxt.Kalshi( pmxt_api_key="YOUR_PMXT_API_KEY", ) result = exchange.fetch_trades( @@ -4745,10 +4745,10 @@ result = exchange.fetch_trades( **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // API key optional — enables faster catalog-backed lookups -const exchange = new Router({ +const exchange = new Kalshi({ pmxtApiKey: "YOUR_PMXT_API_KEY", }); const result = await exchange.fetchTrades({