API reference
Remove the vig
Fair probabilities for a whole market, with the bookmaker’s margin taken out. No daily limit.
POST/v1/devig
Uses the proportional method: each outcome’s implied probability divided by their sum. It is the same step optimize takes before sizing.
Request
| Field | Type | Required | Meaning |
|---|---|---|---|
markets | array | yes | 1 to 100 markets. |
markets[].odds | integer[] | yes | Every outcome's American odds: 2 for a two-way market, 3 for win, draw, loss. |
markets[].id | string | no | Your own label, echoed back. |
Example
A baseball moneyline and a soccer three-way market:
curl https://api.kellyiq.com/v1/devig \
-H "Authorization: Bearer $KELLYIQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"markets": [
{
"id": "g1",
"odds": [-145, 125]
},
{
"id": "epl",
"odds": [150, 230, 180]
}
]
}'{
"results": [
{
"id": "g1",
"odds": [
-145,
125
],
"impliedProbabilities": [
0.591837,
0.444444
],
"fairProbabilities": [
0.571116,
0.428884
],
"overround": 0.036281
},
{
"id": "epl",
"odds": [
150,
230,
180
],
"impliedProbabilities": [
0.4,
0.30303,
0.357143
],
"fairProbabilities": [
0.377297,
0.285831,
0.336872
],
"overround": 0.060173
}
]
}Response
results has one entry per market, in the order you sent them. Every list is in the order of that market’s odds:
| Field | Type | Required | Meaning |
|---|---|---|---|
id | string | null | no | Your label, echoed; null if you sent none. |
odds | integer[] | no | The prices you sent. |
impliedProbabilities | number[] | no | Each price's implied probability, margin included. They add up to more than 1. |
fairProbabilities | number[] | no | The same with the margin removed: each implied probability divided by their sum. They add up to 1 (to rounding). |
overround | number | no | The margin: the implied probabilities’ sum minus 1. 0.0435 is a 4.35% margin. |
Errors
400 VALIDATION_ERROR for invalid odds or a market without 2 or 3 of them, and 429 BURST_LIMIT_EXCEEDED above 60 calculator calls a minute. See Errors.