Bakso (Bakso) — Indonesian Beef Meatball Soup
Bakso is Indonesia’s beloved beef meatball soup, sold from carts, warung stalls, and home kitchens. Springy meatballs, clear beef broth, noodles, greens, fried shallots, sambal, and kecap manis make it deeply comforting.

Printable Recipe Card
Servings: 6 · Total: 160 min · Difficulty: medium
Ingredients (quick list)
- 1 kg beef shin bones
- 2.5 l water
- 5 clove garlic (crushed)
- 4 large shallots (peeled and halved)
- 3 scallions (white and green parts)
- 20 g celery leaves
- 12 g fine sea salt
- 2 g ground white pepper
- 5 g granulated sugar
- 500 g lean beef chuck (very cold, trimmed and diced)
- 75 g tapioca starch
- 120 ml ice water
+ 8 more in the full ingredients section below.
Steps (summary)
- Put the beef bones and water in a large stockpot and bring them slowly to a gentle boil over medium heat. Skim the foam from th…
- Add the garlic, shallots, scallions, celery leaves, salt, white pepper, and sugar to the pot. Simmer uncovered over low heat fo…
- Strain the broth through a fine sieve into a clean pot and discard the bones and aromatics. Keep the broth hot at 80 to 85°C wh…
- Place the cold diced beef, salt, white pepper, sugar, garlic, and fried shallots in a food processor. Process for 60 seconds, t…
- Wet your hands with cold water and divide the meat mixture into 30 portions of about 25 g each. Roll each portion into a smooth…
- Poach the meatballs for 12 minutes at 80 to 85°C until they float and feel springy when pressed with a spoon. Do not let the br…
+ 2 more steps in the full instructions section below.
Cultural Background
Bakso is one of Indonesia’s most recognizable street foods, served from pushcarts, market stalls, and family kitchens. Its Chinese-influenced meatball technique became distinctly Indonesian through beef broth, sambal, kecap manis, and fried shallots.
Equipment
💡 Tips
- Keep the beef very cold before processing; cold meat and ice water help create the signature bouncy bakso texture.
- Use tapioca starch rather than wheat flour for a springy bite and a clearer broth.
- Poach at a bare simmer instead of a boil so the meatballs stay round, smooth, and tender.
⚠️ Common Mistakes
❌ Processing warm beef
✅ Fix: Chill the beef, bowl, and blade before mixing so the fat stays firm and the meat paste becomes elastic.
❌ Boiling the meatballs aggressively
✅ Fix: Hold the broth at 80 to 85°C so the bakso set smoothly without splitting.
❌ Cooking noodles directly in the serving broth
✅ Fix: Cook noodles separately so excess starch does not cloud the clear beef broth.
🧊 How to Store
Store broth, meatballs, noodles, and garnishes separately in airtight containers. Refrigerate broth and meatballs for up to 3 days or freeze for 2 months; reheat gently below a hard boil and cook fresh noodles for serving.
📅 Make Ahead
Prepare the broth and shaped meatballs 1 day ahead, then refrigerate them together after cooling. Cook noodles, blanch greens, and add fried garnishes just before serving.
🍽️ Pairs Well With
- Kecap manis
- sambal oelek
- lime wedges
- fried shallots
- celery leaves
- krupuk.
Regional Variations
- Bakso Malang often includes fried wontons, tofu, and several meatball shapes in the same bowl.
- Bakso Solo is typically served with clear broth, noodles, greens, and a clean beef-forward flavor.
- Bakso urat includes chopped beef tendon or sinew for a coarser, chewier meatball.
Ingredients
- 1 kgbeef shin bones
- 2.5 lwater
- 5 clovegarlic (crushed)
- 4large shallots (peeled and halved)
- 3scallions (white and green parts)
- 20 gcelery leaves
- 12 gfine sea salt
- 2 gground white pepper
- 5 ggranulated sugar
- 500 glean beef chuck (very cold, trimmed and diced)
- 75 gtapioca starch
- 120 mlice water
- 20 gfried shallots
- 4 gbaking powder
- 200 gdried egg noodles
- 100 gdried rice vermicelli
- 200 gchoy sum (cut into 5 cm lengths)
- 60 mlkecap manis
- 40 gsambal oelek
- 2limes (cut into wedges)
🔄 Substitutions
- lean beef chuck→ boneless chicken thigh meat
- tapioca starch→ potato starch
- dried egg noodles→ additional rice vermicelli
Instructions
- 1
Put the beef bones and water in a large stockpot and bring them slowly to a gentle boil over medium heat. Skim the foam from the surface for 20 minutes so the broth stays clear rather than cloudy.
- 2
Add the garlic, shallots, scallions, celery leaves, salt, white pepper, and sugar to the pot. Simmer uncovered over low heat for 90 minutes, keeping the liquid at a quiet bubble and reducing it to roughly 1.8 liters.
- 3
Strain the broth through a fine sieve into a clean pot and discard the bones and aromatics. Keep the broth hot at 80 to 85°C while you prepare the meatballs, because boiling too hard can make bakso tough.
- 4
Place the cold diced beef, salt, white pepper, sugar, garlic, and fried shallots in a food processor. Process for 60 seconds, then add the tapioca starch, baking powder, and ice water and process for another 90 seconds until the paste is sticky, smooth, and elastic.
- 5
Wet your hands with cold water and divide the meat mixture into 30 portions of about 25 g each. Roll each portion into a smooth ball, then drop it directly into the hot broth so the surface sets gently.
- 6
Poach the meatballs for 12 minutes at 80 to 85°C until they float and feel springy when pressed with a spoon. Do not let the broth boil rapidly, because a rolling boil can break the meatballs and roughen their texture.
- 7
Cook the egg noodles and rice vermicelli separately according to their package timings, then drain them well. Blanch the choy sum in boiling water for 60 seconds, then divide the noodles, greens, meatballs, and hot broth among 6 bowls.
- 8
Finish each bowl with fried shallots, celery leaves, and sliced scallions. Serve the kecap manis, sambal oelek, and lime wedges alongside so each diner can season the soup in the Indonesian street-stall style.
🪪 Recipe Passport
Cultural Background
Bakso is one of Indonesia’s most recognizable street foods, served from pushcarts, market stalls, and family kitchens. Its Chinese-influenced meatball technique became distinctly Indonesian through beef broth, sambal, kecap manis, and fried shallots.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
📚 Sources & Cultural References
- Sri Owen — Indonesian Food — (2008)
- William W. Wongso — Flavors of Indonesia: William Wongso's Culinary Wonders — (2016)
Sources cited by the Zaffaron editorial team during recipe research. Cultural and culinary references supporting authenticity claims.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Chicken Satay (Sate Ayam) — Indonesian Skewers with Peanut Sauce
Indonesian · Kebabs · 55 min

Gado-Gado (Gado-Gado) — Indonesian Salad with Peanut Sauce
Indonesian · Salads · 60 min

Indonesian Turmeric Chicken Soup (Soto Ayam) — Fragrant Shredded Chicken Broth
Indonesian · Soups · 100 min

Vietnamese Sour Fish Soup (Canh Chua Cá) — Tamarind-Scented Mekong Soup
Vietnamese · Soups · 45 min

Hue-Style Spicy Beef Noodle Soup (Bún Bò Huế) — Lemongrass Beef and Pork Rice Noodle Soup
Vietnamese · Soups · 260 min

Thai Pad See Ew (ผัดซีอิ๊ว) — Charred Wide Rice Noodles with Pork and Chinese Broccoli
Thai · Main Courses · 30 min

Malaysian Coconut Rice (Nasi Lemak) — Banana-Leaf Breakfast with Sambal Ikan Bilis
Malaysian · Rice Dishes · 95 min

Indonesian Beef Rendang (Rendang Daging) — Slow-Cooked Minangkabau Coconut Beef
Indonesian · Stews · 245 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.