API reference / Sandbox (no key)
GET /v1/demo/book-sportLive book+sport snapshot (no key; powers SEO page differentiation)
Public, book-specific live odds for one sport. Truncated to a few events/races. Cached 90s.
curl 'https://api.puntersedge.online/v1/demo/book-sport?book=sportsbet&sport=afl'
| Name | In | Type | Required | Description |
|---|---|---|---|---|
book |
query | string | yes | SANDBOX bookmaker slug e.g. sportsbet. Slugs, not API bookmaker keys -- the real keys are betr_au, ladbrokes_au, pointsbetau, playup. Use GET /v1/racing/next-to-go for the real ones. |
sport |
query | string | yes | SANDBOX sport slug e.g. afl or horse-racing. These are this endpoint's own URL vocabulary, NOT API sport_keys -- the keyed API has no 'horse-racing' sport_key at all (racing lives under /v1/racing/*). |
Status codes: 200, 401, 422, 500. Response bodies are JSON; the full schema is in /openapi.json.
200 application/json
— no key needed, so this exact request returns a body of this shape.
Field names and types are as the API returns them; values are a real sample, trimmed to a few items.
{
"demo": true,
"book": "sportsbet",
"sport": "nrl",
"type": "sports",
"items": [
{
"home_team": "Cronulla Sharks",
"away_team": "Nth Queensland Cowboys",
"commence_time": "2026-09-09T02:00:00Z",
"prices": [
{
"name": "Cronulla Sharks",
"price": 1.44
},
{
"name": "Nth Queensland Cowboys",
"price": 2.81
}
]
},
{
"home_team": "South Sydney Rabbitohs",
"away_team": "Newcastle Knights",
"commence_time": "2026-09-09T02:05:00Z",
"prices": [
{
"name": "South Sydney Rabbitohs",
"price": 1.4
},
{
"name": "Newcastle Knights",
"price": 2.97
}
]
}
],
"has_data": true,
"cached": false
}
GET /v1/demo/best-odds — Sample best-odds + arb detection (no key required)GET /v1/demo/racing/next-to-go — Sample next-to-go races (no key required)The free tier needs no credit card, and the sandbox endpoints need no key at all.
Get a free API key Quickstart