Bet on YesPlay Bet on Hollywoodbets
Bet on YesPlay Bet on Hollywoodbets

Powering lottery data for

Lotto Logic Betline Next Draw Logic Topodds TipNGoal Cape Town News LottoChecker TechNation News
Read what our customers say
The ResultsZA API feeding live lottery numbers into your website

API Documentation

Welcome to the Resultsza API documentation. Here you will find all the information needed to use our API effectively. New to the API? Read the developer overview first.

Every endpoint, ready to send. In Postman choose Import and pick the downloaded file, or paste this link: https://resultsza.co.za/static/postman/resultsza.postman_collection.json . Then paste your API key into the collection's apiKey variable.

See it in action
Ready-to-run code & live demos
Browse Python & JavaScript snippets for every endpoint, with interactive demos you can try right in the browser.
Browse scripts

Official SDKs

Skip the boilerplate

Our official Python and Node/TypeScript SDKs wrap every endpoint in a typed client. Bring your own API key.

Python pip install resultsza-sdk
Node npm install resultsza-sdk

Dedicated Endpoints

One dedicated endpoint per game, grouped by country. Use these endpoints for all new integrations.

🇸🇦 South Africa

SA Get Daily Lotto Results

Endpoint
GET /api/get_daily_lotto_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key RequiredStringYour API key
date OptionalStringYYYY-MM-DD. Omit for latest draw.
cURL
curl -i "https://resultsZA.co.za/api/get_daily_lotto_results?api_key=YOUR_API_KEY"
Response
JSON
{ "status": "success", "results": [ { "game_type": "Daily Lotto", "draw_id": "2635", "draw_date": "2026-06-02T21:00:00Z", "draw_day": "Tuesday", "draw_machine": "RNG1", "total_pool_size": 1098087.82, "total_sales": 2262699.0, "winning_numbers": [5, 6, 10, 24, 32], "bonus_ball": null, "next_draw_date": "2026-06-03T21:00:00Z", "next_jackpot": 400000.0, "rollover_amount": 0.0, "rollover_no": 0, "divisions": [ { "division": "DIV 1", "match": "MATCH 5", "winners": 1, "winning_amount": 384330.7 }, { "division": "DIV 2", "match": "MATCH 4", "winners": 278, "winning_amount": 394.9 }, { "division": "DIV 3", "match": "MATCH 3", "winners": 9076, "winning_amount": 18.1 }, { "division": "DIV 4", "match": "MATCH 2", "winners": 88379, "winning_amount": 4.9 } ] } ] }

SA Get Lotto Results

Draws every Wednesday and Saturday. Returns the full rich format (with divisions) for draws from 1 June 2026 onwards; returns the legacy format for historic draws before that date.

Endpoint
GET /api/get_lotto_results?api_key=YOUR_API_KEY
cURL
curl -i "https://resultsZA.co.za/api/get_lotto_results?api_key=YOUR_API_KEY&date=2026-06-03"
Response
JSON
{ "status": "success", "results": [ { "game_type": "Lotto", "draw_id": "2651", "draw_date": "2026-06-03T21:00:00Z", "draw_day": "Wednesday", "draw_machine": "TSHEGO", "total_pool_size": 4922711.5, "total_sales": 10046350.0, "winning_numbers": [5, 8, 19, 30, 44, 46], "bonus_ball": 13, "next_draw_date": null, "next_jackpot": 22000000.0, "rollover_amount": 17917009.44, "rollover_no": 8, "divisions": [ { "division": "DIV 1", "match": "MATCH 6", "winners": 0, "winning_amount": 0.0 }, { "division": "DIV 2", "match": "MATCH 5 + BONUS", "winners": 0, "winning_amount": 0.0 }, { "division": "DIV 3", "match": "MATCH 5", "winners": 25, "winning_amount": 44543.3 }, { "division": "DIV 4", "match": "MATCH 4 + BONUS", "winners": 61, "winning_amount": 4000.0 }, { "division": "DIV 5", "match": "MATCH 4", "winners": 1417, "winning_amount": 200.0 }, { "division": "DIV 6", "match": "MATCH 3 + BONUS", "winners": 2018, "winning_amount": 200.0 }, { "division": "DIV 7", "match": "MATCH 2 + BONUS", "winners": 21451, "winning_amount": 30.0 }, { "division": "DIV 8", "match": "MATCH 3", "winners": 28211, "winning_amount": 20.0 } ] } ] }

SA Get Lotto Plus 1 Results

Draws every Wednesday and Saturday alongside Lotto.

Endpoint
GET /api/get_lotto_plus_1_results?api_key=YOUR_API_KEY
cURL
curl -i "https://resultsZA.co.za/api/get_lotto_plus_1_results?api_key=YOUR_API_KEY&date=2026-06-03"
Response
JSON
{ "status": "success", "results": [ { "game_type": "Lotto Plus 1", "draw_id": "2651", "draw_date": "2026-06-03T21:00:00Z", "draw_day": "Wednesday", "draw_machine": "TSHEGO", "total_pool_size": 2124532.2, "total_sales": 4335780.0, "winning_numbers": [2, 28, 45, 49, 51, 52], "bonus_ball": 23, "next_draw_date": null, "next_jackpot": 2500000.0, "rollover_amount": 550724.49, "rollover_no": 1, "divisions": [ { "division": "Plus1 DIV 1", "match": "MATCH 6", "winners": 0, "winning_amount": 0.0 }, { "division": "Plus1 DIV 2", "match": "MATCH 5 + BONUS", "winners": 1, "winning_amount": 244766.4 }, { "division": "Plus1 DIV 3", "match": "MATCH 5", "winners": 28, "winning_amount": 15297.9 }, { "division": "Plus1 DIV 4", "match": "MATCH 4 + BONUS", "winners": 58, "winning_amount": 2000.0 }, { "division": "Plus1 DIV 5", "match": "MATCH 4", "winners": 1291, "winning_amount": 100.0 }, { "division": "Plus1 DIV 6", "match": "MATCH 3 + BONUS", "winners": 1596, "winning_amount": 100.0 }, { "division": "Plus1 DIV 7", "match": "MATCH 2 + BONUS", "winners": 17168, "winning_amount": 15.0 }, { "division": "Plus1 DIV 8", "match": "MATCH 3", "winners": 23848, "winning_amount": 10.0 } ] } ] }

SA Get Lotto 5 Max Results

Replaced Lotto Plus 2 from 1 June 2026. Draws every Wednesday and Saturday. Returns the same full format as other SA games.

Endpoint
GET /api/get_lotto_5_max_results?api_key=YOUR_API_KEY
cURL
curl -i "https://resultsZA.co.za/api/get_lotto_5_max_results?api_key=YOUR_API_KEY"
Response
JSON
{ "status": "success", "results": [ { "game_type": "Lotto 5 Max", "draw_id": "2651", "draw_date": "2026-06-03T21:00:00Z", "draw_day": "Wednesday", "draw_machine": "TSHEGO", "total_pool_size": 1950626.3, "total_sales": 3980870.0, "winning_numbers": [2, 4, 6, 25, 29, 42], "bonus_ball": 3, "next_draw_date": null, "next_jackpot": 13000000.0, "rollover_amount": 10766609.87, "rollover_no": 12, "divisions": [ { "division": "5 MAX DIV 1", "match": "MATCH 6", "winners": 0, "winning_amount": 0.0 }, { "division": "5 MAX DIV 2", "match": "MATCH 5 + BONUS", "winners": 1, "winning_amount": 189944.2 }, { "division": "5 MAX DIV 3", "match": "MATCH 5", "winners": 24, "winning_amount": 13850.1 }, { "division": "5 MAX DIV 4", "match": "MATCH 4 + BONUS", "winners": 57, "winning_amount": 2000.0 }, { "division": "5 MAX DIV 5", "match": "MATCH 4", "winners": 1105, "winning_amount": 100.0 }, { "division": "5 MAX DIV 6", "match": "MATCH 3 + BONUS", "winners": 2784, "winning_amount": 100.0 }, { "division": "5 MAX DIV 7", "match": "MATCH 2 + BONUS", "winners": 18197, "winning_amount": 15.0 }, { "division": "5 MAX DIV 8", "match": "MATCH 3", "winners": 22505, "winning_amount": 10.0 } ] } ] }

SA Get SA Powerball Results

South African Powerball. Draws every Tuesday and Friday. For US Powerball see Get US Powerball Results.

