www.busbud.com
Open in
urlscan Pro
151.101.193.55
Public Scan
URL:
https://www.busbud.com/en/country/za
Submission: On January 08 via api from US — Scanned from DE
Submission: On January 08 via api from US — Scanned from DE
Form analysis
1 forms found in the DOM<form id="search-form" novalidate="" class="group flex flex-wrap lg:rounded-md lg:bg-color-canvas-primary lg:shadow-md" data-testid="search-form-hydrated" data-variant="landing-page" data-one-way-only="false">
<div class="w-full lg:w-10/24 relative flex flex-wrap max-lg:mb-100 max-lg:rounded-md max-lg:bg-color-canvas-primary max-lg:shadow-md lg:flex-nowrap lg:border-r-width-sm lg:border-r-color-primary">
<div
class="w-full sm:w-10/24 max-sm:after:content-[''] max-sm:after:w-[6rem] max-sm:after:absolute max-sm:after:top-012 max-sm:after:right-012 max-sm:after:bg-gradient-to-l max-sm:after:rounded-md max-sm:after:h-[calc(100%-4px)] sm:p-050 max-md:relative"
id="origin-dropdown-wrapper">
<div id="origin-dropdown" class="h-full w-full">
<div class="group/field flex flex-col gap-y-075 no-background-rest h-full w-full"><label class="group/field-container relative flex items-center ps-100 pe-100 cursor-text" for="origin-city-input"><span
class="grow peer grid *:col-span-full *:row-span-full ps-050 pe-050 before:absolute before:inset-0 before:rounded-md before:transition-[background-color,box-shadow] min-h-700 group-[&:hover:not(:focus-within)]/field-container:before:bg-color-glass-primary group-active/field-container:before:bg-color-canvas-primary group-focus-within/field-container:before:bg-color-canvas-primary group-[&:where(:not(.no-background-rest))]/field:before:bg-color-glass-tertiary group-[&:where(:not(.no-background-rest))]/field:before:shadow-[0_0_0_var(--bw-sm)_var(--col-bg-glass-sec)] group-[&:hover:not(:focus-within)]/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-b-prim),0_0_0_var(--bw-lg)_var(--col-b-prim),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)] group-active/field-container:before:shadow-[0_0_0_theme(borderWidth.width-sm)_theme(borderColor.color-scheme-brand-primary-400),0_0_0_theme(borderWidth.width-lg)_theme(borderColor.color-scheme-brand-primary-200),inset_0_.25rem_.25rem_-.188rem_theme(borderColor.color-primary)] group-focus-within/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-brand-prim-400),0_0_0_var(--bw-lg)_var(--col-brand-prim-200),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)]"><input
class="z-[1] peer w-full appearance-none bg-color-static-transparent outline-none pt-[1.6875rem] pb-[0.5625rem] text-size-100 leading-125 cursor-text text-color-primary placeholder:text-color-tertiary [&.is-placeholder]:text-color-tertiary"
id="origin-city-input" name="origin" placeholder="Leaving from…" autocomplete="off" type="text" value=""><span
class="z-[1] self-start justify-self-start max-w-full truncate pointer-events-none transition-all text-color-secondary peer-focus:text-color-scheme-brand-primary-600 text-size-75 leading-100 font-weight-bold translate-y-[0.5625rem] peer-focus:text-size-75 peer-focus:leading-100 peer-focus:font-weight-bold peer-focus:translate-y-[0.5625rem]">Origin</span></span></label>
</div>
</div>
</div>
<div class="sm:w-2/24 absolute bottom-0 right-0 top-0 z-[2] flex items-center justify-center pl-400 pr-300 sm:static sm:self-center sm:p-0"><button aria-label="Swap locations" id="swap-cities-icon" role="button"
class="focus-visible:outline-none focus-visible:ring aria-disabled:cursor-default rotate-45 rounded-md border-width-sm border-color-primary bg-color-canvas-primary p-100 active:bg-color-canvas-secondary sm:border-color-static-transparent sm:p-075 sm:hover:border-color-primary"
type="button" data-testid="swap-cities-button"><svg fill="none" height="24" width="24" aria-hidden="true" class="rotate-45 text-icon-color-primary sm:-rotate-45">
<use href="/pubweb-assets/horizon/Icons/1.12.8/ArrowLeftRight/md.svg#root"></use>
</svg></button></div>
<div
class="w-full sm:w-12/24 max-sm:after:content-[''] max-sm:after:w-[6rem] max-sm:after:absolute max-sm:after:top-012 max-sm:after:right-012 max-sm:after:bg-gradient-to-l max-sm:after:rounded-md max-sm:after:h-[calc(100%-4px)] sm:p-050 max-sm:relative max-sm:border-t-width-sm max-sm:border-t-color-primary"
id="destination-dropdown-wrapper">
<div id="destination-dropdown" class="h-full w-full">
<div class="group/field flex flex-col gap-y-075 no-background-rest h-full w-full"><label class="group/field-container relative flex items-center ps-100 pe-100 cursor-text" for="destination-city-input"><span
class="grow peer grid *:col-span-full *:row-span-full ps-050 pe-050 before:absolute before:inset-0 before:rounded-md before:transition-[background-color,box-shadow] min-h-700 group-[&:hover:not(:focus-within)]/field-container:before:bg-color-glass-primary group-active/field-container:before:bg-color-canvas-primary group-focus-within/field-container:before:bg-color-canvas-primary group-[&:where(:not(.no-background-rest))]/field:before:bg-color-glass-tertiary group-[&:where(:not(.no-background-rest))]/field:before:shadow-[0_0_0_var(--bw-sm)_var(--col-bg-glass-sec)] group-[&:hover:not(:focus-within)]/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-b-prim),0_0_0_var(--bw-lg)_var(--col-b-prim),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)] group-active/field-container:before:shadow-[0_0_0_theme(borderWidth.width-sm)_theme(borderColor.color-scheme-brand-primary-400),0_0_0_theme(borderWidth.width-lg)_theme(borderColor.color-scheme-brand-primary-200),inset_0_.25rem_.25rem_-.188rem_theme(borderColor.color-primary)] group-focus-within/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-brand-prim-400),0_0_0_var(--bw-lg)_var(--col-brand-prim-200),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)]"><input
class="z-[1] peer w-full appearance-none bg-color-static-transparent outline-none pt-[1.6875rem] pb-[0.5625rem] text-size-100 leading-125 cursor-text text-color-primary placeholder:text-color-tertiary [&.is-placeholder]:text-color-tertiary"
id="destination-city-input" name="destination" placeholder="Going to…" autocomplete="off" type="text" value=""><span
class="z-[1] self-start justify-self-start max-w-full truncate pointer-events-none transition-all text-color-secondary peer-focus:text-color-scheme-brand-primary-600 text-size-75 leading-100 font-weight-bold translate-y-[0.5625rem] peer-focus:text-size-75 peer-focus:leading-100 peer-focus:font-weight-bold peer-focus:translate-y-[0.5625rem]">Destination</span></span></label>
</div>
</div>
</div>
</div>
<div class="w-full lg:w-14/24 relative flex flex-wrap sm:max-lg:rounded-md sm:max-lg:bg-color-canvas-primary sm:max-lg:shadow-md md:flex-nowrap">
<div class="w-full sm:w-21/24 md:w-19/24 lg:w-18/24 xl:w-18/24 flex flex-wrap sm:flex-nowrap">
<div class="w-full sm:w-14/24 md:w-17/24 lg:w-16/24 xl:w-14/24 flex flex-wrap max-sm:mb-100 max-sm:rounded-md max-sm:bg-color-canvas-primary max-sm:shadow-md sm:border-r-width-sm sm:border-r-color-primary">
<div class="w-12/24 sm:p-050">
<div class="group/field flex flex-col gap-y-075 no-background-rest h-full w-full"><label class="group/field-container relative flex items-center ps-100 pe-100 cursor-text" for="outbound-date-input"><span
class="grow peer grid *:col-span-full *:row-span-full ps-050 pe-050 before:absolute before:inset-0 before:rounded-md before:transition-[background-color,box-shadow] min-h-700 group-[&:hover:not(:focus-within)]/field-container:before:bg-color-glass-primary group-active/field-container:before:bg-color-canvas-primary group-focus-within/field-container:before:bg-color-canvas-primary group-[&:where(:not(.no-background-rest))]/field:before:bg-color-glass-tertiary group-[&:where(:not(.no-background-rest))]/field:before:shadow-[0_0_0_var(--bw-sm)_var(--col-bg-glass-sec)] group-[&:hover:not(:focus-within)]/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-b-prim),0_0_0_var(--bw-lg)_var(--col-b-prim),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)] group-active/field-container:before:shadow-[0_0_0_theme(borderWidth.width-sm)_theme(borderColor.color-scheme-brand-primary-400),0_0_0_theme(borderWidth.width-lg)_theme(borderColor.color-scheme-brand-primary-200),inset_0_.25rem_.25rem_-.188rem_theme(borderColor.color-primary)] group-focus-within/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-brand-prim-400),0_0_0_var(--bw-lg)_var(--col-brand-prim-200),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)]"><input
class="z-[1] peer w-full appearance-none bg-color-static-transparent outline-none pt-[1.6875rem] pb-[0.5625rem] text-size-100 leading-125 cursor-text text-color-primary placeholder:text-color-tertiary [&.is-placeholder]:text-color-tertiary"
id="outbound-date-input" placeholder=" " readonly="" type="text" value="Thu, Jan 9"><span
class="z-[1] self-start justify-self-start max-w-full truncate pointer-events-none transition-all text-color-secondary peer-focus:text-color-scheme-brand-primary-600 text-size-75 leading-100 font-weight-bold translate-y-[0.5625rem] peer-focus:text-size-75 peer-focus:leading-100 peer-focus:font-weight-bold peer-focus:translate-y-[0.5625rem]">Date</span></span></label>
</div>
</div>
<div class="w-12/24 border-l-width-sm border-l-color-primary sm:p-050">
<div class="group/field flex flex-col gap-y-075 no-background-rest h-full w-full"><label class="group/field-container relative flex items-center ps-100 pe-100 cursor-text" for="return-date-input"><span
class="grow peer grid *:col-span-full *:row-span-full ps-050 pe-050 before:absolute before:inset-0 before:rounded-md before:transition-[background-color,box-shadow] min-h-700 group-[&:hover:not(:focus-within)]/field-container:before:bg-color-glass-primary group-active/field-container:before:bg-color-canvas-primary group-focus-within/field-container:before:bg-color-canvas-primary group-[&:where(:not(.no-background-rest))]/field:before:bg-color-glass-tertiary group-[&:where(:not(.no-background-rest))]/field:before:shadow-[0_0_0_var(--bw-sm)_var(--col-bg-glass-sec)] group-[&:hover:not(:focus-within)]/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-b-prim),0_0_0_var(--bw-lg)_var(--col-b-prim),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)] group-active/field-container:before:shadow-[0_0_0_theme(borderWidth.width-sm)_theme(borderColor.color-scheme-brand-primary-400),0_0_0_theme(borderWidth.width-lg)_theme(borderColor.color-scheme-brand-primary-200),inset_0_.25rem_.25rem_-.188rem_theme(borderColor.color-primary)] group-focus-within/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-brand-prim-400),0_0_0_var(--bw-lg)_var(--col-brand-prim-200),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)]"><input
class="z-[1] peer w-full appearance-none bg-color-static-transparent outline-none pt-[1.6875rem] pb-[0.5625rem] text-size-100 leading-125 cursor-text text-color-primary placeholder:text-color-tertiary [&.is-placeholder]:text-color-tertiary"
id="return-date-input" placeholder="Optional" readonly="" type="text" value=""><span
class="z-[1] self-start justify-self-start max-w-full truncate pointer-events-none transition-all text-color-secondary peer-focus:text-color-scheme-brand-primary-600 text-size-75 leading-100 font-weight-bold translate-y-[0.5625rem] peer-focus:text-size-75 peer-focus:leading-100 peer-focus:font-weight-bold peer-focus:translate-y-[0.5625rem]">Return
Date</span></span></label></div>
</div>
</div>
<div data-testid="passenger-info-input" class="w-full sm:w-10/24 md:9/24 xl:w-11/24 max-sm:mb-100 max-sm:rounded-md max-sm:bg-color-canvas-primary max-sm:shadow-md sm:border-r-width-sm sm:border-r-color-primary relative sm:p-050">
<div class="group/field flex flex-col gap-y-075 no-background-rest h-full w-full"><label class="group/field-container relative flex items-center ps-100 pe-100 cursor-text" for="passenger-input"><span
class="grow peer grid *:col-span-full *:row-span-full ps-050 pe-050 before:absolute before:inset-0 before:rounded-md before:transition-[background-color,box-shadow] min-h-700 group-[&:hover:not(:focus-within)]/field-container:before:bg-color-glass-primary group-active/field-container:before:bg-color-canvas-primary group-focus-within/field-container:before:bg-color-canvas-primary group-[&:where(:not(.no-background-rest))]/field:before:bg-color-glass-tertiary group-[&:where(:not(.no-background-rest))]/field:before:shadow-[0_0_0_var(--bw-sm)_var(--col-bg-glass-sec)] group-[&:hover:not(:focus-within)]/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-b-prim),0_0_0_var(--bw-lg)_var(--col-b-prim),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)] group-active/field-container:before:shadow-[0_0_0_theme(borderWidth.width-sm)_theme(borderColor.color-scheme-brand-primary-400),0_0_0_theme(borderWidth.width-lg)_theme(borderColor.color-scheme-brand-primary-200),inset_0_.25rem_.25rem_-.188rem_theme(borderColor.color-primary)] group-focus-within/field-container:before:shadow-[0_0_0_var(--bw-sm)_var(--col-brand-prim-400),0_0_0_var(--bw-lg)_var(--col-brand-prim-200),inset_0_var(--bw-lg)_4px_-3px_theme(borderColor.color-primary)]"><input
class="z-[1] peer w-full appearance-none bg-color-static-transparent outline-none pt-[1.6875rem] pb-[0.5625rem] text-size-100 leading-125 cursor-text text-color-primary placeholder:text-color-tertiary [&.is-placeholder]:text-color-tertiary"
id="passenger-input" placeholder="1 passenger" readonly="" type="text" aria-label="1 passenger" value="1 passenger"><span
class="z-[1] self-start justify-self-start max-w-full truncate pointer-events-none transition-all text-color-secondary peer-focus:text-color-scheme-brand-primary-600 text-size-75 leading-100 font-weight-bold translate-y-[0.5625rem] peer-focus:text-size-75 peer-focus:leading-100 peer-focus:font-weight-bold peer-focus:translate-y-[0.5625rem]">Passengers</span></span></label>
</div>
</div>
</div>
<div class="w-full sm:w-3/24 md:w-5/24 lg:w-7/24 xl:w-6/24 whitespace-nowrap" data-cy="search-submit" id="search-submit-button"><span class="h-full sm:hidden"><button aria-label="Search"
class="focus-visible:outline-none focus-visible:ring aria-disabled:cursor-default inline-flex items-center justify-center max-w-full ps-150 pe-150 py-150 rounded-md hover:-translate-y-006 active:translate-y-006 backdrop-blur-lg bg-color-scheme-brand-primary-500 shadow-sm hover:bg-color-scheme-brand-primary-400 hover:shadow-sm active:bg-color-scheme-brand-primary-600 [&:not(:focus-visible)]:active:shadow-none text-color-primary-inverse hover:text-color-primary-inverse active:text-color-primary-inverse h-full w-full"
type="submit" data-testid="submit-button"><span class="shrink-0 text-icon-color-primary-inverse"><svg fill="none" height="24" width="24" aria-hidden="true">
<use href="/pubweb-assets/horizon/Icons/1.12.8/MagnifyingGlass/md.svg#root"></use>
</svg></span><span class="ps-100 pe-100 py-025 font-weight-bold leading-125 text-size-112">Search</span></button></span><span class="hidden h-full sm:inline md:hidden"><button aria-label="Search"
class="focus-visible:outline-none focus-visible:ring aria-disabled:cursor-default inline-flex items-center justify-center p-150 rounded-md hover:-translate-y-006 active:translate-y-006 backdrop-blur-lg bg-color-scheme-brand-primary-500 shadow-sm hover:bg-color-scheme-brand-primary-400 hover:shadow-sm active:bg-color-scheme-brand-primary-600 [&:not(:focus-visible)]:active:shadow-none text-icon-color-primary-inverse h-full w-full rounded-bl-none rounded-tl-none"
type="submit" data-testid="submit-iconbutton"><svg fill="none" height="32" width="32" aria-hidden="true">
<use href="/pubweb-assets/horizon/Icons/1.12.8/MagnifyingGlass/lg.svg#root"></use>
</svg></button></span><span class="hidden h-full md:block"><button aria-label="Search"
class="focus-visible:outline-none focus-visible:ring aria-disabled:cursor-default inline-flex items-center justify-center max-w-full ps-200 pe-200 py-150 rounded-md hover:-translate-y-006 active:translate-y-006 backdrop-blur-lg bg-color-scheme-brand-primary-500 shadow-sm hover:bg-color-scheme-brand-primary-400 hover:shadow-sm active:bg-color-scheme-brand-primary-600 [&:not(:focus-visible)]:active:shadow-none text-color-primary-inverse hover:text-color-primary-inverse active:text-color-primary-inverse h-full w-full rounded-bl-none rounded-tl-none xl:rounded-bl-none xl:rounded-tl-none"
type="submit" data-testid="submit-button"><span class="shrink-0 text-icon-color-primary-inverse"><svg fill="none" height="32" width="32" aria-hidden="true">
<use href="/pubweb-assets/horizon/Icons/1.12.8/MagnifyingGlass/lg.svg#root"></use>
</svg></span><span class="ps-100 pe-100 py-075 font-weight-bolder leading-125 text-size-112">Search</span></button></span></div>
</div>
</form>
Text Content
Skip to search formSkip to contentSkip to footer * Buses * Durban → Johannesburg * Johannesburg → Durban * Johannesburg → Cape Town * Cape Town → Johannesburg * Pretoria → Durban * Veracruz → Mexico City * Mexico City → Veracruz * Trains * Orlando → Miami * Miami → Orlando * Toronto → Montreal * Montreal → Toronto * Montreal → Quebec City * English * Deutsch * English * English (Canada) * English (UK) * Español (España) * Español (Latinoamérica) * Español (Mexico) * Français * Français (Canada) * Italiano * Nederlands * Polski * Português (Brasil) * Português (Portugal) * Русский * Svenska * Türkçe * 中文简体 * Help * Sign in Search for Buses Durban → JohannesburgJohannesburg → DurbanJohannesburg → Cape TownCape Town → JohannesburgPretoria → DurbanVeracruz → Mexico CityMexico City → Veracruz Trains Orlando → MiamiMiami → OrlandoToronto → MontrealMontreal → TorontoMontreal → Quebec City Useful links Sign in -------------------------------------------------------------------------------- LanguageEnglish DeutschEnglishEnglish (Canada)English (UK)Español (España)Español (Latinoamérica)Español (Mexico)FrançaisFrançais (Canada)ItalianoNederlandsPolskiPortuguês (Brasil)Português (Portugal)РусскийSvenskaTürkçe中文简体 -------------------------------------------------------------------------------- TRAVEL IN SOUTH AFRICA Easily compare and book your next trip with Busbud Origin Destination Date Return Date Passengers SearchSearch Search accommodations Trusted by 75M+ travelers every year looking for bus and train tickets Serving 2M+ bus and train routes in more than 85 countries Dedicated customer service from booking to travel POPULAR ROUTES IN SOUTH AFRICA Daily DeparturesAverage priceAverage trip durationFrom Midrand to JohannesburgDaily Departures2Average price€24Average trip duration40mBookFrom Johannesburg to DurbanDaily Departures3Average price€28Average trip duration8hBookFrom Cape Town to JohannesburgDaily Departures2Average price€49Average trip duration18h 25mBookFrom Bellville to Cape TownDaily Departures2Average price€33Average trip duration30mBookFrom Cape Town to BellvilleDaily Departures3Average price€38Average trip duration24mBook EXPLORE SOUTH AFRICA ON A BUDGET ON YOUR NEXT VACATION South Africa is a beautiful country with so much to offer to its visitors. From its wildlife to its scenic routes, it is a destination worth exploring, and one of the most affordable ways to travel around the country is by bus. Bus travel is affordable and convenient, making it an ideal option for both locals and tourists. But before starting your journey, it's good to know the essentials about bus travel in South Africa. With the right information and preparation, you can make the most out of your trip. SEE THE BEST OF SOUTH AFRICA BY BUS South Africa is a diverse and vibrant country, with numerous cities that offer unique travel experiences. Here are some of the top cities in South Africa that you can travel to by bus, and what makes each of them special: CAPE TOWN Cape Town is one of the most popular tourist destinations in South Africa, and for good reason. The city boasts stunning natural scenery, with iconic landmarks such as Table Mountain and the Cape of Good Hope. Cape Town is also home to vibrant nightlife, diverse cuisine, and a rich cultural history. JOHANNESBURG Johannesburg is the largest city in South Africa and the economic hub of the country. The city is known for its rich history, with landmarks such as the Apartheid Museum and the Mandela House. Johannesburg is also home to world-class shopping, dining, and entertainment. DURBAN Durban is a coastal city known for its warm weather, beautiful beaches, and laid-back atmosphere. The city is a popular destination for surfing and water sports, and is home to numerous cultural attractions such as the Durban Botanic Gardens and the Umgeni River Bird Park. PORT ELIZABETH Port Elizabeth is a vibrant city on the Eastern Cape of South Africa, known for its beautiful beaches and scenic natural beauty. The city is home to numerous outdoor activities, including hiking, kayaking, and whale watching. PRETORIA Pretoria is the administrative capital of South Africa, and is known for its rich cultural history and beautiful architecture. The city is home to landmarks such as the Union Buildings and the Voortrekker Monument, as well as numerous museums and galleries. Traveling by bus in South Africa is an affordable and convenient way to experience some of the country's top destinations. Each city offers a unique travel experience, with something to offer for every type of traveler. Whether you're looking for natural beauty, cultural attractions, or urban excitement, South Africa has it all. -------------------------------------------------------------------------------- WHAT POPULAR BUS COMPANIES OPERATE IN SOUTH AFRICA? * * * * Why choose Busbud? WHY CHOOSE BUSBUD? THE BEST WAY TO BOOK BUS AND TRAIN TICKETS Busbud.com makes it easy for you to find, compare and book city-to-city bus tickets, all over the world. We save you the extra trip to the bus station. Use Busbud to book your trip online, in your own language and currency, wherever you are. Busbud partners with safe and reliable bus companies throughout the world such as Greyhound, Eurolines, ALSA, OUIBUS (BlaBlaBus), National Express and many others so you can buy tickets without a worry. WHAT ARE THE TOP VISITED CITIES IN SOUTH AFRICA? * Buses to Johannesburg * Buses to Cape Town * Buses to Durban * Buses to Pretoria * Buses to Mthatha * Buses to Bloemfontein * Buses to Port Elizabeth * Buses to East London * Buses to Queenstown * Buses to Pietermaritzburg PLAN YOUR NEXT BUS TRIP IN SOUTH AFRICA * Bus from Cape Town to Mthatha * Bus Johannesburg - Mthatha * Mthatha - Cape Town * Bus from Durban to Pretoria * Bus Port Elizabeth - Johannesburg * Mthatha - Johannesburg * Bus from Pretoria to Cape Town * Bus Bloemfontein - Johannesburg * Cape Town - Queenstown * Bus from Cape Town to Port Elizabeth * Bus Cape Town - Durban * Port Elizabeth - Cape Town * Bus from Johannesburg to Port Elizabeth * Bus Durban - Cape Town * Johannesburg - Pietermaritzburg MOST POPULAR AIRPORTS AND DESTINATIONS * Johannesburg to Johannesburg Airport * Durban to Durban Airport * Pietermaritzburg to Johannesburg Airport * Kimberley to The Edward Durban * Aliwal North to The Edward Durban TOP BUS AND TRAIN STATIONS * Buses to Bus Station - Civic Centre * Buses to Bellville - 8 Mabel St. * Buses to Durban Beach - Intercape Office, o.r Tambo Parade (Opposite Tropicana Hotel) * Buses to Pretoria Station * Buses to JOHANNESBURG SUSTAINABLE TRAVEL * Travel from Midrand to Johannesburg * Travel from George to Wilderness * Travel from Johannesburg to Pretoria * Travel from Bloemfontein to Durban * Travel from East London to Port Elizabeth * Travel from Durban to Richards Bay * Travel from Cape Town to Somerset West * Travel from Butterworth to Durban * Travel from Empangeni to Durban * Travel from Margate to Durban * Travel from Johannesburg to Richards Bay * Travel from Richards Bay to Cape Town * Travel from Pretoria to Nelspruit * Travel from Cape Town to Durban * Travel from East London to Bloemfontein POPULAR COUNTRIES * Botswana * Lesotho * Mozambique * Namibia * Swaziland * Zimbabwe * All countries * South Africa -------------------------------------------------------------------------------- follow us * Instagram * Facebook * Twitter -------------------------------------------------------------------------------- Global coverage * Bus and train routes from South Africa * Bus and train stations in South Africa * Bus and Train companies * All bus and train routes -------------------------------------------------------------------------------- Company * About * Partner with us * Join our Affiliate Program * Become an API Partner * Blog * Help -------------------------------------------------------------------------------- © 2025 Busbud Inc., All rights reserved * Terms of use * Privacy * Refund policy Help * * Interested in more? Receive travel deals, trip reminders and other updates by email! By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. Cookies Settings Accept All Cookies Continue without Accepting PRIVACY PREFERENCE CENTER When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer. More information Allow All MANAGE CONSENT PREFERENCES TARGETING COOKIES Targeting Cookies These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. PERFORMANCE COOKIES Performance Cookies These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance. FUNCTIONAL COOKIES Functional Cookies These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly. STRICTLY NECESSARY COOKIES Always Active These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information. Back Button COOKIE LIST Search Icon Filter Icon Clear checkbox label label Apply Cancel Consent Leg.Interest checkbox label label checkbox label label checkbox label label Reject All Confirm My Choices