Developer Documentation
This page contains the WagerWise Odds API documentation. All endpoints require an API key.
https://wagerwise-odds.com
Tip: Change the Base URL above to update all request examples instantly.
Authentication
Send your key with each request in the header.
If the key is missing or invalid you will
receive401 Unauthorized
Some endpoints also enforce feature flags and may return
403 Forbidden
cURL
curl -H "X-API-Key: YOUR_KEY" https://wagerwise-odds.com/
Security best practice: keep API keys on your server; never ship them in public client code.
Endpoints
All endpoints below are available under the Base URL and require
X-API-Key
GET or POST /api/fixtures
Returns scheduled games grouped by league. With odds_data_id's included.
X-API-Key: YOUR_KEY
curl -H "X-API-Key: YOUR_KEY" \
https://wagerwise-odds.com/api/fixtures
import requests
BASE = 'https://wagerwise-odds.com'
KEY = 'YOUR_KEY'
r = requests.get(f"{BASE}/api/fixtures", headers={'X-API-Key': KEY})
print(r.json())
const BASE = 'https://wagerwise-odds.com';
const KEY = 'YOUR_KEY';
fetch(`${BASE}/api/fixtures`, { headers: { 'X-API-Key': KEY } })
.then(r => r.json())
.then(console.log);
"Premier League": {
"game_masterID": {
"sport": "soccer",
"league_name": "Premier League",
"start_time": "2025-08-21T18:00:00Z",
"team_names": { "home_team": "Team A", "away_team": "Team B" },
"game_masterID": "game_masterID",
"last_updated_at": "2025-08-20T12:34:56Z",
"bookmaker_data": { "bet365": "odds_data_id", "sportsbet": "odds_data_id" }
}
}
POST /api/odds
Returns the odds for a specific bookmaker odds data ID.
{"odds_data_id":"odds_data_id"}
curl -X POST -H "Content-Type: application/json" -H "X-API-Key: YOUR_KEY" \
-d '{"odds_data_id":"odds_data_id"}' \
https://wagerwise-odds.com/api/odds
import requests
BASE = 'https://wagerwise-odds.com'
KEY = 'YOUR_KEY'
r = requests.post(f"{BASE}/api/odds", json={"odds_data_id":"odds_data_id"}, headers={'X-API-Key': KEY})
print(r.json())
const BASE = 'https://wagerwise-odds.com';
const KEY = 'YOUR_KEY';
fetch(`${BASE}/api/odds`, {
method: "POST",
headers: { "Content-Type": "application/json", "X-API-Key": KEY },
body: JSON.stringify({ odds_data_id: "odds_data_id" })
}).then(r => r.json()).then(console.log);
"total/over 161.5 (full time)": {
"odds": 1.9, "line": "over 161.5", "type": "total standard",
"period": "full time", "number_of_outcomes": 0,
"odds_data_ID": "AFL:9409461:sportsbet",
"odds_no_vig": 2.016
}
POST /api/results
Returns final results for one or more game_masterID
. Requires
the
account feature flag results_access
.
{"game_masterID":"game_masterID"}
or
{"game_masterID":["ID1","ID2"]}
curl -X POST -H "Content-Type: application/json" -H "X-API-Key: YOUR_KEY" \
-d '{"game_masterID":["ID1","ID2"]}' \
https://wagerwise-odds.com/api/results
import requests
BASE = 'https://wagerwise-odds.com'
KEY = 'YOUR_KEY'
r = requests.post(f"{BASE}/api/results", json={"game_masterID":["ID1","ID2"]}, headers={'X-API-Key': KEY})
print(r.json())
const BASE = 'https://wagerwise-odds.com';
const KEY = 'YOUR_KEY';
fetch(`${BASE}/api/results`, {
method: "POST",
headers: { "Content-Type": "application/json", "X-API-Key": KEY },
body: JSON.stringify({ game_masterID: ["ID1", "ID2"] })
}).then(r => r.json()).then(console.log);
{
"ID1": { "home_score": 102, "away_score": 97, "status": "final" },
"ID2": "Missing game data: attempt in a few hours"
}
POST /api/results/ev-bet
Fetches EV bet records for one or more betID
.
{"betID":"BET_ID"}
or
{"betID":["ID1","ID2"]}
curl -X POST -H "Content-Type: application/json" -H "X-API-Key: YOUR_KEY" \
-d '{"betID":["BET123","BET456"]}' \
https://wagerwise-odds.com/api/results/ev-bet
import requests
BASE = 'https://wagerwise-odds.com'
KEY = 'YOUR_KEY'
r = requests.post(f"{BASE}/api/results/ev-bet", json={"betID":["BET123","BET456"]}, headers={'X-API-Key': KEY})
print(r.json())
const BASE = 'https://wagerwise-odds.com';
const KEY = 'YOUR_KEY';
fetch(`${BASE}/api/results/ev-bet`, {
method: "POST",
headers: { "Content-Type": "application/json", "X-API-Key": KEY },
body: JSON.stringify({ betID: ["BET123","BET456"] })
}).then(r => r.json()).then(console.log);
[{
"game_masterID": "...",
"sport": "...",
"league_name_repr": "...",
"away_team": "...", "home_team": "...",
"start_time": "...", "start_time_TIMESTAMP": "...",
"betID": "...", "latest_timestamp": "...", "winning_line": "win|loss|pending",
"market_type": "...", "period": 0,
"bookmaker_name": "...", "line": 1.5, "line_repr": "-1.5",
"match_link": "...", "push_line": 0,
"start_price": 1.85
}]
POST /api/results/arb-bet
Fetches arbitrage bet records for one or more betID
, including
up to three opposing selections.
{"betID":"BET_ID"}
or
{"betID":["ID1","ID2"]}
curl -X POST -H "Content-Type: application/json" -H "X-API-Key: YOUR_KEY" \
-d '{"betID":"BET123"}' \
https://wagerwise-odds.com/api/results/arb-bet
import requests
BASE = 'https://wagerwise-odds.com'
KEY = 'YOUR_KEY'
r = requests.post(f"{BASE}/api/results/arb-bet", json={"betID":"BET123"}, headers={'X-API-Key': KEY})
print(r.json())
const BASE = 'https://wagerwise-odds.com';
const KEY = 'YOUR_KEY';
fetch(`${BASE}/api/results/arb-bet`, {
method: "POST",
headers: { "Content-Type": "application/json", "X-API-Key": KEY },
body: JSON.stringify({ betID: "BET123" })
}).then(r => r.json()).then(console.log);
{
"game_masterID": "...", "sport": "...", "league_name_repr": "...",
"away_team": "...", "home_team": "...",
"start_time": "...", "start_time_TIMESTAMP": "...",
"betID": "...", "latest_timestamp": "...", "winning_line": "win|loss|pending",
"selection_1_bookmaker_name": "...", "selection_1_line": 1.9, "selection_1_line_repr": "...", "selection_1_match_link": "...", "selection_1_push_line": 0,
"selection_2_bookmaker_name": "...", "selection_2_line": 2.0, ...,
"selection_3_bookmaker_name": "...", ...,
"market_type": "...", "period": 0
}
GET or POST /data/{collection_name}
Returns a curated JSON formatted bets. Valid collections:
current_middle_bets
current_arbitrage
current_pos_ev
current_freebets
curl -H "X-API-Key: YOUR_KEY" \
https://wagerwise-odds.com/data/current_pos_ev
import requests
BASE = 'https://wagerwise-odds.com'
KEY = 'YOUR_KEY'
r = requests.get(f"{BASE}/data/current_pos_ev", headers={'X-API-Key': KEY})
print(r.json())
const BASE = 'https://wagerwise-odds.com';
const KEY = 'YOUR_KEY';
fetch(`${BASE}/data/current_pos_ev`, { headers: { 'X-API-Key': KEY } })
.then(r => r.json())
.then(console.log);
[{ "betID": "...", "ev": 12.3, "bookmaker": "...", "...": "..." }]
Note: query params percent_limit
and
membership
are reserved and currently ignored.
Errors & Status Codes
All requests count toward your monthly quota; tallied per API key.
Successful request.
Missing or invalid body parameter (e.g. odds_data_id
,
game_masterID
,
betID
).
Missing or invalid X-API-Key
.
Feature not enabled for this API key (e.g. results_access
).
No document found (e.g. missing odds or bets), or unknown collection name.
Support
Questions or issues? Email contact@wagerwise.com.au with your API key (redacted) and the failing endpoint + request ID if available.