18+ only. Gambling can be addictive. National Responsible Gambling Programme 0800 006 008.

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.

A laptop glowing with green data on a dark desk, six yellow numbered lottery balls lined up beside it

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.

PathWhat you get
world/next.jsonNext draw per world game; ?game=mega-millions filters one game. Estimates are labelled.
gosloto/next.jsonExpected next slot per Gosloto format. These observed slots are estimates.
lotto/next.jsonSA game schedules. next is null while an exact time is unconfirmed.
uk49s/latest.jsonLatest result per draw (Brunchtime, Lunchtime, Drivetime, Teatime) and the last eight overall.
uk49s/next.jsonThe next draw, its time in SAST and UTC, and seconds to go. Computed when you ask.
uk49s/schedule.jsonDraw times and the UK summer/winter rule behind them.
uk49s/draws.jsonEvery draw on record, 5 799 of them, oldest first. Also as draws.csv.
uk49s/2026.jsonOne year. Any year from 2018.
uk49s/draws/2026-09-06.jsonOne date, both draws.
gosloto/latest.jsonGosloto 4/20, 5/36, 5/50, 6/45 and 7/49; 808 draws in draws.json and draws.csv.
lotto/latest.jsonLotto, 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.jsonFrance 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.secondsToGo

No 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+.