Endpoint
GET /api/get_sa_powerball_results?api_key=YOUR_API_KEY
cURL
curl -i "https://resultsZA.co.za/api/get_sa_powerball_results?api_key=YOUR_API_KEY"
Response
JSON
{ "status": "success", "results": [ { "game_type": "Powerball", "draw_id": "1725", "draw_date": "2026-06-02T21:00:00Z", "draw_day": "Tuesday", "draw_machine": "PB1", "total_pool_size": 13950040.0, "total_sales": 27900080.0, "winning_numbers": [2, 10, 22, 28, 49], "powerball": 7, "next_draw_date": "2026-06-05T21:00:00Z", "next_jackpot": 7000000.0, "rollover_amount": 0.0, "rollover_no": 0, "divisions": [ { "division": "DIV 1", "match": "MATCH 5 + PowerBall", "winners": 1, "winning_amount": 128593394.5 }, { "division": "DIV 2", "match": "MATCH 5", "winners": 0, "winning_amount": 0.0 }, { "division": "DIV 3", "match": "MATCH 4 + PowerBall", "winners": 22, "winning_amount": 31983.7 }, { "division": "DIV 4", "match": "MATCH 4", "winners": 305, "winning_amount": 2000.0 }, { "division": "DIV 5", "match": "MATCH 3 + PowerBall", "winners": 935, "winning_amount": 500.0 }, { "division": "DIV 6", "match": "MATCH 3", "winners": 12435, "winning_amount": 100.0 }, { "division": "DIV 7", "match": "MATCH 2 + PowerBall", "winners": 13171, "winning_amount": 100.0 }, { "division": "DIV 8", "match": "MATCH 1 + PowerBall", "winners": 68807, "winning_amount": 20.0 }, { "division": "DIV 9", "match": "MATCH PowerBall", "winners": 111756, "winning_amount": 10.0 } ] } ] }

SA Get Powerball Xtra Results

Renamed from Powerball Plus on 1 June 2026. Draws every Tuesday and Friday alongside SA Powerball.

Endpoint
GET /api/get_powerball_xtra_results?api_key=YOUR_API_KEY
cURL
curl -i "https://resultsZA.co.za/api/get_powerball_xtra_results?api_key=YOUR_API_KEY"
Response
JSON
{ "status": "success", "results": [ { "game_type": "Powerball Xtra", "draw_id": "1725", "draw_date": "2026-06-02T21:00:00Z", "draw_day": "Tuesday", "draw_machine": "PB1", "total_pool_size": 5953152.5, "total_sales": 11906305.0, "winning_numbers": [4, 12, 27, 35, 41], "powerball": 15, "next_draw_date": "2026-06-05T21:00:00Z", "next_jackpot": 116000000.0, "rollover_amount": 109994741.95, "rollover_no": 38, "divisions": [ { "division": "XTRA DIV 1", "match": "MATCH 5 + PowerBall", "winners": 0, "winning_amount": 0.0 }, { "division": "XTRA DIV 2", "match": "MATCH 5", "winners": 0, "winning_amount": 0.0 }, { "division": "XTRA DIV 3", "match": "MATCH 4 + PowerBall", "winners": 16, "winning_amount": 20402.8 }, { "division": "XTRA DIV 4", "match": "MATCH 4", "winners": 255, "winning_amount": 1000.0 }, { "division": "XTRA DIV 5", "match": "MATCH 3 + PowerBall", "winners": 691, "winning_amount": 250.0 }, { "division": "XTRA DIV 6", "match": "MATCH 3", "winners": 10222, "winning_amount": 50.0 }, { "division": "XTRA DIV 7", "match": "MATCH 2 + PowerBall", "winners": 9433, "winning_amount": 50.0 }, { "division": "XTRA DIV 8", "match": "MATCH 1 + PowerBall", "winners": 50357, "winning_amount": 10.0 }, { "division": "XTRA DIV 9", "match": "MATCH PowerBall", "winners": 82382, "winning_amount": 5.0 } ] } ] }

📜 Legacy South African endpoints

Games that stopped drawing at the operator changeover on 1 June 2026. These endpoints serve their historic draws only, up to and including their final draw. A date on or after 1 June 2026 returns a 400 naming the current game that replaced them. Responses carry the draw date, winning numbers and bonus ball; prize breakdowns are not available for these historic draws.

LEGACY Get Lotto Plus 2 Results

Discontinued on 1 June 2026 and replaced by Lotto 5 Max. Historic draws from 3 June 2015 to 30 May 2026.

Endpoint
GET /api/get_lotto_plus_2_results_legacy?api_key=YOUR_API_KEY&date=2026-05-30
cURL
curl -i "https://resultsZA.co.za/api/get_lotto_plus_2_results_legacy?api_key=YOUR_API_KEY&date=2026-05-30"
Parameters
ParameterTypeDescription
api_key RequiredStringYour API key
date OptionalStringYYYY-MM-DD, before 2026-06-01. Omit for the final draw.
Response
JSON
{ "status": "success", "results": [ { "draw_id": 2650, "game_name": "Lotto Plus 2", "draw_day": "Saturday", "draw_date": "2026-05-30T20:00:00Z", "winning_numbers": [2, 8, 15, 32, 50, 51], "bonus_ball": 26 } ] }

LEGACY Get Powerball Plus Results

Renamed to Powerball Xtra on 1 June 2026. Historic draws from 1 December 2015 to 29 May 2026. For draws from 1 June 2026 onward, use the Powerball Xtra endpoint.

Endpoint
GET /api/get_powerball_plus_results_legacy?api_key=YOUR_API_KEY&date=2026-05-29
cURL
curl -i "https://resultsZA.co.za/api/get_powerball_plus_results_legacy?api_key=YOUR_API_KEY&date=2026-05-29"
Parameters
ParameterTypeDescription
api_key RequiredStringYour API key
date OptionalStringYYYY-MM-DD, before 2026-06-01. Omit for the final draw.
Response
JSON
{ "status": "success", "results": [ { "draw_id": 1724, "game_name": "Powerball Plus", "draw_day": "Friday", "draw_date": "2026-05-29T20:00:00Z", "winning_numbers": [14, 17, 22, 27, 36], "powerball": 20 } ] }

LEGACY Get Daily Lotto Plus Results

Discontinued on 1 June 2026. The Daily Lotto no longer has a Plus variant. Historic draws from 24 September 2025 to 31 May 2026.

Endpoint
GET /api/get_daily_lotto_plus_results_legacy?api_key=YOUR_API_KEY&date=2026-05-31
cURL
curl -i "https://resultsZA.co.za/api/get_daily_lotto_plus_results_legacy?api_key=YOUR_API_KEY&date=2026-05-31"
Parameters
ParameterTypeDescription
api_key RequiredStringYour API key
date OptionalStringYYYY-MM-DD, before 2026-06-01. Omit for the final draw.
Response
JSON
{ "status": "success", "results": [ { "draw_id": 2633, "game_name": "Daily Lotto Plus", "draw_day": "Sunday", "draw_date": "2026-05-31T20:00:00Z", "winning_numbers": [7, 15, 24, 26, 36] } ] }
Response codes. 200 the draw was found. 404 the date is inside the covered range but that game did not draw that day. 400 the date is on or after 2026-06-01, or is not in YYYY-MM-DD format. 401 invalid API key. Each legacy endpoint consumes 1 API call; 400 and 401 are not charged.
Requesting a date on or after 1 June 2026

The message names the game that replaced it. Powerball Plus continues as Powerball Xtra at /api/get_powerball_xtra_results, and Lotto Plus 2 was replaced by Lotto 5 Max at /api/get_lotto_5_max_results.

JSON
GET /api/get_powerball_plus_results_legacy?api_key=YOUR_API_KEY&date=2026-07-01 { "status": "error", "message": "Powerball Plus was renamed to Powerball Xtra on 2026-06-01. Use game=Powerball Xtra. This legacy endpoint serves draws before 2026-06-01 only." }

🌍 Africa

🇰🇪 Kenya Lotto Get Kenya Lotto Results

Returns Kenya Lotto (MyLottoKenya) results. The Daily Draw runs every hour on Monday, Tuesday, Thursday, Friday and Sunday (up to 24 draws per day); the Mega Jackpot draws Wednesday and Saturday at 22:00. All times are East Africa Time (EAT, UTC+3) in 24-hour HH:MM format. Historical data available from 2020.

With a date, every draw for that day is returned newest-first (a daily day has up to 24 hourly draws). Without a date, only the single most recent draw is returned. Use type to request just the daily draws or just the Mega Jackpot.
Endpoint
GET /api/get_kenya_lotto_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Returns all draws for that day, newest-first. Omit for the latest draw.
type Optional String daily (hourly Daily Draw, Mon/Tue/Thu/Fri/Sun) or jackpot (Mega Jackpot, Wed/Sat). Omit to return both.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_kenya_lotto_results?api_key=YOUR_API_KEY"
cURL, All of a day's hourly draws
curl -i "https://resultsZA.co.za/api/get_kenya_lotto_results?api_key=YOUR_API_KEY&date=2026-06-21&type=daily"
cURL, Latest Mega Jackpot
curl -i "https://resultsZA.co.za/api/get_kenya_lotto_results?api_key=YOUR_API_KEY&type=jackpot"
Response Format
JSON
{ "status": "success", "results": [ { "game": "Kenya Lotto Sunday", "date": "2026-06-21", "day": "Sunday", "draw_time": "23:00", "winning_numbers": "9, 12, 16, 21, 29, 32" } ] }

