Developers
The BetTip Draws API
Every UK49s draw since 2018-09-01, plus Gosloto and the South African National Lottery, as JSON and CSV. No key, no account, open to any origin. Results come from the archive published by this site. Each result keeps its draw date; source or collection delays can leave a game behind.

Start here
curl https://bettip.co.za/api/v1/uk49s/latest.json UK Lotto results from 10 June 2026 contain two rounds. The existing numbers and special identify Round 1; roundTwo.numbers and roundTwo.special identify Round 2. A missing second round means collection is incomplete. Earlier draws had one round.
Static draw responses use: api, version, docs, attribution, licence, builtAt, resource, data. The result is in data. Live countdown responses use computedAt instead of builtAt.
Endpoints
Base URL https://bettip.co.za/api/v1/. The full machine-readable spec is at openapi.json; the index at v1/index.json lists everything with counts.
| Path | What you get |
|---|---|
world/next.json | Next draw per world game; ?game=mega-millions filters one game. Estimates are labelled. |
gosloto/next.json | Expected next slot per Gosloto format. These observed slots are estimates. |
lotto/next.json | SA game schedules. next is null while an exact time is unconfirmed. |
uk49s/latest.json | Latest result per draw (Brunchtime, Lunchtime, Drivetime, Teatime) and the last eight overall. |
uk49s/next.json | The next draw, its time in SAST and UTC, and seconds to go. Computed when you ask. |
uk49s/schedule.json | Draw times and the UK summer/winter rule behind them. |
uk49s/draws.json | Every draw on record, 5 799 of them, oldest first. Also as draws.csv. |
uk49s/2026.json | One year. Any year from 2018. |
uk49s/draws/2026-09-06.json | One date, both draws. |
gosloto/latest.json | Gosloto 4/20, 5/36, 5/50, 6/45 and 7/49; 808 draws in draws.json and draws.csv. |
lotto/latest.json | Lotto, Lotto Plus 1, PowerBall, PowerBall XTRA and Daily Lotto; 7 504 draws in draws.json and draws.csv; prize divisions in payouts.json. |
world/latest.json | France Lotto, Greece Powerball and others; 119 draws in draws.json. |
Examples
JavaScript
const r = await fetch('https://bettip.co.za/api/v1/uk49s/latest.json');
const { data } = await r.json();
const t = data.byDraw.teatime;
console.log(t.date, t.numbers, t.booster);Python
import requests
draws = requests.get('https://bettip.co.za/api/v1/uk49s/draws.json').json()['data']
print(len(draws), draws[-1])Google Sheets
=IMPORTDATA("https://bettip.co.za/api/v1/uk49s/draws.csv")Refreshes on its own. Columns: date, draw, n1 to n6, booster, official.
Countdown
const { data } = await (await fetch('https://bettip.co.za/api/v1/uk49s/next.json')).json();
// data.label, data.atSast, data.secondsToGoNo code: the widget
<div data-uk49s-widget data-draws="lunchtime,teatime"></div>
<script src="https://cdn.jsdelivr.net/gh/zaiqltd/uk49s-widget@main/dist/uk49s-widget.min.js" defer></script>Two lines put the latest draws and a countdown on any page, attribution included. Open source, MIT: uk49s-widget on GitHub, live demo.
How fresh, and how sure
Source availability, collector timing and site publication all affect freshness. Check each result's draw date: builtAt is a build timestamp, not proof of a new draw. The public API cannot supply a draw that its sources have not yet provided. The next-draw endpoints describe a timetable, not confirmation that a draw has happened or a result is available. They label observed or approximate times, and return next: null where an exact time is not confirmed.
UK49s times: Brunchtime 11:49 UK, Lunchtime 12:49 UK, Drivetime 16:49 UK, Teatime 17:49 UK. Local time zones account for daylight saving. World rows identify drawTimeBasis: feed preserves the original feed timestamp; scheduled uses the reviewed timetable for an official result's date. Neither is a measured publication time. The official and verified flags are source metadata; an app refresh does not independently verify a result.
The archive behind this API is the same one that produces the results pages, the predictions and the hot and cold numbers on this site.
Terms, in plain words
Free for any use, commercial included. Please credit BetTip with a link to https://bettip.co.za/ wherever the data is shown; that is the whole price. Results are the operators' published draws, reproduced as facts, and no guarantee is given; nothing here is betting advice, and lottery numbers have no memory. Be reasonable with traffic: cache archive responses and revalidate them; the high-frequency games can change many times per day. If you build something with it, say so on GitHub and it gets listed. 18+.