polymarket_trades
Pack: polymarket · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/polymarket_trades for the schema, then POST the same URL with its arguments for the data.
Trades executed on a Polymarket market, newest first, pageable; optionally walks a full time window with a coverage report.
Tool description as the model sees it
Recent EXECUTED trades (the fills tape) for a Polymarket market — actual money that changed hands, newest first. Each trade: side (BUY/SELL), outcome (Yes/No or the option name), outcome_index, size (shares), price (that fill’s OWN outcome’s price), unix, timestamp, and the trader’s wallet/pseudonym. Use for “what’s the recent order flow”, “is smart money buying Yes”, “how much just traded and at what price”. DISTINCT from polymarket_orderbook (resting/unfilled orders — intent) and polymarket_price_history (the CP time-series). Pass a market slug or numeric id (same input as polymarket_market). PAGING: limit goes to 1000; follow next_cursor to walk further back. To measure a whole time window rather than the tail (e.g. what takers actually paid across one 15-minute crypto window) pass window_start (+ window_end): the tool walks the tape back to the window start itself and returns coverage saying whether the walk reached it or ran out of page budget, plus a size-weighted per_minute fill-price summary on the first outcome’s side.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug_or_id | string | yes | Market slug (e.g. “will-trump-win-2024”) or numeric id — same input as polymarket_market. |
limit | number | no | Trades per page / trades returned, 1-1000 (default 20; in window mode default 100). |
cursor | string | no | Opaque cursor from a previous call’s next_cursor — continues the newest-first tape further back. Omit for the newest page. Ignored in window mode. |
window_start | string | no | ISO datetime or epoch seconds. Switches to window mode: walks the whole tape back to this instant. Inclusive. |
window_end | string | no | ISO datetime or epoch seconds, exclusive (default: now). Only used with window_start. |
max_pages | number | no | Window mode only: page budget, 1-20 (default 8, 1000 fills each). If the walk hits it before reaching window_start, coverage.complete is false. |
Example call
Arguments
{
"slug_or_id": "will-jd-vance-win-the-2028-republican-presidential-nomination",
"limit": 20
}
curl
curl -X POST https://gateway.pipeworx.io/polymarket/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"polymarket_trades","arguments":{"slug_or_id":"will-jd-vance-win-the-2028-republican-presidential-nomination","limit":20}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('polymarket_trades', {
"slug_or_id": "will-jd-vance-win-the-2028-republican-presidential-nomination",
"limit": 20
});
More examples
{
"slug_or_id": "will-kristi-noem-win-the-2028-republican-presidential-nomination",
"limit": 50
}
Connect
Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the polymarket pack
{
"mcpServers": {
"polymarket": {
"url": "https://gateway.pipeworx.io/polymarket/mcp"
}
}
}
See Getting Started for client-specific install steps.