game is Kenya Lotto <Weekday> for daily draws and Kenya Mega Jackpot for the jackpot. draw_time is the EAT draw time; for the Mega Jackpot it is always 22:00.

🇳🇬 Nigeria Lotto Get Nigeria Lotto Results

Returns Nigeria Baba Ijebu (Premier Lotto) draw results. There are 25 game names, each drawing once per day across 6 daily time slots in West Africa Time (WAT, UTC+1). Responses also include the equivalent SAST time (UTC+2). Numbers are 5 balls drawn from 1 to 90. Historic data available from January 2015.

With a game and no date, the latest draw for that game is returned. With a date and no game, all draws across all games for that day are returned (up to 6). Each game requires a separate API call.
Endpoint
GET /api/get_nigeria_lotto_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
game Optional String One of the 25 game names below (e.g. PREMIER PEOPLES). Omit to return all games for the given date.
date Optional String YYYY-MM-DD. Returns all draws matching the filters for that day. Omit for the latest draw.
Available Game Names

Pass one of these as the game parameter (exact uppercase match required):

Game NameDraw Slots (WAT)Draw Slots (SAST)
All 25 games rotate through the 6 daily slots below. Each game draws once per day.
PREMIER 0609:45, 12:45, 15:45,
20:15, 20:45, 22:45
10:45, 13:45, 16:45,
21:15, 21:45, 23:45
PREMIER ASEDA
PREMIER BINGO
PREMIER BONANZA
PREMIER CLUB MASTER
PREMIER DIAMOND
PREMIER ENUGU
PREMIER FAIRCHANCE
PREMIER FORTUNE
PREMIER GOLD
PREMIER INTERNATIONAL
PREMIER JACKPOT
PREMIER KING
PREMIER LUCKY
PREMIER LUCKY G
PREMIER MARK II
PREMIER METRO
PREMIER MIDWEEK
PREMIER MSP
PREMIER NATIONAL
PREMIER PEOPLES
PREMIER ROYAL
PREMIER SUPER
PREMIER TOTA
PREMIER VAG
Example Requests
cURL, Latest draw for PREMIER PEOPLES
curl -i "https://resultsZA.co.za/api/get_nigeria_lotto_results?api_key=YOUR_API_KEY&game=PREMIER%20PEOPLES"
cURL, PREMIER PEOPLES on a specific date
curl -i "https://resultsZA.co.za/api/get_nigeria_lotto_results?api_key=YOUR_API_KEY&game=PREMIER%20PEOPLES&date=2026-06-22"
cURL, All draws across all games on a date
curl -i "https://resultsZA.co.za/api/get_nigeria_lotto_results?api_key=YOUR_API_KEY&date=2026-06-22"
Response Format
JSON, Latest draw for a specific game
{ "status": "success", "results": [ { "draw_id": 24812, "draw_name": "PREMIER PEOPLES", "date": "2026-06-22", "draw_time_wat": "12:45", "draw_time_sast": "13:45", "numbers": [42, 17, 23, 74, 29] } ] }
JSON, All draws on a date (no game filter)
{ "status": "success", "results": [ { "draw_id": 24812, "draw_name": "PREMIER PEOPLES", "date": "2026-06-22", "draw_time_wat": "12:45", "draw_time_sast": "13:45", "numbers": [42, 17, 23, 74, 29] }, { "draw_id": 24811, "draw_name": "PREMIER DIAMOND", "date": "2026-06-22", "draw_time_wat": "09:45", "draw_time_sast": "10:45", "numbers": [56, 84, 21, 29, 48] } ] }

numbers is an array of 5 integers drawn from 1 to 90. draw_time_wat is West Africa Time (UTC+1); draw_time_sast is South Africa Standard Time (UTC+2).

🇬🇭 Ghana Lotto Get Ghana NLA Lotto Results

Returns Ghana NLA (National Lottery Authority) draw results. There are 10 games: 7 weekly games (one per day, Monday Special through Sunday Aseda) and 3 daily games (VAG Lotto and Noon Rush Monday to Saturday, Daywa 5/39 every day). All draw times are in GMT (UTC+0). Responses also include the equivalent SAST time (UTC+2). Numbers are 5 balls: drawn from 1 to 90 for the 9 five-ninety games, and 1 to 39 for Ghana Daywa 5/39.

With a game and no date, the latest draw for that game is returned. With a date and no game, all draws for that date are returned (up to 4 on weekdays: 1 weekly + 3 daily).
Endpoint
GET /api/get_ghana_lotto_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
game Optional String One of the 10 game names below (e.g. Ghana Monday Special). Omit to return the latest draw across all games.
date Optional String YYYY-MM-DD. Returns the draw(s) for that date. Omit for the latest draw.
Available Game Names
Game NameDraw DayDraw Time GMTDraw Time SAST
Ghana Monday SpecialMonday20:0022:00
Ghana Lucky TuesdayTuesday20:0022:00
Ghana Mid-WeekWednesday20:0022:00
Ghana Fortune ThursdayThursday20:0022:00
Ghana Friday BonanzaFriday20:0022:00
Ghana National WeeklySaturday20:0022:00
Ghana Sunday AsedaSunday18:0020:00
Ghana VAG LottoMon to Sat10:0012:00
Ghana Noon RushMon to Sat13:0015:00
Ghana Daywa 5/39Daily20:00 (Sun 18:00)22:00 (Sun 20:00)
Example Requests
cURL, Latest draw for Monday Special
curl -i "https://resultsZA.co.za/api/get_ghana_lotto_results?api_key=YOUR_API_KEY&game=Ghana%20Monday%20Special"
cURL, Monday Special on a specific date
curl -i "https://resultsZA.co.za/api/get_ghana_lotto_results?api_key=YOUR_API_KEY&game=Ghana%20Monday%20Special&date=2026-06-22"
cURL, All draws on a date (no game filter)
curl -i "https://resultsZA.co.za/api/get_ghana_lotto_results?api_key=YOUR_API_KEY&date=2026-06-22"
Response Format
JSON
{ "status": "success", "results": [ { "draw_name": "Ghana Monday Special", "date": "2026-06-22", "draw_time_gmt": "20:00", "draw_time_sast": "22:00", "numbers": [12, 34, 47, 61, 88] } ] }

numbers is an array of 5 integers: drawn from 1 to 90 for all games except Ghana Daywa 5/39 (which draws from 1 to 39). draw_time_gmt is Ghana Mean Time (UTC+0); draw_time_sast is South Africa Standard Time (UTC+2).

🇬🇧 United Kingdom

🇬🇧 UK 49's UK 49's Draw Results

Returns results for any of the four daily UK 49's draws. Use the game parameter to select the draw. These draws are not affiliated with the South African National Lottery.

Endpoint
GET /api/get_uk49s_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
game Required String One of the four draw names below.
date Optional String YYYY-MM-DD. Omit for the latest draw.
Available Game Names (use as the game parameter)
Game NameUK TimeSASTAvailable From
UK49s Brunchtime11:49 AM1:49 PMEarly 2026
UK49s Lunchtime12:49 PM2:49 PMDecember 1996
UK49s Drivetime4:49 PM6:49 PMEarly 2026
UK49s Teatime5:49 PM7:49 PMNovember 1997
Example Requests
cURL, Latest Lunchtime result
curl -i "https://resultsZA.co.za/api/get_uk49s_results?api_key=YOUR_API_KEY&game=UK49s%20Lunchtime"
cURL, Teatime on a specific date
curl -i "https://resultsZA.co.za/api/get_uk49s_results?api_key=YOUR_API_KEY&game=UK49s%20Teatime&date=2026-06-20"
Response Format
JSON
{ "status": "success", "results": [ { "draw_id": null, "game_name": "UK49s Lunchtime", "draw_day": "Monday", "draw_date": "2026-06-22T20:00:00Z", "winning_numbers": [10, 20, 28, 36, 44, 48], "booster_ball": 40 } ] }

winning_numbers is an array of 6 integers. booster_ball is the 7th ball drawn. draw_date is ISO 8601 UTC.

Note: UK 49's is a fixed-odds betting draw operated by 49's Ltd (UK). Not affiliated with the South African National Lottery. Historical data: Lunchtime from Dec 1996, Teatime from Nov 1997. Booster ball available from 2007. Brunchtime and Drivetime from early 2026.

🇪🇺 Europe

🇪🇺 EuroMillions Get EuroMillions Results

Returns EuroMillions draw results. EuroMillions draws every Tuesday and Friday at 21:00 CET. Historical data available from February 2004.

