Skip to main content
GET
Find markets by what their book and tape are doing

Authorizations

X-Client-Id
string
header
required

Credential client id (kairos_ck_...). Must be sent together with X-Api-Key and X-Api-Secret.

X-Api-Key
string
header
required

64-char hex API key.

X-Api-Secret
string
header
required

64-char hex API secret.

Query Parameters

min_spread
number

Cents. Only two-sided books can satisfy a spread bound.

Required range: 0 <= x <= 100
max_spread
number

Cents.

Required range: 0 <= x <= 100
min_price
number

Cents, on the matched outcome's mid.

Required range: 0 <= x <= 100
max_price
number

Cents, on the matched outcome's mid.

Required range: 0 <= x <= 100
min_volume_24h
number

Dollars traded in the rolling 24h window.

Required range: x >= 0
min_volume_1h
number

Dollars traded in the rolling 1h window.

Required range: x >= 0
min_liquidity
number

Dollars resting across every outcome, both sides.

Required range: x >= 0
max_liquidity
number

Dollars resting across every outcome, both sides. Pair with a volume floor to find thin books carrying heavy flow.

Required range: x >= 0
min_outcome_liquidity
number

Dollars resting on the matched outcome alone, both sides.

Required range: x >= 0
min_open_interest
number

Contracts outstanding.

Required range: x >= 0
two_sided
boolean
default:false

Only markets quoting a bid and an ask. A settled market has no quotes at all, which would otherwise read as infinitely thin.

max_book_age_minutes
number
default:10

Drop markets whose top of book has not been published within this many minutes. Settled and delisted markets stop being streamed, so their frozen book would otherwise screen as a live quote — on a live catalogue that is more than half the records. 0 removes the bound and returns them.

The timestamp is the streamer's publish clock, so this detects "nothing is publishing this market any more", not "the venue's book went quiet": a wedged venue connection re-publishing a cached book still stamps now.

Required range: x >= 0
provider
string[]

Repeatable. Restricts the screen to these venues.

sort
enum<string>
default:volume_24h
Available options:
volume_24h,
volume_1h,
spread_desc,
spread_asc,
liquidity,
open_interest
limit
integer
default:50
Required range: 1 <= x <= 500
offset
integer
default:0
Required range: 0 <= x <= 10000

Response

A page of matching markets, most relevant to the chosen sort first.

markets
object[]
required
total
integer
required

Matches before paging. -1 means the ordered walk stopped at the page bound and the rest were not counted — render it as "top N", not as a count.

available
boolean
required

False when the live vitals service could not be reached. Distinct from a screen that matched nothing, which is available with an empty markets.

plan
string

How the scan ran (index_ordered, index_range, scan). Diagnostic.

limit
integer
offset
integer