Free results API
Many sites and groups copy these numbers by hand every day. This service saves them the work. It is free; credit Lotto49s as the source and link to the site.
Latest results
GET /api/v1/latest
Returns the most recent draws of every game, newest first, with their status. Cached for thirty seconds. CORS open.
Try itOne draw
GET /api/v1/results?date=YYYY-MM-DD&game=&operator=&session=
Every number of a draw. The date is required; the game narrows the answer and, without a game, every draw of the day is returned.
Try itCheck a ticket
GET /api/v1/check?game=&numbers=&bet=&date=&session=
Answers whether a ticket won and which prize, applying each game's prize rules. Never cached: the answer is sent no-store so your numbers are not served to anyone else. The site's own checker does not use this service: it works in the browser.
Numbers are separated by commas, spaces or hyphens. On the UK 49's, one to five numbers are a Lucky Numbers bet on the six main balls; bet=lucky-booster counts the Booster as a seventh ball and bet=booster checks one number against the Booster alone. On a National Lottery game, a board is the game's main numbers, with the PowerBall last on PowerBall. Without date the answer uses the latest published draw of the game. The answer carries won, bet, numbers (your numbers), drawNumbers, drawBonus and matches, with the name of each prize won and, where the game's table publishes it, its amount.
Live
GET /live/{date}/{session}.json
The document the site's live board polls. The numbers appear one by one. Cached for two seconds. /live/2026-10-01/night.json
What a draw looks like in the JSON
Every game has the same shape: the main numbers in ascending order, as every publisher prints them, and the extra balls, if any, in a list of their own. What the extra ball means depends on the game: the Booster on the UK 49's, the Bonus Ball on Lotto, the PowerBall on PowerBall; Daily Lotto has none.
game | The game identifier, the same as in the address of its page (for example lunchtime or powerball). |
|---|---|
name | The name of the game. |
operator | Operator: uk49s (the UK 49's) or sa (the South African National Lottery). |
date | Date of the draw, YYYY-MM-DD, in South African time. |
session | day or night: day for the UK 49's draws, night for the National Lottery draws. Every game draws at most once a day. |
time | Time of the draw, HH:mm, in South African time. The UK 49's draw on the UK clock, so their South African time moves by an hour when British Summer Time starts and ends. |
status | Status of the result; see below. |
numbers | The main numbers in ascending order, as text with their leading zero ("07", not 7). |
bonus | The extra balls (the Booster on the UK 49's, the Bonus Ball on Lotto, the PowerBall on PowerBall); an empty list if the game has none. |
url | Address of the draw page on Lotto49s. |
reportedBy | Only in /api/v1/results: the sources that reported this result. |
Limits, and a key if you need more
Every response carries rate-limit headers, and a refusal includes retry-after in seconds. Without a key you get 60 requests a minute, more than enough for a site or an app.
If you need more, ask for a key: send it as an Authorization bearer or in the X-API-Key header, and the limit goes up to 600 a minute. It is still free.
How to read the status field
verified— independent sources agree. Safe to republish.live/live_complete— read from the broadcast, not yet confirmed. Mark it as provisional if you republish it.
Draws without a published result (not drawn yet, postponed or with sources in disagreement) are left out of the answers.