Endpoint
GET /api/get_euromillions_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Omit for the latest draw.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_euromillions_results?api_key=YOUR_API_KEY"
cURL, Specific date
curl -i "https://resultsZA.co.za/api/get_euromillions_results?api_key=YOUR_API_KEY&date=2026-06-03"
Response Format
JSON
{ "status": "success", "results": [ { "game": "EuroMillions", "date": "2026-06-02", "day": "Tuesday", "winning_numbers": "6, 9, 17, 18, 42", "lucky_star_1": 7, "lucky_star_2": 9, "jackpot": 142961066.5, "draw_id": "442026" } ] }

🇮🇪 Irish Lotto Get Irish Lotto Results

Returns Irish Lotto draw results. Irish Lotto draws every Wednesday and Saturday at approximately 18:45 UTC (20:45 SAST). Pick 6 from 1 to 47 plus a bonus ball.

Endpoint
GET /api/get_irish_lotto_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Omit for the latest draw.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_irish_lotto_results?api_key=YOUR_API_KEY"
cURL, Specific date
curl -i "https://resultsZA.co.za/api/get_irish_lotto_results?api_key=YOUR_API_KEY&date=2026-06-27"
Response Format
JSON
{ "status": "success", "results": [ { "game": "Irish Lotto", "date": "2026-06-27", "day": "Saturday", "winning_numbers": "12, 27, 29, 38, 43, 46", "bonus_ball": 25, "jackpot": 5181046.0, "draw_id": null } ] }

🇺🇸 United States

🇺🇸 Powerball Get US Powerball Results

Returns US Powerball draw results. Draws every Monday, Wednesday and Saturday at 22:59 ET. Historical data available from 2010.

Endpoint
GET /api/get_us_powerball_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Omit for the latest draw.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_us_powerball_results?api_key=YOUR_API_KEY"
Response Format
JSON
{ "status": "success", "results": [ { "game": "Powerball", "date": "2026-06-01", "day": "Monday", "winning_numbers": "02, 42, 47, 57, 58", "powerball": 14, "power_play": 3 } ] }

🇺🇸 Mega Millions Get Mega Millions Results

Returns Mega Millions draw results. Draws every Tuesday and Friday at 23:00 ET. Historical data available from 2002.

Endpoint
GET /api/get_megamillions_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Omit for the latest draw.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_megamillions_results?api_key=YOUR_API_KEY"
Response Format
JSON
{ "status": "success", "results": [ { "game": "Mega Millions", "date": "2026-06-02", "day": "Tuesday", "winning_numbers": "15, 26, 43, 48, 60", "mega_ball": 12, "megaplier": null } ] }

🏇 Horse Racing

South African horse racing results for every SA racecourse, including Turffontein, Greyville, Kenilworth, Fairview, Vaal, Scottsville and Durbanville, plus closed courses such as Clairwood, Arlington and Flamingo Park. Every meeting is covered from 2001 onward. Before late 2007 most races carry no race name or off time. Each endpoint consumes 1 API call.

🏇 Horse Racing List Meetings

Returns available SA horse racing meetings within a date range. Use this first to discover which dates and venues have data before calling the race card or runner endpoints. A maximum of 7 days can be queried per call. To cover a longer period, make multiple calls with consecutive 7-day ranges.

Endpoint
GET /api/get_horse_racing_meetings?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key RequiredStringYour API key
from_date OptionalStringYYYY-MM-DD. Start of date range. Defaults to 7 days ago.
to_date OptionalStringYYYY-MM-DD. End of date range. Defaults to today. The range may span at most 7 days: wider ranges return a 400 error (see below).
Example Request
cURL
curl -i "https://resultsza.co.za/api/get_horse_racing_meetings?api_key=YOUR_API_KEY&from_date=2026-06-15&to_date=2026-06-22"
Response Format
JSON
{ "status": "success", "from_date": "2026-06-15", "to_date": "2026-06-22", "meetings": [ { "race_date": "2026-06-22", "venue": "Greyville", "province": "KwaZulu-Natal", "race_count": 8, "data_status": "complete" }, { "race_date": "2026-06-20", "venue": "Greyville", "province": "KwaZulu-Natal", "race_count": 9, "data_status": "complete" }, { "race_date": "2026-06-19", "venue": "Fairview", "province": "Eastern Cape", "race_count": 8, "data_status": "complete" }, { "race_date": "2026-06-18", "venue": "Vaal", "province": "Gauteng", "race_count": 9, "data_status": "complete" }, { "race_date": "2026-06-16", "venue": "Kenilworth", "province": "Western Cape", "race_count": 8, "data_status": "complete" } ] }

data_status is one of complete, partial, pending, error or no_racing. Use the exact venue string in the race card and runner endpoints.

Error Response (date range wider than 7 days)
JSON (HTTP 400)
{ "status": "error", "message": "Date range too wide: a maximum of 7 days can be queried per call. Narrow the gap between from_date and to_date, and make multiple calls to cover a longer period." }

🏇 Horse Racing Get Race Card

Returns the full race card for a date and venue: all races with their top-3 finishers (including trainer, owner, draw, mass, SP, breeding), exotic bet dividends (Exacta, Trifecta, Swinger, Quartet, Double, Pick 3, Pick 6, Jackpot, Bipot, Place Accumulator), prize breakdowns and win times.

Endpoint
GET /api/get_horse_racing_results?api_key=YOUR_API_KEY&date=YYYY-MM-DD&venue=VENUE
Parameters
ParameterTypeDescription
api_key RequiredStringYour API key
date RequiredStringYYYY-MM-DD race date
venue RequiredStringVenue name exactly as returned by the meetings endpoint (e.g. Greyville, Kenilworth, Fairview, Vaal)
Example Request
cURL
curl -i "https://resultsza.co.za/api/get_horse_racing_results?api_key=YOUR_API_KEY&date=2026-06-22&venue=Greyville"
Response Format
JSON
{ "status": "success", "race_date": "2026-06-22", "venue": "Greyville", "province": "KwaZulu-Natal", "races": [ { "race_no": 1, "race_name": "Maiden Plate (F&M)(Polytrack)", "grade": null, "distance": 1200, "going": "Good", "off_time": "12:30", "win_time": 71.0, "stake_total": 125000, "prize_breakdown": { "1st": 74219, "2nd": 23750, "3rd": 11875, "4th": 5938, "5th": 2969 }, "jackpot": false, "pick_six": false, "top3": [ { "finish": 1, "horse_name": "Come Together", "jockey_name": "T Godden", "trainer_name": "LA Crawford", "owner_name": "Ms F T Naicker ...", "draw": 3, "mass": 60.0, "sp_decimal": 4.0, "tote_win": 3.9, "tote_place": 1.6, "lengths_behind": 0.0, "margin": null, "age": 3, "colour": "bay", "sex": "filly", "sire_name": "Elusive Fort", "dam_name": "Better Together" } ], "dividends": [ { "bet_type": "Exacta", "selections": "3/4", "dividend": 14.8 }, { "bet_type": "Trifecta", "selections": "3/4/7", "dividend": 34.7 }, { "bet_type": "Quartet", "selections": "3/4/7/8", "dividend": 402.4 }, { "bet_type": "Swinger", "selections": "3/4", "dividend": 2.8 } ] } ] }

🏇 Horse Racing Get Runner Table

Returns the complete runner table for a single race. Includes all finishers and scratched horses (scratched horses appear last with finish: null and completed_run: false), full breeding details, owner, breeder, draw and weight carried, SP, tote win/place, and exotic dividends for that race.

Endpoint
GET /api/get_horse_racing_race?api_key=YOUR_API_KEY&date=YYYY-MM-DD&venue=VENUE&race_no=1
Parameters
ParameterTypeDescription
api_key RequiredStringYour API key
date RequiredStringYYYY-MM-DD race date
venue RequiredStringVenue name exactly as returned by the meetings endpoint
race_no RequiredIntegerRace number (1-based)
Example Request
cURL
curl -i "https://resultsza.co.za/api/get_horse_racing_race?api_key=YOUR_API_KEY&date=2026-06-22&venue=Greyville&race_no=1"
Response Format
JSON
{ "status": "success", "race_date": "2026-06-22", "venue": "Greyville", "race_no": 1, "race_name": "Maiden Plate (F&M)(Polytrack)", "grade": null, "distance": 1200, "going": "Good", "off_time": "12:30", "win_time": 71.0, "declared_runners": 11, "apprentice_allowance": 1, "stake_total": 125000, "prize_breakdown": { "1st": 74219, "2nd": 23750, "3rd": 11875, "4th": 5938, "5th": 2969 }, "jackpot": false, "pick_six": false, "dividends": [ { "bet_type": "Exacta", "selections": "3/4", "dividend": 14.8 }, { "bet_type": "Trifecta", "selections": "3/4/7", "dividend": 34.7 } ], "runners": [ { "finish": 1, "completed_run": true, "horse_no": 3, "horse_name": "Come Together", "jockey_name": "T Godden", "trainer_name": "LA Crawford", "owner_name": "Ms F T Naicker & Mr Gavin Govender", "breeder_name": "Big Sky Ranch", "age": 3, "colour": "bay", "sex": "filly", "sire_name": "Elusive Fort", "dam_name": "Better Together", "dam_sire_name": "What A Winter", "draw": 3, "mass": 60.0, "sp_decimal": 4.0, "tote_win": 3.9, "tote_place": 1.6, "lengths_behind": 0.0, "margin": null }, { "finish": null, "completed_run": false, "horse_no": 5, "horse_name": "Anniversary", "jockey_name": "K de Melo", "trainer_name": "GB Puller", "owner_name": "Messrs Nathan Pillay & G B Puller", "sire_name": "Willow Magic", "draw": 5, "mass": 57.0, "sp_decimal": 6.5, "tote_win": null, "tote_place": null, "margin": null } ] }

