# Polymarket US — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orthogonal.com/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)

Public market data API for Polymarket US, a CFTC-regulated prediction market exchange. Access events, markets, order books, price history, sports data, search, and more. No authentication required.

**Verified:** no

## Access

**Run API:** `POST https://api.orthogonal.com/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Get Events

Retrieve all events with optional filtering by status, liquidity, volume, dates, tags, series, categories, and more.

`GET /v1/events`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of events to return |
| `offset` | integer | No | Number of events to skip for pagination |
| `orderBy` | array | No | Fields to order results by |
| `orderDirection` | string | No | Order direction (asc or desc) |
| `id` | array | No | Filter by event IDs |
| `slug` | array | No | Filter by event slugs |
| `archived` | boolean | No | Filter by archived status |
| `active` | boolean | No | Filter by active status |
| `closed` | boolean | No | Filter by closed status |
| `liquidityMin` | number | No | Minimum liquidity filter |
| `volumeMin` | number | No | Minimum volume filter |
| `startDateMin` | string | No | Minimum start date filter |
| `startDateMax` | string | No | Maximum start date filter |
| `tagSlug` | string | No | Filter by tag slug |
| `seriesId` | array | No | Filter by series IDs |
| `categories` | array | No | Filter by categories |
| `marketTypes` | array | No | Filter by market types |
| `live` | boolean | No | Filter by live status |
| `featured` | boolean | No | Filter by featured status |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/events","method":"GET","query":{"limit":"<integer>","offset":"<integer>","orderBy":"<array>","orderDirection":"<string>","id":"<array>","slug":"<array>","archived":"<boolean>","active":"<boolean>","closed":"<boolean>","liquidityMin":"<number>","volumeMin":"<number>","startDateMin":"<string>","startDateMax":"<string>","tagSlug":"<string>","seriesId":"<array>","categories":"<array>","marketTypes":"<array>","live":"<boolean>","featured":"<boolean>"}}'
```

### Get Event By Slug

Retrieve an event by its slug, with optional market groups.

`GET /v1/events/slug/{slug}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `groups` | boolean | No | Include structured market groups in the response |
| `comboEnabledOnly` | boolean | No | When true, return only combo-enabled markets |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/events/slug/{slug}","method":"GET","query":{"groups":"<boolean>","comboEnabledOnly":"<boolean>"}}'
```

### Get Event By ID

Retrieve a specific event by its ID, with optional market groups.

`GET /v1/events/{id}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `groups` | boolean | No | Include structured market groups in the response |
| `comboEnabledOnly` | boolean | No | When true, return only combo-enabled markets |

```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/events/{id}","method":"GET","query":{"groups":"<boolean>","comboEnabledOnly":"<boolean>"}}'
```

### Get Event By Partner External ID

Resolve a partner external event ID (e.g. OpticOdds fixture ID) to the internal event and its mapped market sides.

`GET /v1/partners/{partnerKey}/events/{externalId}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `partnerKey` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `externalId` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {partnerKey}, {externalId} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/partners/{partnerKey}/events/{externalId}","method":"GET"}'
```

### Get Market By ID

Retrieve a specific market by its ID.

`GET /v1/market/id/{id}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/market/id/{id}","method":"GET"}'
```

### Get Market By Slug

Retrieve a specific market by its slug.

`GET /v1/market/slug/{slug}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/market/slug/{slug}","method":"GET"}'
```

### Get Markets

Retrieve all markets with optional filtering by status, volume, dates, categories, and market types.

`GET /v1/markets`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Page size |
| `offset` | integer | No | Page offset |
| `orderBy` | array | No | Order by fields |
| `orderDirection` | string | No | Order direction |
| `id` | array | No | Market IDs |
| `slug` | array | No | Market slugs |
| `active` | boolean | No | Whether market is active |
| `closed` | boolean | No | Whether market is closed |
| `categories` | array | No | Filter by categories |
| `marketTypes` | array | No | Filter by market types |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/markets","method":"GET","query":{"limit":"<integer>","offset":"<integer>","orderBy":"<array>","orderDirection":"<string>","id":"<array>","slug":"<array>","active":"<boolean>","closed":"<boolean>","categories":"<array>","marketTypes":"<array>"}}'
```

### Get Market BBO

Retrieve current best bid/offer and stats for a specific market by its slug in a lightweight format.

