Betting signals (edge)
Model forecast × best market price → actionable, informational edge. Both endpoints cost 18 credits.
Informational only
Signals are decision support — never betting advice and never a guaranteed outcome. Sizing uses fractional Kelly precisely because the model can be wrong.
get-signal
POST /get-signal · edge (18 credits)
Per-fixture betting signal: fuses the Dixon-Coles forecast with the best available market price into a recommendation with edge %, EV and a fractional-Kelly stake.
| Body field | Type | Description |
|---|---|---|
event | string | natural fixture description ("Brazil vs Morocco") |
event_urn | string | canonical URN (preferred when known) |
team / opponent | string | alternative to event |
date | string | YYYY-MM-DD, disambiguates rematches |
bankroll | string | optional bankroll for stake sizing |
kelly_fraction | number | fraction of full Kelly (default 0.25) |
min_edge_bps | int | minimum edge to surface, basis points (default 200) |
fee_bps | int | market fee in basis points (default 0) |
include_reasoning | bool | include the signal's reasoning trace |
curl -X POST https://api.machina.gg/world-cup/v1/get-signal \
-H "X-Api-Token: $KEY" -H "Content-Type: application/json" \
-d '{"event": "Brazil vs Morocco", "bankroll": "1000", "kelly_fraction": 0.25}'Response: recommendation (side/skip), edge in bps, expected value, suggested stake, the market used for pricing, and the resolved event_urn.
find-market-edges
POST /find-market-edges · edge (18 credits)
Tournament-wide scan: every open market compared against the model — returns informational edge candidates ranked by gap.
| Body field | Type | Description |
|---|---|---|
min_edge_bps | int | minimum edge, basis points (default 200) |
limit | int | max candidates (default 10) |
status | string | market status filter (e.g. "open") |
include_reasoning | bool | per-candidate rationale |
curl -X POST https://api.machina.gg/world-cup/v1/find-market-edges \
-H "X-Api-Token: $KEY" -H "Content-Type: application/json" \
-d '{"min_edge_bps": 300, "limit": 5}'