grade is "Grade 1", "Grade 2", "Grade 3" or "Listed" for black-type races, and null for every other race. lengths_behind is the distance behind the winner and margin the distance behind the horse placed just ahead (null for the winner, 0 for a dead heat), both in lengths. sp_decimal is the starting price as decimal odds, stake included (6/1 is 7.0). draw is the declared draw and mass the weight carried, in kg. Tote dividends are per R1 bet.

Finishers are listed in finishing order, and horses that dead-heat share a position. Scratched horses always appear last with "finish": null and "completed_run": false.

🇷🇺 Russia

🇷🇺 Gosloto 6/45 Get Gosloto 6/45 Results

Returns Gosloto 6/45 draw results. Pick 6 from 1–45, no bonus ball. Draws 11 times a day, from 10:00 to 22:59 SAST. Run by operator Stoloto.

With a date, every draw for that day is returned newest-first (up to 11 draws). Without a date or draw_id, only the single most recent draw is returned. Use draw_id to fetch one specific draw directly; it is ignored when date is also given.
Endpoint
GET /api/get_gosloto_6_45_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Returns all draws for that day, newest-first. Omit for the latest draw.
draw_id Optional String Return the single draw matching this id. Ignored when date is given.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_gosloto_6_45_results?api_key=YOUR_API_KEY"
cURL, All of a day's draws
curl -i "https://resultsZA.co.za/api/get_gosloto_6_45_results?api_key=YOUR_API_KEY&date=2026-08-06"
cURL, Single draw by id
curl -i "https://resultsZA.co.za/api/get_gosloto_6_45_results?api_key=YOUR_API_KEY&draw_id=18325"
Response Format
JSON
{ "status": "success", "results": [ { "game": "Gosloto 6/45", "date": "2026-08-06", "day": "Thursday", "time_sast": "22:59", "time_msk": "23:59", "winning_numbers": "1, 19, 23, 37, 42, 43", "draw_id": "18325" } ] }

time_sast is the draw time in South African time; time_msk is the same draw in Moscow time (SAST plus 1 hour, all year, since neither side observes DST). Gosloto 6/45 never carries a bonus_ball key.

Dedup note: Gosloto fires many times a day. Deduplicate on date plus time_sast, not on date alone, or you will treat same-day draws as duplicates.

🇷🇺 Gosloto 7/49 Get Gosloto 7/49 Results

Returns Gosloto 7/49 draw results. Pick 7 from 1–49, no bonus ball. Draws every day, several times a day; Stoloto sets the timetable and has changed it, so the results page counts down to the next draw. Run by operator Stoloto.

With a date, every draw for that day is returned newest-first (up to 10 draws). Without a date or draw_id, only the single most recent draw is returned. Use draw_id to fetch one specific draw directly; it is ignored when date is also given.
Endpoint
GET /api/get_gosloto_7_49_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Returns all draws for that day, newest-first. Omit for the latest draw.
draw_id Optional String Return the single draw matching this id. Ignored when date is given.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_gosloto_7_49_results?api_key=YOUR_API_KEY"
cURL, All of a day's draws
curl -i "https://resultsZA.co.za/api/get_gosloto_7_49_results?api_key=YOUR_API_KEY&date=2026-08-06"
cURL, Single draw by id
curl -i "https://resultsZA.co.za/api/get_gosloto_7_49_results?api_key=YOUR_API_KEY&draw_id=27418"
Response Format
JSON
{ "status": "success", "results": [ { "game": "Gosloto 7/49", "date": "2026-08-06", "day": "Thursday", "time_sast": "21:30", "time_msk": "22:30", "winning_numbers": "3, 11, 19, 24, 33, 41, 47", "draw_id": "27418" } ] }

time_sast is the draw time in South African time; time_msk is the same draw in Moscow time (SAST plus 1 hour, all year, since neither side observes DST). Gosloto 7/49 never carries a bonus_ball key.

Dedup note: Gosloto fires many times a day. Deduplicate on date plus time_sast, not on date alone, or you will treat same-day draws as duplicates.
draw_id note: a Gosloto 7/49 result can be published before its draw number is available, and that draw's draw_id is then null. This is routine, by design, and specific to 7/49; the other two Gosloto games always carry a draw_id. A row with a null draw_id cannot be fetched with ?draw_id=; that request returns a 404 for it. Use date instead.

🇷🇺 Gosloto 5/36 Get Gosloto 5/36 Results

Returns Gosloto 5/36 draw results. Pick 5 from 1–36, plus a bonus ball from a separate 1–4 pool. Draws roughly 60 times a day, around the clock. Run by operator Stoloto.

With a date, every draw for that day is returned newest-first (roughly 60 draws). Without a date or draw_id, only the single most recent draw is returned. Use draw_id to fetch one specific draw directly; it is ignored when date is also given.
Endpoint
GET /api/get_gosloto_5_36_results?api_key=YOUR_API_KEY
Parameters
ParameterTypeDescription
api_key Required String Your API key
date Optional String YYYY-MM-DD. Returns all draws for that day, newest-first. Omit for the latest draw.
draw_id Optional String Return the single draw matching this id. Ignored when date is given.
Example Requests
cURL, Latest draw
curl -i "https://resultsZA.co.za/api/get_gosloto_5_36_results?api_key=YOUR_API_KEY"
cURL, All of a day's draws
curl -i "https://resultsZA.co.za/api/get_gosloto_5_36_results?api_key=YOUR_API_KEY&date=2026-08-06"
cURL, Single draw by id
curl -i "https://resultsZA.co.za/api/get_gosloto_5_36_results?api_key=YOUR_API_KEY&draw_id=104382"
Response Format
JSON
{ "status": "success", "results": [ { "game": "Gosloto 5/36", "date": "2026-08-06", "day": "Thursday", "time_sast": "22:44", "time_msk": "23:44", "winning_numbers": "4, 9, 17, 22, 31", "bonus_ball": 3, "draw_id": "104382" } ] }

time_sast is the draw time in South African time; time_msk is the same draw in Moscow time (SAST plus 1 hour, all year, since neither side observes DST). Gosloto 5/36 is the only one of the three that carries a bonus_ball key (1–4).

Dedup note: Gosloto fires many times a day. Deduplicate on date plus time_sast, not on date alone, or you will treat same-day draws as duplicates.

Number Tools

Utility endpoints for generating numbers, analysing draw history and checking played lines.

🎲 Generators

GET Generate Random Numbers

Generate random numbers for any supported lottery game following that game's official number rules. Consumes 1 API call regardless of how many lines you generate.

Endpoint
GET /api/generate_random_numbers?api_key=YOUR_API_KEY&game=GAME_NAME&lines=NUMBER_OF_LINES
Parameters
ParameterTypeDescription
api_key Required String Your API key
game Required String One of the game names from the table below.
lines Optional Integer Number of lines to generate, from 1 to 500 (default: 1). Outside that range the request is refused with 400 and no call is used.
Available Game Names
Game NameMain NumbersBonus Ball
Daily Lotto5 from 1–36None
Lotto6 from 1–52None
Lotto Plus 16 from 1–52None
Lotto 5 Max6 from 1–52None
Powerball5 from 1–50Powerball 1–16 (last number in each line)
Powerball Xtra5 from 1–50Powerball 1–16 (last number in each line)
UK49s Brunchtime6 from 1–49None
UK49s Lunchtime6 from 1–49None
UK49s Drivetime6 from 1–49None
UK49s Teatime6 from 1–49None
EuroMillions5 from 1–502 Lucky Stars 1–12
Irish Lotto6 from 1–47None
US Powerball5 from 1–69Powerball 1–26
Mega Millions5 from 1–70Mega Ball 1–24
Kenya Lotto6 from 0–39None
Nigeria Lotto5 from 1–90None
Ghana Lotto5 from 1–90None
Gosloto 6/456 from 1–45None
Gosloto 7/497 from 1–49None
Gosloto 5/365 from 1–36Bonus ball 1–4 (last number in each line)
Example Requests
cURL, Single Lotto line
curl -i "https://resultsZA.co.za/api/generate_random_numbers?api_key=YOUR_API_KEY&game=Lotto"
cURL, 5 lines of Powerball
curl -i "https://resultsZA.co.za/api/generate_random_numbers?api_key=YOUR_API_KEY&game=Powerball&lines=5"
Response Format

