Skip to main content
Every v2 OrderFilled event as it lands on-chain, joined to the 860K-market metadata layer so every hex ID comes back with question, slug, event_title, image, and outcome inline. No cursor games — simple limit + offset. Data appears within seconds of confirmation.

Request

Authentication

Paid tier required. Pass your API key via x-api-key, Authorization: Bearer, or ?key=:
Free-tier keys receive 402 Payment Required.

Query parameters

All parameters are optional. Calling the endpoint with no filters returns the 100 newest fills.

Parameter validation

  • wallet: regex ^0x[a-f0-9]{40}$ (case-insensitive, normalized to lowercase).
  • condition_id, builder: regex ^0x[a-f0-9]{64}$.
  • token_id: 1-78 digits, ^[0-9]+$.
  • Timestamps: i64, must be ≥ 0.
  • limit: 1-500. offset: 0-10000000.
Anything that fails a validator returns 400 Bad Request with {"error": "..."} before the backend is touched.

Response

Response fields — derived convenience (most users start here)

One row per fill. These fields collapse the two-sided fill into a familiar “buy/sell” shape:

Response fields — raw two-sided (full precision, for advanced users)

Same fill, served raw so you can see exactly what’s on-chain:

Response fields — market metadata (all enriched via the 860K-market layer)

Response fields — envelope

Rate-limit headers

Every response includes:

Examples

Error responses

Notes

  • maker_token_id = "0" (or taker_token_id = "0") means that side of the fill is USDC collateral. The non-zero side is the outcome token.
  • Numeric fields come back as strings (e.g. "2.9500000000000000") to avoid float precision loss. Parse with Decimal/BigNumber before math.
  • builder = "0x000...000" means the order did not carry a builder tag.
  • question, slug, image, event_title, outcome may be null briefly on newly seen markets. Market metadata usually appears within 30 seconds.
  • Pagination is offset-based. If new fills arrive between pages, the same fill may be seen twice or skipped — for historical dumps, filter by end=<snapshot_ts> to get a stable window.