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.

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

Available Endpoints

GET Get Latest Results DEPRECATED

This endpoint will be retired on 30 June 2026. Please migrate to the dedicated game endpoints listed in the Dedicated Endpoints section. Each game has its own endpoint that returns the same full data including prize divisions, jackpot and rollover details.

Retrieves the latest results for all South African National Lottery games in a single call. Optionally, specify a date to get results for that day.

SA games only. This endpoint returns South African National Lottery results (Daily Lotto, Lotto, Lotto Plus 1, Lotto 5 Max, Powerball, Powerball Xtra). For UK 49's, EuroMillions, US Powerball, Mega Millions and Kenya Lotto use the dedicated endpoints in the Other Lottery Games section.
Endpoint
GET /api/get_latest_results?api_key=YOUR_API_KEY

Parameters

Parameter Type Description
api_key Required String Your API key for authentication
date Optional String Format: YYYY-MM-DD. If omitted, returns the most recent results.
Historic draws: a date on or after 2026-06-01 returns the current games in the full new format shown below. A date before 2026-06-01 returns the pre-transition games (including Daily Lotto Plus, Lotto Plus 2 and Powerball Plus) in the legacy format, winning numbers, bonus ball and divisions, without the newer fields (draw_day, next_jackpot, rollover_amount, rollover_no).

Example Request

cURL
curl -i "https://resultsZA.co.za/api/get_latest_results?api_key=YOUR_API_KEY&date=2024-12-10"

Response Format

JSON
{ "status": "success", "results": { "daily_lotto_results": { "date": "2026-06-01T21:00:00Z", "draw_day": "Monday", "draw_id": 2634, "draw_machine": "RNG2", "game_type": "Daily Lotto", "total_pool_size": 784093.87, "total_sales": 1615689.0, "winning_numbers": [4, 5, 23, 32, 29], "bonus_ball": null, "next_draw_date": "2026-06-02T21:00:00Z", "next_jackpot": 380000.0, "rollover_amount": 0.0, "rollover_no": 0, "divisions": [ {"division": "DIV 1", "match": "MATCH 5", "winners": 4, "winning_amount": 68608.2}, {"division": "DIV 2", "match": "MATCH 4", "winners": 208, "winning_amount": 376.9}, {"division": "DIV 3", "match": "MATCH 3", "winners": 6289, "winning_amount": 18.7}, {"division": "DIV 4", "match": "MATCH 2", "winners": 63291, "winning_amount": 4.9} ] }, "powerball_results": { "date": "2026-06-02T21:00:00Z", "draw_day": "Tuesday", "draw_id": 1670, "draw_machine": "RNG2", "game_type": "Powerball", "total_pool_size": 12350000.0, "total_sales": 18900000.0, "winning_numbers": [7, 18, 24, 39, 45], "powerball": 9, "next_draw_date": "2026-06-05T21:00:00Z", "next_jackpot": 18000000.0, "rollover_amount": 5400000.0, "rollover_no": 2, "divisions": [ {"division": "DIV 1", "match": "MATCH 5 + PB", "winners": 0, "winning_amount": 0.0}, {"division": "DIV 2", "match": "MATCH 5", "winners": 1, "winning_amount": 254310.4} ] } } }
Note: If the date parameter is used, results for all game types drawn on that date will be returned.

GET Get Results by Game DEPRECATED

This endpoint will be retired on 30 June 2026. Please migrate to the dedicated game endpoints listed in the Dedicated Endpoints section. Each game has its own endpoint that returns the same full data including prize divisions, jackpot and rollover details.

Retrieve draw results for a specific game type. Accepts all games across all countries.

Endpoint
GET /api/get_results_by_game?api_key=YOUR_API_KEY&game=GAME_NAME

Parameters

Parameter Type Description
api_key Required String Your API key for authentication
game Required String

Exact game name string. Accepted values:

🇸🇦 South Africa

Daily Lotto, Lotto, Lotto Plus 1, Lotto 5 Max, Powerball, Powerball Xtra

🇬🇧 United Kingdom

UK49s Brunchtime, UK49s Lunchtime, UK49s Drivetime, UK49s Teatime

🇪🇺 Europe

EuroMillions

🇺🇸 United States

US Powerball, Mega Millions
Note: use US Powerball (not Powerball) to request the US game. Powerball returns the South African game.
date Optional String Format: YYYY-MM-DD. Fetch results for a specific date.
Historic draws: a date on or after 2026-06-01 returns the current games in the full new format. A date before 2026-06-01 returns the pre-transition games (Daily Lotto Plus, Lotto Plus 2, Powerball Plus and the old names) from the historic archive in the legacy format. Discontinued game names are accepted only for historic dates.

Example Requests

cURL
curl -i "https://resultsZA.co.za/api/get_results_by_game?api_key=YOUR_API_KEY&game=Lotto"
curl -i "https://resultsZA.co.za/api/get_results_by_game?api_key=YOUR_API_KEY&game=Lotto&date=2024-11-16"
curl -i "https://resultsZA.co.za/api/get_results_by_game?api_key=YOUR_API_KEY&game=UK49s%20Teatime"