For games without a bonus ball, random_numbers is an array of integer arrays. For Powerball games, each line is an object with main_numbers and a powerball key. For EuroMillions, each line has main_numbers and lucky_stars.

JSON, Lotto (no bonus ball)
{ "status": "success", "game": "Lotto", "lines": 2, "random_numbers": [ [3, 17, 28, 34, 41, 50], [9, 12, 25, 31, 44, 51] ] }
JSON, Powerball (with bonus ball)
{ "status": "success", "game": "Powerball", "lines": 1, "random_numbers": [ {"main_numbers": [8, 19, 27, 38, 46], "powerball": 11} ] }

POST Text-to-Lucky Numbers

Convert input text into a unique set of lucky numbers for a selected game, following game rules. Uses SHA-256 hashing, so the same text and game always produce the same numbers. Consumes 1 API call.

Endpoint
POST /api/text_to_lucky_numbers?api_key=YOUR_API_KEY&game=GAME_NAME
Available Game Names (game parameter)
Game NameRegionOutput
Daily LottoSouth Africalucky_numbers (5)
LottoSouth Africalucky_numbers (6)
Lotto Plus 1South Africalucky_numbers (6)
Lotto 5 MaxSouth Africalucky_numbers (6)
PowerballSouth Africalucky_numbers (5) + powerball
Powerball XtraSouth Africalucky_numbers (5) + powerball
UK49s BrunchtimeUnited Kingdomlucky_numbers (6)
UK49s LunchtimeUnited Kingdomlucky_numbers (6)
UK49s DrivetimeUnited Kingdomlucky_numbers (6)
UK49s TeatimeUnited Kingdomlucky_numbers (6)
EuroMillionsEuropelucky_numbers (5) + lucky_stars (2)
Irish LottoEuropelucky_numbers (6)
US PowerballUnited Stateslucky_numbers (5) + powerball
Mega MillionsUnited Stateslucky_numbers (5) + mega_ball
Kenya LottoAfricalucky_numbers (6)
Nigeria LottoAfricalucky_numbers (5)
Ghana LottoAfricalucky_numbers (5)
Gosloto 6/45Russialucky_numbers (6)
Gosloto 7/49Russialucky_numbers (7)
Gosloto 5/36Russialucky_numbers (5) + bonus_ball
Request Body Format
{ "text": "Your custom input text" }

The game is passed as a query parameter in the URL, not in the request body.

Example Request

cURL
curl -X POST "https://resultsZA.co.za/api/text_to_lucky_numbers?api_key=YOUR_API_KEY&game=Powerball" -H "Content-Type: application/json" -d '{ "text": "John Doe" }'

Response Format

JSON
{ "status": "success", "text": "John Doe", "game_type": "Powerball", "lucky_numbers": [7, 22, 33, 41, 50], "powerball": 18 }
Note: Each request consumes 1 API call and returns a unique, deterministic line of numbers.

📊 Analysis

GET Hot & Cold Numbers

Retrieve the most frequently (hot) and least frequently (cold) drawn numbers for a game based on all historical draws.

Endpoint
GET /api/get_hot_cold_numbers_stats?api_key=YOUR_API_KEY&product=GAME_NAME
Parameters
ParameterTypeDescription
api_key Required String Your API key
product Required String One of the game names from the table below.
Available Game Names (product parameter)
Game NameRegion
Daily LottoSouth Africa
LottoSouth Africa
Lotto Plus 1South Africa
Lotto 5 MaxSouth Africa
PowerballSouth Africa
Powerball XtraSouth Africa
UK49sUnited Kingdom (all draws combined)
UK49s BrunchtimeUnited Kingdom
UK49s LunchtimeUnited Kingdom
UK49s DrivetimeUnited Kingdom
UK49s TeatimeUnited Kingdom
EuroMillionsEurope
Irish LottoEurope
US PowerballUnited States
Mega MillionsUnited States
Kenya LottoAfrica
Nigeria LottoAfrica (all 25 draw names combined)
Ghana LottoAfrica (all 10 games combined)
Gosloto 6/45Russia
Gosloto 7/49Russia
Gosloto 5/36Russia
Example Request
cURL
curl -i "https://resultsZA.co.za/api/get_hot_cold_numbers_stats?api_key=YOUR_API_KEY&product=Lotto"
Response Format
JSON
{ "status": "success", "product": "Lotto", "hot": [5, 12, 19, 33, 42, 7, 28, 3, 48, 16], "cold": [45, 23, 52, 2, 38, 17, 31, 9, 44, 27] }

GET Get Number Frequencies

Fetch how many times each number has been drawn across all historical draws for a game, sorted by frequency (most drawn first, ties by lowest number).

Endpoint
GET /api/get_number_frequencies?api_key=YOUR_API_KEY&product=GAME_NAME
Parameters
ParameterTypeDescription
api_key Required String Your API key
product Required String One of the game names from the table below. URL-encode spaces: Powerball%20Xtra.
Available Game Names (product parameter)
Game NameRegion
Daily LottoSouth Africa
LottoSouth Africa
Lotto Plus 1South Africa
Lotto 5 MaxSouth Africa
PowerballSouth Africa
Powerball XtraSouth Africa
UK49sUnited Kingdom (all draws combined)
UK49s BrunchtimeUnited Kingdom
UK49s LunchtimeUnited Kingdom
UK49s DrivetimeUnited Kingdom
UK49s TeatimeUnited Kingdom
EuroMillionsEurope
Irish LottoEurope
US PowerballUnited States
Mega MillionsUnited States
Kenya LottoAfrica
Nigeria LottoAfrica (all 25 draw names combined)
Ghana LottoAfrica (all 10 games combined)
Gosloto 6/45Russia
Gosloto 7/49Russia
Gosloto 5/36Russia
Example Request
cURL
curl -i "https://resultsZA.co.za/api/get_number_frequencies?api_key=YOUR_API_KEY&product=Powerball%20Xtra"
Response Format
JSON
{ "status": "success", "product": "Powerball Xtra", "statistics": [ {"number": 2, "frequency": 22, "last_drawn": "2026-06-11"}, {"number": 1, "frequency": 18, "last_drawn": "2026-06-18"}, ... ] }

GET Get Number Pairs

Retrieve up to 100 of the most common number pairs drawn together for a game, counted over its most recent 500 draws. Pairs are sorted by frequency, then by most recently drawn.

Endpoint
GET /api/get_number_pairs?api_key=YOUR_API_KEY&product=GAME_NAME
Parameters
ParameterTypeDescription
api_key Required String Your API key
product Required String One of the game names from the table below. URL-encode spaces: UK49s%20Teatime.
Available Game Names (product parameter)
Game NameRegion
Daily LottoSouth Africa
LottoSouth Africa
Lotto Plus 1South Africa
Lotto 5 MaxSouth Africa
PowerballSouth Africa
Powerball XtraSouth Africa
UK49sUnited Kingdom (all draws combined)
UK49s BrunchtimeUnited Kingdom
UK49s LunchtimeUnited Kingdom
UK49s DrivetimeUnited Kingdom
UK49s TeatimeUnited Kingdom
EuroMillionsEurope
Irish LottoEurope
US PowerballUnited States
Mega MillionsUnited States
Kenya LottoAfrica
Nigeria LottoAfrica (all 25 draw names combined)
Ghana LottoAfrica (all 10 games combined)
Gosloto 6/45Russia
Gosloto 7/49Russia
Gosloto 5/36Russia
Example Request
cURL
curl -i "https://resultsZA.co.za/api/get_number_pairs?api_key=YOUR_API_KEY&product=Lotto"
Response Format
JSON
{ "status": "success", "product": "Lotto", "pairs": [ {"number1": 5, "number2": 7, "frequency": 15, "last_drawn": "2026-06-14"}, {"number1": 12, "number2": 33, "frequency": 14, "last_drawn": "2026-06-07"}, ... ] }

✅ Checkers

POST Winning Number Checker SA ONLY

South African games only. Number checking for UK 49's, EuroMillions, US Powerball and Mega Millions is not currently supported.

Submit your played numbers and check them against the winning numbers for a specific SA game and draw date. Supports up to 10 lines per request. Consumes 1 API call per request, whether you send 1 line or 10.

