polymarket_event
Pack: polymarket · Endpoint: https://gateway.pipeworx.io/polymarket/mcp
Get a Polymarket event with EVERY child market at once. Events group mutually-exclusive outcomes (e.g., “2028 Democratic nominee” has one Yes/No market per candidate, each price = implied probability of that candidate). Use when you need the full slate — election candidates, championship contenders, multi-option outcomes — instead of one specific market. Returns event metadata + array of child markets with live prices, volumes, end dates.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug_or_id | string | yes | Event slug (e.g. “2028-presidential-election”) or numeric id |
Example call
Arguments
{
"slug_or_id": "2028-presidential-election"
}
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_event","arguments":{"slug_or_id":"2028-presidential-election"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('polymarket_event', {
"slug_or_id": "2028-presidential-election"
});
More examples
{
"slug_or_id": "67890"
}
Response shape
| Field | Type | Description |
|---|---|---|
error | string | Present ONLY on the miss shape (e.g. ‘not_found’) |
message | string | Present only alongside error |
id | string | |
slug | string | |
ticker | string | |
title | string | |
description | string | |
active | boolean | |
closed | boolean | |
volume_total | number | null | |
volume_24hr | number | null | |
open_interest | number | null | |
liquidity | number | null | |
competitive_score | number | null | |
comment_count | number | null | |
end_date | string | null | |
start_date | string | null | |
market_count | number | null | |
markets | array | |
url | string |
Full JSON Schema
{
"type": "object",
"description": "A Polymarket event and its markets. TWO SHAPES: on a match the event fields below are present; when the slug or id does not resolve the response is only {error:'not_found', message} with NONE of them. Check for `error` first.",
"properties": {
"error": {
"type": "string",
"description": "Present ONLY on the miss shape (e.g. 'not_found')"
},
"message": {
"type": "string",
"description": "Present only alongside error"
},
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"ticker": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"active": {
"type": "boolean"
},
"closed": {
"type": "boolean"
},
"volume_total": {
"type": [
"number",
"null"
]
},
"volume_24hr": {
"type": [
"number",
"null"
]
},
"open_interest": {
"type": [
"number",
"null"
]
},
"liquidity": {
"type": [
"number",
"null"
]
},
"competitive_score": {
"type": [
"number",
"null"
]
},
"comment_count": {
"type": [
"number",
"null"
]
},
"end_date": {
"type": [
"string",
"null"
]
},
"start_date": {
"type": [
"string",
"null"
]
},
"market_count": {
"type": [
"number",
"null"
]
},
"markets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"question": {
"type": "string"
},
"description": {
"type": "string"
},
"outcomes": {
"type": "array",
"items": {
"type": "string"
}
},
"yes_price": {
"type": [
"number",
"null"
]
},
"no_price": {
"type": [
"number",
"null"
]
},
"implied_probability_yes": {
"type": [
"number",
"null"
]
},
"best_bid": {
"type": [
"number",
"null"
]
},
"best_ask": {
"type": [
"number",
"null"
]
},
"spread": {
"type": [
"number",
"null"
]
},
"spread_pp": {
"type": [
"number",
"null"
]
},
"last_trade_price": {
"type": [
"number",
"null"
]
},
"min_tick_size": {
"type": [
"number",
"null"
]
},
"volume_total": {
"type": [
"number",
"null"
]
},
"volume_24hr": {
"type": [
"number",
"null"
]
},
"volume_1wk": {
"type": [
"number",
"null"
]
},
"volume_1mo": {
"type": [
"number",
"null"
]
},
"liquidity": {
"type": [
"number",
"null"
]
},
"price_change_1h": {
"type": [
"number",
"null"
]
},
"price_change_1d": {
"type": [
"number",
"null"
]
},
"price_change_1w": {
"type": [
"number",
"null"
]
},
"price_change_1mo": {
"type": [
"number",
"null"
]
},
"price_change_1y": {
"type": [
"number",
"null"
]
},
"active": {
"type": "boolean"
},
"closed": {
"type": "boolean"
},
"accepting_orders": {
"type": "boolean"
},
"end_date": {
"type": [
"string",
"null"
]
},
"start_date": {
"type": [
"string",
"null"
]
},
"image": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
}
}
}
},
"url": {
"type": "string"
}
}
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"polymarket": {
"url": "https://gateway.pipeworx.io/polymarket/mcp"
}
}
}
See Getting Started for client-specific install steps.