Search Markets
Cross-Venue Search
Search Markets Across Venues
Search markets across Polymarket, Kalshi, Limitless, Opinion, and Predict.fun in a single call
GET
Search Markets
Overview
One request, five venues. Given a search query, returns markets from Polymarket, Kalshi, Limitless, Opinion, and Predict.fun.Venues
| Venue | venue value |
|---|---|
| Polymarket | polymarket |
| Kalshi | kalshi |
| Limitless | limitless |
| Opinion | opinion |
| Predict.fun | predict |
venue=polymarket,kalshi). Order doesn’t matter - polymarket,kalshi and kalshi,polymarket return the same results.
Result Shape
Each row inmarkets[] always includes venue, title, and status. Remaining fields are venue-dependent and null values are omitted:
| Field | Present on |
|---|---|
market_slug | Polymarket, Limitless, Predict.fun |
market_id | Kalshi, Opinion |
condition_id | Polymarket |
predexon_id | All venues |
end_time | All venues except those without close times |
price, volume | All venues (when available) |
Behavior
Round-robin interleaving
Round-robin interleaving
Results are interleaved across venues rather than grouped. If you request
limit=20 across 5 venues, you’ll get roughly 4 per venue, alternating - so the top of the list isn’t monopolized by the highest-volume venue.Per-venue sorting
Per-venue sorting
Within each venue, results are sorted by volume and relevance before interleaving.
Caching
Caching
Responses are cached for 15 seconds per unique
(q, status, venue, limit) tuple.Partial availability
Partial availability
If one venue’s database is unreachable, the endpoint still returns results from the remaining venues. The
venues_searched array reflects which venues were actually queried.Errors
| Status | Reason |
|---|---|
400 | Invalid status or venue value |
422 | q missing or shorter than 3 characters |
Authorizations
Query Parameters
Search query (minimum 3 characters)
Required string length:
3 - 200Market status: open or closed
Comma-separated venue filter (e.g. polymarket,kalshi)
Total results to return
Required range:
1 <= x <= 100Response
Successful Response
