Available, development access
Getting started
From an API key to a first parsed response, in four steps.
1. Get an API keyPermalink to this section
Sign in at app.getriddle.ai/developers and create a key. The key is shown once at creation, so copy it then; you can rotate or revoke it from the same console at any time. Development access carries provisional ceilings and no billing entitlement.
2. Store the keyPermalink to this section
Keep the key in your secret store or environment, never in source control or a browser bundle. The API is designed for server-to-server use; a key in client-side JavaScript is a key you have published.
export RIDDLE_API_BASE="https://nybvquiiaarqmgpraxaq.supabase.co/functions/v1/public-api"
export RIDDLE_API_KEY="your_key_here"3. Make a requestPermalink to this section
Every call is an HTTPS request carrying the key in an x-api-key header. The q parameter is a title substring match, so ask for the words that appear in a contract title rather than a natural-language question.
curl -G "$RIDDLE_API_BASE/v1/markets" \
--data-urlencode "q=fed" \
--data-urlencode "limit=5" \
-H "x-api-key: $RIDDLE_API_KEY" \
-H "Accept: application/json"4. Read the responsePermalink to this section
List returns a data array with a page object holding limit and next_cursor. Market detail returns a single data object with no page. History returns a data array with a meta object and no cursor. Every one of them carries a request_id, and adding fields later does not break a parser that reads by key.
{
"data": [
{
"market_id": "FED-26SEP-T4.75",
"platform": "kalshi",
"title": "Fed target rate above 4.75% after the September meeting",
"category": "economics",
"event_ticker": "FED-26SEP",
"market_ticker": "FED-26SEP-T4.75",
"yes_probability": 0.42,
"no_probability": 0.58,
"price_change_24h": -0.03,
"price_change_window_hours": 24,
"volume_24h_usd": null,
"volume_7d_usd": null,
"resolution_date": "2026-09-17",
"venue_url": "https://kalshi.com/markets/FED-26SEP",
"in_current_feed": true,
"last_seen_in_feed_at": "2026-09-22T13:04:11Z",
"observed_at": "2026-09-22T13:04:11Z"
}
],
"page": { "limit": 50, "next_cursor": "c2VwdC0y" },
"request_id": "req_7f21c9ab"
}Where to go nextPermalink to this section
- Data semantics explains what yes_probability means and why it is not an executable quote.
- Markets documents every parameter and field on list, detail and history.
- Rate limits covers pagination and the development ceilings before you run a full sync.