`GET /v1/markets/{slug}/bbo`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/markets/{slug}/bbo","method":"GET"}'
```

### Get Market Book

Retrieve current order book and stats for a specific market by its slug.

`GET /v1/markets/{slug}/book`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/markets/{slug}/book","method":"GET"}'
```

### Get Market Settlement

Retrieve the settlement price for a specific market by its slug.

`GET /v1/markets/{slug}/settlement`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/markets/{slug}/settlement","method":"GET"}'
```

### Get Price History

Returns book-derived Yes and No display prices for one market. Supports fixed intervals (1H, 6H, 1D, 1W, 1M, ALL, LIVE) or custom timestamp ranges.

`GET /v1/price-history`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `symbol` | string | Yes | Market slug (required) |
| `fixedInterval` | string | No | Fixed history window: INTERVAL_ALL, INTERVAL_1M, INTERVAL_1W, INTERVAL_1D, INTERVAL_6H, INTERVAL_1H, INTERVAL_LIVE |
| `timestamp.startTimestamp` | integer | No | Custom range start in Unix seconds |
| `timestamp.endTimestamp` | integer | No | Custom range end in Unix seconds |
| `fidelity` | integer | Yes | Fidelity in minutes (required). Use documented value for interval or 1 for custom range. |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/price-history","method":"GET","query":{"symbol":"<string>","fixedInterval":"<string>","timestamp.startTimestamp":"<integer>","timestamp.endTimestamp":"<integer>","fidelity":"<integer>"}}'
```

### Get OHLC Asset Prices

Returns dense, ascending OHLC candle series per requested asset. Supports multiple assets, configurable bucket sizes (1S to 1D), and gap-filling. Max 3600 candles per series.

`GET /v1/asset-prices/history`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `assets` | array | Yes | Assets in <class>:<symbol> form, e.g. crypto:btc. Repeat for multiple. Max 10. |
| `from` | string | Yes | Unix-seconds start of window (required) |
| `to` | string | No | Unix-seconds end of window (0 or future = now) |
| `bucket` | string | Yes | Candle width: ASSET_PRICE_BUCKET_1S, _5S, _15S, _1M, _5M, _15M, _1H, _1D |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/asset-prices/history","method":"GET","query":{"assets":"<array>","from":"<string>","to":"<string>","bucket":"<string>"}}'
```

### Search

Full-text search across events and markets.

`GET /v1/search`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | The query to search for |
| `limit` | integer | No | Maximum number of results to return |
| `status` | string | No | Filter by status |
| `page` | integer | No | Page number for pagination |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/search","method":"GET","query":{"query":"<string>","limit":"<integer>","status":"<string>","page":"<integer>"}}'
```

### Get Series

Retrieve all series (e.g., NFL 2025-26 Season) with pagination and filtering.

`GET /v1/series`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Pagination limit |
| `offset` | integer | No | Pagination offset |
| `slug` | array | No | Filter by series slug |
| `active` | boolean | No | Filter by active status |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/series","method":"GET","query":{"limit":"<integer>","offset":"<integer>","slug":"<array>","active":"<boolean>"}}'
```

### Get Series By ID

Retrieve a specific series by its ID.

`GET /v1/series/id/{id}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/series/id/{id}","method":"GET"}'
```

### Get All Leagues

Retrieve leagues with pagination (max 50 per page).

`GET /v2/leagues`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Pagination limit (max 50, default 50) |
| `offset` | integer | No | Pagination offset (default 0) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/leagues","method":"GET","query":{"limit":"<integer>","offset":"<integer>"}}'
```

### Get League By Slug

Retrieve a league by its slug.

`GET /v2/leagues/{slug}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/leagues/{slug}","method":"GET"}'
```

### Get Events By League Slug

Retrieve events for a league by its slug (e.g., 'nfl', 'nba'). Resolves the league to its active series and returns events.

`GET /v2/leagues/{slug}/events`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `limit` | integer | No | Pagination limit |
| `offset` | integer | No | Pagination offset |
| `type` | string | No | Type: sport (default) or futures |
| `section` | string | No | Section: general (default) or trending |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/leagues/{slug}/events","method":"GET","query":{"limit":"<integer>","offset":"<integer>","type":"<string>","section":"<string>"}}'
```

### Get All Sports

Retrieve all sports.

`GET /v2/sports`

**Estimated cost:** $0.005

_No parameters required._

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/sports","method":"GET"}'
```

### Get Sport By Slug

Retrieve a sport by its slug, with all leagues attached.