Response Format

JSON
{ "status": "success", "results": [ { "game_type": "Daily Lotto", "draw_id": "2634", "draw_date": "2026-06-01T21:00:00Z", "draw_day": "Monday", "draw_machine": "RNG2", "total_pool_size": 784093.87, "total_sales": 1615689.0, "winning_numbers": [4, 5, 23, 32, 29], "bonus_ball": null, "next_draw_date": "2026-06-02T21:00:00Z", "next_jackpot": 380000.0, "rollover_amount": 0.0, "rollover_no": 0, "divisions": [ {"division": "DIV 1", "match": "MATCH 5", "winners": 4, "winning_amount": 68608.2}, {"division": "DIV 2", "match": "MATCH 4", "winners": 208, "winning_amount": 376.9}, {"division": "DIV 3", "match": "MATCH 3", "winners": 6289, "winning_amount": 18.7}, {"division": "DIV 4", "match": "MATCH 2", "winners": 63291, "winning_amount": 4.9} ] } ] }
Note: For Powerball and Powerball Xtra the bonus field is named powerball instead of bonus_ball. This endpoint returns the full draw detail including financials, next jackpot, rollover and prize divisions.

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 (default: 1)
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
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
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} ] }

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
US PowerballUnited States
Mega MillionsUnited States
Kenya LottoAfrica
Nigeria LottoAfrica (all 25 draw names combined)
Ghana LottoAfrica (all 7 games combined)
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 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
US PowerballUnited States
Mega MillionsUnited States
Kenya LottoAfrica
Nigeria LottoAfrica (all 25 draw names combined)
Ghana LottoAfrica (all 7 games combined)
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": 1, "frequency": 18, "last_drawn": "2026-06-18"}, {"number": 2, "frequency": 22, "last_drawn": "2026-06-11"}, ... ] }

GET Get Number Pairs

Retrieve the top 10 most common number pairs drawn together for a game, across all historical draws.

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
US PowerballUnited States
Mega MillionsUnited States
Kenya LottoAfrica
Nigeria LottoAfrica (all 25 draw names combined)
Ghana LottoAfrica (all 7 games combined)
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"}, ... ] }

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.

Available Game Names (game parameter)
Game NameNumbers RequiredNote
Daily Lotto55 main numbers
Lotto66 main numbers
Lotto Plus 166 main numbers
Lotto 5 Max66 main numbers
Powerball65 main + Powerball as last number
Powerball Xtra65 main + Powerball as last number
Endpoint
POST /api/check_played_numbers?api_key=YOUR_API_KEY&game=GAME_NAME&date=YYYY-MM-DD

Request Body Format

{ "played_numbers": [ [10, 20, 30, 40, 50, 5], [1, 6, 29, 11, 15, 17] ] }

For a single line, use:

{ "played_numbers": [1, 6, 29, 11, 15, 17] }

Example Request

cURL
curl -X POST "https://resultsZA.co.za/api/check_played_numbers?api_key=YOUR_API_KEY&game=Lotto&date=2024-12-07" -H "Content-Type: application/json" -d '{ "played_numbers": [[10,20,30,40,50,5],[1,6,29,11,15,17]] }'

Response Format

JSON
{ "status": "success", "game": "Lotto", "draw_date": "2024-12-07", "results": { "line1_results": { "played_numbers": [10, 20, 30, 40, 50, 5], "winning_numbers": [10, 20, 30, 47, 49, 50], "bonus_ball": 21, "matches": { "main_matches": 4, "bonus_match": true }, "division": "DIV 4", "winning_amount": "2001.10" }, "line2_results": { "played_numbers": [1, 6, 29, 11, 15, 17], "winning_numbers": [10, 20, 30, 47, 49, 50], "bonus_ball": 21, "matches": { "main_matches": 0, "bonus_match": false }, "division": null, "winning_amount": null } } }

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.

Available Game Names (game parameter)
Game NameNumbers RequiredNote
Daily Lotto55 main numbers
Lotto66 main numbers
Lotto Plus 166 main numbers
Lotto 5 Max66 main numbers
Powerball65 main + Powerball as last number
Powerball Xtra65 main + Powerball as last number
Endpoint
POST /api/bulk_check_numbers?api_key=YOUR_API_KEY&game=GAME_NAME&date=YYYY-MM-DD
API Call Consumption
  • 5 API calls per 50 lines (or part thereof). 1–50 lines = 5 calls, 51–100 lines = 10 calls, and so on.
  • Maximum 500 lines per request.

Request Body Format:

The request body must be in JSON format:

{ "played_numbers": [ [10, 20, 30, 40, 50, 5], [1, 6, 29, 11, 15, 17], ... ] }

Notes:

  • For Powerball and Powerball Xtra, the last number in each line is treated as the Powerball.
  • For other games, all numbers in a line are treated as main numbers, and the bonus ball is checked separately.
  • Lines exceeding the 500-line cap will 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=2024-12-11" \ -H "Content-Type: application/json" \ -d '{"played_numbers": [[10,20,30,40,50,5],[1,6,29,11,15,17],[8,14,22,36,48,3]]}'

