Skip to main content

Documentation Index

Fetch the complete documentation index at: https://polynode.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Polymarket’s negative-risk markets group a large set of competing outcomes (e.g. “who wins this PGA tournament?” with 147 golfers) under a single event. Each candidate is its own child market with its own condition_id. This endpoint lists the parents — one row per event — with the full candidate list and the set of child condition_ids so you can drill down. Backed by v2.neg_risk_event. Sorted by question_count DESC (biggest fields first).

Request

GET /clobv2/neg-risk/events

Authentication

Paid tier required. See /clobv2/trades for auth formats.

Query parameters

ParameterTypeRequiredDescription
limitintegerNoResults per page (1-500, default 50).
offsetintegerNoSkip this many results (0-10000000, default 0).

Parameter validation

  • limit: 1-500. offset: 0-10000000.
Bad input → 400 Bad Request.

Response

{
  "count": 1,
  "source": "onchain-v2",
  "pagination": {
    "limit": 1,
    "offset": 0,
    "has_more": true
  },
  "events": [
    {
      "id": "0x3124c2b2cc076379db07e928b48a4c8c82b4508bc6b87730c7e664a4b711e300",
      "event_title": "PGA TOUR Wyndham Championship – Winner",
      "event_slug": "pga-tour-wyndham-championship-winner",
      "question_count": 147,
      "child_market_count": 147,
      "image": "https://polymarket-upload.s3.us-east-2.amazonaws.com/fedex-cup-winner-uXTWFOWO-0w7.png",
      "end_date": "2025-08-04T00:00:00+00:00",
      "outcomes": [
        "Matt Fitzpatrick",
        "Robert MacIntyre",
        "Ben Griffin",
        "Keegan Bradley",
        "...147 candidates total"
      ],
      "child_condition_ids": [
        "0x0230dd23a8ee2f8cd1f79b6ef6baae2d035245cb3697d57c92b731732d630602",
        "0x057d2315840a370fcc5535921294febea4b81c5cba4407347bbe91f84fd842ab",
        "...147 child condition_ids total"
      ]
    }
  ]
}

Response fields

FieldTypeDescription
countintegerNumber of events in this page.
sourcestringAlways "onchain-v2".
pagination.limit / offset / has_moreStandard offset-based pagination.
events[].idstring32-byte parent ID — this is the neg_risk_market_id. Use it with /clobv2/neg-risk/events/{parent_id}/children to enumerate individual child markets.
events[].event_titlestringHuman-readable event name (e.g. "PGA TOUR Wyndham Championship – Winner").
events[].event_slugstringURL slug of the event.
events[].question_countintegerNumber of outcomes in the event — matches child_market_count for well-formed events.
events[].child_market_countintegerNumber of child markets indexed. Each child market is a "Will {outcome} win?" binary.
events[].outcomesarray of stringsCandidate names in outcome-index order. For PGA this is players, for elections this is candidates, etc.
events[].child_condition_idsarray of strings32-byte condition_ids — one per child market, same order as outcomes. Use these to pull fills/positions for a specific outcome.
events[].imagestring | nullCDN URL of the event image.
events[].end_datestring | nullISO-8601 UTC resolution date.

Rate-limit headers

Standard: x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset.

Examples

# 5 biggest neg-risk events
curl "https://api.polynode.dev/clobv2/neg-risk/events?limit=5" \
  -H "x-api-key: pn_live_..."

# Next page
curl "https://api.polynode.dev/clobv2/neg-risk/events?limit=50&offset=50" \
  -H "x-api-key: pn_live_..."

Error responses

StatusBodyWhen
400{"error": "invalid integer limit ..."}Bad limit or offset.
401{"error": "missing API key ..."}No key or bad key.
402{"error": "paid plan required ..."}Free tier.
429{"error": "rate limit exceeded", "reset_at": <unix>}Rate limit hit.
5xx{"error": "upstream gateway error"}Transient upstream; retried once.

Notes

  • outcomes and child_condition_ids are parallel arrays — the Nth outcome corresponds to the Nth condition_id.
  • question_count can differ slightly from child_market_count if the metadata layer hasn’t picked up every child yet. The two are equal for every well-formed event.
  • Events where the metadata layer hasn’t identified a title yet are filtered out of this response (so events[].event_title is always non-null here).
  • Sorted newest by question_count DESC — biggest fields first (PGA, elections, NBA MVP, etc.).
  • To pull all fills on a single candidate, grab that candidate’s child_condition_ids[i] and pass it to /clobv2/trades?condition_id=....