Skip to main content
GET
/
2
/
pm
/
search
Search Prediction Markets
curl --request GET \
  --url https://pm-api-prod-eu.mobula.io/api/2/pm/search
{
  "data": [
    {}
  ]
}
Alpha — This endpoint is part of the Prediction Markets API, currently in early access. May change without notice.

Query Parameters

input
string
Text search query on market question and description.
filters
string
JSON object with filter criteria. Accepted keys: platforms (comma-separated or array), categories (comma-separated or array), statuses (comma-separated or array), minVolume (number), minLiquidity (number).Example: {"platforms":"polymarket","categories":"crypto,politics","statuses":"active","minVolume":10000,"minLiquidity":5000}
sortBy
string
default:"volume24hUSD"
Sort field. Possible values: volume24hUSD (24h volume), totalVolumeUSD (all-time volume), liquidityUSD (current liquidity), createdAt (newest first), trendingScore (trending score).
order
string
default:"desc"
Sort direction. asc or desc.
limit
number
default:"50"
Number of markets to return (1 to 100).
offset
number
default:"0"
Pagination offset.

Response

data
array
Array of market search results.
pagination
object
Pagination metadata.
hostname
string
Server hostname that handled the request.
took
number
Request processing time in milliseconds.

Usage Examples

Search by keyword

curl -X GET "https://api.mobula.io/api/2/pm/search?input=ethereum&sortBy=volume24hUSD&limit=10"

Filter by category and minimum volume

curl -X GET 'https://api.mobula.io/api/2/pm/search?filters={"categories":"crypto","minVolume":10000}&sortBy=liquidityUSD'
curl -X GET 'https://api.mobula.io/api/2/pm/search?filters={"statuses":"active"}&sortBy=trendingScore&limit=20'

Example Response

{
  "data": [
    {
      "platform": "polymarket",
      "marketId": "0x1234...",
      "slug": "will-eth-reach-10k-2026",
      "question": "Will ETH reach $10,000 by end of 2026?",
      "category": "crypto",
      "status": "active",
      "logo": "https://polymarket.com/images/market.png",
      "volume24hUSD": 45000,
      "totalVolumeUSD": 1250000,
      "liquidityUSD": 320000,
      "openInterestUSD": 580000,
      "endDate": "2026-12-31T23:59:59.000Z",
      "createdAt": "2026-01-15T00:00:00.000Z",
      "tradesCount": 8500,
      "outcomes": [
        { "outcomeId": "71321...", "label": "Yes", "priceUSD": 0.35 },
        { "outcomeId": "71322...", "label": "No", "priceUSD": 0.65 }
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "offset": 0,
    "limit": 50,
    "pageEntries": 1
  },
  "hostname": "node-xyz",
  "took": 42
}

Query Parameters

query
string

Free-text search query (canonical name; input accepted as legacy alias).

input
string

Legacy alias for query.

filters
string

JSON-encoded filter object. Supported keys: platforms (string[]), categories (string[]), statuses (string[]), minVolume (number), minLiquidity (number).

Example:

"{\"statuses\":[\"open\"],\"minVolume\":1000}"

sortBy
enum<string>
default:volume24hUSD
Available options:
volume24hUSD,
totalVolumeUSD,
liquidityUSD,
createdAt,
endDate,
trendingScore
order
enum<string>
default:desc
Available options:
asc,
desc
limit
integer
default:50

Page size (1-100).

Required range: 1 <= x <= 100
offset
integer
default:0

Pagination offset.

Required range: x >= 0

Response

200 - application/json

Search results

data
object[]