Polymarket API endpoint
Returns public trade rows for one Polymarket event. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.
/polymarket/event/id/{id}/activityPath parameters:
id: required Polymarket event id.Query parameters:
limit: optional maximum trades to return. Defaults to 50; maximum 100.offset: optional result offset. Defaults to 0; maximum 10000.taker_only: optional compatibility parameter from the global activity contract. Allowed values: true, false. Defaults to true; scoped upstream requests are filtered by event id.filter_type: optional amount filter type. Allowed values: CASH. Defaults to CASH.filter_amount: optional minimum filtered amount. Allowed values: 1, 5, 10, 100, 1000, 10000, 100000. Defaults to 1.Notable response behavior:
event_id and market query parameters because the route scope comes from the event path.| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| proxy_wallet | 40 | “0xb23a492e103e3267c02eb6644c66f4d1d829918f” and 30 other values |
| side | 40 | SELL (39), BUY (1) |
| asset | 40 | 4394372887385518214471608448209… (35), 1154281537469968922117989993663… (4), 1126806300047984250698109352782… (1) |
| condition_id | 40 | |
| size | 40 | 6.25 to 22,160, median 51.19 |
| price | 40 | 0 to 1, median 1 |
| value | 40 | 6.24 to 999.62, median 50.63 |
| timestamp | 40 | 2026-07-20 |
| title | 40 | Will Spain win the 2026 FIFA Wo… (36), Will Argentina win the 2026 FIF… (4) |
| slug | 40 | |
| url | 40 | polymarket.com |
| icon_url | 40 | polymarket-upload.s3.us-east-2.amazonaws.com |
| event_slug | 40 | |
| outcome | 40 | Yes (35), No (5) |
| outcome_index | 5 | |
| transaction_hash | 40 | |
| name | 34 | “shhlh134789” and 24 other values |
| pseudonym | 33 | “Firm-Comradeship” and 23 other values |
| profile_image_url | 1 | polymarket-upload.s3.us-east-2.amazonaws.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Polymarket event id | 30615 | |
| limit | integer | No | 50 and supports up to 100 | Maximum trades, defaults to 50 and supports up to 100 | 50 |
| offset | integer | No | 0 and supports up to 10000 | Result offset, defaults to 0 and supports up to 10000 | 0 |
| taker_only | string | No | Accepted for compatibility with the global activity contract; scoped upstream requests are filtered by event id Allowed values: true, false. | ||
| filter_type | string | No | Activity amount filter type Allowed values: CASH. | ||
| filter_amount | string | No | Minimum filtered amount Allowed values: 1, 5, 10, 100, 1000, 10000, 100000. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/polymarket/event/id/30615/activity?limit=10&taker_only=true&filter_type=CASH&filter_amount=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"event_id": "30615",
"limit": 2,
"offset": 0,
"filter_type": "CASH",
"filter_amount": "1",
"source_url": "https://data-api.polymarket.com/trades?eventId=30615&filterAmount=1&filterType=CASH&limit=2&offset=0",
"trades": [
{
"side": "SELL",
"size": 12,
"price": 0.41,
"title": "World Cup Winner",
"event_slug": "world-cup-winner",
"outcome": "France"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/polymarket.activityTradesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | polymarket.ActivityTradesResponse | No | ||||
| data.event_id | string | No | 101772 | Polymarket event id the trades were limited to. | ||
| data.fetched_at | string | No | 2026-06-07T11:00:00Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.filter_amount | string | No | 1 | Minimum trade amount the filter applied. | ||
| data.filter_type | string | No | CASH | Type of amount filter applied, for example `CASH`. | ||
| data.limit | integer | No | 50 | Maximum number of trades requested. | ||
| data.market | string | No | 0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b | Market condition id the trades were limited to. | ||
| data.offset | integer | No | 0 | Number of trades skipped before this page. | ||
| data.source_url | string | No | https://data-api.polymarket.com/trades?takerOnly=true&limit=50&offset=0&filterType=CASH&filterAmount=1 | URL the data was read from. | ||
| data.taker_only | string | No | true | `true` when only taker trades are returned, `false` otherwise. | ||
| data.trades | array | No | Recent trades on this page, one item per trade. | |||
| data.trades[].asset | string | No | 90219780179584544303349592653084019110196125806694819219181473744581426681835 | Token id of the outcome that was traded. | ||
| data.trades[].bio | string | No | Biography text from the trader's Polymarket profile. | |||
| data.trades[].condition_id | string | No | 0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b | Condition id of the market the trade was made on. | ||
| data.trades[].event_slug | string | No | btc-updown-15m-1780835400 | URL slug of the event the trade belongs to. | ||
| data.trades[].icon_url | string | No | URL of the icon image for the traded market. | |||
| data.trades[].name | string | No | trader | Display name from the trader's Polymarket profile. | ||
| data.trades[].outcome | string | No | Up | Name of the outcome that was traded, for example `Up`. | ||
| data.trades[].outcome_index | integer | No | 0 | Position of the traded outcome within the market's outcomes, starting at 0. | ||
| data.trades[].price | number | No | 0.52744 | Price per share at which the trade was made. | ||
| data.trades[].profile_image_optimized | string | No | URL of an optimized version of the trader's profile image. | |||
| data.trades[].profile_image_url | string | No | URL of the trader's profile image. | |||
| data.trades[].proxy_wallet | string | No | 0x400e9b5e37f7209adb6938d49d63c48f154319d2 | Wallet address of the trader's Polymarket account. | ||
| data.trades[].pseudonym | string | No | Noisy-Dimple | Pseudonym Polymarket assigned to the trader. | ||
| data.trades[].side | string | No | BUY | Side of the trade: `BUY` or `SELL`. | ||
| data.trades[].size | number | No | 25 | Number of shares traded. | ||
| data.trades[].slug | string | No | btc-updown-15m-1780835400 | URL slug of the market the trade was made on. | ||
| data.trades[].timestamp | integer | No | 1780835568 | Time the trade was made, in Unix seconds. | ||
| data.trades[].title | string | No | Bitcoin Up or Down - June 7, 8:30AM-8:45AM ET | Title of the market the trade was made on. | ||
| data.trades[].transaction_hash | string | No | 0x7ef90efb7e9f921509d8e82ecc76ed3d8384a3740d7ebd81d3bbbfd017899245 | Hash of the transaction that settled the trade. | ||
| data.trades[].url | string | No | https://polymarket.com/event/btc-updown-15m-1780835400 | Link to the traded event on polymarket.com. | ||
| data.trades[].value | number | No | 13.186 | Value of the trade, equal to `size` multiplied by `price`. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/polymarket/event/id/30615/activity?limit=10&taker_only=true&filter_type=CASH&filter_amount=1" \
-H "x-api-key: $CRAWLORA_API_KEY"