Supa Topcheta, or Bulgarian Meatball Soup, is a favorite traditional Bulgarian dish and comfort food at its best.
The hearty soup is filled with vegetables and meatballs made with a combination of pork and beef. There are many variations of the recipe, some using rice, different vegetables such as tomatoes or chicken instead of beef stock.
The important step is the last one. Supa Topcheta is thickened with egg yolks and Greek yogurt spiked with fresh lemon juice.
The resulting soup is creamy without being overly heavy. Serve with extra yogurt and lemon on the side, and of course with a loaf of crusty bread.
Pin or bookmark the recipe for later!
Additional soup recipes you might enjoy!
Bulgarian Meatball Soup - Supa Topcheta

Supa Topcheta - Bulgarian meatball soup with potatoes and vegetables in a beef broth thickened with creamy Greek yogurt.
Ingredients
- 1/2 lb (.23 kg) Ground Beef
- 1/2 lb (.23 kg) Ground Pork
- 1 Egg
- 1 Teaspoon (2.3 g)Sweet Paprika
- 4 Cloves Garlic, minced
- 1 Large Onion, diced
- 4 Tablespoons (31 g) All Purpose Flour
- 4 Tablespoons (60 ml) Olive Oil
- 2 Stalks Celery, diced
- 2 Carrots; diced
- 2 Medium Potatoes, peeled and cut into 1 inch cubes
- 4 Cups Beef Broth*
- 4 Cups (1.89 L) Water
- 3/4 Cup (184 g) Greek Yogurt
- 2 Egg Yolks
- Juice 1/2 Lemon
- Fresh Minced Parsley as a garnish
- Salt and Pepper to Taste
Instructions
- Mince 1/2 of the garlic, 1/4 of the onion and 1/2 of the parsley.
- Add them into a bowl and combine with the ground pork and beef, sweet paprika and the whole egg.
- Add the flour to a plate. Form the meat mixture into small bite-sized balls. Dredge each one through the flour so that they are completely coated
- Add the meatballs in small batches to a frying pan over medium heat.
- Brown them one each side but do not cook all the way through. Set aside
- Add 2 tablespoons (30 ml) of olive oil to a stock pot. Add the onion and saute for 5 minutes.
- Add the garlic, carrots and celery and continue cooking for 5 minutes.
- Add the water and bouillon cubes and bring the pot to a boil. Reduce to a simmer and cook for 15 minutes.
- Add the meatballs and potatoes and raise the temperature back up to a light boil. Continue to cook for about 15 minutes, until the potatoes are cooked through.
- Take the soup off the heat and allow to cool for 15 minutes.
- Combine the yogurt, lemon juice and egg yolks in a small bowl.
- Remove about 1/2 cup (118 ml) of the soup broth and slowly add to the yogurt mixture. Then combine with another cup of the broth.
- Add the yogurt mixture to the soup in a slow stream while stirring the soup. This will allow the yogurt to be combined with the hot soup without breaking.
- Garnish with parsley and serve with crusty bread.
Notes
*Beef broth can be substituted for 4 cups of water and 2 beef bouillon cubs
Anastasia Hafich
Monday 7th of March 2022
About to make this for the first time. I lived with a Bulgarian family when I was in my teens and this was one of my favorite things they made. I hope I can do justice to how I remember it
Bella
Sunday 5th of December 2021
Wow! My grandma always made this when I came over and it tastes identical… it really made my day to be able to taste it again
Jen
Monday 6th of December 2021
So happy you enjoyed the recipe!
Our Bulgarian cuisine night – Cuisine Night
Monday 8th of March 2021
[…] Supa topcheta […]
Our Bulgarian cuisine night – Over the Teacups
Sunday 21st of June 2020
[…] Supa topcheta […]
Natalia
Monday 15th of October 2018
I’m on a whole30 diet (no grain, no alcohol, no legumes, no dairy and no refined sugar for 30 days. Do you know if I used almond flour instead of regular flour, would that work for the meatballs?
Thank you!
Jen
Monday 15th of October 2018
Hi Natalia! I´m not familiar with almond flour. I would omit the flour for the meatballs and use an extra potato. When the potato is cooked through, removed a few pieces and mash them and add them back to the soup. That would provide a little additional thickening. Jen