If you’re planning a multi-country trip in the Balkans, you likely have quite a few cities planned on your Balkan itinerary. One of the most common cities to connect with Sofia on an inter-Balkan trip is Skopje, as the cities are less than 250 kilometers apart by bus or car.
One of the most common gripes about Balkan buses is that often there is no centralized place to look for information. Rome2Rio is pretty good but by no means comprehensive. Balkanviator can occasionally fill in the gaps. Certain sites, like busticket4.me, are great in some countries like Montenegro but crappy in others.
And then there are countries like Albania, which often don’t even have a bus station but rather an informal network of vans that get you everywhere you need to go, once you figure out where to catch them.
It is hard to know what routes are available and what times until you physically show up at the station. And even then, because each bus is run by a different private company, it is not always easy to know the best way to get there, especially if you do not read Cyrillic.
That’s why even though it may seem silly to do these write-ups on how to take a bus between different Balkan countries, every time we do it we write about it so that we can pass on what we know and eventually create a comprehensive source for bus travel in the Balkans.
How to Get from Sofia to Skopje by Bus
Luckily, this route is well-served by a few different bus companies. The bus company I went on the way there was Matpu, and you can find their website here. It is only in Bulgarian, which I read well enough to tell a timetable, but you can also plug it in through Google Translate if you need more information. My ticket cost 30 leva (15 euros) with Matpu. Apparently, there is also a 2 leva discount if you are a student.
On the way back, I wanted to take an overnight bus, so I went with Makedonia Soobrakaj, and the website can be found here. Note that my overnight bus wasn’t really a bus, but rather a very comfortable Mercedes Sprinter (or something similar, I suck at knowing what cars are what). Tickets with Makedonia Soobrakaj on the way back cost 990 denars / 16 euros / 32 leva, so not a big difference.
From Bulgaria to Macedonia, I bought the ticket a day or two in advance during the peak season (September) as I was close to the bus station and it was an easy errand for me to run. I needed to leave on that exact day or risk overstaying my visa so it was worth it to me to buy the ticket in advance. However, you likely won’t need to, as our bus was maybe 70% full leaving at 4 PM.
On Matpu, there are three departures a day: at 9:30 AM, 4 PM, and 7 PM. The bus takes about 5 hours, but you go back in time 1 hour when you cross the border from Bulgaria to Macedonia. So, for example, our 4 PM bus got in around 8 PM. We were pretty much right on time. You can buy your ticket at Serdika bus station, not the main central bus station. They are only 2 minutes walk apart so it is not a big deal if you go to the wrong one.
According to their website, Makedonia Soobrakaj has departures at 7 AM, 5:30 PM, and midnight. Apparently, there is also a third option, Kaleia, but I have not taken this one.You can find the English-language website here. However, the arrival and departure times are exactly the same as Makedonia Soobrakaj so I think it may just be a Bulgarian branch of the same company. You can find them in both the central bus station at desk #10 or at the Serdika bus station at office #104.
From Sofia to the Macedonian border
On a scale of 1-10 for Balkan buses, Matpu is a solid 5. It’s pretty bare bones and cramped. It’s no Albanian furgon, but it’s definitely not a Florentia bus.
The seats are all awkwardly reclined and hard to get comfortable in and you definitely won’t find any USB chargers or bathrooms on board. Still, it’s cheapish and does the trick.
We stopped about 30 minutes from the border with Skopje for a bathroom break, about 2 hours into our journey. The bathroom was clean enough and cost 1 leva to use, about 50 cents in euros. You could buy subpar coffee for about 2 leva, but I don’t recommend it. What I do recommend, however, is befriending the adorable and ultra-friendy stray dogs and cats who call this station home.
Crossing the Border from Sofia to Skopje
Strangely, as we reached the checkpoint for the border, we almost got in big trouble by the bus company for not being able to find our bus tickets. I had absentmindedly put them in a random pocket of my backpack after we had shown them and boarded and it took me a few minutes to find them.
The bus driver was acting extremely dramatic about this, acting as if we weren’t going to be allowed to cross the border without them, which is definitely not true of any other bus company I’ve ever taken anywhere in the Balkans, ever. It was kind of annoying as I was getting really anxious that they’d kick us off the bus, but ultimately I ended up finding the bus tickets.
After this debacle, we reached the Bulgaria-Macedonia border had to disembark the bus. There was a confusing moment where it seemed like we had to get all of our bags from underneath the bus and bring them with us. However, once we all got them, they motioned for us to put it back. It seems like maybe they were just ensuring everyone was claiming a bag, but I have no idea what was the purpose. Be sure to have a jacket handy as the border between Bulgaria and Macedonia is in the mountains and it is cooold.
We then got back on the bus, and the border agent came on board to collect our passports, took them to stamp, and then came back on board. We repeated the same process on the Macedonian side. The border crossing process was a bit slow on both sides, taking about 45 minutes or an hour to complete.
Arriving in Skopje
The rest of the bus ride was pretty uneventful, luckily. We made a quick stop in Kumanovo when we were about an hour away from Skopje, which took all of a few minutes.
We arrived on time, perhaps a few minutes late or early – I was a little confused by the time change, as I hadn’t realized we went back one hour.
Be careful at the Macedonian bus station when choosing your taxi. We ignored the pushiest taxi drivers who approached us and found a taxi on the street waiting nearby. We asked him how much to our destination and he said 200 denars, which seemed fair enough (it was about $3.50 USD).
We knew we were paying a little extra, but we were just glad that he wasn’t trying to take us for fools. Later on, I’d take a bus from my Airbnb to the bus station and pay around 130 denars, so that wasn’t that much of a bad deal with the added bonus of not having to worry about a rigged meter or being quoted a ridiculous price at the end.
All in all, about 5 hours and 15 euros to go to Skopje – not bad!