Public buses may be a great way to get around Costa Rica if you’ve got the time to explore. They go almost everywhere – even some places you might have a hard time driving a rental SUV.
If you can figure out the maze of private companies and overlapping routes then buses are frequent, plentiful and inexpensive (although some travelers are surprised to find that they are not automatically the cheapest option).

The best buses (fewest stops, fewest connections, fewest station changes, fewest layovers) are shown on the schedule below.
There are over 160 destinations on this bus schedule so it’s much easier to search than scroll through all of them (how to search webpage contents on any device).
If the trip you’re trying to take is not listed you probably have to go to San José to make a connection (see below for routing suggestions). Skip down to “Getting Tickets” or go to the “San Jose Bus Station Map” if you already know when you’re headed where and just need logistics information.
![]() |
→ ← |
![]() |
||||
![]() |
Alajuela | every hour 6:00-22:00 | → ← | every hour 5:00-22:00 | Atenas | ![]() |
![]() |
Alajuela | every hour 6:00-22:10 | → ← | every hour 4:30-21:00 | Fraijanes | ![]() |
![]() |
Alajuela | 9:00 | → ← | 14:30 | Poas | ![]() |
![]() |
Alajuela | every 10 min 4:20-23:00 | → ← | every 10 min 4:20-23:00 | Juan Santamaria Airport | ![]() |
![]() |
Alajuela | every 30 min 6:00-21:00 | → ← | every 30 min 6:00-21:00 | La Garita | ![]() |
![]() |
Alajuela | 8:30, 9:00, 10:30, 12:30, 13:00, 14:30, 15:00 | → ← | 9:10, 9:40, 11:10, 11:40, 13:10, 13:40, 15:00, 15:40, 17:05 | La Guacima | ![]() |
![]() |
Alajuela | 8:30 | → ← | 14:00 | Volcan Poas | ![]() |
![]() |
Alajuela | every 30 min 5:00-22:00 | → ← | every 30 min 5:00-22:00 | Sarchi | ![]() |
![]() |
Boca Tapada | 5:00, 12:00 | → ← | 9:30, 16:00 | Pital | ![]() |
![]() |
Canas | 5:00, 6:00, 9:00, 11:00, 12:00, 13:45 | → ← | 5:00, 7:00, 8:00, 9:00, 10:00, 11:30, 15:30 | Tilaran | ![]() |
![]() |
Cartago | every hour 8:45-16:30 | → ← | every hour 8:45-16:30 | Charrarra | ![]() |
![]() |
Cartago | every hour 4:30-18:30 | → ← | every hour 4:30-18:30 | Orosi | ![]() |
![]() |
Cartago | every 5 min 4:30-22:00 | → ← | every 5 min 4:30-22:00 | Paraiso | ![]() |
![]() |
Cartago | every hour 6:00-17:00 | → ← | every hour 6:00-17:00 | Turrialba | ![]() |
![]() |
Cartago | 8:45 | → ← | 12:00 | Volcan Irazu | ![]() |
![]() |
Ciudad Cortes | 5:00 | → ← | 5:30 | Uvita | ![]() |
![]() |
Ciudad Neily | 6:00, 15:30 | → ← | 10:30, 15:30 | Dominical | ![]() |
![]() |
Ciudad Neily | 14:15 | → ← | 5:00 | Zancudo | ![]() |
![]() |
Ciudad Quesada | 6:00, 10:30, 13:00, 15:30, 17:00, 18:00 | → ← | 5:00, 8:00, 12:00, 15:00 | Fortuna | ![]() |
![]() |
Ciudad Quesada | every hour 5:30-20:30 | → ← | every hour 4:30-19:00 | Pital | ![]() |
![]() |
Cobano | 10:30, 14:30 | → ← | 7:00, 12:00 | Mal Pais | ![]() |
![]() |
Dominical | 4:30, 10:30 | → ← | 8:30, 17:00 | Ciudad Cortes | ![]() |
![]() |
Fortuna | 8:00, 16:30 | → ← | 7:00, 12:30 | Tilaran | ![]() |
![]() |
Golfito | 10:00, 15:00 | → ← | 5:00, 12:30 | Pavones | ![]() |
![]() |
Guapiles | 4:40, 6:00, 7:30, 10:00, 15:00, 16:30, 18:30 | → ← | 5:30, 7:00, 8:00, 11:00, 13:30, 15:00, 15:30, 17:30 | Puerto Viejo de Sarapiqui | ![]() |
![]() |
Heredia | 6:25, 11:45, 15:55 | → ← | 7:30, 13:00, 17:00 | Sacramento | ![]() |
![]() |
Liberia | 5:30, 6:45, 7:30, 12:00, 13:30, 16:30, 17:30 | → ← | 5:30, 6:45, 7:30, 12:00, 13:30, 16:30, 17:30 | Canas | ![]() |
![]() |
Liberia | 5:30, 15:30 | → ← | 5:30, 15:30 | Cuajiniquil | ![]() |
![]() |
Liberia | 5:30, 8:30, 9:00, 11:00 | → ← | 5:30, 8:30, 9:00, 11:00 | La Cruz | ![]() |
![]() |
Liberia | every 30 min 4:30-20:20 | → ← | every 30 min 3:50-20:20 | Nicoya | ![]() |
![]() |
Liberia | 5:30, 8:30, 9:00, 11:00 | → ← | 5:30, 8:30, 9:00, 11:00 | Penas Blancas | ![]() |
![]() |
Liberia | 6:10, 8:10, 10:00, 11:10, 12:45, 16:00, 18:00 | → ← | 6:00, 9:3012:00, 13:30, 15:30, 17:30 | Playa Flamingo | ![]() |
![]() |
Liberia | 5:30, 7:30, 11:30, 13:00, 15:30, 17:30, 19:30 | → ← | 6:10, 7:40, 10:10, 14:10, 17:10, 19:10 | Playa Hermosa | ![]() |
![]() |
Liberia | 5:30, 7:30, 11:30, 13:00, 15:30, 17:30, 19:30 | → ← | 6:00, 7:30, 10:00, 14:00, 17:00, 19:00 | Playa Panama | ![]() |
![]() |
Liberia | 6:30, 7:30, 8:30, 9:30, 11:00, 13:30, 16:00 | → ← | 6:30, 7:30, 8:30, 9:30, 11:00, 13:30, 16:00 | Playas del Coco | ![]() |
![]() |
Liberia | 5:00, 8:30, 9:30, 10:30, 11:30, 12:30, 14:30, 15:30 | → ← | 4:50, 5:30, 7:00, 8:30, 9:50, 11:00, 12:15, 15:00, 8:30 | Puntarenas | ![]() |
![]() |
Liberia | every 30 min 4:30-20:30 | → ← | every 30 min 3:30-20:20 | Santa Cruz | ![]() |
![]() |
Liberia | 5:30, 6:10, 8:10, 10:00, 11:10, 12:45, 14:15, 16:00, 18:00 | → ← | 5:30, 9:00, 11:30, 13:00, 17:00 | Tamarindo | ![]() |
![]() |
Limon | 7:10, 7:30, 9:00, 10:00, 11:00, 11:30, 13:00, 14:00, 15:00, 16:00, 16:30, 19:00, 20:00 | → ← | 6:00, 6:30, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00, 19:00 | Bribri | ![]() |
![]() |
Limon | 6:00, 7:00, 8:00, 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00, 19:00 | → ← | 6:30, 7:30, 8:30, 9:30, 10:30, 11:30, 12:30, 13:30, 14:30, 15:30, 16:30, 17:30, 18:30, 20:00 | Cahuita | ![]() |
![]() |
Limon | 6:00, 10:30, 150018:00 | → ← | 5:00, 8:30, 12:30, 17:00 | Manzanillo | ![]() |
![]() |
Limon | every 30 min 5:00-23:00 | → ← | every 30 min 5:00-23:00 | Moin | ![]() |
![]() |
Limon | every hour 5:00-18:00 | → ← | 6:45, 7:30, 10:30, 11:30, 13:30, 14:30, 15:30, 16:30, 17:30, 19:30 | Puerto Viejo de Talamanca | ![]() |
![]() |
Limon | every hour 5:00-18:00 | → ← | every hour 5:00-18:00 | Sixaola | ![]() |
![]() |
Los Chiles | 5:00, 14:00 | → ← | 7:00, 12:00, 18:00 | Cano Negro | ![]() |
![]() |
Nicoya | 5:00, 10:00, 12:00, 15:00 | → ← | 5:00, 7:00, 12:00, 15:00 | Nosara | ![]() |
![]() |
Nicoya | 5:00, 6:00, 8:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:30, 18:30, 20:00, 21:45 | → ← | 5:00, 6:30, 8:00, 10:00, 11:30, 12:30, 13:30, 15:00, 16:00, 17:45 | Samara | ![]() |
![]() |
Palmar Norte | 4:30, 7:00, 9:30, 11:00, 13:30, 14:30, 17:00 | → ← | 5:30, 8:30, 10:30, 12:30, 15:30, 18:00 | Sierpe | ![]() |
![]() |
Paquera | 6:00, 8:00, 10:00, 14:00, 16:0018:00 | → ← | 5:30, 8:15, 10:00, 12:00, 14:00, 16:00 | Montezuma | ![]() |
![]() |
Paquera | 6:00, 8:00, 10:00, 12:00, 14:00, 16:00, 18:00 | → ← | 5:30, 8:00, 10:00, 12:00, 14:00, 16:00 | Cobano | ![]() |
![]() |
Pital | 9:30, 16:30 | → ← | 5:30, 12:30 | Boca Tapada | ![]() |
![]() |
Puerto Jimenez | 6:00, 13:30 | → ← | 8:30, 16:00 | Carate | ![]() |
![]() |
Puerto Viejo de Sarapiqui | 5:30, 8:30, 10:30, 12:30, 14:30, 16:00, 18:00, 19:00 | → ← | 6:00, 9:00, 10:00, 12:00, 14:00, 15:00, 16:30, 17:30 | Ciudad Quesada | ![]() |
![]() |
Puntarenas | 5:45, 10:45, 13:15, 16:00, 17:15 | → ← | 5:30, 8:15, 13:15, 15:15. | Costa de Pajaros | ![]() |
![]() |
Puntarenas | 6:30, 9:30, 12:30, 16:00, 18:00 | → ← | 6:00, 9:00, 12:00, 16:30 | Jaco | ![]() |
![]() |
Puntarenas | 4:50, 5:30, 7:00, 8:30, 9:50, 11:00, 12:15, 15:00, 8:30 | → ← | 5:00, 8:30, 9:30, 10:30, 11:30, 12:30, 14:30, 15:30 | Liberia | ![]() |
![]() |
Puntarenas | 5:00, 8:0011:00, 14:30, 16:30 | → ← | 4:30, 7:30, 10:30, 12:30, 15:00 | Quepos | ![]() |
![]() |
Puntarenas | 14:15 | → ← | 6:00 | Santa Elena | ![]() |
![]() |
Quepos | 4:30, 7:30, 10:30, 12:3015:00 | → ← | 6:30, 9:3012:30, 16:00, 18:00 | Jaco | ![]() |
![]() |
San Isidro del General | 7:00, 9:00, 13:30, 16:00 | → ← | 8:30, 9:30, 16:45, 17:30 | Dominical | ![]() |
![]() |
San Isidro del General | 6:30 | → ← | 13:00 | Puerto Jimenez | ![]() |
![]() |
San Isidro del General | 7:00, 9:00, 13:30, 16:00 | → ← | 6:30, 7:30, 14:45, 15:30. | Quepos | ![]() |
![]() |
San Isidro del General | 5:30, 16:30 | → ← | 7:00, 16:30 | San Gerardo de Rivas | ![]() |
![]() |
San Isidro del General | 5:45, 8:15, 11:30, 14:45 | → ← | 5:00, 7:30, 10:00, 15:00 | San Vito | ![]() |
![]() |
San Isidro del General | 9:00, 16:00 | → ← | 6:00, 13:45 | Uvita | ![]() |
![]() |
San Jose | every 30 min 5:20-22:30 | → ← | every 30 min 4:10-21:00 | Acosta (San Ignacio) | ![]() |
![]() |
San Jose | every 10 min 4:20-23:00 | → ← | every 10 min 4:20-23:00 | Alajuela | ![]() |
![]() |
San Jose | every hour 5:50-22:00 | → ← | every hour 4:30-20:30 | Atenas | ![]() |
![]() |
San Jose | 6:00, 15:30 | → ← | 4:45, 14:30 | Bejuco | ![]() |
![]() |
San Jose | 6:00, 10:00, 13:30, 15:30 | → ← | 6:00, 8:00, 10:00, 15:00 | Bribri | ![]() |
![]() |
San Jose | 8:30, 14:30 | → ← | 7:30, 9:30, 16:00 | Buenos Aires | ![]() |
![]() |
San Jose | 6:00, 10:00, 12:00, 14:00, 16:00. | → ← | 7:00, 8:00, 9:30, 11:30, 16:30 | Cahuita | ![]() |
![]() |
San Jose | 8:30, 9:20, 11:50, 12:20, 13:40, 16:45, 18:15 | → ← | 4:00, 4:50, 5:40, 9:00, 12:15, 13:30 | Canas | ![]() |
![]() |
San Jose | 6:30, 9:00, 10:30, 13:00, 15:00, 16:30, 18:00, 19:00 | → ← | 5:30, 6:30, 7:30, 8:30, 11:30, 13:00, 15:00, 17:30 | Cariari | ![]() |
![]() |
San Jose | every 10 min 5:00-24:00 | → ← | every 10 min 4:45-23:00 | Cartago | ![]() |
![]() |
San Jose | every 30 min 5:00-22:30 | → ← | every 30 min 5:00-22:30 | Ciudad Colon | ![]() |
![]() |
San Jose | 8:30, 14:30 | → ← | 5:00, 7:30 | Ciudad Cortes | ![]() |
![]() |
San Jose | 5:00, 10:00, 13:00, 16:30, 18:00 | → ← | 4:30, 5:00, 8:30, 11:30, 15:30 | Ciudad Neily | ![]() |
![]() |
San Jose | 5:00, 5:30, 6:15, 7:40, 8:40, 10:15, 11:30, 12:45, 14:00, 15:30, 16:40, 18:15, 19:30 | → ← | 5:00, 6:00, 7:10, 8:15, 9:20, 11:40, 13:00, 14:20, 15:30, 17:30, 18:00 | Ciudad Quesada | ![]() |
![]() |
San Jose | 10:00 | → ← | 4:30 | Coto 47 | ![]() |
![]() |
San Jose | 5:30, 15:00 | → ← | 5:40, 13:40 | Dominical | ![]() |
![]() |
San Jose | 6:30, 10:00, 13:30, 15:00, 17:00 | → ← | 6:00, 8:00, 10:20, 13:00, 15:00 | Filadelfia | ![]() |
![]() |
San Jose | 6:15, 8:30, 11:30 | → ← | 12:30, 14:30 | Fortuna | ![]() |
![]() |
San Jose | 6:25 | → ← | 12:30 | Nosara | ![]() |
![]() |
San Jose | 7:00, 15:00 | → ← | 5:00, 13:30 | Golfito | ![]() |
![]() |
San Jose | every 30 min 5:35-22:10 | → ← | every 30 min 4:30-20:30 | Grecia | ![]() |
![]() |
San Jose | 5:30, 7:00, 11:30, 14:00, 15:30, 17:00, 19:00 | → ← | 5:45, 6:30, 8:00, 9:45, 11:15, 14:15, 17:00, 18:30 | Guacimo | ![]() |
![]() |
San Jose | every hour 5:30-22:00 | → ← | every hour 5:30-19:00 | Guapiles | ![]() |
![]() |
San Jose | 5:30, 8:30, 11:30 | → ← | 8:00, 11:30, 15:00 | Guatuso | ![]() |
![]() |
San Jose | every 10 min 5:00-23:00 | → ← | every 10 min 5:00-23:00 | Heredia | ![]() |
![]() |
San Jose | every 10 min 5:00-23:00 | → ← | every 10 min 5:00-23:00 | Heredia | ![]() |
![]() |
San Jose | every 10 min 5:00-23:00 | → ← | every 10 min 5:00-23:00 | Heredia | ![]() |
![]() |
San Jose | 14:30 | → ← | 7:30 | Hojancha | ![]() |
![]() |
San Jose | 6:30, 7:30, 10:00, 11:30, 13:30, 16:30, 18:00 | → ← | 11:00, 13:30, 15:00, 17:30 | Horquetas | ![]() |
![]() |
San Jose | 7:30, 10:30, 13:00, 15:30, 18:30 | → ← | 5:00, 7:30, 11:00, 15:00, 17:00 | Jaco | ![]() |
![]() |
San Jose | 6:00, 15:30 | → ← | 4:45, 14:30 | Jicaral | ![]() |
![]() |
San Jose | every 10 min 4:20-23:00 | → ← | every 10 min 4:20-23:00 | Juan Santamaria Airport | ![]() |
![]() |
San Jose | 9:00, 12:00, 14:00, 16:00, 18:00 | → ← | 4:40, 5:50, 8:30, 12:00, 14:00, 16:00 | Juan Vinas | ![]() |
![]() |
San Jose | 8:40, 10:30, 15:00Ret.6:00, 11:00 | → ← | 8:40, 10:30, 15:00Ret.6:00, 11:00 | Juntas | ![]() |
![]() |
San Jose | 6:40, 14:45 | → ← | 4:00, 14:30 | La Cruz | ![]() |
![]() |
San Jose | 7:00, 8:00, 11:00, 14:00 | → ← | 8:25, 12:25, 15:25, 17:25, 15:15 | La Guacima | ![]() |
![]() |
San Jose | every hour 6:00-18:00 | → ← | every hour 4:00-20:00 | Liberia | ![]() |
![]() |
San Jose | every hour 5:00-19:00 | → ← | every hour 5:00-19:00 | Limon | ![]() |
![]() |
San Jose | 5:30, 15:30 | → ← | 5:00, 15:00. | Los Chiles | ![]() |
![]() |
San Jose | 6:00, 9:00, 12:30, 14:30, 15:00, 17:00, 19:30 | → ← | 5:30, 6:00, 7:30, 9:30, 13:00, 15:15, 18:30 | Los Santos | ![]() |
![]() |
San Jose | 7:00 | → ← | 4:30, 14:30 | Mal Pais | ![]() |
![]() |
San Jose | 12:00 | → ← | 7:00 | Manzanillo | ![]() |
![]() |
San Jose | 9:00, 12.00, 14:00, 16:00 | → ← | 5:00, 6:15, 7:00, 12:00, 15:00 | Matina | ![]() |
![]() |
San Jose | 7:00, 12:30, 16:15, 17:40 | → ← | 4:30, 5:30, 7:30, 12:30 | Miramar | ![]() |
![]() |
San Jose | 7:30, 15:30 | → ← | 4:45, 14:45 | Montezuma | ![]() |
![]() |
San Jose | 7:40, 15:00 | → ← | 6:30, 14:30 | Nandayure | ![]() |
![]() |
San Jose | 6:30, 10:00, 13:30, 15:00, 17:00 | → ← | 5:30, 7:30, 9:30, 12:30, 15:00 | Nicoya | ![]() |
![]() |
San Jose | 6:00, 8:00, 10:30, 12:30, 14:00, 16:0018:15 | → ← | 3:45, 4:30, 5:20, 9:45, 12:00, 14:30, 17:20 | Nicoya | ![]() |
![]() |
San Jose | 6:00 | → ← | 12:30 | Nosara | ![]() |
![]() |
San Jose | 8:00, 9:30, 11:15, 12:30, 13:45, 14:45, 16:50, 17:50, 18:25, 21:00 | → ← | 5:00, 5:306:00, 7:15, 10:00, 13:00, 14:50, 16:00, 18:00 | Orotina | ![]() |
![]() |
San Jose | 5:00, 7:00, 8:30, 10:00, 13:00, 14:30, 18:00 | → ← | 5:00, 7:00, 8:15, 7:00, 10:00, 13:00, 14:30, 16:45 | Palmar Norte | ![]() |
![]() |
San Jose | every hour 5:00-18:30 | → ← | every hour 5:00-18:30 | Palmares | ![]() |
![]() |
San Jose | 5:00, 7:30, 11:00, 13:00, 16:30, 18:00 | → ← | 3:30, 8:30, 11:30, 15:00 | Paso Canoas | ![]() |
![]() |
San Jose | 8:30, 10:30, 14:30, 19:30, 21:00 | → ← | 4:00, 8:00, 9:00, 15:00 | Paso Canoas | ![]() |
![]() |
San Jose | 4:305:00, 7:00, 7:45, 10:30, 13:20, 16:00 | → ← | 5:00, 7:00, 9:30, 10:30, 12:00, 13:30, 14:45, 15:30 | Penas Blancas | ![]() |
![]() |
San Jose | 7:40, 12:45, 15:00, 19:30 | → ← | 6:30, 7:30, 11:00, 13:00, 17:00 | Pital | ![]() |
![]() |
San Jose | 15:25 | → ← | 5:10 | Playa Hermosa | ![]() |
![]() |
San Jose | 15:25 | → ← | 5:00 | Playa Panama | ![]() |
![]() |
San Jose | 8:00, 10:30, 15:00, 11:00 | → ← | 2:45, 9:00, 14:00 | Playa Potrero | ![]() |
![]() |
San Jose | 8:00, 14:00, 16:00 | → ← | 4:00, 8:00, 14:00 | Playas del Coco | ![]() |
![]() |
San Jose | 6:00, 12:00 | → ← | 5:00, 11:00 | Puerto Jimenez | ![]() |
![]() |
San Jose | 6:00, 7:30, 10:00, 11:30, 13:30, 14:30, 15:30, 16:30, 18:00 | → ← | 5:30, 7:00, 8:00, 11:00, 13:30, 15:00, 17:30 | Puerto Viejo de Sarapiqui | ![]() |
![]() |
San Jose | 6:30, 13:00, 17:30 | → ← | 5:00, 7:30, 11:30, 16:30 | Puerto Viejo de Sarapiqui | ![]() |
![]() |
San Jose | 6:00, 10:00, 12:00, 14:00, 16:00 | → ← | 7:00, 8:00, 9:30, 11:30, 16:30 | Puerto Viejo de Talamanca | ![]() |
![]() |
San Jose | every 40 min 6:00-19:00 | → ← | every 40 min 5:30-19:00 | Puntarenas | ![]() |
![]() |
San Jose | every hour 5:30-22:30 | → ← | every hour 5:30-22:30 | Puriscal | ![]() |
![]() |
San Jose | 6:00, 12:00, 18:00, 19:30 | → ← | 6:00, 9:30, 12:00, 17:00 | Quepos | ![]() |
![]() |
San Jose | 8:20, 11:20, 13:20, 17:20, 18:20 | → ← | 9:00, 12:00, 15:00, 17:30, 19:30 | Rancho Redondo | ![]() |
![]() |
San Jose | 7:00, 15:30 | → ← | 9:15, 17:45 | Rio Jimenez | ![]() |
![]() |
San Jose | 5:45, 8:15, 11:30, 14:45 | → ← | 5:00, 7:30, 10:00, 15:00 | Sabalito | ![]() |
![]() |
San Jose | 12:30, 18:30 | → ← | 4:00, 8:45 | Samara | ![]() |
![]() |
San Jose | every 25 min 5:20-22:30 | → ← | every 25 min 5:20-22:30 | San Ignacio de Acosta | ![]() |
![]() |
San Jose | every hour 5:30-17:30 | → ← | every hour 5:00-17:30 | San Isidro del General | ![]() |
![]() |
San Jose | every hour 5:00-18:00 | → ← | every hour 5:30-19:30 | San Isidro del General | ![]() |
![]() |
San Jose | every 30 min 5:50-22:00 | → ← | every 30 min 5:50-22:00 | San Ramon | ![]() |
![]() |
San Jose | 5:45, 8:15, 11:30, 14:45 | → ← | 5:15, 7:45, 10:15, 15:15 | San Vito | ![]() |
![]() |
San Jose | 6:00, 14:05 | → ← | 4:00, 14:30 | Santa Cecila | ![]() |
![]() |
San Jose | 9:00, 12:00, 16:00, 18:00 | → ← | 4:30, 8:30, 11:30, 17:00 | Santa Cruz | ![]() |
![]() |
San Jose | 7:00, 10:00, 13:00, 17:00 | → ← | 4:30, 8:00, 12:00, 15:00 | Santa Cruz | ![]() |
![]() |
San Jose | 7:00, 10:00, 10:30, 13:00, 14:00 | → ← | 3:00, 5:00, 6:30, 10:30, 13:30 | Santa Cruz | ![]() |
![]() |
San Jose | 6:30, 13:3015:00 | → ← | 5:30, 7:30, 10:00, 12:30 | Santa Cruz | ![]() |
![]() |
San Jose | 6:30, 14:30 | → ← | 6:30, 14:30 | Santa Elena | ![]() |
![]() |
San Jose | every 30 min 5:00-22:00 | → ← | every 30 min 5:00-22:00 | Sarchi | ![]() |
![]() |
San Jose | 6:30, 8:00, 9:30 every hour 10:00-18:00 | → ← | every hour 5:30-18:00 | Siquirres | ![]() |
![]() |
San Jose | 6:00, 10:00, 12:00, 14:00, 16:00 | → ← | 5:00, 7:00, 8:00, 9:30, 15:00 | Sixaola | ![]() |
![]() |
San Jose | 11:30, 15:30 | → ← | 3:30, 5:45, 13:00 | Tamarindo | ![]() |
![]() |
San Jose | 7:30, 9:30, 12:45, 15:45, 18:30 | → ← | 5:00, 7:00, 9:30, 14:00, 17:00 | Tilaran | ![]() |
![]() |
San Jose | every hour 5:15-22:00 | → ← | every hour 5:00-21:00 | Turrialba | ![]() |
![]() |
San Jose | 10:15, 15:00, 17:15, 15:45 | → ← | 4:30, 5:15, 9:00, 9:30 | Upala | ![]() |
![]() |
San Jose | 5:30, 15:00 | → ← | 5:00, 13:00 | Uvita | ![]() |
![]() |
San Jose | 8:00 | → ← | 12:00 | Volcan Irazu | ![]() |
![]() |
San Jose | 8:00 | → ← | 14:00 | Volcan Poas | ![]() |
![]() |
San Jose | 9:15, 12:15, 16:15, 17:15 | → ← | 5:00, 5:30, 12:15, 14:45 | Zarcero | ![]() |
![]() |
San Jose | every 30 min 5:00-19:30 | → ← | every 30 min 5:00-17:35 | Zarcero | ![]() |
![]() |
Santa Cruz | 12:30 | → ← | 5:00 | Ostional | ![]() |
![]() |
Santa Cruz | 5:00, 10:00, 14:30, 17:30 | → ← | 6:00, 9:00, 12:30, 16:30 | Playa Junquillal | ![]() |
![]() |
Santa Cruz | 4:00, 6:00, 9:00, 11:00, 12:00, 14:00, 14:30, 16:00, 17:00, 19:00 | → ← | 6:00, 8:00, 11:00, 14:00, 16:00, 17:00, 19:00, 22:00 | Playa Potrero | ![]() |
![]() |
Santa Cruz | 5:30, 9:00, 10:30, 13:30, 15:3017:00 | → ← | 6:00, 8:30, 12:00 | Tamarindo | ![]() |
![]() |
Santa Elena | 6:00 | → ← | 2:15 | Puntarenas | ![]() |
![]() |
Santa Elena | 7:00 | → ← | 12:30 | Tilaran | ![]() |
![]() |
Tilaran | 12:00 | → ← | 8:00 | Guatuso | ![]() |
![]() |
Tilaran | 12:30 | → ← | 7:00 | Santa Elena | ![]() |
![]() |
Turrialba | 11:15, 15:10, 17:20 | → ← | 5:15, 7:00, 12:30, 16:00, | Guayabo | ![]() |
![]() |
Turrialba | every hour 5:30-18:30 | → ← | every hour 5:30-18:30 | Siquirres | ![]() |
![]() |
Upala | 11:00, 15:00 | → ← | 6:30, 13:00, 15:00 | Cano Negro | ![]() |
Complete, Current Costa Rica Bus Schedule With Online Ticketing
Sorry, there is no such thing. At least we saved you time hunting around for it.
It seems incomprehensible in the modern age that such basic information is unavailable but we’ve been watching for twenty years and would have noticed if it came along. We maintain the limited list above in a limited fashion because it’s a lot of work and we do it for free. I’d be more than happy to just provide a link to a current full schedule instead of trying to keep up with even the few we list.
Several small companies have tried over the years to do something to drag the Costa Rican bus system into at least the 20th century if not the 21st but none have succeeded.
How Can You Get Bus Schedules and Tickets?
The only reliable methods are in person or on the phone from the individual bus companies that serve the routes (and most won’t do reservations on the phone you have to go to the station and buy tickets).
The above schedule should cover most tourist destinations but if you’re headed off the beaten path there is an accurate comprehensive list of every current bus route in service in Costa Rica and the company that operates it. We download the data from the government licensing agency Autoridad Reguladora de los Servicios Públicos (ARESEP), filter out about 30,000 lines and 20 columns of regulatory crap to come up with the list of routes and operators.
Search for the destinations you want then give them a call for current schedule information.
Other Costa Rica Bus Schedule Options
Costa Rica by Bus – Online
There’s an active community on the Facebook Costa Rica by Bus page complimented by an informative website. The author of both, Rob Evans, is working on a map and routing app based on data from the government licensing agency Autoridad Reguladora de los Servicios Públicos (ARESEP) that we use for our bus route list.
Costa Rica by Bus – the book
In 2011 John Wood wrote Costa Rica by Bus: The Insider’s Guide to Budget Travel which included a comprehensive, current printed bus schedule but it has not been updated.
Moovit
A crowd sourced map routing and scheduling app “Moovit: Your Local Transit App” became available for phones on Google Play or the Apple store in 2016. By the end of 2018 it’s actually becoming useful as the database expands. It’s free.
A Safe Passage
Since 1999 there has been a company called “A Safe Passage” that will buy bus tickets for you (you pay them via PayPal online) on limited routes. It’s a bit pricy by backpacker’s standards, but not quite as much as a tourist shuttle bus all the way to your destination. For example from SJO to Arenal
- Do It Yourself – Airport > Alajuela Radial Station taxi $3.85 or public bus $1.05, Alajuela Radial Station > La Fortuna public bus $4.86 GRAND TOTAL = $5.91 to $8.71 per person
- A Safe Passage – $45 per person (or $70 for two)
- Chauffeured Van – Pickup and drop-off at your hotel in Arenal or within 15km radius – from $55 to $105 per person depending on how many people and whether you want private service (only your party in van) or if you are willing to share.
TheBusSchedule.com
The most comprehensive routing program that I know of is available at thebusschedule.com The website is very unreliable but sometimes the mobile version functions when the standard version is down. m.thebusschedule.com
You can use the mobile version on a desktop or laptop (it’s not an app it’s just a skinny website) but it’s not as convenient as the standard site.
They do not sell tickets – they just provide info and monetize the site with advertising.
They have done a great job linking different routes together so you can search La Fortuna to Santa Teresa and find all four buses that you need to take, but call the bus line to confirm scheduling – there are dozens of errors in their database for times, prices and locations of the stations.
Bus Station Locations
Because every bus route is operated by a different company the stations are spread all over downtown San José and other cities.
It’s a bit of a pain if you know in advance and have to schlep your backpack fifteen blocks across town to make your connection but it’s a real pain if you miss your connection because you’re sitting in the wrong station.
This map shows the main stations in San Jose and others across the country.
Tips For Public Bus Travel
- Advance reservations are strongly recommended around Christmas, Easter and if your departure or destination city is celebrating a local festival or fiesta.
- Advance reservations are a huge pain and probably not worth the effort at other times. Typically there is no way to make reservations online or by phone. It can only be done in person. There are a few webpages out there that advertise advance reservations for “bus tickets” but they are all selling tourist shuttle services ranging from $30-140 per ride. There’s nothing wrong with shuttles but public buses cost 10 times less.
- Especially in San José the station you arrive at may not be the station you depart from when trying to make a connection. They may be miles apart. Check in advance.
- When trying to make connections it’s worth mentioning where you’re ultimately headed to the driver of the bus you start out on. They may be able to drop you closer to your connection than their terminal and at the very least they’ll probably at least point you in the right direction if they can’t get you closer.
- Buses and stations are prime targets for pickpockets, snatch and runs, and thieves in general. I know at least a dozen people ranging from unaware novice travelers to Ticos who ride buses every week who’ve been victimized. Do not put anything under your seat or in the overhead racks. Keep your valuables in a bag in your lap. Keep an eye on the baggage compartment at stops to make sure your backpack is not “accidentally” unloaded at the wrong stop.
- Your surf board, bicycle or trekking pole may be broken by a 100 kilo crate of casava being dropped on them in the luggage compartment unless you tip the porters.