---
type: "firecrawl-provider"
description: "Prediction markets, outcome prices, events, topic tags, recurring series and sports metadata from Polymarket's Gamma API."
use_when: "Prediction market questions, outcome prices and metadata. Gamma IDs, condition IDs and CLOB token IDs are different identifiers. Outcomes and prices are JSON-encoded strings.\n\nEvents group related prediction markets; an event slug is distinct from a market slug.\n\nFind events, topic tags and public profiles by text, then follow their IDs or slugs for details.\n\nTopic identifiers for filtering event and market listings.\n\nRecurring groups of events and their metadata.\n\nSport configuration, tag and series references, and valid market types."
categories: "Sports"
capabilities: 13
credits_per_call: 5
---
# Polymarket on Firecrawl Alexandria

Prediction markets, outcome prices, events, topic tags, recurring series and sports metadata from Polymarket's Gamma API.

- Categories: Sports
- Category index: [Sports category](https://firecrawl.dev/alexandria/agents/categories/sports)
- Provider key: `polymarket`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/polymarket)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/polymarket/openapi.json)

## Capabilities

- [Markets list](https://firecrawl.dev/alexandria/agents/providers/polymarket/markets/list): List of markets. Original upstream JSON is preserved; optional fields can be null or absent.
- [Markets get](https://firecrawl.dev/alexandria/agents/providers/polymarket/markets/get): Market. Original upstream JSON is preserved; optional fields can be null or absent.
- [Markets by slug](https://firecrawl.dev/alexandria/agents/providers/polymarket/markets/by-slug): Market. Original upstream JSON is preserved; optional fields can be null or absent.
- [Events list](https://firecrawl.dev/alexandria/agents/providers/polymarket/events/list): List of events. Original upstream JSON is preserved; optional fields can be null or absent.
- [Events get](https://firecrawl.dev/alexandria/agents/providers/polymarket/events/get): Event. Original upstream JSON is preserved; optional fields can be null or absent.
- [Events by slug](https://firecrawl.dev/alexandria/agents/providers/polymarket/events/by-slug): Event. Original upstream JSON is preserved; optional fields can be null or absent.
- [Query](https://firecrawl.dev/alexandria/agents/providers/polymarket/search/query): Search results. Original upstream JSON is preserved; optional fields can be null or absent.
- [Tags list](https://firecrawl.dev/alexandria/agents/providers/polymarket/tags/list): List of tags. Original upstream JSON is preserved; optional fields can be null or absent.
- [Tags get](https://firecrawl.dev/alexandria/agents/providers/polymarket/tags/get): Tag. Original upstream JSON is preserved; optional fields can be null or absent.
- [Series list](https://firecrawl.dev/alexandria/agents/providers/polymarket/series/list): List of series. Original upstream JSON is preserved; optional fields can be null or absent.
- [Series get](https://firecrawl.dev/alexandria/agents/providers/polymarket/series/get): Series. Original upstream JSON is preserved; optional fields can be null or absent.
- [Sports list](https://firecrawl.dev/alexandria/agents/providers/polymarket/sports/list): List of sports metadata objects containing sport configuration details, visual assets, and related identifiers. Original upstream JSON is preserved; optional fields can be null or absent.
- [Market types](https://firecrawl.dev/alexandria/agents/providers/polymarket/sports/market-types): List of valid sports market types. Original upstream JSON is preserved; optional fields can be null or absent.

## 1. Choose this provider when

Prediction market questions, outcome prices and metadata. Gamma IDs, condition IDs and CLOB token IDs are different identifiers. Outcomes and prices are JSON-encoded strings.

Events group related prediction markets; an event slug is distinct from a market slug.

Find events, topic tags and public profiles by text, then follow their IDs or slugs for details.

Topic identifiers for filtering event and market listings.

Recurring groups of events and their metadata.

Sport configuration, tag and series references, and valid market types.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "polymarket",
  "capability": "markets/list",
  "options": {
    "limit": 10
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `limit` (number, required): Number of records to return (1 to 100); required to keep each response bounded. Example: `10`
- `offset` (number): Number of records to skip; increment by the page size. Example: `10`
- `order` (string): Comma-separated upstream field names to sort by, for example volume. Example: `<order>`
- `ascending` (boolean): Whether to sort in ascending order. Example: `false`
- `id` (number[]): Gamma numeric identifier; list endpoints accept repeated IDs. Example: `[]`
- `slug` (string[]): Exact slug; list endpoints accept repeated slugs. Example: `[]`
- `clob_token_ids` (string[]): CLOB outcome token IDs, serialized as repeated query parameters. Example: `[]`
- `condition_ids` (string[]): Condition IDs, serialized as repeated query parameters. Example: `[]`
- `tag_id` (number): Numeric topic tag ID from tags/list. Example: `10`
- `closed` (boolean): Filter by whether the market, event or series is closed. Example: `false`
- `volume_num_min` (number): Minimum market volume. Example: `10`
- `volume_num_max` (number): Maximum market volume. Example: `10`
- `liquidity_num_min` (number): Minimum market liquidity. Example: `10`
- `liquidity_num_max` (number): Maximum market liquidity. Example: `10`
- `end_date_min` (string): Earliest end date, in ISO 8601 format. Example: `<end_date_min>`
- `end_date_max` (string): Latest end date, in ISO 8601 format. Example: `<end_date_max>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "polymarket",
    capability: "markets/list",
    options: {
      limit: 10,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "polymarket",
  "capability": "markets/list",
  "options": {
    "limit": 10
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "polymarket",
    "capability": "markets/list",
    "options": {
      "limit": 10
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'polymarket/markets/list' \
  --options '{"limit":10}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "polymarket",
  "capability": "markets/list",
  "options": {
    "limit": 10
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "polymarket",
  "capability": "markets/list",
  "options": {
    "limit": 10
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
[
  {
    "id": "<id>",
    "question": "<question>",
    "slug": "<slug>",
    "conditionId": "<conditionId>",
    "description": "<description>",
    "outcomes": "<outcomes>",
    "outcomePrices": "<outcomePrices>",
    "clobTokenIds": "<clobTokenIds>",
    "volume": "<volume>",
    "liquidity": "<liquidity>",
    "active": false,
    "closed": false,
    "endDate": "<endDate>",
    "volume24hr": 0,
    "bestBid": 0,
    "bestAsk": 0,
    "lastTradePrice": 0
  }
]
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Markets list

- Capability: `markets/list`
- Description: List of markets. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Browse prediction markets by slug, condition ID, token ID, tag, closing status or volume. Read outcomePrices alongside outcomes; both are JSON-encoded strings.
- Cost: 5 credits per call
- Capability file: [Markets list](https://firecrawl.dev/alexandria/agents/providers/polymarket/markets/list)

Accepted options:
- `limit` (number, required): Number of records to return (1 to 100); required to keep each response bounded. Example: `10`
- `offset` (number): Number of records to skip; increment by the page size. Example: `10`
- `order` (string): Comma-separated upstream field names to sort by, for example volume. Example: `<order>`
- `ascending` (boolean): Whether to sort in ascending order. Example: `false`
- `id` (number[]): Gamma numeric identifier; list endpoints accept repeated IDs. Example: `[]`
- `slug` (string[]): Exact slug; list endpoints accept repeated slugs. Example: `[]`
- `clob_token_ids` (string[]): CLOB outcome token IDs, serialized as repeated query parameters. Example: `[]`
- `condition_ids` (string[]): Condition IDs, serialized as repeated query parameters. Example: `[]`
- `tag_id` (number): Numeric topic tag ID from tags/list. Example: `10`
- `closed` (boolean): Filter by whether the market, event or series is closed. Example: `false`
- `volume_num_min` (number): Minimum market volume. Example: `10`
- `volume_num_max` (number): Maximum market volume. Example: `10`
- `liquidity_num_min` (number): Minimum market liquidity. Example: `10`
- `liquidity_num_max` (number): Maximum market liquidity. Example: `10`
- `end_date_min` (string): Earliest end date, in ISO 8601 format. Example: `<end_date_min>`
- `end_date_max` (string): Latest end date, in ISO 8601 format. Example: `<end_date_max>`

Response schema example:
```json
[
  {
    "id": "<id>",
    "question": "<question>",
    "slug": "<slug>",
    "conditionId": "<conditionId>",
    "description": "<description>",
    "outcomes": "<outcomes>",
    "outcomePrices": "<outcomePrices>",
    "clobTokenIds": "<clobTokenIds>",
    "volume": "<volume>",
    "liquidity": "<liquidity>",
    "active": false,
    "closed": false,
    "endDate": "<endDate>",
    "volume24hr": 0,
    "bestBid": 0,
    "bestAsk": 0,
    "lastTradePrice": 0
  }
]
```

### Markets get

- Capability: `markets/get`
- Description: Market. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Read a market by its Gamma numeric ID, obtained from markets/list. This is not a condition ID or CLOB token ID.
- Cost: 5 credits per call
- Capability file: [Markets get](https://firecrawl.dev/alexandria/agents/providers/polymarket/markets/get)

Accepted options:
- `id` (number, required): Gamma numeric identifier used as this path segment. Example: `10`
- `include_tag` (boolean): Include market tags. Example: `false`

Response schema example:
```json
{
  "id": "<id>",
  "question": "<question>",
  "slug": "<slug>",
  "conditionId": "<conditionId>",
  "description": "<description>",
  "outcomes": "<outcomes>",
  "outcomePrices": "<outcomePrices>",
  "clobTokenIds": "<clobTokenIds>",
  "volume": "<volume>",
  "liquidity": "<liquidity>",
  "active": false,
  "closed": false,
  "endDate": "<endDate>",
  "volume24hr": 0,
  "bestBid": 0,
  "bestAsk": 0,
  "lastTradePrice": 0
}
```

### Markets by slug

- Capability: `markets/by-slug`
- Description: Market. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Read a market using its exact market slug. Event slugs belong to events/by-slug.
- Cost: 5 credits per call
- Capability file: [Markets by slug](https://firecrawl.dev/alexandria/agents/providers/polymarket/markets/by-slug)

Accepted options:
- `slug` (string, required): Exact slug used as this path segment. Example: `<slug>`
- `include_tag` (boolean): Include market tags. Example: `false`

Response schema example:
```json
{
  "id": "<id>",
  "question": "<question>",
  "slug": "<slug>",
  "conditionId": "<conditionId>",
  "description": "<description>",
  "outcomes": "<outcomes>",
  "outcomePrices": "<outcomePrices>",
  "clobTokenIds": "<clobTokenIds>",
  "volume": "<volume>",
  "liquidity": "<liquidity>",
  "active": false,
  "closed": false,
  "endDate": "<endDate>",
  "volume24hr": 0,
  "bestBid": 0,
  "bestAsk": 0,
  "lastTradePrice": 0
}
```

### Events list

- Capability: `events/list`
- Description: List of events. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Browse events and their constituent markets. Use active=true and closed=false for open active events; advance offset to read another page.
- Cost: 5 credits per call
- Capability file: [Events list](https://firecrawl.dev/alexandria/agents/providers/polymarket/events/list)

Accepted options:
- `limit` (number, required): Number of records to return (1 to 100); required to keep each response bounded. Example: `10`
- `offset` (number): Number of records to skip; increment by the page size. Example: `10`
- `order` (string): Comma-separated upstream field names to sort by, for example volume. Example: `<order>`
- `ascending` (boolean): Whether to sort in ascending order. Example: `false`
- `id` (number[]): Gamma numeric identifier; list endpoints accept repeated IDs. Example: `[]`
- `slug` (string[]): Exact slug; list endpoints accept repeated slugs. Example: `[]`
- `tag_id` (number): Numeric topic tag ID from tags/list. Example: `10`
- `tag_slug` (string): Exact topic tag slug. Example: `<tag_slug>`
- `active` (boolean): Filter by active status. Example: `false`
- `closed` (boolean): Filter by whether the market, event or series is closed. Example: `false`
- `archived` (boolean): Filter by archived status. Example: `false`
- `featured` (boolean): Filter by featured status. Example: `false`
- `volume_min` (number): Minimum event volume. Example: `10`
- `volume_max` (number): Maximum event volume. Example: `10`
- `end_date_min` (string): Earliest end date, in ISO 8601 format. Example: `<end_date_min>`
- `end_date_max` (string): Latest end date, in ISO 8601 format. Example: `<end_date_max>`

Response schema example:
```json
[
  {
    "id": "<id>",
    "slug": "<slug>",
    "title": "<title>",
    "description": "<description>",
    "active": false,
    "closed": false,
    "volume": 0,
    "liquidity": 0,
    "endDate": "<endDate>",
    "markets": [],
    "tags": []
  }
]
```

### Events get

- Capability: `events/get`
- Description: Event. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Read an event and its markets using the Gamma event ID returned by events/list or search/query.
- Cost: 5 credits per call
- Capability file: [Events get](https://firecrawl.dev/alexandria/agents/providers/polymarket/events/get)

Accepted options:
- `id` (number, required): Gamma numeric identifier used as this path segment. Example: `10`

Response schema example:
```json
{
  "id": "<id>",
  "slug": "<slug>",
  "title": "<title>",
  "description": "<description>",
  "active": false,
  "closed": false,
  "volume": 0,
  "liquidity": 0,
  "endDate": "<endDate>",
  "markets": [],
  "tags": []
}
```

### Events by slug

- Capability: `events/by-slug`
- Description: Event. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Read an event and its markets using the exact event slug from a Polymarket event URL.
- Cost: 5 credits per call
- Capability file: [Events by slug](https://firecrawl.dev/alexandria/agents/providers/polymarket/events/by-slug)

Accepted options:
- `slug` (string, required): Exact slug used as this path segment. Example: `<slug>`

Response schema example:
```json
{
  "id": "<id>",
  "slug": "<slug>",
  "title": "<title>",
  "description": "<description>",
  "active": false,
  "closed": false,
  "volume": 0,
  "liquidity": 0,
  "endDate": "<endDate>",
  "markets": [],
  "tags": []
}
```

### Query

- Capability: `search/query`
- Description: Search results. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Search events, tags and public profiles by text. Markets are nested inside matching events; follow event IDs or slugs for full detail. Search results include pagination metadata.
- Cost: 5 credits per call
- Capability file: [Query](https://firecrawl.dev/alexandria/agents/providers/polymarket/search/query)

Accepted options:
- `q` (string, required): Free-text search query, for example bitcoin. Example: `<q>`
- `limit_per_type` (number, required): Maximum matches per result type (1 to 100); required to bound results. Example: `10`
- `page` (number): Search page number, starting at 1. Example: `10`
- `events_status` (string): Upstream event status filter, for example active. Example: `<events_status>`
- `events_tag` (string[]): Event tag labels, serialized as repeated query parameters. Example: `[]`
- `search_tags` (boolean): Include matching tags. Example: `false`
- `search_profiles` (boolean): Include matching public profiles. Example: `false`
- `keep_closed_markets` (number): Upstream integer setting for retaining closed markets in search results. Example: `10`
- `sort` (string): Upstream search sort field. Example: `<sort>`
- `ascending` (boolean): Whether to sort in ascending order. Example: `false`

Response schema example:
```json
{
  "events": [],
  "tags": [],
  "profiles": [],
  "pagination": {}
}
```

### Tags list

- Capability: `tags/list`
- Description: List of tags. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Find topic tags and their IDs before filtering markets or events by tag_id.
- Cost: 5 credits per call
- Capability file: [Tags list](https://firecrawl.dev/alexandria/agents/providers/polymarket/tags/list)

Accepted options:
- `limit` (number, required): Number of records to return (1 to 100); required to keep each response bounded. Example: `10`
- `offset` (number): Number of records to skip; increment by the page size. Example: `10`
- `order` (string): Comma-separated upstream field names to sort by, for example volume. Example: `<order>`
- `ascending` (boolean): Whether to sort in ascending order. Example: `false`

Response schema example:
```json
[
  {
    "id": "<id>",
    "label": "<label>",
    "slug": "<slug>"
  }
]
```

### Tags get

- Capability: `tags/get`
- Description: Tag. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Resolve one topic tag using its numeric Gamma tag ID.
- Cost: 5 credits per call
- Capability file: [Tags get](https://firecrawl.dev/alexandria/agents/providers/polymarket/tags/get)

Accepted options:
- `id` (number, required): Gamma numeric identifier used as this path segment. Example: `10`

Response schema example:
```json
{
  "id": "<id>",
  "label": "<label>",
  "slug": "<slug>"
}
```

### Series list

- Capability: `series/list`
- Description: List of series. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Browse recurring event series. Use exclude_events=true for a smaller metadata-only response.
- Cost: 5 credits per call
- Capability file: [Series list](https://firecrawl.dev/alexandria/agents/providers/polymarket/series/list)

Accepted options:
- `limit` (number, required): Number of records to return (1 to 100); required to keep each response bounded. Example: `10`
- `offset` (number): Number of records to skip; increment by the page size. Example: `10`
- `order` (string): Comma-separated upstream field names to sort by, for example volume. Example: `<order>`
- `ascending` (boolean): Whether to sort in ascending order. Example: `false`
- `slug` (string[]): Exact slug; list endpoints accept repeated slugs. Example: `[]`
- `closed` (boolean): Filter by whether the market, event or series is closed. Example: `false`
- `recurrence` (string): Series recurrence filter, for example daily. Example: `<recurrence>`
- `exclude_events` (boolean): Omit embedded events from series listings. Example: `false`

Response schema example:
```json
[
  {
    "id": "<id>",
    "slug": "<slug>",
    "title": "<title>",
    "recurrence": "<recurrence>",
    "active": false,
    "closed": false,
    "events": []
  }
]
```

### Series get

- Capability: `series/get`
- Description: Series. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Read a recurring series and its events using a series ID from series/list or sports/list.
- Cost: 5 credits per call
- Capability file: [Series get](https://firecrawl.dev/alexandria/agents/providers/polymarket/series/get)

Accepted options:
- `id` (number, required): Gamma numeric identifier used as this path segment. Example: `10`

Response schema example:
```json
{
  "id": "<id>",
  "slug": "<slug>",
  "title": "<title>",
  "recurrence": "<recurrence>",
  "active": false,
  "closed": false,
  "events": []
}
```

### Sports list

- Capability: `sports/list`
- Description: List of sports metadata objects containing sport configuration details, visual assets, and related identifiers. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: Find sport identifiers, resolution sources, tag IDs and series IDs for browsing sports prediction markets.
- Cost: 5 credits per call
- Capability file: [Sports list](https://firecrawl.dev/alexandria/agents/providers/polymarket/sports/list)

Accepted options:

Response schema example:
```json
[
  {
    "sport": "<sport>",
    "image": "<image>",
    "resolution": "<resolution>",
    "ordering": "<ordering>",
    "tags": "<tags>",
    "series": "<series>"
  }
]
```

### Market types

- Capability: `sports/market-types`
- Description: List of valid sports market types. Original upstream JSON is preserved; optional fields can be null or absent.
- Instructions: List the valid sports market type names.
- Cost: 5 credits per call
- Capability file: [Market types](https://firecrawl.dev/alexandria/agents/providers/polymarket/sports/market-types)

Accepted options:

Response schema example:
```json
{
  "marketTypes": [
    {
      "marketType": "<marketType>"
    }
  ]
}
```
