Bakso Soup Recipe: Crispy Meatballs Floating in Rich, Spiced Broth

Soups & Stews

Bakso Soup Recipe: Crispy Meatballs Floating in Rich, Spiced Broth

This bakso soup recipe delivers the perfect balance of crispy meatballs and aromatic broth that feels like a warm hug in a bowl. The secret lies in the meatballs—made with minced meat, cornstarch for that signature crunch, and a blend of spices that infuse every bite with savory depth. I’ve perfected this version after years of testing, ensuring the broth stays rich and the meatballs achieve that irresistible texture.

The broth is where the magic happens—simmered with ginger, garlic, and lemongrass for layers of flavor, then finished with a touch of coconut milk for creaminess. The meatballs cook twice: first in hot oil to lock in crispiness, then gently poached in the broth to soak up the aromatic spices. This dual-cooking method guarantees that crispy exterior and tender interior that makes bakso irresistible.

By the time you’re done, you’ll have a steaming bowl of soup where golden-brown meatballs float in a fragrant, spiced broth. The aroma alone will have everyone gathering around the table, and the first bite delivers that perfect contrast of textures and flavors. Serve with lime wedges and fresh herbs for brightness, and you’ve got a restaurant-quality dish that’s easier to make at home.

This recipe is designed to be both authentic and approachable, so even if you’re new to Indonesian cooking, you’ll achieve professional results. The ingredients are simple, the technique is straightforward, and the reward is a bowl of comfort food that’s hard to resist. Let’s get cooking!

👨‍🍳
Difficulty
Medium
🥩
Diet
Meat
🔥
Calories
Med Cal

Ingredients for bakso soup

Simple ingredients that transform into restaurant-quality bakso soup with crispy meatballs.

Ingredient Amount Notes
Ground Beef 🥩 1 ½ lb 80% lean for best texture
Cornstarch 🌾 ½ cup For crispy meatball exterior
Large Eggs 🥚 2 whole Room temperature for mixing
Green Onions 🧅 ¼ cup Finely chopped, green parts only
Garlic Cloves 🧄 4 cloves Minced for meatballs and broth
Fresh Ginger 🌿 2 tbsp Finely grated, not powdered
Vegetable Oil 🫒 2 tbsp For frying meatballs
Chicken Broth 💧 6 cups Homemade or quality low-sodium
Coconut Milk 🥥 ½ cup Full-fat for creaminess
Lemongrass 🌿 1 whole Bruised, cut into 2-inch pieces
Salt 🧂 1 tsp Adjust to taste
White Pepper 🌶️ ½ tsp Freshly ground preferred
Soy Sauce 🍶 1 tbsp For umami depth
Lime Wedges 🍋 2 whole For serving
Fresh Cilantro 🌿 ¼ cup Chopped, for garnish

The ground beef is non-negotiable here—80% lean gives you that perfect balance of tenderness and texture. I grab mine from the butcher counter when possible, but the pre-packaged stuff works fine too. The cornstarch is what makes those meatballs crispy—don't skip it! For the lemongrass, Asian markets usually have the fresh stalks, but if you can't find them, frozen works in a pinch. Just make sure to bruise it well before adding to the broth.

No lemongrass? Extra ginger plus a splash of lime juice gets you close. Fresh cilantro is ideal for garnish, but dried oregano at half the amount works if you're in a bind. The coconut milk should be full-fat for that creamy texture—Trader Joe's or Thai Kitchen brands are my go-tos. For the broth, homemade is best, but Swanson or Pacific Foods low-sodium versions are solid shortcuts. The meatballs need to be rolled tightly—pack them in the fridge for 10 minutes before frying for cleaner shapes.

The meatballs keep their crispiness for about 3 days in the fridge, but the broth is best fresh. If you're making ahead, fry the meatballs first, store them separately, and reheat them in the broth when serving. The lime wedges should be added right before eating—they brighten everything up. This soup freezes beautifully too: just freeze the broth separately from the meatballs, then reheat and combine when ready to serve.

❤️

