Bakso Soup brings the heart of Indonesian street food into your kitchen with its deeply savory broth, springy beef meatballs, and a riot of toppings and condiments. Served steaming hot, each bowl is a fusion of textures and flavors—from the peppery,

Ingredients Breakdown
The base of this soup is all about depth. Beef bones, when blanched and slowly simmered, give the broth its body and gentle cloudiness. Garlic, celery stalks, and freshly crushed nutmeg enhance the aroma, while white pepper adds that essential sharp warmth without being overwhelming.
For the meatballs, a blend of coarsely chopped beef, fried garlic, and tapioca flour gives them that signature bakso chewiness. Tapioca doesn’t just bind—it gives bounce. A touch of cold water and a single egg smooths the mixture, creating meatballs that are tender but resilient, never crumbly.
Sambal adds complexity and contrast. Boiled bird’s eye chilies, garlic, and sugar form the base. Blended until smooth and seasoned to taste, this chili paste offers heat with a touch of sweetness—perfect for diners who like to dial up the flavor.
Then come the toppings: rice noodles as the starchy base, pak choy for a crisp vegetal bite, and an assortment of sauces—sweet soy, tomato ketchup, light soy, vinegar, and Sriracha—to customize every bowl. Crispy shallots and chopped celery leaves add a final burst of aroma and crunch.
Step-by-Step Preparation Guide
Begin by blanching the beef bones to eliminate scum and ensure a clear broth. Boil them briefly, then discard the water and rinse the bones clean. This initial step creates a smoother, cleaner soup in the end.
Return the bones to the pot with garlic, celery, nutmeg, salt, and pepper. Pour in fresh water and bring it to a gentle boil. Reduce the heat, cover, and simmer for two to three hours. The result is a broth that’s rich, fragrant, and infused with deep beefy flavor and spice. Strain and set aside.
While the stock simmers, prepare the sambal. Boil chilies, garlic, and sugar for a few minutes until soft, then blend with a splash of reserved cooking liquid until smooth. Adjust the salt to your liking. The sambal should be vibrant, punchy, and spoonable.
For the meatballs, sauté chopped garlic until golden, then pulse it in a food processor with beef and white pepper until fine. Add an egg, tapioca flour, and water, then continue processing until the mixture becomes sticky and uniform.
To shape, squeeze a portion of the mixture through your thumb and forefinger to form smooth grape-sized balls. Drop them into gently simmering water and cook until they float, then test one for doneness. Transfer the meatballs to the finished broth and simmer again, letting them absorb the aromatic depth.
Cook the noodles as instructed, then rinse in cold water to prevent sticking. Blanch the pak choy in the simmering broth for less than a minute until vibrant and tender.
To assemble, layer noodles in bowls, add pak choy and several meatballs, then ladle over hot broth. Finish each bowl with a dash of vinegar, tomato ketchup, sweet soy sauce, light soy, and Sriracha. Top with crispy shallots and fresh celery leaves. Serve immediately with sambal on the side.

Recipe Tips
How to achieve bouncy, smooth-textured meatballs:
Use tapioca flour and blend the meat until very fine; form tightly packed balls with wet hands for a smooth shape.
Controlling broth clarity and seasoning levels:
Blanch bones first, and season broth gradually, tasting throughout simmering.
Adjusting sambal heat depending on chili variety:
Use fewer bird’s eye chilies or blend with larger, milder chilies for a more balanced heat.
Layering condiments for maximum umami in every bite:
Start with a base of soy sauce and ketchup, then finish with sweet soy and Sriracha for sweet heat contrast.
What to Serve With This Recipe
Bakso soup pairs beautifully with iced sweet tea or tangy tamarind juice to balance the spices. For texture, try fried tofu, crispy tempeh, or shrimp crackers on the side.
During gatherings, create a DIY bakso station with meatballs, noodles, toppings, and sambal served buffet-style. Let everyone customize their own bowls—it’s festive, interactive, and delicious.
Creative Variations
Mix in vermicelli or egg noodles alongside the rice noodles for an extra layer of bite. Swap pak choy with tender spinach or crisp choy sum depending on the season or availability.
For a different protein, try making the meatballs with chicken or shrimp paste, or even tofu blended with mushrooms for a vegetarian twist. Each variation brings its own texture and flavor while keeping the soul of the dish intact.
Frequently Asked Questions
Can I make the broth in advance and freeze it?
Yes. The broth freezes well for up to 3 months. Defrost and reheat gently before using.
What’s a good substitute for tapioca flour in the meatballs?
Cornstarch or potato starch can work in a pinch, but tapioca gives the most authentic texture.
How spicy is the sambal, and can I make it milder?
It’s quite hot with bird’s eye chilies. Use fewer or blend in roasted red bell peppers to mellow it.
Can I bake the meatballs instead of boiling them?
Boiling gives bakso its signature texture. Baking will change the structure and make them drier.
What noodles work best if I can’t find rice noodles?
Glass noodles or thin egg noodles are good alternatives, but be sure to adjust cooking time accordingly.
Bakso soup is more than just a meal—it’s a flavor-packed experience layered with warmth, spice, and texture. From the rich broth to the springy meatballs and vibrant toppings, every spoonful delivers comfort and character.
Perfect for chilly days, family feasts, or whenever you crave a bowl of bold, savory satisfaction, this Indonesian favorite is sure to become a staple at your table.

