Risk and bets
The risk check comes with Growth and Enterprise. Recording bets for settlement webhooks works on every plan. Sandbox keys can use both endpoints on the delayed feed.
Risk check
POST /api/v1/risk/check
{
"customer_ref": "cust_4410",
"event_id": "rp-tennis-1-3932",
"market_key": "pt:57",
"selection_key": "server",
"stake": 250,
"price": 1.52
}
The answer is accepted, reduced (with max_stake, the largest stake that fits your limits) or rejected (with a reason: market_closed, price_changed with current_price, liability_limit).
{
"data": {
"decision": "reduced",
"max_stake": 120,
"reason": "liability_limit",
"price": 1.52,
"liability_before": 9880,
"liability_after": 10005,
"limits": { "max_liability": 10000, "max_stake": 5000 },
"customer": { "settled": 31, "win_rate": 0.645, "sharp": true }
}
}
Limits come from the console (market liability per market type, maximum stake per customer). Without your own limits the defaults are 50,000 liability per market and 5,000 per customer, in your currency. A customer with at least 20 settled bets and a win rate of 60 percent or more is flagged sharp and gets half the limits.
Record a bet
POST /api/v1/bets with the same fields plus your own bet_id. The engine runs the same check; an accepted bet is stored (201), counts toward liability and settles when its market resolves.
GET /api/v1/bets/{bet_id} returns the bet with status open, won or lost and the payout.