Response Format:

{ "status": "success", "game": "Lotto Plus 1", "draw_date": "2024-12-11", "lines_checked": 50, "results": { "line1_results": { "played_numbers": [10, 20, 30, 40, 50, 5], "winning_numbers": [10, 20, 30, 47, 49, 50], "bonus_ball": 21, "matches": { "main_matches": 4, "bonus_match": true }, "division": "DIV 4", "winning_amount": "2001.10" }, ... } }

Note: Ensure your API key has sufficient remaining API calls before submitting a bulk check request.

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 — 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)
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)
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.

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, "subscription_status": "active", "subscription_end": "2026-02-23", "days_until_expiry": 31, "note": "IMPORTANT: When your subscription expires, your API key is deactivated immediately. Renew before expiry to avoid interruption. If you exhaust your calls before expiration, you can upgrade to a higher tier immediately." }
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/buy_now?api_key=YOUR_API_KEY&tier=professional&action=renew" }
Note: This endpoint does not deduct API calls. Use it to check your balance before making API requests.

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 automatically on your billing cycle
  • Upgrade or downgrade tiers at any time (unused calls are lost when downgrading)
  • Renewal allowed up to 7 days before expiry
  • 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
Get Latest Results 1 call
Get Results by Game 1 call
Generate Random Numbers 1 call per line
Hot & Cold Numbers 1 call
Number Frequencies 1 call
Number Pairs 1 call
Winning Number Checker 1 call per line (up to 10 lines)
Bulk Number Checker 5 API calls for up to 50 lines, then 5 API calls per additional 50 lines
Get UK 49's Results 1 call
Text-to-Lucky Numbers 1 call
Check API Key Balance 0 calls (free)

Supported Games

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

🇸🇦 South Africa

Current games (from 1 June 2026). Use Get Latest Results or Get Results by Game.

  • 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)

🇬🇧 United Kingdom

Use Get Results by Game or 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 endpoint.

  • EuroMillions, draws every Tuesday & Friday at 21:00 CET / 23:00 SAST (from February 2004)

🇺🇸 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)
Endpoint coverage by game:
  • get_latest_results, SA games only DEPRECATED
  • get_results_by_game, SA games + UK 49's DEPRECATED
  • get_uk49s_results, UK 49's only
  • get_euromillions_results, EuroMillions only
  • get_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 Mon-Sun + 3 daily Mon-Sat)
  • Statistical endpoints (hot/cold, frequencies, pairs), SA games only

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 } ] } ] }

🌍 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 that draw Monday to Saturday (VAG Lotto, Noon Rush, Daywa 5/39). 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/39Mon to Sat18:3020:30
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" } ] }

🇺🇸 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. Covers Greyville, Kenilworth, Fairview and Vaal. 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.

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.
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": "N", "race_count": 8, "scrape_status": "complete" }, { "race_date": "2026-06-20", "venue": "Greyville", "province": "N", "race_count": 9, "scrape_status": "complete" }, { "race_date": "2026-06-19", "venue": "Fairview", "province": "EC", "race_count": 8, "scrape_status": "complete" }, { "race_date": "2026-06-18", "venue": "Vaal", "province": "G", "race_count": 9, "scrape_status": "complete" }, { "race_date": "2026-06-16", "venue": "Kenilworth", "province": "WC", "race_count": 8, "scrape_status": "complete" } ] }

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

🏇 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": "N", "races": [ { "race_no": 1, "race_name": "Maiden Plate (F&M)(Polytrack)", "race_class": "MP-fm", "race_grade": 5, "distance": 1200, "going": "g", "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, "race_status": "", "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": "3/1", "tote_win": 3.9, "tote_place": 1.6, "lengths_behind": 0.0, "ability_rating": 69, "age": 3, "colour": "b", "sex": "f", "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, declared and actual draw and mass, opening odds, SP, tote win/place, ability ratings, RSR data, 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)", "race_class": "MP-fm", "race_grade": 5, "distance": 1200, "going": "g", "off_time": "12:30", "win_time": 71.0, "declared_runners": 11, "pace": "ok", "apprentice_allowance": 1, "race_comment": "", "race_status": "", "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": "b", "sex": "f", "sire_name": "Elusive Fort", "dam_name": "Better Together", "dam_sire_name": "What A Winter", "draw": 3, "act_draw": 3, "mass": 60.0, "act_mass": 60.0, "open_odds": "4/1", "sp": "3/1", "tote_win": 3.9, "tote_place": 1.6, "lengths_behind": 0.0, "ability_rating": 69, "exp_ability_rating": 60, "rsr_wintime": null, "rsr_finish": null, "rsr_lbh": null, "rsr_odds": 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, "open_odds": "5/1", "sp": "11/2", "tote_win": null, "tote_place": null } ] }

Finishers are ranked 1, 2, 3... by their finishing order. Scratched horses always appear last with "finish": null and "completed_run": false.