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

Query Parameters

platform
string
required
The prediction market platform (e.g., polymarket).
At least one of marketId or outcomeId must be provided.
marketId
string
The platform-specific market identifier (Polymarket conditionId hex). Optional when outcomeId is provided.
outcomeId
string
Outcome token ID. When provided alone, returns trades for this outcome across all markets. When provided with marketId, filters trades to this outcome within that market.
from
string | number
Start time. Accepts Unix timestamp in milliseconds (e.g., 1709913600000) or ISO 8601 string (e.g., 2024-03-01T00:00:00Z).
to
string | number
End time. Accepts Unix timestamp in milliseconds (e.g., 1709913600000) or ISO 8601 string (e.g., 2024-03-01T00:00:00Z).
minAmountUSD
number
default:"0"
Minimum trade value in USD. Filters out trades below this threshold.
limit
number
default:"50"
Number of trades to return (1 to 500).
offset
number
default:"0"
Pagination offset. Ignored when cursor is provided.
cursor
string
Cursor for keyset pagination. Use the nextCursor value from a previous response to fetch the next page. Takes precedence over offset.
sortOrder
string
default:"desc"
Sort direction for trades by date. Possible values: asc, desc.

Response

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

Usage Examples

Offset-based pagination

curl -X GET "https://api.mobula.io/api/2/pm/market/trades?platform=polymarket&marketId=0x1234...&limit=20&minAmountUSD=100"

Cursor-based pagination

# First page
curl -X GET "https://api.mobula.io/api/2/pm/market/trades?platform=polymarket&marketId=0x1234...&limit=50"

# Next page (use nextCursor from previous response)
curl -X GET "https://api.mobula.io/api/2/pm/market/trades?platform=polymarket&marketId=0x1234...&limit=50&cursor=1709913600000:trade-001"

With ISO date range

curl -X GET "https://api.mobula.io/api/2/pm/market/trades?platform=polymarket&marketId=0x1234...&from=2024-03-01T00:00:00Z&to=2024-03-08T00:00:00Z&sortOrder=asc"

Example Response

{
  "data": [
    {
      "id": "trade-001",
      "marketId": "0x1234...",
      "outcomeId": "71321...",
      "platform": "polymarket",
      "type": "buy",
      "priceUSD": 0.35,
      "sizeToken": 1000,
      "amountUSD": 350,
      "date": 1709913600000,
      "swapRecipient": "0xabc...",
      "transactionHash": "0xdef..."
    }
  ],
  "pagination": {
    "page": 1,
    "offset": 0,
    "limit": 50,
    "pageEntries": 1,
    "totalCount": 1,
    "hasMore": false,
    "nextCursor": null
  },
  "hostname": "node-xyz",
  "took": 42
}

Query Parameters

platform
enum<string>
required

Prediction market platform. Today only polymarket is supported; any other value returns 400.

Available options:
polymarket
Example:

"polymarket"

marketId
string

CTF conditionId (required if outcomeId is not provided).

outcomeId
string

Outcome token id (required if marketId is not provided).

from
integer<int64>

Start time in Unix milliseconds.

Required range: x >= 0
to
integer<int64>

End time in Unix milliseconds.

Required range: x >= 0
minAmountUSD
number
default:0

Minimum trade size in USD.

Required range: x >= 0
limit
integer
default:50

Page size (1-500).

Required range: 1 <= x <= 500
cursor
string

Opaque cursor returned by the previous page (pagination.nextCursor).

Response

200 - application/json

Trades list

data
object[]