API uptime target
Monthly operating target for production API endpoints. Check current health on the status page.
Request PointsBet odds with the pointsbet filter, then compare them with Sportsbet, TAB and Bet365 through the same event and market structure.
{
"event_id": "afl-coll-syd",
"items": [
{
"bookmaker": "pointsbet",
"bet_type": "handicap",
"period_str": "full game",
"side": "home",
"selection_name": "Collingwood Magpies -9.5",
"odds": 1.91
},
{
"bookmaker": "pointsbet",
"bet_type": "total",
"period_str": "full game",
"side": "over",
"selection_name": "Over 168.5",
"odds": 1.90
}
],
"resume": "1784092451749-0"
}
pointsbet bookmaker key.
Find a current PointsBet event, then request only its prices with the canonical bookmaker key.
X-API-Keypointsbet/v1/events/{event_id}/odds/snapshot?bookmakers=pointsbet
const apiKey = process.env.ODDS_API_KEY;
const baseUrl = "https://api.odds-api.net/v1";
const headers = { "X-API-Key": apiKey };
if (!apiKey) throw new Error("Set ODDS_API_KEY before running this file.");
async function getJson(path) {
const response = await fetch(`${baseUrl}${path}`, { headers });
if (!response.ok) throw new Error(await response.text());
return response.json();
}
const events = await getJson("/events?limit=200");
const event = events.items.find(({ bookmakers }) =>
Array.isArray(bookmakers)
? bookmakers.includes("pointsbet")
: Object.hasOwn(bookmakers ?? {}, "pointsbet")
);
if (!event) throw new Error("No current PointsBet event found.");
const snapshot = await getJson(
`/events/${encodeURIComponent(event.event_id)}/odds/snapshot?bookmakers=pointsbet`
);
console.log(JSON.stringify(snapshot, null, 2));
import os
import requests
base_url = "https://api.odds-api.net/v1"
headers = {"X-API-Key": os.environ["ODDS_API_KEY"]}
events_response = requests.get(
f"{base_url}/events",
headers=headers,
params={"limit": 200},
timeout=20,
)
events_response.raise_for_status()
events = events_response.json()["items"]
event = next(
(item for item in events if "pointsbet" in item.get("bookmakers", [])),
None,
)
if event is None:
raise RuntimeError("No current PointsBet event found.")
response = requests.get(
f"{base_url}/events/{event['event_id']}/odds/snapshot",
headers=headers,
params={"bookmakers": "pointsbet"},
timeout=20,
)
response.raise_for_status()
print(response.json())
export ODDS_API_KEY="your_api_key"
export EVENT_ID="replace_with_event_id"
curl -sS \
-H "X-API-Key: $ODDS_API_KEY" \
"https://api.odds-api.net/v1/events/$EVENT_ID/odds/snapshot?bookmakers=pointsbet"
Keep PointsBet prices attached to the same fields used across your Australian bookmaker comparison.
Monthly operating target for production API endpoints. Check current health on the status page.
Load a snapshot, process supported deltas, and resume the stream after a disconnect.
Head-to-head, line, totals, team totals and player props share one response model.
Use bookmakers=pointsbet,sportsbet,tab,bet365ww to bring local prices into one event and market structure.
Explore the Australian odds APIUse normalized bet_type values to place head-to-head, line, totals, team totals and player props into one odds board.
| Market | API bet_type | What it covers |
|---|---|---|
| Head-to-head |
moneyline
|
Straight-up winner prices for full games and covered periods. |
| Line |
handicap
|
Favourite and underdog lines with the handicap kept alongside each selection. |
| Match total |
total
|
Full-game and period totals with separate over and under selections. |
| Team totals |
team total
|
Team-specific scoring totals for covered matches and periods. |
| Player props |
player pointsplayer goalsplayer disposals
|
Player performance markets for covered leagues and events where supplied. |
PointsBet market availability changes by sport, league, event, and time. Use the current event snapshot as the source of truth.
Tools for events, odds, line movement, streams, and paid-plan positive EV or arbitrage feeds.
Agent-ready instructions.
TypeScript, Python, Postman and example builds.
Sports and racing odds coverage for agent workflows.
Lightweight streaming updates for dashboards and alerts.
Bidirectional streams for richer pre-match products.
Find the event, request PointsBet, add local bookmaker filters, then track supported pre-match price changes.
Request GET /v1/events and choose an event that lists pointsbet in its bookmaker coverage.
Call the event snapshot with bookmakers=pointsbet and keep its freshness and resume fields.
Pass pointsbet,sportsbet,tab,bet365ww and match rows by event, market, period, line and selection.
Open the matching stream, process supported deltas, and use the resume token when reconnecting.
Choose a monthly plan based on request volume, rate limits, and support.
Practical answers about PointsBet access, regional coverage, comparisons, streaming, and the canonical bookmaker key.
No. odds-api is an independent data service that provides normalized PointsBet odds where coverage is available. It is not affiliated with, endorsed by, or sponsored by PointsBet, and it does not place bets or access customer accounts.
Use bookmakers=pointsbet on a covered event snapshot. Confirm the exact pointsbet key in GET /v1/bookmakers and verify that the event lists PointsBet before requesting prices.
The public bookmaker registry currently lists PointsBet for Australia and Canada, including Ontario. Use GET /v1/bookmakers and the live coverage catalog to confirm what is available to your account.
Yes. On endpoints that accept multiple bookmaker filters, pass pointsbet,sportsbet and match rows by normalized event, market, period, side, and selection fields.
Supported SSE and WebSocket streams can deliver covered pre-match changes after an initial REST snapshot. Use the returned resume token when reconnecting.
Create a key, request a covered event, then add PointsBet to the bookmaker comparison your users already understand.