buildOrderBuild an order payload without submitting it to the exchange. Returns the exchange-native signed order or request body for inspection, forwarding through a middleware layer, or deferred submission via submitOrder().Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"marketId": {
"type": "string",
"description": "The market to trade on."
},
"outcomeId": {
"type": "string",
"description": "The outcome to trade."
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
],
"description": "Order side: buy or sell."
},
"type": {
"type": "string",
"enum": [
"market",
"limit"
],
"description": "Order type: market (execute immediately) or limit (resting at a price)."
},
"amount": {
"type": "number",
"description": "Size of the order in contracts/shares."
},
"price": {
"type": "number",
"description": "Required for limit orders"
},
"denom": {
"type": "string",
"enum": [
"usdc",
"shares"
],
"description": "Hosted mode: amount unit."
},
"slippage_pct": {
"type": "number",
"description": "Hosted mode: maximum market-order slippage percentage."
},
"fee": {
"type": "number",
"description": "Optional fee rate (e.g., 1000 for 0.1%)"
},
"builder": {
"type": "string",
"description": "Hyperliquid builder address to attach to the order action."
},
"builderFee": {
"type": "number",
"description": "Hyperliquid builder fee in tenths of a basis point (e.g. 10 = 1 bp)."
},
"tickSize": {
"type": "number",
"description": "Optional override for Limitless/Polymarket"
},
"negRisk": {
"type": "boolean",
"description": "Optional override to skip neg-risk lookup (Polymarket)"
},
"onBehalfOf": {
"type": "number",
"description": "Limitless delegated signing: profile ID to trade on behalf of"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"marketId",
"outcomeId",
"side",
"type",
"amount"
]
}Annotations{
"idempotentHint": true,
"readOnlyHint": false
} | — | WritesIdempotent | — |
cancelOrderCancel an existing open order.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"orderId": {
"type": "string"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"orderId"
]
}Annotations{
"destructiveHint": true
} | — | Destructive | — |
compareMarketPricesCompare 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.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"params": {
"type": "object"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"params"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
createOrderPlace a new order on the exchange.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"marketId": {
"type": "string",
"description": "The market to trade on."
},
"outcomeId": {
"type": "string",
"description": "The outcome to trade."
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
],
"description": "Order side: buy or sell."
},
"type": {
"type": "string",
"enum": [
"market",
"limit"
],
"description": "Order type: market (execute immediately) or limit (resting at a price)."
},
"amount": {
"type": "number",
"description": "Size of the order in contracts/shares."
},
"price": {
"type": "number",
"description": "Required for limit orders"
},
"denom": {
"type": "string",
"enum": [
"usdc",
"shares"
],
"description": "Hosted mode: amount unit."
},
"slippage_pct": {
"type": "number",
"description": "Hosted mode: maximum market-order slippage percentage."
},
"fee": {
"type": "number",
"description": "Optional fee rate (e.g., 1000 for 0.1%)"
},
"builder": {
"type": "string",
"description": "Hyperliquid builder address to attach to the order action."
},
"builderFee": {
"type": "number",
"description": "Hyperliquid builder fee in tenths of a basis point (e.g. 10 = 1 bp)."
},
"tickSize": {
"type": "number",
"description": "Optional override for Limitless/Polymarket"
},
"negRisk": {
"type": "boolean",
"description": "Optional override to skip neg-risk lookup (Polymarket)"
},
"onBehalfOf": {
"type": "number",
"description": "Limitless delegated signing: profile ID to trade on behalf of"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"marketId",
"outcomeId",
"side",
"type",
"amount"
]
}Annotations{
"destructiveHint": true
} | — | Destructive | — |
fetchAllOrdersFetch authenticated order history across open and closed orders.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"marketId": {
"type": "string",
"description": "required for Limitless (slug)"
},
"since": {
"type": "string",
"format": "date-time",
"description": "Only return records after this date"
},
"until": {
"type": "string",
"format": "date-time",
"description": "Only return records before this date"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor from a previous response"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchArbitrageFind Arbitrage OpportunitiesInput schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"minSpread": {
"type": "number"
},
"category": {
"type": "string"
},
"limit": {
"type": "number"
},
"relations": {
"type": "array",
"items": {
"type": "string",
"enum": [
"identity",
"complement",
"subset",
"superset",
"overlap",
"disjoint"
]
},
"description": "Comma-separated relation types to include (default: 'identity')."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchBalanceFetch account balances.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"address": {
"type": "string"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchClosedOrdersFetch authenticated closed orders.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"marketId": {
"type": "string",
"description": "required for Limitless (slug)"
},
"since": {
"type": "string",
"format": "date-time",
"description": "Only return records after this date"
},
"until": {
"type": "string",
"format": "date-time",
"description": "Only return records before this date"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor from a previous response"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchEventFetch a single event by lookup parameters. Convenience wrapper around fetchEvents() that returns a single result or throws EventNotFound.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"description": "Alias for `sourceExchange`."
},
"query": {
"type": "string",
"description": "For keyword search"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"cursor": {
"type": "string",
"description": "Opaque venue pagination cursor, where supported."
},
"offset": {
"type": "number",
"description": "Pagination offset — number of results to skip"
},
"sort": {
"type": "string",
"enum": [
"volume",
"liquidity",
"newest"
],
"description": "Sort order for results"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive",
"closed",
"all"
],
"description": "Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)"
},
"searchIn": {
"type": "string",
"enum": [
"title",
"description",
"both"
],
"description": "Where to search (default: 'title')"
},
"eventId": {
"type": "string",
"description": "Direct lookup by event ID"
},
"slug": {
"type": "string",
"description": "Lookup by event slug"
},
"series": {
"type": "string",
"description": "Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch."
},
"filter": {
"allOf": [
{
"$ref": "#/components/schemas/EventFilterCriteria"
}
],
"description": "Optional client-side filter applied after fetching"
},
"category": {
"type": "string",
"description": "Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi)."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\"."
},
"sourceExchange": {
"type": "string",
"description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchEventMatchesFind the same or related event on other venues. Two modes: **Lookup mode** (eventId/slug provided): Given an event on one venue, discover semantically equivalent events across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched event pairs from the catalog. Supports query and category params for filtering.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"query": {
"type": "string",
"description": "Keyword search across matched event titles."
},
"category": {
"type": "string",
"description": "Filter matches by category."
},
"event": {
"allOf": [
{
"$ref": "#/components/schemas/UnifiedEvent"
}
],
"description": "Pass a UnifiedEvent directly instead of eventId/slug."
},
"eventId": {
"type": "string",
"description": "Lookup a specific event by ID. Omit for browse mode."
},
"slug": {
"type": "string"
},
"relation": {
"type": "string",
"enum": [
"identity",
"complement",
"subset",
"superset",
"overlap",
"disjoint"
]
},
"minConfidence": {
"type": "number"
},
"limit": {
"type": "number"
},
"includePrices": {
"type": "boolean"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchEventMetadataFetch venue-native metadata for a specific event when the exchange exposes a dedicated metadata endpoint. Kalshi implements this for `GET /events/{event_ticker}/metadata`.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"eventTicker": {
"type": "string"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"eventTicker"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchEventsFetch events with optional keyword search. Events group related markets together (e.g., "Who will be Fed Chair?" contains multiple candidate markets).Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"description": "Alias for `sourceExchange`."
},
"query": {
"type": "string",
"description": "For keyword search"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"cursor": {
"type": "string",
"description": "Opaque venue pagination cursor, where supported."
},
"offset": {
"type": "number",
"description": "Pagination offset — number of results to skip"
},
"sort": {
"type": "string",
"enum": [
"volume",
"liquidity",
"newest"
],
"description": "Sort order for results"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive",
"closed",
"all"
],
"description": "Filter by event status (default: 'active', 'inactive' and 'closed' are interchangeable)"
},
"searchIn": {
"type": "string",
"enum": [
"title",
"description",
"both"
],
"description": "Where to search (default: 'title')"
},
"eventId": {
"type": "string",
"description": "Direct lookup by event ID"
},
"slug": {
"type": "string",
"description": "Lookup by event slug"
},
"series": {
"type": "string",
"description": "Filter events by their parent series. Accepts the venue-native series id / ticker / slug (e.g. Kalshi `\"KXATPMATCH\"`, Polymarket `\"wta\"`). Passed through to the vendor where supported, otherwise applied to `sourceMetadata` after fetch."
},
"filter": {
"allOf": [
{
"$ref": "#/components/schemas/EventFilterCriteria"
}
],
"description": "Optional client-side filter applied after fetching"
},
"category": {
"type": "string",
"description": "Filter by category. Each event belongs to a venue-assigned category such as \"Sports\", \"Politics\", \"Crypto\", \"Bitcoin\", \"Soccer\", \"Economic Policy\" (Polymarket) or \"Sports\", \"Mentions\" (Kalshi)."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by tags. Returns events matching ANY of the provided tags. Tags are more specific than categories -- for example a \"Politics\" event might carry tags [\"Politics\", \"Geopolitics\", \"Middle East\", \"Iran\"]. Common tags include \"Crypto\", \"Elections\", \"Fed Rates\", \"FIFA World Cup\", \"Trump\"."
},
"sourceExchange": {
"type": "string",
"description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchEventsPaginatedPaginated variant of {@link fetchEvents}. On the first call (no `cursor`), all events are fetched from the exchange and cached in an in-memory snapshot. A cursor is returned along with the first page. Subsequent calls with that cursor serve additional pages directly from the cached snapshot -- no additional API calls are made. The snapshot is invalidated after `snapshotTTL` ms (configured via `ExchangeOptions` in the constructor). A request using a cursor from an expired snapshot throws `'Cursor has expired'`.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"limit": {
"type": "number"
},
"cursor": {
"type": "string"
},
"filter": {
"$ref": "#/components/schemas/EventFilterCriteria"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchHedgesFind Hedging OpportunitiesInput schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"query": {
"type": "string",
"description": "Keyword search across matched market titles."
},
"category": {
"type": "string",
"description": "Filter matches by category."
},
"market": {
"allOf": [
{
"$ref": "#/components/schemas/UnifiedMarket"
}
],
"description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
},
"marketId": {
"type": "string",
"description": "Lookup a specific market by ID. Omit for browse mode."
},
"slug": {
"type": "string"
},
"url": {
"type": "string"
},
"relation": {
"type": "string",
"enum": [
"identity",
"complement",
"subset",
"superset",
"overlap",
"disjoint"
]
},
"minConfidence": {
"type": "number"
},
"limit": {
"type": "number"
},
"includePrices": {
"type": "boolean"
},
"minDifference": {
"type": "number",
"description": "Minimum price difference between venues. Browse mode only."
},
"sort": {
"type": "string",
"enum": [
"confidence",
"volume",
"priceDifference"
],
"description": "Sort order. Browse mode only."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchMarketFetch a single market by lookup parameters. Convenience wrapper around fetchMarkets() that returns a single result or throws MarketNotFound.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"description": "Alias for `sourceExchange`."
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"offset": {
"type": "number",
"description": "Pagination offset — number of results to skip"
},
"sort": {
"type": "string",
"enum": [
"volume",
"liquidity",
"newest"
],
"description": "Sort order for results"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive",
"closed",
"all"
],
"description": "Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)"
},
"searchIn": {
"type": "string",
"enum": [
"title",
"description",
"both"
],
"description": "Where to search (default: 'title')"
},
"query": {
"type": "string",
"description": "For keyword search"
},
"slug": {
"type": "string",
"description": "For slug/ticker lookup"
},
"marketId": {
"type": "string",
"description": "Direct lookup by market ID"
},
"outcomeId": {
"type": "string",
"description": "Reverse lookup -- find market containing this outcome"
},
"eventId": {
"type": "string",
"description": "Find markets belonging to an event"
},
"page": {
"type": "number",
"description": "For pagination (used by Limitless)"
},
"similarityThreshold": {
"type": "number",
"description": "For semantic search (used by Limitless)"
},
"sourceExchange": {
"type": "string",
"description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchMarketMatchesFind the same or related market on other venues. Two modes: **Lookup mode** (marketId/slug/url provided): Given a market on one venue, discover semantically equivalent markets across every other venue PMXT ingests. **Browse mode** (no identifier): Returns all matched market pairs from the catalog. Supports query, category, minDifference, and sort params for filtering.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"query": {
"type": "string",
"description": "Keyword search across matched market titles."
},
"category": {
"type": "string",
"description": "Filter matches by category."
},
"market": {
"allOf": [
{
"$ref": "#/components/schemas/UnifiedMarket"
}
],
"description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
},
"marketId": {
"type": "string",
"description": "Lookup a specific market by ID. Omit for browse mode."
},
"slug": {
"type": "string"
},
"url": {
"type": "string"
},
"relation": {
"type": "string",
"enum": [
"identity",
"complement",
"subset",
"superset",
"overlap",
"disjoint"
]
},
"minConfidence": {
"type": "number"
},
"limit": {
"type": "number"
},
"includePrices": {
"type": "boolean"
},
"minDifference": {
"type": "number",
"description": "Minimum price difference between venues. Browse mode only."
},
"sort": {
"type": "string",
"enum": [
"confidence",
"volume",
"priceDifference"
],
"description": "Sort order. Browse mode only."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchMarketsFetch markets with optional filtering, search, or slug lookup. Always hits the exchange API — results reflect the live state at the time of the call.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"description": "Alias for `sourceExchange`."
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"offset": {
"type": "number",
"description": "Pagination offset — number of results to skip"
},
"sort": {
"type": "string",
"enum": [
"volume",
"liquidity",
"newest"
],
"description": "Sort order for results"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive",
"closed",
"all"
],
"description": "Filter by market status (default: 'active', 'inactive' and 'closed' are interchangeable)"
},
"searchIn": {
"type": "string",
"enum": [
"title",
"description",
"both"
],
"description": "Where to search (default: 'title')"
},
"query": {
"type": "string",
"description": "For keyword search"
},
"slug": {
"type": "string",
"description": "For slug/ticker lookup"
},
"marketId": {
"type": "string",
"description": "Direct lookup by market ID"
},
"outcomeId": {
"type": "string",
"description": "Reverse lookup -- find market containing this outcome"
},
"eventId": {
"type": "string",
"description": "Find markets belonging to an event"
},
"page": {
"type": "number",
"description": "For pagination (used by Limitless)"
},
"similarityThreshold": {
"type": "number",
"description": "For semantic search (used by Limitless)"
},
"sourceExchange": {
"type": "string",
"description": "Filter by source venue (e.g. 'polymarket', 'kalshi', 'myriad'). `exchange` is an alias."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchMarketsPaginatedFetch markets with cursor-based pagination backed by a stable in-memory snapshot. On the first call (or when no cursor is supplied), fetches all markets once and caches them. Subsequent calls with a cursor returned from a previous call slice directly from the cached snapshot — no additional API calls are made. The snapshot is invalidated after `snapshotTTL` ms (configured via `ExchangeOptions` in the constructor). A request using a cursor from an expired snapshot throws `'Cursor has expired'`.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"limit": {
"type": "number"
},
"cursor": {
"type": "string"
},
"filter": {
"$ref": "#/components/schemas/MarketFilterCriteria"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchMatchedMarketsMatched MarketsInput schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"minDifference": {
"type": "number"
},
"category": {
"type": "string"
},
"limit": {
"type": "number"
},
"relations": {
"type": "array",
"items": {
"type": "string",
"enum": [
"identity",
"complement",
"subset",
"superset",
"overlap",
"disjoint"
]
},
"description": "Comma-separated relation types to include (default: 'identity')."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchMatchedPricesCompare Matched Market PricesInput schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"minDifference": {
"type": "number"
},
"category": {
"type": "string"
},
"limit": {
"type": "number"
},
"relations": {
"type": "array",
"items": {
"type": "string",
"enum": [
"identity",
"complement",
"subset",
"superset",
"overlap",
"disjoint"
]
},
"description": "Comma-separated relation types to include (default: 'identity')."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchMyTradesFetch authenticated user trade history.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"outcomeId": {
"type": "string",
"description": "filter to specific outcome/ticker"
},
"marketId": {
"type": "string",
"description": "filter to specific market"
},
"since": {
"type": "string",
"format": "date-time",
"description": "Only return records after this date"
},
"until": {
"type": "string",
"format": "date-time",
"description": "Only return records before this date"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"cursor": {
"type": "string",
"description": "for Kalshi cursor pagination"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchOHLCVFetch historical OHLCV (candlestick) price data for a specific market outcome.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"outcomeId": {
"type": "string"
},
"resolution": {
"type": "string",
"description": "Required for candle aggregation"
},
"start": {
"type": "string",
"format": "date-time",
"description": "Start of the time range"
},
"end": {
"type": "string",
"format": "date-time",
"description": "End of the time range"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"outcomeId"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchOpenOrdersFetch all open orders, optionally filtered by market.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"marketId": {
"type": "string"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchOrderFetch a specific order by ID.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"orderId": {
"type": "string"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"orderId"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchOrderBookFetch the order book (bids/asks) for a specific outcome. Supports live and historical queries. For historical data, pass `since` to get a single snapshot, or `since` + `until` to get an array of fully reconstructed L2 books from the archive. Range queries return up to `limit` snapshots (default 100, max 1000).Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"outcomeId": {
"type": "string"
},
"limit": {
"type": "number"
},
"side": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "Outcome side: 'yes' or 'no'. Required for exchanges like Limitless where the API returns a single orderbook per market."
},
"outcome": {
"type": "string",
"description": "Outcome alias: 'yes' or 'no', or an outcome token ID. When set, the first argument is treated as a market ID and this value selects which outcome's order book to fetch. Accepts the literal strings 'yes'/'no' (resolved via a market lookup) or a raw outcome token ID."
},
"since": {
"type": "number",
"description": "Unix timestamp (ms) — fetch a historical snapshot at or before this time, or the start of a range when combined with `until` (hosted API only)."
},
"until": {
"type": "number",
"description": "Unix timestamp (ms) — end of a historical range. When combined with `since`, returns an array of reconstructed L2 OrderBook snapshots between `since` and `until` (hosted API only)."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"outcomeId"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchOrderBooksBatch variant of {@link fetchOrderBook}. Fetches order books for multiple outcomes in a single request where the exchange supports it.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"outcomeIds": {},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"outcomeIds"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchPositionsFetch current user positions across all markets.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"address": {
"type": "string"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchRelatedMarketsFind related markets across venues. Discovers subset/superset market relationships where one market's outcome implies another, with live prices.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"query": {
"type": "string",
"description": "Keyword search across matched market titles."
},
"category": {
"type": "string",
"description": "Filter matches by category."
},
"market": {
"allOf": [
{
"$ref": "#/components/schemas/UnifiedMarket"
}
],
"description": "Pass a UnifiedMarket directly instead of marketId/slug/url."
},
"marketId": {
"type": "string",
"description": "Lookup a specific market by ID. Omit for browse mode."
},
"slug": {
"type": "string"
},
"url": {
"type": "string"
},
"relation": {
"type": "string",
"enum": [
"identity",
"complement",
"subset",
"superset",
"overlap",
"disjoint"
]
},
"minConfidence": {
"type": "number"
},
"limit": {
"type": "number"
},
"includePrices": {
"type": "boolean"
},
"minDifference": {
"type": "number",
"description": "Minimum price difference between venues. Browse mode only."
},
"sort": {
"type": "string",
"enum": [
"confidence",
"volume",
"priceDifference"
],
"description": "Sort order. Browse mode only."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchSeriesFetch the recurring series (fourth tier above Event -> Market -> Outcome) that this venue exposes. Returns an empty array on venues without a series concept (Limitless, Smarkets, Probable, Metaculus, Baozi, Hyperliquid, SuiBets, Polymarket US). - `params.id` -> a single matching series with its events populated where supported. - no params -> the full list, typically without nested events for payload size.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
fetchTradesFetch raw trade history for a specific outcome.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"outcomeId": {
"type": "string"
},
"start": {
"type": "string",
"format": "date-time",
"description": "Start of the time range"
},
"end": {
"type": "string",
"format": "date-time",
"description": "End of the time range"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return (max {@link MAX_TRADES_LIMIT})"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"outcomeId"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
getAuthNonceGet a cryptographic nonce for Web3 login.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"walletAddress": {
"type": "string"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"walletAddress"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
getExecutionPriceCalculate the volume-weighted average execution price for a given order size. Returns 0 if the order cannot be fully filled.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"orderBook": {
"type": "object",
"description": "Order book with bids and asks arrays. Each level has price and size.",
"properties": {
"bids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "number"
},
"size": {
"type": "number"
}
}
}
},
"asks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "number"
},
"size": {
"type": "number"
}
}
}
}
}
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
]
},
"amount": {
"type": "number"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"orderBook",
"side",
"amount"
]
}Annotations{
"idempotentHint": true,
"readOnlyHint": false
} | — | WritesIdempotent | — |
getExecutionPriceDetailedCalculate detailed execution price information including partial fill data.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"orderBook": {
"type": "object",
"description": "Order book with bids and asks arrays. Each level has price and size.",
"properties": {
"bids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "number"
},
"size": {
"type": "number"
}
}
}
},
"asks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "number"
},
"size": {
"type": "number"
}
}
}
}
}
},
"side": {
"type": "string",
"enum": [
"buy",
"sell"
]
},
"amount": {
"type": "number"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"orderBook",
"side",
"amount"
]
}Annotations{
"idempotentHint": true,
"readOnlyHint": false
} | — | WritesIdempotent | — |
isSessionActiveCheck if a session is active for the given wallet address.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"walletAddress": {
"type": "string"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"walletAddress"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
loadMarketsLoad and cache all markets from the exchange into `this.markets` and `this.marketsBySlug`. Subsequent calls return the cached result without hitting the API again. This is the correct way to paginate or iterate over markets without drift. Because `fetchMarkets()` always hits the API, repeated calls with different `offset` values may return inconsistent results if the exchange reorders or adds markets between requests. Use `loadMarkets()` once to get a stable snapshot, then paginate over `Object.values(exchange.markets)` locally.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"reload": {
"type": "boolean"
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"idempotentHint": true,
"readOnlyHint": false
} | — | WritesIdempotent | — |
loginWithSignatureLogin with a signed nonce to obtain session credentials.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"walletAddress": {
"type": "string"
},
"signature": {
"type": "string"
},
"nonce": {
"type": "string"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"walletAddress",
"signature",
"nonce"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
logoutLogout and invalidate the current session.Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"walletAddress": {
"type": "string"
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange"
]
}Annotations{
"readOnlyHint": true
} | — | Read only | — |
submitOrderSubmit a pre-built order returned by buildOrder().Input schema{
"type": "object",
"properties": {
"exchange": {
"type": "string",
"enum": [
"polymarket",
"kalshi",
"kalshi-demo",
"limitless",
"probable",
"baozi",
"myriad",
"opinion",
"metaculus",
"smarkets",
"polymarket_us",
"gemini-titan",
"hyperliquid",
"suibets",
"rain",
"hunch",
"mock",
"router"
],
"description": "The prediction market exchange to target."
},
"built": {
"type": "object",
"properties": {
"exchange": {
"type": "string",
"description": "The exchange name this order was built for."
},
"params": {
"allOf": [
{
"$ref": "#/components/schemas/CreateOrderParams"
}
],
"description": "The original params used to build this order."
},
"signedOrder": {
"type": "object",
"additionalProperties": {},
"description": "For CLOB exchanges (Polymarket): the EIP-712 signed order ready to POST to the exchange's order endpoint."
},
"tx": {
"type": "object",
"properties": {
"to": {
"type": "string"
},
"data": {
"type": "string"
},
"value": {
"type": "string"
},
"chainId": {
"type": "number"
}
},
"required": [
"to",
"data",
"value",
"chainId"
],
"description": "For on-chain AMM exchanges: the EVM transaction payload. Reserved for future exchanges; no current exchange populates this."
},
"raw": {
"description": "The raw, exchange-native payload. Always present."
},
"expiry": {
"type": "number",
"description": "Unix epoch (ms) when this built order expires server-side. Submitting after expiry returns BUILT_ORDER_EXPIRED."
}
},
"required": [
"exchange",
"params",
"raw"
],
"description": "The built order object from buildOrder."
},
"credentials": {
"type": "object",
"description": "Venue credentials (privateKey, apiKey, etc.). Only needed for authenticated operations like trading.",
"properties": {
"apiKey": {
"type": "string"
},
"apiSecret": {
"type": "string"
},
"passphrase": {
"type": "string"
},
"apiToken": {
"type": "string"
},
"privateKey": {
"type": "string"
},
"signatureType": {
"type": "string"
},
"funderAddress": {
"type": "string"
}
}
},
"verbose": {
"type": "boolean",
"description": "Return full uncompacted response. Default false returns a compact, agent-friendly summary."
}
},
"required": [
"exchange",
"built"
]
}Annotations{
"destructiveHint": true
} | — | Destructive | — |