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
Authentication
Paid tier required. See/clobv2/trades for auth formats.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Results per page (1-500, default 50). |
offset | integer | No | Skip this many results (0-10000000, default 0). |
Parameter validation
limit: 1-500.offset: 0-10000000.
400 Bad Request.
Response
Response fields
| Field | Type | Description |
|---|---|---|
count | integer | Number of events in this page. |
source | string | Always "onchain-v2". |
pagination.limit / offset / has_more | Standard offset-based pagination. | |
events[].id | string | 32-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_title | string | Human-readable event name (e.g. "PGA TOUR Wyndham Championship – Winner"). |
events[].event_slug | string | URL slug of the event. |
events[].question_count | integer | Number of outcomes in the event — matches child_market_count for well-formed events. |
events[].child_market_count | integer | Number of child markets included. Each child market is a "Will {outcome} win?" binary. |
events[].outcomes | array of strings | Candidate names in outcome-index order. For PGA this is players, for elections this is candidates, etc. |
events[].child_condition_ids | array of strings | 32-byte condition_ids — one per child market, same order as outcomes. Use these to pull fills/positions for a specific outcome. |
events[].image | string | null | CDN URL of the event image. |
events[].end_date | string | null | ISO-8601 UTC resolution date. |
Rate-limit headers
Standard:x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset.
Examples
Error responses
| Status | Body | When |
|---|---|---|
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": "temporary_data_provider_error"} | Temporary data provider issue. Retry with backoff. |
Notes
outcomesandchild_condition_idsare parallel arrays — the Nth outcome corresponds to the Nth condition_id.question_countcan differ slightly fromchild_market_countif 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_titleis 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=....