`GET /v2/sports/{slug}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/sports/{slug}","method":"GET"}'
```

### Get Events By Sport Slug

Retrieve events for a sport by its slug (e.g., 'football', 'basketball'). Fetches all leagues, collects active series, and returns combined events.

`GET /v2/sports/{slug}/events`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `limit` | integer | No | Pagination limit |
| `offset` | integer | No | Pagination offset |
| `type` | string | No | Type: sport (default) or futures |
| `section` | string | No | Section: general (default) or trending |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/sports/{slug}/events","method":"GET","query":{"limit":"<integer>","offset":"<integer>","type":"<string>","section":"<string>"}}'
```

### Get Sports (Legacy)

Fetch sports data (legacy v1 endpoint).

`GET /v1/sports`

**Estimated cost:** $0.005

_No parameters required._

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/sports","method":"GET"}'
```

### Get Sports Players

Fetch sports players, filterable by abbreviation, name, id, team, or provider reference.

`GET /v1/sports/players`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of players to return |
| `offset` | integer | No | Number of players to skip for pagination |
| `filters.name` | array | No | Filter by player name |
| `filters.id` | array | No | Filter by player id |
| `filters.teamId` | array | No | Filter by team id |
| `filters.league` | string | No | Restrict to players in this league |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/sports/players","method":"GET","query":{"limit":"<integer>","offset":"<integer>","filters.name":"<array>","filters.id":"<array>","filters.teamId":"<array>","filters.league":"<string>"}}'
```

### Get Sports Teams

Fetch sports teams data for enriching sports events.

`GET /v1/sports/teams`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of teams to return |
| `offset` | integer | No | Number of teams to skip for pagination |
| `filters.league` | array | No | Filter by league |
| `filters.name` | array | No | Filter by team name |
| `filters.id` | array | No | Filter by team IDs |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/sports/teams","method":"GET","query":{"limit":"<integer>","offset":"<integer>","filters.league":"<array>","filters.name":"<array>","filters.id":"<array>"}}'
```

### Get Sports Teams For Provider

Fetch sports teams data for a specific data provider.

`GET /v1/sports/teams/provider`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `teamIds` | array | No | Team IDs |
| `provider` | string | No | Data provider (e.g. PROVIDER_SPORTRADAR, PROVIDER_OPTICODDS) |
| `league` | string | No | League of the teams |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/sports/teams/provider","method":"GET","query":{"teamIds":"<array>","provider":"<string>","league":"<string>"}}'
```

### Get Sports Events By Series

Retrieve events sections for a sport series (optional trending, optional live, and sport section).

`GET /v1/sports/{seriesId}/events`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `seriesId` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `limit` | integer | No | Pagination limit |
| `offset` | integer | No | Pagination offset |
| `type` | string | No | Type: sport (default) or futures |
| `section` | string | No | Section: general (default) or trending |

```bash
# Replace {seriesId} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v1/sports/{seriesId}/events","method":"GET","query":{"limit":"<integer>","offset":"<integer>","type":"<string>","section":"<string>"}}'
```

### Get Tags

Get ranked tags with optional filtering by slug, IDs, parent, or query.

`GET /v2/tags`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Pagination limit |
| `offset` | integer | No | Pagination offset |
| `slug` | array | No | Tag slug to filter by |
| `parentSlug` | string | No | Filter by parent tag slug |
| `query` | string | No | Case-insensitive substring match on tag label |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/tags","method":"GET","query":{"limit":"<integer>","offset":"<integer>","slug":"<array>","parentSlug":"<string>","query":"<string>"}}'
```

### Get Tag By Slug

Get a tag by its slug.

`GET /v2/tags/slug/{slug}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/tags/slug/{slug}","method":"GET"}'
```

### Get Tag By ID

Get a tag by its ID.

`GET /v2/tags/{id}`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |

```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/tags/{id}","method":"GET"}'
```

### Get Events For A Tag

Get events filtered by tag slug, sorted by volume descending by default.

`GET /v2/tags/{slug}/events`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `limit` | integer | No | Maximum number of events to return |
| `offset` | integer | No | Number of events to skip for pagination |
| `active` | boolean | No | Filter by active status (default: true) |
| `closed` | boolean | No | Filter by closed status (default: false) |

```bash
# Replace {slug} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"polymarket-us","path":"/v2/tags/{slug}/events","method":"GET","query":{"limit":"<integer>","offset":"<integer>","active":"<boolean>","closed":"<boolean>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/polymarket-us