Why You'll Love This Recipe

  • No-Fuss Dumplings: I swear by the cornstarch trick—just mix it into the ground beef, and those little meatballs stay perfectly firm without falling apart. No special equipment, no stress, just roll and boil.
  • Garlic Bomb Flavor: Between us, the minced garlic cloves and green onions fried in the broth? That’s the magic. The aroma alone makes my kitchen smell like a street food stall, and the first bite delivers that crispy, savory punch.
  • Weeknight & Leftovers Win: I make a double batch on Sundays—one pot for dinner, another reheated for lunch. The meatballs reheat beautifully, and the broth only gets richer overnight. (Yes, even on a Tuesday night.)
  • Budget-Friendly Comfort: Ground beef and eggs stretch farther than you’d think, and the ingredients won’t break the bank. It’s the kind of meal where I can feed four people for under $10, and everyone leaves happy—no takeout needed.

Step-by-step instructions for crispy bakso soup

Here's how to make bakso with that perfect crunchy exterior and tender interior.

1

Prepare the Meatball Mixture

In a large mixing bowl, combine the 1.5 lb ground beef with the 0.5 cup cornstarch, 2 whole large eggs, 4 cloves minced garlic cloves, 2 tbsp finely grated fresh ginger, 1 tsp salt, and 0.5 tsp white pepper. I like to use my hands for this part—it helps bind everything together better than a spoon.

Mix gently until just combined, being careful not to overwork the meat. You want the mixture to hold together when shaped but not become dense. If it feels too sticky, add 1 tablespoon of the green onions to help absorb some moisture. The dough should be smooth and cohesive, ready for shaping into meatballs.

2

Form and Fry the Meatballs

Heat 2 tablespoons vegetable oil in a large skillet over medium-high heat until shimmering. While the oil heats, roll the meat mixture into 1-inch balls—about 16-18 meatballs depending on size. I press them gently but firmly to ensure they hold their shape during frying.

Carefully add the meatballs to the hot oil in batches so they don't crowd the pan. Fry for 3-4 minutes until they develop a golden brown crust all over. They should float to the surface when ready—this is your signal they're cooked through. Remove with a slotted spoon and drain on paper towels. Don't skip this step; the crispy exterior is what makes bakso special.

3

Simmer the Aromatic Broth

In a large pot, combine the 6 cups chicken broth, 1 whole lemongrass (bruised and cut), 1 tbsp soy sauce, and the remaining 0.25 cup chopped green onions. Bring to a gentle boil over medium-high heat, then reduce to a simmer. Let it cook for 5 minutes to infuse the flavors.

Here's where the magic happens: Add the 0.5 cup coconut milk and stir gently. The coconut milk will create a velvety texture in the broth. Keep the broth at a gentle simmer—not a rolling boil, or it'll break the milk. You want it to maintain a smooth, creamy consistency throughout the cooking process.

4

Assemble and Finish the Soup

Return the fried meatballs to the simmering broth and let them cook for 5-7 minutes. This step ensures they're fully heated through and absorb some of the rich broth flavors. Taste the broth and adjust seasoning with additional salt or soy sauce if needed—it should be flavorful but balanced.

Just before serving, squeeze the 2 whole lime wedges over the soup for a bright, tangy finish. Garnish each bowl with 0.25 cup chopped fresh cilantro for freshness. Serve immediately with steamed rice to soak up that delicious broth. The contrast of crispy meatballs against the creamy coconut broth is what makes this soup truly special.

👨‍🍳

Pro Tips For Making Bakso Soup

  • Chill the Meat Mix: I learned this the hard way—ground beef warms up fast, and warm dough sticks like glue. Pop your ground beef, cornstarch, and egg mixture in the fridge for 15 minutes before shaping. The cold dough holds together better when you drop it into boiling water, and your bakso won’t fall apart like sad little meat dumplings.
  • Minced Garlic, Not Chopped: I was skeptical until I tried it: finely mincing garlic (not just chopping) for the soup base makes a real difference. Use a knife or garlic press to get tiny, even pieces—they infuse flavor without leaving harsh, chewy bits. Trust me, your soup will taste deeper and more aromatic.
  • Boil in Small Batches: Crowding the pot is the fastest way to turn perfect bakso into mushy meatballs. Cook them in batches—no more than 6-8 at a time—so they float freely and cook evenly. Overfilling the pot drops the water temperature, and your bakso will steam instead of sear. (Yes, even if you’re impatient like me.)
  • Blanch Green Onions First: Skip the raw onion bits in your soup—they just make it watery. Blanch the green onions for 10 seconds in boiling water, then shock them in ice water. This softens the tough stems and keeps your soup clear and vibrant. Add them at the end for freshness, but they’ll hold up better than raw onions ever could.