Parameters
ParameterTypeDescription
api_keystringRequired. Your API key (query string).
gamestringRequired. One of the game names below (query string).
datestringRequired. Draw date in YYYY-MM-DD format (query string). A date on which the game did not draw returns 404.
played_numbersarrayRequired. JSON body. One line as an array of integers, or up to 10 lines as an array of arrays.
Available Game Names (game parameter)
Game NameNumbers RequiredHow the bonus is checked
Daily Lotto5No bonus ball
Lotto6Bonus matches if any of your 6 numbers is the drawn bonus ball
Lotto Plus 16Bonus matches if any of your 6 numbers is the drawn bonus ball
Lotto 5 Max6Bonus matches if any of your 6 numbers is the drawn bonus ball
Powerball65 main numbers, then your Powerball as the last (6th) number
Powerball Xtra65 main numbers, then your Powerball as the last (6th) number

For draw dates before 2026-06-01 the old games are checked against their historic results: Daily Lotto Plus, Lotto Plus 2 and Powerball Plus (Powerball as the last number), as well as Daily Lotto, Lotto, Lotto Plus 1 and Powerball. From 2026-06-01 the old games return a 400 error explaining the change.

Prize Divisions

The division field uses the bare label from the game's own table, for example "DIV 5", for the main game and its add-on alike. The prize in winning_amount is the amount paid per winning line in that game, so a Lotto Plus 1, Lotto 5 Max or Powerball Xtra winner gets that game's prize.

DivisionLotto, Lotto Plus 1, Lotto 5 MaxPowerball, Powerball XtraDaily Lotto
DIV 165 + Powerball5
DIV 25 + Bonus54
DIV 354 + Powerball3
DIV 44 + Bonus42
DIV 543 + Powerball
DIV 63 + Bonus3
DIV 72 + Bonus2 + Powerball
DIV 831 + Powerball
DIV 9Powerball only

Division rank does not follow match count: in the Lotto games, 2 + Bonus is DIV 7 and 3 numbers is DIV 8.

Endpoint
POST /api/check_played_numbers?api_key=YOUR_API_KEY&game=GAME_NAME&date=YYYY-MM-DD

Request Body Format

{ "played_numbers": [ [14, 26, 27, 28, 6, 40], [1, 2, 3, 4, 5, 7] ] }

For a single line, use:

{ "played_numbers": [5, 20, 21, 36, 1, 13] }

Example Request

cURL
curl -X POST "https://resultsZA.co.za/api/check_played_numbers?api_key=YOUR_API_KEY&game=Lotto%20Plus%201&date=2026-08-05" -H "Content-Type: application/json" -d '{ "played_numbers": [[14,26,27,28,6,40],[1,2,3,4,5,7]] }'

Response Format

With two or more lines, results holds one lineN_results object per line. Each line's outcome sits under result. winning_amount is a string with two decimals, or null when the line did not win or the prize for its division has not been published.

JSON
{ "status": "success", "game": "Lotto Plus 1", "draw_date": "2026-08-05", "results": { "line1_results": { "played_numbers": [14, 26, 27, 28, 6, 40], "winning_numbers": [14, 26, 27, 28, 35, 51], "bonus_ball": 6, "result": { "matches": { "main_matches": 4, "bonus_match": true }, "division": "DIV 4", "winning_amount": "2000.00" } }, "line2_results": { "played_numbers": [1, 2, 3, 4, 5, 7], "winning_numbers": [14, 26, 27, 28, 35, 51], "bonus_ball": 6, "result": { "matches": { "main_matches": 0, "bonus_match": false }, "division": null, "winning_amount": null } } } }

With a single line, results is that line's object itself, with no line1_results wrapper. Powerball and Powerball Xtra return powerball and powerball_match in place of bonus_ball and bonus_match:

{ "status": "success", "game": "Powerball Xtra", "draw_date": "2026-08-04", "results": { "played_numbers": [5, 20, 21, 36, 1, 13], "winning_numbers": [5, 20, 21, 36, 44], "powerball": 13, "result": { "matches": { "main_matches": 4, "powerball_match": true }, "division": "DIV 3", "winning_amount": "21660.20" } } }

POST Bulk Number Checker SA ONLY

South African games only. Bulk number checking for UK 49's, EuroMillions, US Powerball and Mega Millions is not currently supported.

Check a larger set of played numbers against the winning numbers for a specific SA game and draw date. Supports up to 500 lines per request. It takes the same api_key, game and date parameters, game names and prize divisions as the Winning Number Checker.

Available Game Names (game parameter)
Game NameNumbers RequiredHow the bonus is checked
Daily Lotto5No bonus ball
Lotto6Bonus matches if any of your 6 numbers is the drawn bonus ball
Lotto Plus 16Bonus matches if any of your 6 numbers is the drawn bonus ball
Lotto 5 Max6Bonus matches if any of your 6 numbers is the drawn bonus ball
Powerball65 main numbers, then your Powerball as the last (6th) number
Powerball Xtra65 main numbers, then your Powerball as the last (6th) number
Endpoint
POST /api/bulk_check_numbers?api_key=YOUR_API_KEY&game=GAME_NAME&date=YYYY-MM-DD
API Call Consumption
  • Each line checked uses 1 API call from your monthly allowance: 50 lines = 50 calls, 500 lines = 500 calls.
  • If the batch would take you over your monthly limit, the whole request is refused and nothing is checked.
  • Older token-based keys are charged 5 tokens per 50 lines or part thereof (1 to 50 lines = 5 tokens, 51 to 100 lines = 10 tokens).
  • Maximum 500 lines per request.

Request Body Format:

The request body must be in JSON format, with every line as an array, even when you send only one:

{ "played_numbers": [ [14, 26, 27, 28, 6, 40], [14, 26, 27, 10, 11, 12], ... ] }

Notes:

  • For Powerball and Powerball Xtra, the last (6th) number in each line is treated as the Powerball.
  • For the Lotto games, all 6 numbers are your main numbers, and the bonus matches when one of them is the drawn bonus ball. Daily Lotto has no bonus ball.
  • Every line must have the right count of numbers for the game, or the request is refused with a 400 error listing the bad lines.
  • Requests over the 500-line cap return an error.
Example Request
cURL
curl -X POST "https://resultsZA.co.za/api/bulk_check_numbers?api_key=YOUR_API_KEY&game=Lotto%20Plus%201&date=2026-08-05" \ -H "Content-Type: application/json" \ -d '{"played_numbers": [[14,26,27,28,6,40],[14,26,27,10,11,12],[1,2,3,4,5,7]]}'

Response Format:

results always holds one lineN_results object per line, even for a single line. Powerball and Powerball Xtra return powerball and powerball_match in place of bonus_ball and bonus_match.

{ "status": "success", "game": "Lotto Plus 1", "draw_date": "2026-08-05", "lines_checked": 3, "results": { "line1_results": { "played_numbers": [14, 26, 27, 28, 6, 40], "winning_numbers": [14, 26, 27, 28, 35, 51], "bonus_ball": 6, "result": { "matches": { "main_matches": 4, "bonus_match": true }, "division": "DIV 4", "winning_amount": "2000.00" } }, "line2_results": { "played_numbers": [14, 26, 27, 10, 11, 12], "winning_numbers": [14, 26, 27, 28, 35, 51], "bonus_ball": 6, "result": { "matches": { "main_matches": 3, "bonus_match": false }, "division": "DIV 8", "winning_amount": "10.00" } }, "line3_results": { "played_numbers": [1, 2, 3, 4, 5, 7], "winning_numbers": [14, 26, 27, 28, 35, 51], "bonus_ball": 6, "result": { "matches": { "main_matches": 0, "bonus_match": false }, "division": null, "winning_amount": null } } } }

Note: Bulk checking needs an active paid subscription (or tokens on an older token-based key). Ensure your API key has enough calls left for every line before submitting a bulk check request.

Account

GET Check API Key Balance

Check your API key balance and subscription status. This endpoint does not consume any API calls.

Endpoint
GET /check_api_key_balance?api_key=YOUR_API_KEY
POST /check_api_key_balance

Note: You can use either GET (with query parameter) or POST (with JSON body containing api_key).

Example Requests

cURL (GET)
curl -i "https://resultsZA.co.za/check_api_key_balance?api_key=YOUR_API_KEY"
cURL (POST)
curl -X POST "https://resultsZA.co.za/check_api_key_balance" -H "Content-Type: application/json" -d '{"api_key": "YOUR_API_KEY"}'

Response Formats

The response format for active subscriptions:

Active Subscription
JSON
{ "status": "success", "billing_model": "subscription", "tier": "professional", "monthly_limit": 6000, "used": 1250, "remaining": 4750, "is_unlimited": false, "subscription_period_months": 1, "subscription_status": "active", "subscription_state": "active", "subscription_end": "2026-02-23", "days_until_expiry": 31, "usage_breakdown": [], "note": "IMPORTANT: When your subscription expires, your API key is deactivated immediately. Extend before expiry to avoid interruption: new months are added after your current end date. If you exhaust your calls, you can upgrade to a higher tier immediately and only pay the difference for the months left." }

