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 viax-api-key, Authorization: Bearer, or ?key=:
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.
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"(ortaker_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 withDecimal/BigNumberbefore math. builder = "0x000...000"means the order did not carry a builder tag.question,slug,image,event_title,outcomemay benullbriefly 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.

