market.search

Search for prediction markets matching natural language criteria across Polymarket and Kalshi.


Overview

The market.search tool enables agents to discover prediction markets using conversational queries. MoltMarket translates natural language into platform-specific API calls, normalizes responses, and returns unified market data.

Typical use cases:

  • Finding markets by topic (e.g., "presidential election")

  • Filtering by liquidity thresholds

  • Searching by close date

  • Category-based discovery


Parameters

Parameter
Type
Required
Description

query

string

Yes

Natural language search query

platforms

array

No

Platforms to search: ["polymarket", "kalshi"] or ["all"] (default: all)

min_liquidity

number

No

Minimum market liquidity in USD (default: 0)

max_close_days

number

No

Markets closing within N days (default: unlimited)

categories

array

No

Filter by category: ["politics", "economics", "technology", "sports"]

limit

number

No

Maximum results to return (default: 50, max: 100)


Request Examples

MCP Tool Call (JSON)


Response Format


Response Fields

Market Object

Field
Type
Description

id

string

Platform-specific market identifier

platform

string

"polymarket" or "kalshi"

title

string

Market question or title

description

string

Full market description and resolution criteria

category

string

Market category (politics, economics, etc.)

probability

number

Implied probability (0-1) based on current prices

liquidity

number

Total market liquidity in USD

volume_24h

number

24-hour trading volume in USD

volume_total

number

All-time trading volume in USD

close_date

string

ISO 8601 datetime when market closes

created_at

string

ISO 8601 datetime when market was created

outcomes

array

Possible outcomes (usually ["YES", "NO"])

url

string

Direct link to market on platform

orderbook

object

Current orderbook snapshot

Orderbook Object

Field
Type
Description

best_bid

number

Highest buy price (0-1)

best_ask

number

Lowest sell price (0-1)

spread

number

Difference between best_ask and best_bid

depth.bids

number

Total USD value of buy orders

depth.asks

number

Total USD value of sell orders


Natural Language Patterns

MoltMarket understands various natural language patterns:

By Topic

By Liquidity

By Time

By Category

Combined Filters


Platform Differences

Polymarket

  • Market ID Format: Ethereum address (0x...)

  • Liquidity: Typically higher ($1M-$20M for major markets)

  • Categories: Politics, Economics, Crypto, Sports, Pop Culture

  • Settlement: On-chain via UMA oracle

  • API Rate Limit: Public data unlimited

Kalshi

  • Market ID Format: Alphanumeric string (e.g., PRES-2024)

  • Liquidity: Lower than Polymarket ($100K-$5M)

  • Categories: Regulated events only (politics, economics, climate)

  • Settlement: CFTC-regulated, centralized

  • API Rate Limit: 100 requests/minute


Error Handling

Common Errors

No Markets Found

Platform Unavailable

Rate Limit Exceeded


Performance

Metric
Value

Average Response Time

342ms (p50)

95th Percentile

485ms (p95)

Timeout

5 seconds

Cache Duration

30 seconds (market data)

Parallel Search

Yes (queries Polymarket + Kalshi simultaneously)


Best Practices

  1. Start Broad, Then Filter

  2. Use Liquidity Filters for Trading

  3. Cache Results When Possible

  4. Handle Platform Failures Gracefully



Examples

See Arbitrage Detection for cross-platform search examples.

Last updated