Skip to content
Soto Betawi — Indonesian & Malaysian recipe
Indonesian & Malaysian Images are for illustrative purposes only, may be inaccurate, and do not guarantee the presence or absence of specific ingredients.

Soto Betawi

A rich Jakarta beef soup simmered in coconut milk and aromatic spices, served over potatoes and tomatoes with a squeeze of lime.

120 minutes
Serves 4
Lunch
42 min prep
66 min cook

Instructions

4 steps
  1. 1

    Place the beef cubes in a large pot with 6 cups of water, bring to a boil, then lower to a gentle simmer and skim off any foam. Cook covered for about 1 hour until the beef is tender, reserving the broth.

  2. 2

    While the beef simmers, heat 2 tablespoons of oil in a skillet over medium heat and fry the blended shallot-garlic-candlenut paste with 1 teaspoon ground coriander and 1/2 teaspoon ground cumin for 4 to 5 minutes until fragrant and the raw smell is gone.

  3. 3

    Stir the fried spice paste into the beef broth along with the bruised lemongrass, kaffir lime leaves, and cinnamon stick, then pour in the coconut milk and whole milk. Season with 2 teaspoons salt and simmer gently, uncovered, for 20 minutes so the flavors meld; do not let it boil hard or the coconut milk may split.

  4. 4

    Ladle the soup over bowls of cubed boiled potato and quartered tomato, then finish with fried shallots, sliced scallion, and a generous squeeze of fresh lime. Serve hot with steamed rice and sambal on the side.

Listahan Family Score™

64/100

Works for many families

64
Allergen-friendly 80
Kid-friendly 35
Weeknight-easy 54
Budget-friendly 86
Great leftovers 87
Pantry-friendly 48

Score reflects how well this recipe fits a typical busy household. In the app, your Family Score is personalized to your household's allergens, kids, and pantry.

Nutrition

per serving

470

Calories

46 g

Protein

10 g

Carbs

26 g

Fat

Estimated per serving. Actual values depend on the brands and portions you use.

Listahan cooking guide

Chef notes & practical guide

Technique notes, ingredient swaps, serve-alongside ideas, storage guidance, and equipment for this recipe.

Cultural context

Soto Betawi is tied to Jakarta's Betawi community, where beef soups often lean richer than many other Indonesian soto styles. The coconut milk, milk, warm spices, lime, sambal, potato, and tomato show the city pantry clearly: creamy broth, bright garnishes, and enough starch to make the bowl feel complete.

Listahan note

This version keeps the method approachable by simmering beef first, then folding in a cooked spice paste and gentle coconut-milk broth. It prioritizes a rounded, creamy soup with clean aromatics rather than a heavy stew.

Technique cues

  • Skim the beef broth early so the finished soup tastes cleaner and the pale broth stays appealing instead of muddy.
  • Cook the shallot-garlic-candlenut paste until it loses its raw bite before adding it to the pot; that step gives the broth depth without harsh onion flavor.
  • Keep the coconut milk and whole milk at a gentle simmer. A hard boil can make the broth look grainy instead of smooth.

Kitchen flow

Parallel prep
Boil the potatoes and cut the tomatoes while the beef simmers, then fry the spice paste during the last 15 minutes of the beef cooking time.
Make-ahead
Cook the beef and broth base a day ahead, then reheat gently and add the potato, tomato, fried shallots, scallion, lime, rice, and sambal when serving.
Leftover move
Spoon leftover beef and broth over fresh rice, then add extra lime and scallion to bring back the brightness.
Cleanup rhythm
Rinse the blender jar right after scraping out the spice paste, then soak the soup pot after serving so the creamy broth residue lifts easily.

Ingredient brief

Role, handling, and swap guidance for each key ingredient.

Beef chuck

Main protein and broth base

Purpose: Chuck has enough connective tissue to become tender during the long simmer and give the broth body.

Handling: Cut it into even 1-inch cubes so the pieces cook at the same pace.

Adaptation: Beef shank gives a deeper broth and more gelatin, but it may need a longer simmer.

Coconut milk and whole milk

Creamy broth base

Purpose: Together they make the soup rich without losing the rounded sweetness of coconut.

Handling: Stir them in after the beef is tender and keep the heat low once they are in the pot.

Adaptation: Use all coconut milk for a fuller coconut profile, or use more whole milk for a lighter, less coconut-forward bowl.

Shallots, garlic, and candlenuts

Spice-paste foundation

Purpose: The shallots and garlic build sweetness and savoriness while candlenuts help thicken the broth slightly.

Handling: Blend into a smooth paste so it fries evenly and disperses through the soup.

Adaptation: Macadamia nuts can stand in for candlenuts when needed, with a softer, buttery texture.

Lemongrass, kaffir lime leaves, and cinnamon stick

Aromatic backbone

Purpose: They give the creamy broth citrusy lift and a warm background note without turning it spicy.

Handling: Bruise the lemongrass before simmering so it releases more aroma into the broth.

Adaptation: Lime zest can echo part of the kaffir lime leaf aroma, though it will taste brighter and less floral.

Ground coriander and ground cumin

Warm spice layer

Purpose: They add the earthy warmth that keeps the milk-and-coconut broth from tasting flat.

Handling: Fry them with the paste for a minute or two so the spices bloom in the oil.

Adaptation: A small pinch of turmeric can add color, but it will move the soup away from this recipe's cleaner, pale broth.

Boiled potato and tomato

Bowl garnish and texture

Purpose: Potato catches the broth while tomato cuts through the richness with freshness and acidity.

Handling: Add them to the bowl before ladling in soup so they keep their shape and do not cloud the pot.

Adaptation: Steamed rice can carry more of the meal if you want fewer potatoes in the bowl.

Technique notes

  • Do not rush the beef. If the cubes still resist a spoon after an hour, keep simmering before adding the coconut milk and whole milk.
  • Fry the spice paste in a skillet, not directly in the watery broth. The oil heat changes the flavor in a way simmering alone will not.
  • Season near the end after the broth has reduced slightly, since salt tastes stronger once the soup concentrates.

Ingredient swaps

Weeknight shortcut
Use smaller beef chuck cubes and simmer until just tender, then keep the final milk simmer brief so dinner does not stretch too long.
Richer bowl
Use more coconut milk in place of part of the whole milk for a thicker, more coconut-forward broth.
Lighter finish
Increase the tomato and lime at serving so each spoonful feels brighter against the creamy broth.
Candlenut backup
Use macadamia nuts if candlenuts are hard to find; toast them lightly before blending for a rounder flavor.

Serve alongside

  • Steamed jasmine rice
  • Emping crackers
  • Acar timun
  • Sambal oelek
  • Iced jasmine tea
  • Lime soda
  • Cold coconut water

Serving suggestions only — check pairings for your household's allergens.

Storage & reheating

  • Refrigerate the soup base in a sealed container for up to 3 days, keeping fresh garnishes separate.
  • Reheat gently over low heat and stir often so the coconut milk and whole milk stay smooth.
  • Freeze the beef and broth base without the potato, tomato, scallion, lime, or fried shallots; thaw overnight and reheat slowly.

Equipment

  • Large heavy pot with lid
  • Skillet for frying spice paste
  • Blender or small food processor
  • Ladle

Make this household-aware

Listahan Pro checks this recipe against your household's allergens, finds pantry-aware swaps, builds the shopping list, and helps you plan the week around it.

Get the app

Plan it in Listahan

Add Soto Betawi to your week, check it against your household's allergens, and build the shopping list automatically.

More Indonesian & Malaysian recipes