subscription_state is one of active, cancelling (cancelled, still inside the paid period), expired, invoice_cancelled or none. usage_breakdown lists usage per key when your account has sub-keys, and is empty otherwise. On Unlimited, monthly_limit and remaining are "Unlimited (Fair Use)".

All calls used this month (HTTP 403)
{ "status": "error", "billing_model": "subscription", "message": "You have used all your API credits for this month. Purchase a call top-up to get through the rest of the month, or upgrade your subscription for a higher monthly limit.", "tier": "basic", "monthly_limit": 1500, "used": 1500, "remaining": 0, "subscription_status": "active", "subscription_end": "2026-12-10", "days_until_expiry": 30, "usage_breakdown": [] }
No subscription yet
{ "status": "success", "billing_model": "subscription", "subscription_status": "none", "message": "No active subscription is associated with this API key. Please choose a subscription package above to get started.", "tier": null, "subscription_status_display": "No Subscription", "push_subscription": null }
Pending Payment
{ "status": "success", "billing_model": "subscription", "subscription_status": "pending", "message": "Your subscription is pending payment confirmation. Once payment is received and processed, your subscription will be activated and you will be able to use the API.", "tier": "basic", "subscription_status_display": "Pending Payment" }
Expired Subscription
{ "status": "success", "billing_model": "subscription", "subscription_status": "expired", "message": "Your subscription has expired. Please renew to restore API access. You will need to initiate a new subscription request, which will generate an invoice for payment.", "tier": "professional", "subscription_status_display": "Expired", "renewal_url": "https://resultsza.co.za/portal/login?next=%2Fportal%2Fbilling%3Fmode%3Drenew" }
Note: This endpoint does not deduct API calls. Use it to check your balance before making API requests.

Supported Games

Games are organised by country. Each country has its own dedicated endpoint(s).

🇸🇦 South Africa

Current games (from 1 June 2026), each available via its own dedicated endpoint (/api/get_daily_lotto_results, /api/get_lotto_results, /api/get_lotto_plus_1_results, /api/get_lotto_5_max_results, /api/get_sa_powerball_results, /api/get_powerball_xtra_results).

  • Daily Lotto
  • Lotto
  • Lotto Plus 1
  • Lotto 5 Max
  • Powerball
  • Powerball Xtra
Game changes effective 1 June 2026: Daily Lotto Plus was discontinued, Lotto Plus 2 was replaced by Lotto 5 Max, and Powerball Plus was renamed to Powerball Xtra. Historic results for old games remain queryable with a date before 2026-06-01. Number ranges also changed: Lotto family now draws from 1–52 (was 1–58) and Powerball from 1–16 (was 1–20).

Legacy SA games (historic data only)

  • Daily Lotto Plus, discontinued
  • Lotto Plus 2, replaced by Lotto 5 Max
  • Powerball Plus, renamed to Powerball Xtra

🌍 Africa

Dedicated endpoints for African lottery games.

  • Kenya Lotto Daily Draw, hourly on Mon, Tue, Thu, Fri & Sun (00:00 to 23:00 EAT, up to 24 draws/day)
  • Kenya Mega Jackpot, draws every Wednesday & Saturday at 22:00 EAT (historic data from 2020)
  • Nigeria Baba Ijebu (Premier Lotto), 25 games drawing across 6 daily slots in WAT (historic data from January 2015)
  • Ghana NLA, 10 games: 7 weekly games (Monday Special to Sunday Aseda, 20:00 GMT Mon-Sat and 18:00 GMT Sunday), VAG Lotto (10:00 GMT) and Noon Rush (13:00 GMT) Mon-Sat, and Daywa 5/39 every day (20:00 GMT, 18:00 GMT on Sunday)

🇬🇧 United Kingdom

Use the dedicated Get UK 49's Results endpoint.

  • UK49s Brunchtime, draws at 11:49 AM UK / 1:49 PM SAST (from early 2026)
  • UK49s Lunchtime, draws at 12:49 PM UK / 2:49 PM SAST (from December 1996)
  • UK49s Drivetime, draws at 4:49 PM UK / 6:49 PM SAST (from early 2026)
  • UK49s Teatime, draws at 5:49 PM UK / 7:49 PM SAST (from November 1997)

🇪🇺 Europe

Use the dedicated Get EuroMillions Results or Get Irish Lotto Results endpoints.

  • EuroMillions, draws every Tuesday & Friday at 21:00 CET / 23:00 SAST (from February 2004)
  • Irish Lotto, draws every Wednesday & Saturday at ~18:45 UTC / 20:45 SAST

🇺🇸 United States

Use the dedicated Get Powerball Results or Get Mega Millions Results endpoints.

  • Powerball, draws every Monday, Wednesday & Saturday at 22:59 ET / ~05:00 SAST (from 2010)
  • Mega Millions, draws every Tuesday & Friday at 23:00 ET / ~05:00 SAST (from 2002)

🇷🇺 Russia

Dedicated endpoints for Gosloto, run by operator Stoloto. Times shown are SAST (Moscow time is SAST plus 1 hour, all year, since neither side observes DST).

  • Gosloto 6/45, pick 6 from 1–45, no bonus ball, 11 draws a day from 10:00 to 22:59 SAST
  • Gosloto 7/49, pick 7 from 1–49, no bonus ball, several draws every day
  • Gosloto 5/36, pick 5 from 1–36 plus a bonus ball from a separate 1–4 pool, roughly 60 draws a day, around the clock
Endpoint coverage by game:
  • get_uk49s_results, UK 49's only
  • get_euromillions_results, EuroMillions only
  • get_irish_lotto_results, Irish Lotto only
  • get_us_powerball_results, US Powerball only
  • get_megamillions_results, Mega Millions only
  • get_kenya_lotto_results, Kenya Lotto Daily Draw & Mega Jackpot
  • get_nigeria_lotto_results, Nigeria Baba Ijebu (all 25 Premier Lotto games)
  • get_ghana_lotto_results, Ghana NLA (10 games: 7 weekly, VAG Lotto and Noon Rush Mon-Sat, Daywa 5/39 every day)
  • get_gosloto_6_45_results, Gosloto 6/45 only
  • get_gosloto_7_49_results, Gosloto 7/49 only
  • get_gosloto_5_36_results, Gosloto 5/36 only
  • Statistical endpoints (hot/cold, frequencies, pairs), every game listed in their game tables: South Africa, UK 49's, EuroMillions, Irish Lotto, US Powerball, Mega Millions, Kenya, Nigeria, Ghana and Gosloto

Subscription Tiers & Billing

ResultsZA API uses subscription-based billing with monthly subscription plans and tiered API call limits that reset each month:

Tier Monthly API Calls Price (Monthly)
Starter 300 calls/month R149
Basic 1,500 calls/month R299
Professional 6,000 calls/month R599
Unlimited Unlimited calls/month* R1000

*Unlimited is subject to fair use and API rate limits (60 requests/minute per API key) to protect service availability. Exceeding the rate limit triggers a 5-minute cooldown period.

Subscription Features:
  • Monthly API call limits reset on the same day of each month as your subscription start date. A subscription starting on 4 July resets on 4 August, 4 September, and so on
  • Subscription periods run in calendar months, so a 3-month subscription starting on 4 July ends on 4 October
  • Upgrade any time: it starts immediately, keeps your end date, and costs the monthly difference for each billing month left (the current month counts in full)
  • Downgrade any time: it starts immediately with a fresh allowance, and unused time and calls on the higher tier are lost
  • Extend any time: new months are added after your current end date, so renewing early never wastes days
  • API key is deactivated immediately on expiry; renew before expiry to avoid interruption
  • Unlimited tier is rate limited to 60 requests per minute per API key, exceeding this triggers a 5-minute cooldown where all requests are blocked

API Call Consumption

Different endpoints consume different amounts of API calls:

Endpoint Calls Consumed
Dedicated result endpoints (Daily Lotto, Lotto, Powerball, UK 49's, EuroMillions, etc.) 1 call each
Generate Random Numbers 1 call (regardless of lines)
Text-to-Lucky Numbers 1 call
Hot & Cold Numbers 1 call
Number Frequencies 1 call
Number Pairs 1 call
Winning Number Checker 1 call per request (up to 10 lines)
Bulk Number Checker 1 call per line (up to 500 lines). Older token-based keys: 5 tokens per 50 lines or part thereof
Check API Key Balance Free

Which responses are charged

  • Charged: 200 (data returned); 404 when your request is valid but no result matches your date or game (except bulk_check_numbers, which looks for the draw before charging); 429 (rate limited, on Unlimited).
  • Not charged: 400 (missing or invalid input, such as a badly formatted date or an unknown game, is checked before your key is charged); 401 (key not accepted); 500 when your key could not be checked; 410 (retired endpoint); 404 for an endpoint that does not exist; and a 404 from bulk_check_numbers when there is no draw for that date.