Ingredients
For the Beef Stock:
2 kg (4.8 lb) beef bones, trimmed of excess fat
3 celery stalks
8 garlic cloves, coarsely chopped
2 whole nutmeg, roughly crushed using a mortar and pestle
1 tbsp sea salt
1 tbsp ground white pepper
For the Sambal:
2–3 red bird’s eye chilies
1 large red chili
1 garlic clove
1 tbsp sugar
Salt, to taste
For the Meatballs:
500 g (1.2 lb) beef topside, trimmed and coarsely chopped
8 garlic cloves, finely chopped
2 tbsp sunflower oil
1 tsp ground white pepper
1 egg
200 g (7 oz / 1½ cups) tapioca flour
50 ml (¼ cup) cold water
For the Noodles and Condiments:
300 g (10½ oz) fresh or dried rice noodles
4 large pak choy, halved and cut into 1 cm (½ in) pieces
2 tsp rice vinegar or apple cider vinegar
4 tbsp tomato ketchup
4 tbsp sweet soy sauce
4 tsp light soy sauce
4 tsp Sriracha
4 tbsp crispy shallots
2 tbsp chopped celery leaves
Instructions
To prepare the broth, place beef bones in a stockpot with 2 liters (2 quarts) of water. Bring to a boil, then discard the water and rinse the bones to remove impurities—this ensures a clear, clean-tasting broth.
Return the cleaned bones to the pot and add garlic, celery, nutmeg, salt, and white pepper. Pour in another 2 liters of fresh water and bring to a boil again. Lower the heat to medium-low, cover the pot, and let it simmer gently for 2 to 3 hours. Once done, strain the broth into a separate saucepan and set aside.
To make the sambal, bring a small saucepan of water to a boil. Add the chilies, garlic, and sugar, and boil for 6 to 8 minutes until the ingredients have softened. Reserve 4 tablespoons of the boiling liquid, then drain the rest. Transfer the mixture to a blender and puree until smooth, adding reserved water as needed to reach your preferred consistency. Season with salt to taste.
For the meatballs, start by heating the sunflower oil in a small skillet over medium heat. Sauté the chopped garlic for 1 to 2 minutes until golden and fragrant, then set aside to cool.
In a food processor, combine the cooled garlic, beef, and ground white pepper. Process until finely minced. Add the egg, tapioca flour, and cold water, and continue blending until the mixture becomes smooth and paste-like.
Fill a medium saucepan halfway with water and bring it to a gentle simmer. To shape the meatballs, take a small portion of the meat mixture in one hand and gently squeeze it through your thumb and forefinger, forming a round ball roughly the size of a large grape. Scoop the ball using your other hand or a spoon, and drop it into the simmering water. Repeat until all the mixture is used. Cook the meatballs for 6 to 7 minutes, or until they float to the surface. Test one by slicing it in half to ensure it’s fully cooked inside.
Transfer the cooked meatballs to the prepared broth, bring it to a gentle boil, then reduce to medium-low and simmer for another 10 minutes to allow the flavors to meld.
Prepare the noodles according to the package instructions. Once cooked, drain and transfer to a bowl of cold water to stop the cooking process. Drain again and set aside.
Add the chopped pak choy to the simmering broth and cook for about 45 seconds, just until tender but still vibrant. Remove using a slotted spoon and set aside.
To assemble, divide the noodles between serving bowls. Add a portion of pak choy and top with 3 to 4 beef meatballs. Ladle in a few generous spoonfuls of hot broth.
Finish each bowl with a dash of rice vinegar, tomato sauce, sweet soy sauce, light soy sauce, and a swirl of Sriracha. Garnish with crispy shallots and chopped celery leaves. Serve immediately, accompanied by the sambal for added heat and depth.

