Changelog

What changed in the API contract and in this documentation.

Entries are newest first and dated in UTC. Breaking changes are announced here before they ship and additive fields are listed as they land.

2026-09-23Permalink to this section

  • Documented GET /v1/markets/{platform}/{market_id}/research under development access: stored contract rules, typed quotes and source timestamps addressed by exact platform and market id, using the same key header and account quota. The served OpenAPI document is the authority on the response schema.
  • Recorded that /v1/health, /v1/capabilities and /v1/openapi.json are unauthenticated and unmetered, and corrected the earlier claim that health counted against the account ceiling.
  • Documented the authenticated contract research workspace at https://app.getriddle.ai/research, covering two-identity comparison and conditional binary settlement scenarios. Payout is a fixed, disclosed $1 per winning unit and is not configurable; fees and slippage are the per-leg totals you enter; USD and USDC are treated at parity.
  • Development access is open: keys are created, viewed once, rotated and revoked by the account owner at app.getriddle.ai/developers, and a revoked key returns 401. Ceilings stay provisional at 60 requests per minute and 5,000 per day across an owner's keys, with no billing entitlement attached.
  • Corrected observed_at: it is nullable and records when Riddle materialised the value, not a venue timestamp.
  • Moved the summary of what the API does not carry onto this Data semantics page, alongside the field conventions it belongs with.
  • Documented the expanded history meta block: the requested window with ISO bounds, returned_points, first and last observation times, rows_examined, excluded_invalid_points, the limits object with a 2000 point ceiling, and completeness reported as partial_by_construction.
  • Added a Python example that reads truncated, excluded_invalid_points and the observed bounds before analysing a series.
  • Clarified that capabilities readiness distinguishes absent from unknown, and that an absent result for one routine says nothing about the others.
  • Corrected sorting: market_id is the only supported sort field, defaulting to ascending. Volume and price change sorts were removed from every example.
  • Documented volume availability per platform: Polymarket reports documented USD windows, Kalshi and Limitless return null on both fields, and null means unavailable rather than zero.
  • Documented the list status parameter as a legacy query name for in_current_feed, not a venue trading status.
  • Documented venue_url as nullable and host-validated, the markets_in_feed_is_estimate flag on health, the activation dependency report on capabilities, and the omission of invalid or unapproved observations from history.
  • Aligned the reference pages with the v1 source that has been built: base URL, x-api-key authentication, the list, detail, history, health, capabilities and OpenAPI paths, and the per-endpoint response envelopes, with a request_id on each.
  • Documented the market and observation fields as built, and removed earlier descriptions of venue status, close time, settlement fields and volume history, none of which the API returns.
  • Recorded that q is a title substring filter rather than semantic matching, and that history returns Riddle observations rather than OHLCV or order book data.
  • Published the development ceilings of 60 requests per minute and 5,000 per day across an owner's keys, as provisional limits and not a paid entitlement.
  • Published the first version of this documentation centre.