Polymarket Event Search

GET/gateway/v1/search/polymarket

[DEPRECATED] Use `GET /v1/search/prediction-market?platform=polymarket` instead. This endpoint will continue to work but will not receive new features.

---

Searches Polymarket events by keyword, tags, and/or category.

Filters: - Keyword matching market question, event title, or description - Comma-separated tag labels - Surf-curated category

At least one of `q`, `tags`, or `category` is required. Returns events with nested markets ranked by volume.

Data refresh: ~30 minutes

Query Parameters

qstring

Search keyword matching market question, event title, or description

Example: bitcoin
tagsstring

Comma-separated tag labels to filter by (matches any). Commonly used tags: `Crypto`, `Politics`, `Sports`, `Science`, `Pop Culture`

Example: politics
categoryenum<string>

Filter by Surf-curated category

Available options:cryptocultureearly_polymarket_tradeseconomicsfinancialspoliticsstemsportsunknown
Example: politics
statusenum<string>

Market status filter: `active`, `finalized`, `ended`, `initialized`, or `closed`

Available options:activefinalizedendedinitializedclosed
Example: active
limitinteger

Results per page

Example: 20
offsetinteger

Pagination offset

Example: 0
Polymarket Event Search
const options = {method: 'GET'};

fetch('https://api.asksurf.ai/gateway/v1/search/polymarket?q=bitcoin&tags=politics&category=politics&status=active&limit=20&offset=0', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
OK
{
  "$schema": "https://example.com/schemas/DataResponsePolymarketEvent.json",
  "data": [
    {
      "category": "<string>",
      "description": "<string>",
      "end_time": 123,
      "event_slug": "<string>",
      "image": "<string>",
      "market_count": 123,
      "markets": [
        {
          "category": "<string>",
          "close_time": 123,
          "completed_time": 123,
          "condition_id": "<string>",
          "description": "<string>",
          "end_time": 123,
          "event_slug": "<string>",
          "game_start_time": 123,
          "image": "<string>",
          "market_slug": "<string>",
          "negative_risk_id": "<string>",
          "polymarket_link": "<string>",
          "resolution_source": "<string>",
          "side_a": {
            "id": "<string>",
            "label": "<string>"
          },
          "side_b": {
            "id": "<string>",
            "label": "<string>"
          },
          "start_time": 123,
          "status": "<string>",
          "subcategory": "<string>",
          "tags": [],
          "title": "<string>",
          "volume_1_month": 123,
          "volume_1_week": 123,
          "volume_1_year": 123,
          "volume_total": 123,
          "winning_side": "<string>"
        }
      ],
      "settlement_sources": "<string>",
      "start_time": 123,
      "status": "<string>",
      "subcategory": "<string>",
      "tags": [],
      "title": "<string>",
      "volume_total": 123
    }
  ],
  "meta": {
    "cached": true,
    "credits_used": 123,
    "empty_reason": "<string>",
    "has_more": true,
    "limit": 123,
    "offset": 123,
    "total": 123,
    "watermark": 123
  }
}