diff --git a/core/api-doc-config.generated.json b/core/api-doc-config.generated.json index 3e176c67..7c9c434b 100644 --- a/core/api-doc-config.generated.json +++ b/core/api-doc-config.generated.json @@ -1,5 +1,5 @@ { - "_generated": "Auto-generated by extract-jsdoc.js on 2026-06-02T00:34:44.916Z. Do not edit manually.", + "_generated": "Auto-generated by extract-jsdoc.js on 2026-06-05T14:28:43.718Z. Do not edit manually.", "methods": { "has": { "summary": "HTTP verb for the endpoint (e.g. GET, POST). */", @@ -566,7 +566,7 @@ "type": "UnifiedEvent[]", "description": "Filtered array of events" }, - "source": "BaseExchange.ts:1317" + "source": "BaseExchange.ts:1318" }, "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:1413" + "source": "BaseExchange.ts:1414" }, "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:1426" + "source": "BaseExchange.ts:1427" }, "unwatchOrderBook": { "summary": "Unsubscribe from a previously watched order book stream.", @@ -641,7 +641,7 @@ "type": "void", "description": "Result" }, - "source": "BaseExchange.ts:1454" + "source": "BaseExchange.ts:1455" }, "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:1467" + "source": "BaseExchange.ts:1468" }, "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:1481" + "source": "BaseExchange.ts:1482" }, "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:1494" + "source": "BaseExchange.ts:1495" }, "close": { "summary": "Close all WebSocket connections and clean up resources.", @@ -726,7 +726,7 @@ "type": "void", "description": "Result" }, - "source": "BaseExchange.ts:1503" + "source": "BaseExchange.ts:1504" }, "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:1517" + "source": "BaseExchange.ts:1518" }, "fetchMatches": { "summary": "fetchMatches", @@ -760,7 +760,7 @@ "type": "MatchResult[]", "description": "Result" }, - "source": "BaseExchange.ts:1533" + "source": "BaseExchange.ts:1534" }, "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:1541" + "source": "BaseExchange.ts:1542" }, "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:1557" + "source": "BaseExchange.ts:1558" }, "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:1567" + "source": "BaseExchange.ts:1568" }, "fetchMatchedMarkets": { "summary": "fetchMatchedMarkets", @@ -828,7 +828,7 @@ "type": "MatchedMarketPair[]", "description": "Result" }, - "source": "BaseExchange.ts:1578" + "source": "BaseExchange.ts:1579" }, "fetchMatchedPrices": { "summary": "fetchMatchedPrices", @@ -845,7 +845,7 @@ "type": "MatchedPricePair[]", "description": "Array of matched market pairs with prices from each venue" }, - "source": "BaseExchange.ts:1586" + "source": "BaseExchange.ts:1587" }, "fetchHedges": { "summary": "fetchHedges", @@ -862,7 +862,7 @@ "type": "PriceComparison[]", "description": "Array of subset/superset matches with live prices" }, - "source": "BaseExchange.ts:1597" + "source": "BaseExchange.ts:1598" }, "fetchArbitrage": { "summary": "fetchArbitrage", @@ -879,7 +879,7 @@ "type": "ArbitrageOpportunity[]", "description": "Array of arbitrage opportunities sorted by spread" }, - "source": "BaseExchange.ts:1607" + "source": "BaseExchange.ts:1608" }, "watchPrices": { "summary": "Watch AMM price updates for a market address (Limitless only).", diff --git a/docs/api-reference/fetch-order-book.mdx b/docs/api-reference/fetch-order-book.mdx index 1aea6e43..55b0cb4d 100644 --- a/docs/api-reference/fetch-order-book.mdx +++ b/docs/api-reference/fetch-order-book.mdx @@ -7,7 +7,11 @@ openapi: GET /api/{exchange}/fetchOrderBook ### Live order book -Fetch the current L2 order book for an outcome. If you already have an outcome token ID, pass it directly: +Fetch the current L2 order book for an outcome from the exchange's live order book endpoint. For Polymarket this is a live CLOB call: pass the outcome token ID directly and omit historical params. + + +`poly.fetch_order_book(token_id)` without `params.since` or `params.until` is live-only. It does not read PMXT Archive data and may fail for closed, resolved, or otherwise inactive Polymarket markets with an error such as `No orderbook exists`. + ```python Python @@ -28,15 +32,15 @@ console.log(`${book.bids.length} bids, ${book.asks.length} asks`); ```bash curl curl "https://api.pmxt.dev/api/polymarket/fetchOrderBook?outcomeId=104932610032177696635191871147557737718087870958469629338467406422339967452218" \ - -H "Authorization: Bearer $PMXT_API_KEY" + -H "Authorization: Bearer ***" ``` ### Historical snapshot -Get the order book at a specific point in time. Pass `since` as a Unix timestamp in milliseconds — returns the nearest snapshot at or before that time. +Get the order book at a specific point in time by passing `since` as a Unix timestamp in milliseconds. Historical Polymarket queries are served from the PMXT Archive and return the nearest reconstructed snapshot at or before that time. -For binary markets, you can pass the market ID and choose the side with `params.outcome`. Use `"yes"` or `"no"` instead of copying the long outcome token ID: +For binary markets, you can pass the Polymarket condition ID as the first argument and choose the side with `params.outcome`. Use `"yes"` or `"no"` instead of copying the long outcome token ID. ```python Python @@ -44,12 +48,9 @@ import pmxt poly = pmxt.Polymarket(pmxt_api_key="pmxt_...") -market = poly.fetch_market( - slug="will-spacex-starship-flight-test-12-launch-by-may-22-354-721" -) - +# Historical lookup against PMXT Archive, not the live CLOB. book = poly.fetch_order_book( - market.market_id, + "0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", params={"since": 1779487200000, "outcome": "yes"}, ) @@ -63,12 +64,9 @@ import { Polymarket } from "pmxtjs"; const poly = new Polymarket({ pmxtApiKey: "pmxt_..." }); -const market = await poly.fetchMarket({ - slug: "will-spacex-starship-flight-test-12-launch-by-may-22-354-721", -}); - +// Historical lookup against PMXT Archive, not the live CLOB. const book = await poly.fetchOrderBook( - market.marketId, + "0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", undefined, { since: 1779487200000, outcome: "yes" } ); @@ -79,9 +77,51 @@ console.log(` best ask: ${Math.min(...book.asks.map((a) => a.price)).toFixed(3) ```bash curl curl -X POST "https://api.pmxt.dev/api/polymarket/fetchOrderBook" \ - -H "Authorization: Bearer $PMXT_API_KEY" \ + -H "Authorization: Bearer ***" \ + -H "Content-Type: application/json" \ + -d '{"args":["0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", null, {"since": 1779487200000, "outcome": "yes"}]}' +``` + + +### Historical crypto 5m events + +Polymarket crypto 5-minute slugs such as `btc-updown-5m-1779481500` are event slugs. Use `fetch_event(slug=...)`, then select the nested market you want. Do not use `fetch_market(slug=...)` for these event-level slugs. + + +```python Python +import pmxt + +poly = pmxt.Polymarket(pmxt_api_key="pmxt_...") +event = poly.fetch_event(slug="btc-updown-5m-1779481500") +market = event.markets[0] + +book = poly.fetch_order_book( + market.market_id, + params={"since": 1779487200000, "outcome": "yes"}, +) +print(f"{market.title}: {book.dt}") +``` + +```javascript JavaScript +import { Polymarket } from "pmxtjs"; + +const poly = new Polymarket({ pmxtApiKey: "pmxt_..." }); +const event = await poly.fetchEvent({ slug: "btc-updown-5m-1779481500" }); +const market = event.markets[0]; + +const book = await poly.fetchOrderBook( + market.marketId, + undefined, + { since: 1779487200000, outcome: "yes" } +); +console.log(`${market.title}: ${book.datetime}`); +``` + +```bash curl +curl -X POST "https://api.pmxt.dev/api/polymarket/fetchEvent" \ + -H "Authorization: Bearer ***" \ -H "Content-Type: application/json" \ - -d '{"args":["61b0ed20-7f42-41fd-af15-7b86153f6bb7", null, {"since": 1779487200000, "outcome": "yes"}]}' + -d '{"kwargs":{"slug":"btc-updown-5m-1779481500"}}' ``` @@ -89,17 +129,15 @@ curl -X POST "https://api.pmxt.dev/api/polymarket/fetchOrderBook" \ Pass both `since` and `until` to get an array of fully reconstructed L2 order book snapshots. Each snapshot is a complete book at that moment in time — not deltas. -Default 100 snapshots per request, max 1000. +The API returns up to `limit` snapshots from the PMXT Archive. Defaults to 100 snapshots per request, max 1000. For raw bulk downloads, use the Parquet files in the [PMXT Archive](https://archive.pmxt.dev) instead of trying to stream bulk data through the live order book endpoint. ```python Python import pmxt poly = pmxt.Polymarket(pmxt_api_key="pmxt_...") - -market = poly.fetch_market( - slug="will-spacex-starship-flight-test-12-launch-by-may-22-354-721" -) +event = poly.fetch_event(slug="btc-updown-5m-1779481500") +market = event.markets[0] books = poly.fetch_order_book( market.market_id, @@ -107,6 +145,7 @@ books = poly.fetch_order_book( "since": 1779480000000, "until": 1779487200000, "outcome": "yes", + "limit": 100, } ) print(f"{len(books)} snapshots") @@ -118,15 +157,13 @@ for ob in books[:3]: import { Polymarket } from "pmxtjs"; const poly = new Polymarket({ pmxtApiKey: "pmxt_..." }); - -const market = await poly.fetchMarket({ - slug: "will-spacex-starship-flight-test-12-launch-by-may-22-354-721", -}); +const event = await poly.fetchEvent({ slug: "btc-updown-5m-1779481500" }); +const market = event.markets[0]; const books = await poly.fetchOrderBook( market.marketId, undefined, - { since: 1779480000000, until: 1779487200000, outcome: "yes" } + { since: 1779480000000, until: 1779487200000, outcome: "yes", limit: 100 } ); console.log(`${books.length} snapshots`); books.slice(0, 3).forEach((ob) => @@ -136,12 +173,12 @@ books.slice(0, 3).forEach((ob) => ```bash curl curl -X POST "https://api.pmxt.dev/api/polymarket/fetchOrderBook" \ - -H "Authorization: Bearer $PMXT_API_KEY" \ + -H "Authorization: Bearer ***" \ -H "Content-Type: application/json" \ - -d '{"args":["61b0ed20-7f42-41fd-af15-7b86153f6bb7", null, {"since": 1779480000000, "until": 1779487200000, "outcome": "yes"}]}' + -d '{"args":["0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", null, {"since": 1779480000000, "until": 1779487200000, "outcome": "yes", "limit": 100}]}' ``` -Historical order book data is backed by the [PMXT Archive](https://archive.pmxt.dev) — the same tick-level data available as Parquet files, but queryable directly from the API without downloading or parsing files. Supports Polymarket, Kalshi, Limitless, and Opinion. +Historical order book data is backed by the [PMXT Archive](https://archive.pmxt.dev) — the same tick-level data available as Parquet files, but queryable directly from the API without downloading or parsing files. Historical `fetchOrderBook` supports Polymarket, Kalshi, Limitless, and Opinion. diff --git a/docs/api-reference/openapi.json b/docs/api-reference/openapi.json index 7d9c5d20..d4a3c329 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.48.6" + "version": "2.17.1" }, "servers": [ { @@ -274,7 +274,28 @@ "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", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -489,26 +510,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_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)" }, - { - "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)" - }, - { - "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)" - }, { "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_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)" }, - { - "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)" - }, { "lang": "python", "label": "Router", @@ -569,26 +575,11 @@ "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});" }, - { - "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});" - }, - { - "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});" - }, { "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.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});" }, - { - "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});" - }, { "lang": "javascript", "label": "Router", @@ -1055,7 +1046,28 @@ "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", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -1286,26 +1298,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_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)" }, - { - "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)" - }, - { - "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)" - }, { "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_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)" }, - { - "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)" - }, { "lang": "python", "label": "Router", @@ -1366,26 +1363,11 @@ "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});" }, - { - "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});" - }, - { - "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});" - }, { "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.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});" }, - { - "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});" - }, { "lang": "javascript", "label": "Router", @@ -1400,7 +1382,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": { @@ -1438,11 +1434,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", @@ -1453,61 +1444,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": "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", @@ -1518,11 +1464,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", @@ -1533,61 +1474,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": "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", @@ -2270,7 +2166,23 @@ "operationId": "fetchOHLCV", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "opinion" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -2389,46 +2301,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": "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", @@ -2468,46 +2340,6 @@ "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.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": "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});" } ] } @@ -2518,7 +2350,27 @@ "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", + "router" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -2644,11 +2496,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_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": "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", @@ -2659,26 +2506,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_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", "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_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", @@ -2724,11 +2556,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", @@ -2741,23 +2568,8 @@ }, { "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", - "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.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});" + "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.fetchOrderBook({\n outcomeId: \"67890\",\n limit: 10,\n side: \"yes\",\n outcome: \"value\",\n since: 1,\n until: 1,\n});" }, { "lang": "javascript", @@ -2773,7 +2585,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": { @@ -2840,11 +2663,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", @@ -2855,76 +2673,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": "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", @@ -2934,66 +2687,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": "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();" } ] } @@ -3004,7 +2697,23 @@ "operationId": "fetchTrades", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "limitless", + "probable", + "baozi", + "myriad", + "smarkets" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -3109,51 +2818,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": "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", @@ -3189,50 +2858,10 @@ "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": "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});" } ] } @@ -3243,7 +2872,26 @@ "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" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3361,31 +3009,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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\n)" - }, { "lang": "javascript", "label": "Polymarket", @@ -3440,31 +3063,6 @@ "lang": "javascript", "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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\n});" } ] } @@ -3475,7 +3073,21 @@ "operationId": "buildOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "smarkets", + "polymarket_us" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3543,11 +3155,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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\n)" - }, { "lang": "python", "label": "Kalshi", @@ -3558,31 +3165,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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\n)" - }, { "lang": "python", "label": "Smarkets", @@ -3593,41 +3180,11 @@ "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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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=\"market\",\n amount=10,\n price=0.55,\n fee=1,\n tick_size=1,\n neg_risk=True,\n on_behalf_of=1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\n});" - }, { "lang": "javascript", "label": "Kalshi", @@ -3638,31 +3195,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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\n});" - }, { "lang": "javascript", "label": "Smarkets", @@ -3672,31 +3209,6 @@ "lang": "javascript", "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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\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: \"market\",\n amount: 10,\n price: 0.55,\n fee: 1,\n tickSize: 1,\n negRisk: true,\n onBehalfOf: 1,\n});" } ] } @@ -3707,7 +3219,21 @@ "operationId": "submitOrder", "parameters": [ { - "$ref": "#/components/parameters/ExchangeParam" + "in": "path", + "name": "exchange", + "schema": { + "type": "string", + "enum": [ + "polymarket", + "kalshi", + "kalshi-demo", + "opinion", + "smarkets", + "polymarket_us" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -3775,11 +3301,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", @@ -3790,31 +3311,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", @@ -3825,41 +3326,11 @@ "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": "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", @@ -3870,31 +3341,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", @@ -3904,31 +3355,6 @@ "lang": "javascript", "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": "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);" } ] } @@ -3939,7 +3365,24 @@ "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" + ] + }, + "required": true, + "description": "The prediction market exchange to target." } ], "requestBody": { @@ -4027,16 +3470,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", @@ -4057,31 +3490,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.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": "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", @@ -4107,16 +3515,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", @@ -4136,31 +3534,6 @@ "lang": "javascript", "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": "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\" });" } ] } @@ -4171,7 +3544,23 @@ "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" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -4214,11 +3603,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", @@ -4239,21 +3623,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", @@ -4264,41 +3638,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_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": "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", @@ -4319,21 +3663,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", @@ -4343,31 +3677,6 @@ "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.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": "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\" });" } ] } @@ -4378,7 +3687,25 @@ "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" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -4459,11 +3786,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", @@ -4474,31 +3796,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_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": "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", @@ -4539,11 +3836,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", @@ -4553,31 +3845,6 @@ "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.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": "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\" });" } ] } @@ -4588,7 +3855,24 @@ "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" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -4701,11 +3985,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", @@ -4716,11 +3995,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", @@ -4731,31 +4005,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_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": "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", @@ -4781,11 +4030,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", @@ -4796,11 +4040,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", @@ -4810,31 +4049,6 @@ "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.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": "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});" } ] } @@ -4845,7 +4059,20 @@ "operationId": "fetchClosedOrders", "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", @@ -4924,11 +4151,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", @@ -4946,68 +4168,13 @@ }, { "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": "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)" + "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": "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": "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", @@ -5024,65 +4191,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.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": "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": "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});" - }, - { - "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});" - }, - { - "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});" - }, - { - "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});" } ] } @@ -5093,7 +4210,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", @@ -5172,11 +4302,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", @@ -5192,71 +4317,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": "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", @@ -5272,65 +4342,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": "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});" } ] } @@ -5341,7 +4361,26 @@ "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" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5422,11 +4461,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", @@ -5437,31 +4471,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_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", "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_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", @@ -5502,11 +4516,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", @@ -5517,30 +4526,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.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", "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.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...\" });" } ] } @@ -5551,7 +4540,24 @@ "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" + ] + }, + "required": true, + "description": "The prediction market exchange to target." }, { "in": "query", @@ -5627,16 +4633,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", @@ -5647,31 +4643,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": "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", @@ -5707,16 +4678,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", @@ -5726,31 +4687,6 @@ "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.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": "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 6bdfb369..f8e346ac 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.48.6 + pmxt-core version at last sync: 2.17.1 */} PMXT Hosted currently supports the following venues. The **wire key** is diff --git a/docs/llms-full.txt b/docs/llms-full.txt index 55c492dc..33e0582c 100644 --- a/docs/llms-full.txt +++ b/docs/llms-full.txt @@ -3274,7 +3274,12 @@ Source: https://pmxt.dev/docs/api-reference/fetch-order-book ##### Live order book -Fetch the current L2 order book for an outcome. If you already have an outcome token ID, pass it directly: +Fetch the current L2 order book for an outcome from the exchange's live order book endpoint. For Polymarket this is a live CLOB call: pass the outcome token ID directly and omit historical params. + + +> **Warning:** +`poly.fetch_order_book(token_id)` without `params.since` or `params.until` is live-only. It does not read PMXT Archive data and may fail for closed, resolved, or otherwise inactive Polymarket markets with an error such as `No orderbook exists`. + ```python Python @@ -3295,15 +3300,15 @@ console.log(`${book.bids.length} bids, ${book.asks.length} asks`); ```bash curl curl "https://api.pmxt.dev/api/polymarket/fetchOrderBook?outcomeId=104932610032177696635191871147557737718087870958469629338467406422339967452218" \ - -H "Authorization: Bearer $PMXT_API_KEY" + -H "Authorization: Bearer ***" ``` ##### Historical snapshot -Get the order book at a specific point in time. Pass `since` as a Unix timestamp in milliseconds — returns the nearest snapshot at or before that time. +Get the order book at a specific point in time by passing `since` as a Unix timestamp in milliseconds. Historical Polymarket queries are served from the PMXT Archive and return the nearest reconstructed snapshot at or before that time. -For binary markets, you can pass the market ID and choose the side with `params.outcome`. Use `"yes"` or `"no"` instead of copying the long outcome token ID: +For binary markets, you can pass the Polymarket condition ID as the first argument and choose the side with `params.outcome`. Use `"yes"` or `"no"` instead of copying the long outcome token ID. ```python Python @@ -3311,12 +3316,9 @@ import pmxt poly = pmxt.Polymarket(pmxt_api_key="pmxt_...") -market = poly.fetch_market( -slug="will-spacex-starship-flight-test-12-launch-by-may-22-354-721" -) - +# Historical lookup against PMXT Archive, not the live CLOB. book = poly.fetch_order_book( -market.market_id, +"0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", params={"since": 1779487200000, "outcome": "yes"}, ) @@ -3330,12 +3332,9 @@ import { Polymarket } from "pmxtjs"; const poly = new Polymarket({ pmxtApiKey: "pmxt_..." }); -const market = await poly.fetchMarket({ - slug: "will-spacex-starship-flight-test-12-launch-by-may-22-354-721", -}); - +// Historical lookup against PMXT Archive, not the live CLOB. const book = await poly.fetchOrderBook( - market.marketId, + "0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", undefined, { since: 1779487200000, outcome: "yes" } ); @@ -3346,9 +3345,51 @@ console.log(` best ask: ${Math.min(...book.asks.map((a) => a.price)).toFixed(3) ```bash curl curl -X POST "https://api.pmxt.dev/api/polymarket/fetchOrderBook" \ - -H "Authorization: Bearer $PMXT_API_KEY" \ + -H "Authorization: Bearer ***" \ -H "Content-Type: application/json" \ - -d '{"args":["61b0ed20-7f42-41fd-af15-7b86153f6bb7", null, {"since": 1779487200000, "outcome": "yes"}]}' + -d '{"args":["0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", null, {"since": 1779487200000, "outcome": "yes"}]}' +``` + + +##### Historical crypto 5m events + +Polymarket crypto 5-minute slugs such as `btc-updown-5m-1779481500` are event slugs. Use `fetch_event(slug=...)`, then select the nested market you want. Do not use `fetch_market(slug=...)` for these event-level slugs. + + +```python Python +import pmxt + +poly = pmxt.Polymarket(pmxt_api_key="pmxt_...") +event = poly.fetch_event(slug="btc-updown-5m-1779481500") +market = event.markets[0] + +book = poly.fetch_order_book( +market.market_id, +params={"since": 1779487200000, "outcome": "yes"}, +) +print(f"{market.title}: {book.dt}") +``` + +```javascript JavaScript +import { Polymarket } from "pmxtjs"; + +const poly = new Polymarket({ pmxtApiKey: "pmxt_..." }); +const event = await poly.fetchEvent({ slug: "btc-updown-5m-1779481500" }); +const market = event.markets[0]; + +const book = await poly.fetchOrderBook( + market.marketId, + undefined, + { since: 1779487200000, outcome: "yes" } +); +console.log(`${market.title}: ${book.datetime}`); +``` + +```bash curl +curl -X POST "https://api.pmxt.dev/api/polymarket/fetchEvent" \ + -H "Authorization: Bearer ***" \ + -H "Content-Type: application/json" \ + -d '{"kwargs":{"slug":"btc-updown-5m-1779481500"}}' ``` @@ -3356,17 +3397,15 @@ curl -X POST "https://api.pmxt.dev/api/polymarket/fetchOrderBook" \ Pass both `since` and `until` to get an array of fully reconstructed L2 order book snapshots. Each snapshot is a complete book at that moment in time — not deltas. -Default 100 snapshots per request, max 1000. +The API returns up to `limit` snapshots from the PMXT Archive. Defaults to 100 snapshots per request, max 1000. For raw bulk downloads, use the Parquet files in the [PMXT Archive](https://archive.pmxt.dev) instead of trying to stream bulk data through the live order book endpoint. ```python Python import pmxt poly = pmxt.Polymarket(pmxt_api_key="pmxt_...") - -market = poly.fetch_market( -slug="will-spacex-starship-flight-test-12-launch-by-may-22-354-721" -) +event = poly.fetch_event(slug="btc-updown-5m-1779481500") +market = event.markets[0] books = poly.fetch_order_book( market.market_id, @@ -3374,6 +3413,7 @@ params={ "since": 1779480000000, "until": 1779487200000, "outcome": "yes", + "limit": 100, } ) print(f"{len(books)} snapshots") @@ -3385,15 +3425,13 @@ print(f" {ob.dt} bid={ob.bids[0].price} ask={ob.asks[0].price}") import { Polymarket } from "pmxtjs"; const poly = new Polymarket({ pmxtApiKey: "pmxt_..." }); - -const market = await poly.fetchMarket({ - slug: "will-spacex-starship-flight-test-12-launch-by-may-22-354-721", -}); +const event = await poly.fetchEvent({ slug: "btc-updown-5m-1779481500" }); +const market = event.markets[0]; const books = await poly.fetchOrderBook( market.marketId, undefined, - { since: 1779480000000, until: 1779487200000, outcome: "yes" } + { since: 1779480000000, until: 1779487200000, outcome: "yes", limit: 100 } ); console.log(`${books.length} snapshots`); books.slice(0, 3).forEach((ob) => @@ -3403,15 +3441,15 @@ books.slice(0, 3).forEach((ob) => ```bash curl curl -X POST "https://api.pmxt.dev/api/polymarket/fetchOrderBook" \ - -H "Authorization: Bearer $PMXT_API_KEY" \ + -H "Authorization: Bearer ***" \ -H "Content-Type: application/json" \ - -d '{"args":["61b0ed20-7f42-41fd-af15-7b86153f6bb7", null, {"since": 1779480000000, "until": 1779487200000, "outcome": "yes"}]}' + -d '{"args":["0xc704f74e2f9dfae70f770cb253ffadde10768eeab41233098bf5ac67995a94b5", null, {"since": 1779480000000, "until": 1779487200000, "outcome": "yes", "limit": 100}]}' ``` > **Note:** -Historical order book data is backed by the [PMXT Archive](https://archive.pmxt.dev) — the same tick-level data available as Parquet files, but queryable directly from the API without downloading or parsing files. Supports Polymarket, Kalshi, Limitless, and Opinion. +Historical order book data is backed by the [PMXT Archive](https://archive.pmxt.dev) — the same tick-level data available as Parquet files, but queryable directly from the API without downloading or parsing files. Historical `fetchOrderBook` supports Polymarket, Kalshi, Limitless, and Opinion. ### Fetch Order Books @@ -3426,7 +3464,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() @@ -3434,10 +3472,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(); @@ -3464,7 +3502,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( @@ -3477,10 +3515,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({ @@ -3601,7 +3639,10 @@ Place a new order on the exchange. import pmxt # Runs locally — never proxied through PMXT servers -exchange = pmxt.Router() +exchange = pmxt.Kalshi( + api_key="YOUR_API_KEY", + private_key="YOUR_PRIVATE_KEY", +) result = exchange.create_order( market_id="12345", outcome_id="67890", @@ -3618,10 +3659,13 @@ result = exchange.create_order( **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // Runs locally — never proxied through PMXT servers -const exchange = new Router(); +const exchange = new Kalshi({ + apiKey: "YOUR_API_KEY", + privateKey: "YOUR_PRIVATE_KEY", +}); const result = await exchange.createOrder({ marketId: "12345", outcomeId: "67890", @@ -3665,7 +3709,10 @@ Build an order payload without submitting it to the exchange. Returns the exchan import pmxt # Runs locally — never proxied through PMXT servers -exchange = pmxt.Router() +exchange = pmxt.Kalshi( + api_key="YOUR_API_KEY", + private_key="YOUR_PRIVATE_KEY", +) result = exchange.build_order( market_id="12345", outcome_id="67890", @@ -3682,10 +3729,13 @@ result = exchange.build_order( **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // Runs locally — never proxied through PMXT servers -const exchange = new Router(); +const exchange = new Kalshi({ + apiKey: "YOUR_API_KEY", + privateKey: "YOUR_PRIVATE_KEY", +}); const result = await exchange.buildOrder({ marketId: "12345", outcomeId: "67890", @@ -3724,17 +3774,23 @@ Submit a pre-built order returned by buildOrder(). import pmxt # Runs locally — never proxied through PMXT servers -exchange = pmxt.Router() +exchange = pmxt.Kalshi( + api_key="YOUR_API_KEY", + private_key="YOUR_PRIVATE_KEY", +) built = exchange.build_order(market_id="12345", side="buy", type="limit", amount=10, price=0.55) result = exchange.submit_order(built) ``` **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // Runs locally — never proxied through PMXT servers -const exchange = new Router(); +const exchange = new Kalshi({ + apiKey: "YOUR_API_KEY", + privateKey: "YOUR_PRIVATE_KEY", +}); const built = await exchange.buildOrder({ marketId: "12345", side: "buy", type: "limit", amount: 10, price: 0.55 }); const result = await exchange.submitOrder(built); ``` @@ -3753,16 +3809,22 @@ Cancel an existing open order. import pmxt # Runs locally — never proxied through PMXT servers -exchange = pmxt.Router() +exchange = pmxt.Kalshi( + api_key="YOUR_API_KEY", + private_key="YOUR_PRIVATE_KEY", +) result = exchange.cancel_order(order_id="ord-001") ``` **TypeScript:** ```typescript -import { Router } from "pmxtjs"; +import { Kalshi } from "pmxtjs"; // Runs locally — never proxied through PMXT servers -const exchange = new Router(); +const exchange = new Kalshi({ + apiKey: "YOUR_API_KEY", + privateKey: "YOUR_PRIVATE_KEY", +}); const result = await exchange.cancelOrder({ orderId: "ord-001" }); ``` @@ -3787,7 +3849,7 @@ Fetch a specific order by ID. 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(order_id="ord-001") @@ -3795,10 +3857,10 @@ result = exchange.fetch_order(order_id="ord-001") **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.fetchOrder({ orderId: "ord-001" }); @@ -3822,7 +3884,7 @@ Fetch all open orders, optionally filtered by market. 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_open_orders(market_id="12345") @@ -3830,10 +3892,10 @@ result = exchange.fetch_open_orders(market_id="12345") **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.fetchOpenOrders({ marketId: "12345" }); @@ -3860,7 +3922,7 @@ const result = await exchange.fetchOpenOrders({ marketId: "12345" }); 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_my_trades( @@ -3875,10 +3937,10 @@ result = exchange.fetch_my_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.fetchMyTrades({ @@ -3911,7 +3973,7 @@ const result = await exchange.fetchMyTrades({ 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_closed_orders( @@ -3925,10 +3987,10 @@ result = exchange.fetch_closed_orders( **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.fetchClosedOrders({ @@ -3960,7 +4022,7 @@ const result = await exchange.fetchClosedOrders({ 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_all_orders( @@ -3974,10 +4036,10 @@ result = exchange.fetch_all_orders( **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.fetchAllOrders({ @@ -4007,7 +4069,7 @@ Fetch current user positions across all markets. 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_positions(address="0xabc...") @@ -4015,10 +4077,10 @@ result = exchange.fetch_positions(address="0xabc...") **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.fetchPositions({ address: "0xabc..." }); @@ -4042,7 +4104,7 @@ Fetch account balances. 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_balance(address="0xabc...") @@ -4050,10 +4112,10 @@ result = exchange.fetch_balance(address="0xabc...") **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.fetchBalance({ address: "0xabc..." }); diff --git a/sdks/python/API_REFERENCE.md b/sdks/python/API_REFERENCE.md index dac681ce..b20f3aa2 100644 --- a/sdks/python/API_REFERENCE.md +++ b/sdks/python/API_REFERENCE.md @@ -1456,7 +1456,7 @@ title: str # The market title (e.g., "Will BTC close above $100k on Dec 31?"). description: str # Long-form market description or resolution criteria. slug: str # URL-friendly slug for the market. outcomes: List[MarketOutcome] # The possible outcomes for this market. -resolution_date: str # When the market is scheduled to resolve. +resolution_date: str # When the market is scheduled to resolve. Optional because some venues do not publish a cutoff for every market (e.g. Opinion categorical children) — emit `undefined` rather than coercing to epoch. volume24h: float # Trading volume over the past 24 hours (USD). volume: float # Total / Lifetime volume liquidity: float # Current market liquidity (USD). diff --git a/sdks/python/pmxt/client.py b/sdks/python/pmxt/client.py index 741a8d92..8f5e67bc 100644 --- a/sdks/python/pmxt/client.py +++ b/sdks/python/pmxt/client.py @@ -2315,6 +2315,12 @@ def _execute_sor_order(self, **kwargs) -> "Order": params = {"marketId": kwargs.get("market_id"), "side": kwargs.get("side", "buy"), "outcome": kwargs.get("outcome"), "shares": kwargs.get("amount", 0)} if kwargs.get("price") is not None: params["price"] = kwargs["price"] + if kwargs.get("tick_size") is not None: + params["tickSize"] = kwargs["tick_size"] + if kwargs.get("neg_risk") is not None: + params["negRisk"] = kwargs["neg_risk"] + if kwargs.get("on_behalf_of") is not None: + params["onBehalfOf"] = kwargs["on_behalf_of"] params = {k: v for k, v in params.items() if v is not None} build_resp = _req.post(f"{host}/api/sor/buildOrder", headers={"Content-Type": "application/json", **self._get_auth_headers()}, json={"args": [params]}, timeout=30) @@ -2353,8 +2359,10 @@ def _execute_sor_order(self, **kwargs) -> "Order": id=data.get("id", order_id), market_id=params.get("marketId", ""), outcome_id="", side=params.get("side", "buy"), type="market", amount=float(data.get("filled_shares", 0)), price=float(data.get("average_price") or 0), - filled=float(data.get("filled_shares", 0)), remaining=0, + filled=float(data.get("filled_shares", 0)), filled_shares=float(data.get("filled_shares", 0)) if data.get("filled_shares") is not None else None, + remaining=0, status=data.get("status", "unknown"), fee=float(data.get("fee_amount", 0)), + fee_rate_bps=float(data.get("fee_rate_bps")) if data.get("fee_rate_bps") is not None else None, timestamp=int(time.time() * 1000), ) @@ -2368,6 +2376,9 @@ def create_order( amount: float, price: Optional[float] = None, fee: Optional[int] = None, + tick_size: Optional[float] = None, + neg_risk: Optional[bool] = None, + on_behalf_of: Optional[int] = None, outcome: Optional[MarketOutcome] = None, ) -> Order: """ @@ -2415,6 +2426,7 @@ def create_order( return self._execute_sor_order( market_id=market_id, outcome_id=outcome_id, side=side, type=order_type, amount=amount, price=price, outcome=outcome, + tick_size=tick_size, neg_risk=neg_risk, on_behalf_of=on_behalf_of, ) raise PmxtError( "Trade execution is not available through the hosted API. " @@ -2450,6 +2462,12 @@ def create_order( params_dict["price"] = price if fee is not None: params_dict["fee"] = fee + if tick_size is not None: + params_dict["tickSize"] = tick_size + if neg_risk is not None: + params_dict["negRisk"] = neg_risk + if on_behalf_of is not None: + params_dict["onBehalfOf"] = on_behalf_of body: Dict[str, Any] = {"args": [params_dict]} @@ -2486,6 +2504,9 @@ def build_order( amount: float, price: Optional[float] = None, fee: Optional[int] = None, + tick_size: Optional[float] = None, + neg_risk: Optional[bool] = None, + on_behalf_of: Optional[int] = None, outcome: Optional[MarketOutcome] = None, ) -> BuiltOrder: """ @@ -2567,6 +2588,12 @@ def build_order( params_dict["price"] = price if fee is not None: params_dict["fee"] = fee + if tick_size is not None: + params_dict["tickSize"] = tick_size + if neg_risk is not None: + params_dict["negRisk"] = neg_risk + if on_behalf_of is not None: + params_dict["onBehalfOf"] = on_behalf_of body: Dict[str, Any] = {"args": [params_dict]} diff --git a/sdks/python/pmxt/models.py b/sdks/python/pmxt/models.py index 8dd12ac6..1b31d68a 100644 --- a/sdks/python/pmxt/models.py +++ b/sdks/python/pmxt/models.py @@ -445,6 +445,9 @@ class Order: filled: float """Amount filled""" + filled_shares: Optional[float] = None + """Amount filled in shares/contracts (if different from USDC-denominated `filled`).""" + remaining: float """Amount remaining""" @@ -457,6 +460,9 @@ class Order: fee: Optional[float] = None """Trading fee""" + fee_rate_bps: Optional[float] = None + """Fee rate in basis points applied to this order (e.g. 100 = 1%).""" + @dataclass class BuiltOrder: @@ -634,11 +640,13 @@ class EventFetchParams(TypedDict, total=False): query: str limit: int offset: int + cursor: str sort: Literal["volume", "liquidity", "newest"] status: Literal["active", "inactive", "closed", "all"] search_in: Literal["title", "description", "both"] event_id: str slug: str + series: str category: str tags: List[str] filter: EventFilterCriteria diff --git a/sdks/typescript/API_REFERENCE.md b/sdks/typescript/API_REFERENCE.md index f8504e0a..ec2f3280 100644 --- a/sdks/typescript/API_REFERENCE.md +++ b/sdks/typescript/API_REFERENCE.md @@ -1456,7 +1456,7 @@ title: string; // The market title (e.g., "Will BTC close above $100k on Dec 31? description: string; // Long-form market description or resolution criteria. slug: string; // URL-friendly slug for the market. outcomes: MarketOutcome[]; // The possible outcomes for this market. -resolutionDate: string; // When the market is scheduled to resolve. +resolutionDate: string; // When the market is scheduled to resolve. Optional because some venues do not publish a cutoff for every market (e.g. Opinion categorical children) — emit `undefined` rather than coercing to epoch. volume24h: number; // Trading volume over the past 24 hours (USD). volume: number; // Total / Lifetime volume liquidity: number; // Current market liquidity (USD). diff --git a/sdks/typescript/pmxt/client.ts b/sdks/typescript/pmxt/client.ts index 64f2032b..013cba06 100644 --- a/sdks/typescript/pmxt/client.ts +++ b/sdks/typescript/pmxt/client.ts @@ -2082,7 +2082,7 @@ export abstract class Exchange { * }); * ``` */ - async createOrder(params: any): Promise { + async createOrder(params: CreateOrderParams & { outcome?: MarketOutcome }): Promise { if (this.isHosted) { if (this.exchangeName === 'sor' && this.privateKey) { return this._executeSorOrder(params); diff --git a/sdks/typescript/pmxt/models.ts b/sdks/typescript/pmxt/models.ts index 8d412f2a..9cb8448d 100644 --- a/sdks/typescript/pmxt/models.ts +++ b/sdks/typescript/pmxt/models.ts @@ -301,6 +301,9 @@ export interface Order { /** Amount filled */ filled: number; + /** Amount filled in shares/contracts (if different from USDC-denominated `filled`). */ + filledShares?: number; + /** Amount remaining */ remaining: number; @@ -312,6 +315,9 @@ export interface Order { /** Trading fee */ fee?: number; + + /** Fee rate in basis points applied to this order (e.g. 100 = 1%). */ + feeRateBps?: number; } /** @@ -437,6 +443,9 @@ export interface EventFetchParams { /** Pagination offset */ offset?: number; + /** Opaque venue pagination cursor, where supported. */ + cursor?: string; + /** Sort order */ sort?: SortOption; @@ -452,6 +461,9 @@ export interface EventFetchParams { /** Lookup by event slug */ slug?: string; + /** Filter events by their parent series. Accepts the venue-native series id / ticker / slug. */ + series?: string; + /** Filter by event category (e.g. "sports", "politics", "crypto") */ category?: string; @@ -503,6 +515,15 @@ export interface CreateOrderParams { /** Optional fee rate (e.g., 1000 for 0.1%) */ fee?: number; + + /** Optional override for Limitless/Polymarket */ + tickSize?: number; + + /** Optional override to skip neg-risk lookup (Polymarket) */ + negRisk?: boolean; + + /** Limitless delegated signing: profile ID to trade on behalf of */ + onBehalfOf?: number; } /** Alias matching the core MarketFetchParams name. */ diff --git a/sdks/typescript/pmxt/ws-client.ts b/sdks/typescript/pmxt/ws-client.ts index 07943854..174e0b31 100644 --- a/sdks/typescript/pmxt/ws-client.ts +++ b/sdks/typescript/pmxt/ws-client.ts @@ -8,6 +8,7 @@ */ import { PmxtError } from "./errors.js"; +import { logger } from "./logger.js"; const MAX_QUEUED_MESSAGES_PER_SUBSCRIPTION = 100_000; @@ -144,7 +145,7 @@ export class SidecarWsClient { this.dispatch(msg); } catch (err) { // Dispatch bug -- log and continue; don't kill the connection. - console.error('[SidecarWsClient] dispatch error:', err); + logger.error('[SidecarWsClient] dispatch error:', { err }); } }; });