South Africa: cities and how to get around
70 cities with airports, stations, hotels and the journeys between them, from public data.
South Africa has 70 cities on this site, including the capital, Pretoria. Each one has an overview and pages for flights, hotels, trains, buses, driving and things to do — hostels too, where the city has them — built from public data, plus city-to-city pages for the journeys between them.
Cities in South Africa
| City | Region | Population | Airport | Hotels listed |
|---|---|---|---|---|
| Johannesburg | Gauteng | 9,418,183 | JNB (21 km) | 1,835+ |
| Cape Town | Western Cape | 4,772,846 | CPT (18 km) | 6,750+ |
| Durban | KwaZulu-Natal | 3,338,026 | DUR (28 km) | 1,285+ |
| Pretoria | Gauteng | 2,112,693 | HLA (34 km) | 991 |
| Soweto | Gauteng | 1,695,047 | HLA (37 km) | 33 |
| Gqeberha | Eastern Cape | 1,050,078 | PLZ (3 km) | 181 |
| Soshanguve | Gauteng | 872,309 | HLA (55 km) | 5 |
| Pietermaritzburg | KwaZulu-Natal | 839,327 | DUR (70 km) | 131 |
| Evaton | Gauteng | 725,468 | JNB (59 km) | — |
| Benoni | Gauteng | 605,344 | JNB (9 km) | 111 |
| Bloemfontein | Free State | 556,637 | BFN (9 km) | 401 |
| Thembisa | Gauteng | 511,655 | JNB (16 km) | 1 |
| East London | Eastern Cape | 478,676 | ELS (8 km) | 380 |
| Vereeniging | Gauteng | 474,681 | JNB (67 km) | 43 |
| Boksburg | Gauteng | 445,168 | JNB (8 km) | 121 |
| Welkom | Free State | 431,944 | — | 38 |
| Newcastle | KwaZulu-Natal | 404,838 | — | 76 |
| Krugersdorp | Gauteng | 378,821 | HLA (22 km) | — |
| Rustenburg | North West | 373,695 | HLA (75 km) | — |
| Emalahleni | Mpumalanga | 373,403 | — | — |
| Randburg | Gauteng | 337,053 | HLA (19 km) | — |
| Roodepoort | Gauteng | 326,416 | HLA (25 km) | — |
| Botshabelo | Free State | 309,714 | BFN (45 km) | — |
| Brakpan | Gauteng | 305,692 | JNB (16 km) | — |
| Kariega | Eastern Cape | 291,052 | PLZ (33 km) | — |
| Polokwane | Limpopo | 272,461 | PTG (7 km) | — |
| Germiston | Gauteng | 255,863 | JNB (13 km) | — |
| Richards Bay | KwaZulu-Natal | 252,968 | RCB (7 km) | — |
| Vanderbijlpark | Gauteng | 246,754 | JNB (75 km) | — |
| Paarl | Western Cape | 236,910 | CPT (43 km) | — |
| Centurion | Gauteng | 236,580 | HLA (27 km) | — |
| Klerksdorp | North West | 227,039 | — | — |
| Somerset West | Western Cape | 225,289 | CPT (23 km) | — |
| Mdantsane | Eastern Cape | 205,504 | ELS (12 km) | — |
| Middelburg | Mpumalanga | 196,263 | — | — |
| George | Western Cape | 188,580 | GRJ (9 km) | — |
| Carletonville | Gauteng | 182,304 | HLA (71 km) | — |
| Potchefstroom | North West | 178,285 | — | — |
| Mthatha | Eastern Cape | 164,848 | UTT (12 km) | — |
| KwaDukuza | KwaZulu-Natal | 161,177 | DUR (36 km) | — |
| Westonaria | Gauteng | 156,831 | HLA (51 km) | — |
| Etwatwa | Gauteng | 151,866 | JNB (21 km) | — |
| Vryheid | KwaZulu-Natal | 150,012 | — | — |
| Pinetown | KwaZulu-Natal | 144,026 | DUR (32 km) | — |
| Ladysmith | KwaZulu-Natal | 143,446 | — | — |
| eMbalenhle | Mpumalanga | 142,443 | JNB (93 km) | — |
| Kimberley | Northern Cape | 142,089 | KIM (8 km) | — |
| Nigel | Gauteng | 140,644 | JNB (40 km) | — |
| Mpumalanga | KwaZulu-Natal | 140,121 | DUR (52 km) | — |
| Bhisho | Eastern Cape | 137,287 | ELS (41 km) | — |
| Sasolburg | Free State | 135,828 | JNB (86 km) | — |
| Randfontein | Gauteng | 133,654 | HLA (35 km) | — |
| Worcester | Western Cape | 127,597 | CPT (86 km) | — |
| Ntuzuma | KwaZulu-Natal | 125,394 | DUR (22 km) | — |
| Virginia | Free State | 122,502 | — | — |
| Brits | North West | 122,497 | HLA (37 km) | — |
| Alberton | Gauteng | 121,536 | JNB (19 km) | — |
| Queenstown | Eastern Cape | 118,599 | — | — |
| Kroonstad | Free State | 117,152 | — | — |
| Somaroboro | Mpumalanga | 114,369 | — | — |
| Hammanskraal | North West | 112,950 | HLA (69 km) | — |
| Mabopane | Gauteng | 110,972 | HLA (50 km) | — |
| Mbombela | Mpumalanga | 110,159 | MQP (17 km) | — |
| Orkney | North West | 110,052 | — | — |
| Phalaborwa | Limpopo | 109,468 | PHW (2 km) | — |
| Thohoyandou | Limpopo | 107,144 | — | — |
| Tokoza | Gauteng | 106,000 | JNB (27 km) | — |
| Standerton | Mpumalanga | 101,101 | — | — |
| Mokopane | Limpopo | 101,090 | PTG (60 km) | — |
| Ermelo | Mpumalanga | 100,324 | — | — |
Neighbouring countries on this site: Zimbabwe, Eswatini, Mozambique, Botswana, Namibia, Lesotho.
Common questions
Which cities in South Africa are covered?
Johannesburg, Cape Town, Durban, Pretoria, Soweto, Gqeberha, Soshanguve, Pietermaritzburg and 62 more.
What currency does South Africa use?
The Rand (ZAR).
Which side of the road does South Africa drive on?
The left.
Where these facts come from
- GeoNames (CC BY 4.0): population, elevation, time zone, postal codes
- Wikidata (CC0): area, sister cities, visitor numbers, heritage listings, stations and ports
- OurAirports (public domain): airports, runways
- Natural Earth (public domain): map outlines
Data compiled 14 September 2026. Hotel and hostel figures are from our booking partner’s catalogue on that date. Journey times on this page are estimates from distance, not timetables; check the operator before you rely on one.