Skip to content

Live contest for a series

GET
/v1/contests/active
curl --request GET \
--url 'https://api.cotes.ai/v1/contests/active?series=KXBTC15M' \
--header 'Authorization: Bearer <token>'

Returns the live contest for the given series prefix (e.g. KXBTC15M), including all Cotes AI signals for that contest.

series
required
string
>= 1 characters

Series prefix, e.g. KXBTC15M. Match is exact and case-sensitive on the prefix. A full ticker also resolves while that round is live, but use /v1/contests/{ticker} for a specific round.

Example
KXBTC15M

Active contest

Media typeapplication/json
object
ticker
required
string
state
required
string
Allowed values: live expired settled
window
required
object
opens_at
required
string format: date-time
expires_at
required
string format: date-time
strike_price_dollars

Strike / to-beat underlying price in USD, if known.

number | null
settled_side
string | null
Allowed values: up down
settled_price_dollars

Oracle settled underlying price (expiration value) in USD once the contest is settled; null while live or if the oracle did not report it.

number | null
signals
required

All Cotes AI signals for this contest (consumers apply their own thresholds).

Array<object>
object
ticker
required

Contest ticker this signal belongs to (same as parent Contest.ticker).

string
raised_at
required
string format: date-time
side
required
string
Allowed values: up down
confidence
required

Model probability on side (0–100).

number
entry_price_cents
required

Venue quote for side on the 0–100¢ scale ($0.54 → 54). Same denomination as edge_cents.

number
edge_cents
required

Confidence − entry_price_cents. Signed probability points, not settlement money.

number
outcome
required
string
Allowed values: pending win loss void
model_version

Version tag of the model that produced this reading. Stable across a model’s life and changes only when a new model is deployed, so it groups readings by the model behind them. Null on readings stored before the tag was recorded.

string | null
Example
{
"state": "live",
"settled_side": "up",
"signals": [
{
"side": "up",
"outcome": "pending",
"model_version": "c5456da6"
}
]
}

Missing or invalid API key

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example"
}

No matching contest

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example"
}

Too many requests

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example"
}
Retry-After
integer
X-RateLimit-Limit
integer
X-RateLimit-Remaining
integer