Bakso Soup Recipe
Ingredients
For the Beef Stock:
- 2 kg 4.8 lb beef bones, trimmed of excess fat
- 3 celery stalks
- 8 garlic cloves coarsely chopped
- 2 whole nutmeg roughly crushed using a mortar and pestle
- 1 tbsp sea salt
- 1 tbsp ground white pepper
For the Sambal:
- 2 –3 red bird’s eye chilies
- 1 large red chili
- 1 garlic clove
- 1 tbsp sugar
- Salt to taste
For the Meatballs:
- 500 g 1.2 lb beef topside, trimmed and coarsely chopped
- 8 garlic cloves finely chopped
- 2 tbsp sunflower oil
- 1 tsp ground white pepper
- 1 egg
- 200 g 7 oz / 1½ cups tapioca flour
- 50 ml ¼ cup cold water
For the Noodles and Condiments:
- 300 g 10½ oz fresh or dried rice noodles
- 4 large pak choy halved and cut into 1 cm (½ in) pieces
- 2 tsp rice vinegar or apple cider vinegar
- 4 tbsp tomato ketchup
- 4 tbsp sweet soy sauce
- 4 tsp light soy sauce
- 4 tsp Sriracha
- 4 tbsp crispy shallots
- 2 tbsp chopped celery leaves
Instructions
- To prepare the broth, place beef bones in a stockpot with 2 liters (2 quarts) of water. Bring to a boil, then discard the water and rinse the bones to remove impurities—this ensures a clear, clean-tasting broth.
- Return the cleaned bones to the pot and add garlic, celery, nutmeg, salt, and white pepper. Pour in another 2 liters of fresh water and bring to a boil again. Lower the heat to medium-low, cover the pot, and let it simmer gently for 2 to 3 hours. Once done, strain the broth into a separate saucepan and set aside.
- To make the sambal, bring a small saucepan of water to a boil. Add the chilies, garlic, and sugar, and boil for 6 to 8 minutes until the ingredients have softened. Reserve 4 tablespoons of the boiling liquid, then drain the rest. Transfer the mixture to a blender and puree until smooth, adding reserved water as needed to reach your preferred consistency. Season with salt to taste.
- For the meatballs, start by heating the sunflower oil in a small skillet over medium heat. Sauté the chopped garlic for 1 to 2 minutes until golden and fragrant, then set aside to cool.
- In a food processor, combine the cooled garlic, beef, and ground white pepper. Process until finely minced. Add the egg, tapioca flour, and cold water, and continue blending until the mixture becomes smooth and paste-like.
- Fill a medium saucepan halfway with water and bring it to a gentle simmer. To shape the meatballs, take a small portion of the meat mixture in one hand and gently squeeze it through your thumb and forefinger, forming a round ball roughly the size of a large grape. Scoop the ball using your other hand or a spoon, and drop it into the simmering water. Repeat until all the mixture is used. Cook the meatballs for 6 to 7 minutes, or until they float to the surface. Test one by slicing it in half to ensure it’s fully cooked inside.
- Transfer the cooked meatballs to the prepared broth, bring it to a gentle boil, then reduce to medium-low and simmer for another 10 minutes to allow the flavors to meld.
- Prepare the noodles according to the package instructions. Once cooked, drain and transfer to a bowl of cold water to stop the cooking process. Drain again and set aside.
- Add the chopped pak choy to the simmering broth and cook for about 45 seconds, just until tender but still vibrant. Remove using a slotted spoon and set aside.
- To assemble, divide the noodles between serving bowls. Add a portion of pak choy and top with 3 to 4 beef meatballs. Ladle in a few generous spoonfuls of hot broth.
- Finish each bowl with a dash of rice vinegar, tomato sauce, sweet soy sauce, light soy sauce, and a swirl of Sriracha. Garnish with crispy shallots and chopped celery leaves. Serve immediately, accompanied by the sambal for added heat and depth.