Skip to main content
POST
Generate AI strategy signal

Query Parameters

wait
boolean
default:false

Block until analysis completes (up to 5 min)

expand
string
default:""

Comma-separated expansions

Body

application/json

Request body for the signal endpoint.

platform
string
default:""

Filter by platform: 'kalshi', 'polymarket', or 'robinhood'

market_id
string
default:""

Platform-specific market identifier

market_query
string
default:""

Free-text market question (used if market_id not provided)

force
boolean
default:false

Force fresh analysis even if a cached result exists

Response

Successful Response

Actionable trading signal with position sizing.

The core product — everything needed to execute a trade.

platform
string
required

kalshi, polymarket, robinhood, or coinbase

market_id
string
required

Platform-specific market identifier

title
string
required

Market question

recommendation
enum<string>
required

Actionable recommendation

Available options:
BUY_YES,
BUY_NO,
NO_TRADE
target_price
number
required

Suggested entry price (0.0-1.0)

Required range: 0 <= x <= 1
edge
number
required

estimated_prob - market_price (positive = underpriced YES)

confidence
number
required

Confidence in the signal

Required range: 0 <= x <= 1
risk_rating
enum<string>
required

Overall risk assessment

Available options:
low,
medium,
high
size_pct
number
required

Kelly-derived position size as fraction of bankroll

Required range: 0 <= x <= 1
time_horizon
string
required

Expected resolution: 'hours', 'days', 'weeks'

expires_at
string<date-time>
required

Signal staleness window — do not trade after this time

hedge
string | null

Suggested hedge, e.g. 'Buy NO on KXFED-26MAR19 at 0.82'

causal
CausalDecomposition · object | null

Causal decomposition (?expand=causal)

Example:
freshness
enum<string> | null

Data freshness of the underlying analysis

Available options:
fresh,
stale,
expired
generated_at
string<date-time>

When this signal was produced