Wine and beer pairings for this recipe

Light Beer Pairings

For bakso soup, I always reach for a crisp pilsner or lager—like Asahi Super Dry or Heineken. The clean, refreshing profile cuts through the richness of the coconut milk while complementing the savory meatballs. The subtle bitterness balances the dish's creaminess without overpowering it. 🍺

Avoid heavy beers here—they'll clash with the delicate broth. Instead, opt for something with a light body and high carbonation to cleanse your palate between bites. I've also found that Japanese lagers like Sapporo work beautifully with the dish's umami notes.

White Wine Options

If you prefer wine, a dry Riesling or Sauvignon Blanc from New Zealand shines here. The acidity balances the coconut's richness, while the citrus notes harmonize with the lemongrass in the broth. I recommend a Kim Crawford Sauvignon Blanc—it's bright enough to stand up to the bold flavors.

For something more aromatic, try a Pinot Grigio from Italy. The crisp finish and subtle mineral notes make it an unexpected but excellent match. Just avoid oaky whites—they'll compete with the soup's natural flavors.

Red Wine Considerations

While red wine isn't traditional, a light-bodied Pinot Noir can work if you prefer it. Look for one with low tannins, like a New Zealand Pinot Noir, which won't overpower the dish. The fruitiness complements the meatballs while the acidity cuts through the coconut.

I'd avoid heavier reds like Cabernet Sauvignon—they'll dominate the soup's delicate broth. If you choose red, keep it cool (around 55°F) to enhance its freshness and prevent it from becoming too heavy.

Non-Alcoholic Choices

For a refreshing non-alcoholic option, try a sparkling yuzu soda or ginger beer. The effervescence mimics beer's cleansing properties, while the citrus or ginger notes enhance the soup's aromatics. I love San Pellegrino Aranciata for its bright orange flavor.

Another great choice is iced hibiscus tea (known as jamaica in some cultures). The tartness balances the soup's richness beautifully, and it's naturally caffeine-free. Serve it chilled with a slice of lime for extra zing. 💛

Nutrition facts

Servings 4
Amount Per Serving
Calories 580kcal
% Daily Value *
Total Fat 32g41%
Saturated Fat 14g70%
Cholesterol 120mg40%
Sodium 980mg43%
Total Carbohydrate 38g14%
Dietary Fiber 3g11%
Sugars 5g
Protein 38g76%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Why do bakso meatballs need cornstarch?

The cornstarch is key for that signature crispy texture! It creates a delicate barrier between the meat and oil during frying, preventing them from absorbing too much moisture and turning soggy. Without it, your meatballs might stay tender but lose that satisfying crunch. Think of it as the secret weapon for authentic bakso.

2

Can I make bakso meatballs ahead of time?

Fry the meatballs up to 3 days in advance and store them in an airtight container at room temperature. When ready to serve, simply reheat them in the broth for 2-3 minutes—they'll stay crispy. For longer storage, freeze them for up to 1 month, then reheat in the oven at 350°F for 10 minutes before adding to the soup.

3

What if my broth tastes too bland?

Don't worry—this happens to everyone! Boost flavor by adding 1 extra tbsp soy sauce or a pinch of white pepper. For depth, stir in 1 tsp fish sauce (traditional in many versions) or a splash of coconut cream instead of milk. Simmering with an extra lemongrass stalk for 10 minutes also works wonders. Taste as you go!

4

Can I use chicken instead of beef?

Yes, but with one key adjustment: swap the cornstarch for breadcrumbs (or half cornstarch/half breadcrumbs) to help bind the meatballs. Chicken bakso works beautifully—just be sure to use ground chicken thighs (not breast) for juicier results. The cooking time stays the same, but chicken meatballs may need 1 extra minute of frying to crisp properly.

5

How do I fix broken meatballs?

If your meatballs fall apart during frying, the mixture was likely overworked or too wet. For future batches, chill the dough for 10 minutes before shaping to firm it up. If it happens during cooking, flatten the broken pieces slightly and return them to the pan—just monitor closely to prevent further crumbling. The good news? Broken meatballs still taste delicious in the soup!

★★★★★4.8(10 reviews)
Categories Soups & Stews