Skip to main content
GET
/
v2
/
markets
/
search
Search Markets
curl --request GET \
  --url https://api.predexon.com/v2/markets/search \
  --header 'x-api-key: <api-key>'
{
  "detail": [
    {
      "loc": [
        "<string>"
      ],
      "msg": "<string>",
      "type": "<string>"
    }
  ]
}

Overview

One request, five venues. Given a search query, returns markets from Polymarket, Kalshi, Limitless, Opinion, and Predict.fun.
Use this when you want broad cross-venue discovery. If you already know a Polymarket, Kalshi, or Limitless identifier and want the equivalent market on the other platforms, use Find Matching Markets instead.

Venues

Venuevenue value
Polymarketpolymarket
Kalshikalshi
Limitlesslimitless
Opinionopinion
Predict.funpredict
Pass a comma-separated list to restrict the search (e.g. venue=polymarket,kalshi). Order doesn’t matter - polymarket,kalshi and kalshi,polymarket return the same results.

Result Shape

Each row in markets[] always includes venue, title, and status. Remaining fields are venue-dependent and null values are omitted:
FieldPresent on
market_slugPolymarket, Limitless, Predict.fun
market_idKalshi, Opinion
condition_idPolymarket
predexon_idAll venues
end_timeAll venues except those without close times
price, volumeAll venues (when available)

Behavior

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.
Within each venue, results are sorted by volume and relevance before interleaving.
Responses are cached for 15 seconds per unique (q, status, venue, limit) tuple.
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

StatusReason
400Invalid status or venue value
422q missing or shorter than 3 characters

Authorizations

x-api-key
string
header
required

Query Parameters

q
string
required

Search query (minimum 3 characters)

Required string length: 3 - 200
status
string | null
default:open

Market status: open or closed

venue
string | null

Comma-separated venue filter (e.g. polymarket,kalshi)

limit
integer
default:20

Total results to return

Required range: 1 <= x <= 100

Response

Successful Response