Skip to the results
Lotto49s

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 it

One 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 it

Check 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.

gameThe game identifier, the same as in the address of its page (for example lunchtime or powerball).
nameThe name of the game.
operatorOperator: uk49s (the UK 49's) or sa (the South African National Lottery).
dateDate of the draw, YYYY-MM-DD, in South African time.
sessionday or night: day for the UK 49's draws, night for the National Lottery draws. Every game draws at most once a day.
timeTime 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.
statusStatus of the result; see below.
numbersThe main numbers in ascending order, as text with their leading zero ("07", not 7).
bonusThe 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.
urlAddress of the draw page on Lotto49s.
reportedByOnly 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.