Skip to main content
GET
/
2
/
pm
/
search
Search prediction markets
curl --request GET \
  --url https://demo-api.mobula.io/api/2/pm/search
{
  "data": [
    {
      "platform": "<string>",
      "marketId": "<string>",
      "slug": "<string>",
      "question": "<string>",
      "category": "<string>",
      "status": "<string>",
      "logo": "<string>",
      "volume24hUSD": 123,
      "totalVolumeUSD": 123,
      "liquidityUSD": 123,
      "endDate": "<string>",
      "createdAt": "<string>",
      "openInterestUSD": 123,
      "tradesCount": 123,
      "outcomes": [
        {
          "outcomeId": "<string>",
          "label": "<string>",
          "priceUSD": 123
        }
      ]
    }
  ],
  "pagination": {
    "page": 123,
    "offset": 123,
    "limit": 123,
    "pageEntries": 123
  },
  "hostname": "<string>",
  "took": 123
}

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

input
string

Text search query on market question and description

filters
string

JSON object with filter criteria. Keys: platforms (comma-separated or array), categories (comma-separated or array), statuses (comma-separated or array), minVolume (number), minLiquidity (number).

sortBy
enum<string>
default:volume24hUSD

Sort field

Available options:
volume24hUSD,
totalVolumeUSD,
liquidityUSD,
createdAt,
trendingScore
order
enum<string>
default:desc

Sort direction

Available options:
asc,
desc
limit
number
default:50
Required range: 1 <= x <= 100
offset
number
default:0
Required range: x >= 0

Response

200 - application/json

Search results

data
object[]
pagination
object
hostname
string
took
number