Authentic Soto Betawi (Beef Coconut Soup)
Soto Betawi is Jakarta’s iconic beef soup. It is rich, creamy, and spiced with coconut milk and herbs. It was always the family favorite at our table.

Soto Betawi is Jakarta’s iconic beef soup—creamy with coconut milk, rich in spices, and topped with fried potatoes, emping, and crispy shallots. First popularized by a Chinese cook, Lie Boen Po, this dish has become a beloved part of Jakarta’s food culture. Like Beef Rendang, Sop Buntut, or Soto Ayam, Fish Curry, Chicken Curry, it’s comfort food at its best, warm, hearty, and full of tradition.
Now, let me show you how to make Soto Betawi step by step so you can bring a little taste of Jakarta to your own kitchen.
Why You Will Love This Recipe
Recipe Ingredients


Ingredient Notes
Beef shank – This is the main cut used for Soto Betawi, giving the soup its hearty, beefy flavor. For extra richness, you can also add white tripe, tendons, or even beef lungs. Just make sure to cook them separately until tender.
Spices – A blend of shallots, garlic, candlenuts, ginger, cumin, nutmeg, coriander, cloves, and cinnamon creates the base flavor. Bay leaves, lime leaves, lemongrass, and galangal are added whole to infuse the broth with fragrance.
Coconut milk – Fresh coconut milk is ideal, but canned coconut milk works just as well and gives the same creamy, authentic taste.
Toppings – Traditionally, Soto Betawi is served with emping crackers. If they’re hard to find, shrimp crackers or any savory crunchy crackers make a good substitute.
Be sure to check out the full recipe and ingredient list below
Substitutions & Variations
Different cuts of beef – While beef shank is the classic choice, you can also use brisket, short ribs, or chuck for a slightly different texture and flavor.
Offal options – Want to keep it truly authentic? Add beef tripe, tendons, or lungs. If you’re not a fan, simply stick to beef shank or brisket.
Coconut milk alternatives – For a lighter version, swap part of the coconut milk with regular milk or evaporated milk. It will still be creamy but less rich.
Chicken Soto Betawi – Replace beef with chicken for a milder but equally comforting twist.
Topping swaps – If emping crackers aren’t available, shrimp crackers or even crispy fried shallots alone still make a delicious garnish.
Spice level – Add sambal or fresh chili slices if you like your Soto Betawi with a bit of heat.
How to Make Soto Betawi

STEP 1 — Parboil & Tenderize the Beef. Put beef shank (and optional tripe/tendon/lungs) into a pot of cold water (Image 1). Bring to a boil and cook 5 minutes; skim off the scum (Image 2). Drain and rinse the meat. Transfer to a clean pot (or pressure cooker) (Image 3). Cover with fresh water (Image 4).
👉 Pressure cooker: cook 35–45 minutes until fork-tender. Stovetop: simmer gently 1½–2 hours, topping up water as needed.

STEP 2. Spice Paste & Sambal. In a food processor, blend shallots, garlic, candlenuts, coriander seeds, cloves, nutmeg, and cumin until smooth (Images 5, 6). Add 2-3 tablespoons of water to make it easier to blend.
👉 For the sambal: briefly boil bird’s eye chilies, then blend with a pinch of salt (and a little cooking water) until smooth (Images 7, 8). Set aside.

STEP 3. Once the beef is tender, remove it from the cooker (Image 9). Slice it into cubes and set aside (Image 10). In a wok, heat some oil and sauté the blended spices (Image 11) until fragrant. Add the bay leaves, lime leaves, galangal, and lemongrass (Image 12). Stir for 1–2 minutes to release their aroma.

STEP 4. Pour the coconut milk, reserved beef broth, and seasonings into the pot (Images 13–15). Let the soup simmer gently for about 10 minutes while stirring. Remove and discard the bay leaves, lime leaves, galangal, and lemongrass, then strain the broth for a smooth finish. To serve, place fried potatoes, tomato slices, beef cubes, and green onions into a bowl (Image 16). Ladle in the hot broth, sprinkle with fried shallots, and enjoy with sambal, emping crackers, and a squeeze of fresh lime.
Pro Tips
- Keep it creamy: After adding coconut milk, do not let the soup boil hard, gentle simmer only, or it may split.
- Clear broth, richer flavor: Strain the broth after cooking the meat for a clean, silky finish.
- Fried potatoes: Par-fry until just golden so they stay crisp when the hot broth hits.
- Make-ahead: The broth tastes even better the next day. Reheat gently and add fresh toppings before serving.
Serving
Serve Soto Betawi hot with fried potatoes, tomatoes, emping, a squeeze of lime, and a drizzle of kecap manis (sweet soy sauce). Don’t forget fried shallots and a side of sambal. Pair with steamed rice, quick pickles or perkedel, and sip lemongrass pandan tea, rose milk tea, or wedang jahe. You can also add boiled salted egg to pair the hot broth.
FAQs about Soto Betawi
It was first popularized in Jakarta by a Chinese cook named Lie Boen Po in the early 20th century, making it a blend of Betawi and Chinese influences.
Beef shank is the most common, but brisket, short ribs, tripe, or tendon are also popular choices.
Soto Betawi is known for its creamy broth made with coconut milk (sometimes mixed with milk), rich spices, and toppings like fried potatoes and emping crackers. Other sotos, like Soto Ayam, usually have a clear broth.
Yes! While beef is traditional, you can substitute chicken or even make a vegetarian version with mushrooms or tofu.
Overcooking the coconut milk (which can cause it to split), not simmering the beef until tender, or skipping the toppings (fried potatoes, emping, and lime) are the biggest mistakes to avoid.
Swap beef for mushrooms, jackfruit, or tofu. Use vegetable stock instead of beef broth, and still include the aromatic spice blend and coconut milk for flavor.
Yes, most spices like cumin, nutmeg, and coriander are widely available. For harder-to-find items like candlenuts or emping, you can check Asian grocery stores or use substitutes (macadamia nuts for candlenuts, shrimp crackers for emping).
Storage
For best results, store the beef cubes and broth separately. Keep the broth in an airtight container in the fridge for up to 3–4 days, and refrigerate the beef cubes in a separate container. This prevents the meat from getting overly soft or mushy in the liquid.
You can also freeze both the broth and beef for up to 2 months. Thaw overnight in the fridge, then reheat the broth gently over low heat before adding the beef back in. Always add toppings like fried potatoes, emping crackers, and fried shallots fresh, just before serving.
More Indonesian Recipes
- Chicken Rendang
- Soto Tangkar
- Sop Buntut Sapi / Oxtail Soup
- Bihun Goreng – Fried Vermicelli
- Nasi Goreng Kampung – Indonesian Fried Rice

Soto Betawi
Ingredients
- 500 gr beef shank
Spice A
- 10 pcs shallots
- 4 pcs garlic
- 3 pcs candlenut
- 2 tsp ground coriander
- ½ tsp ground cloves
- ½ tsp nutmeg
- ½ tsp cumin
- 2 tbsp coconut oil
Spice B
- 3 pcs lime leaves
- 3 pcs bay leaves
- 1 pcs galangal
- 1 pcs ginger
- 2 stalk lemongrass
- 1.5 liter water
- 130 ccc coconut milk add 500 cc water
Seasonings
- 3 tsp salt
- 1 tsp mushroom powder optional
- 1 tsp sugar
- 1 tsp pepper
Toppings
- Emping fried chips
- Tomato slices
- Fried potato squares
- Green onion minced
- Fried shallots
- Lime
- Chili sauce
Instructions
- Put beef shank (and optional tripe/tendon/lungs) into a pot of cold water. Bring to a boil and cook 5 minutes; skim off the scum. Drain and rinse the meat.
- Transfer to a clean pot (or pressure cooker). Cover with fresh water. Pressure cooker: cook 35–45 minutes until fork-tender. Stovetop: simmer gently 1½–2 hours, topping up water as needed.
- In a food processor, blend shallots, garlic, candlenuts, coriander seeds, cloves, nutmeg, and cumin until smooth. Add 2-3 tablespoons of water to make it easier to blend.
- For the sambal: briefly boil bird’s eye chilies, then blend with a pinch of salt (and a little cooking water) until smooth. Set aside.
- Once the beef is tender, remove it from the cooker. Slice it into cubes and set aside.
- In a wok, heat some oil and sauté the blended spices until fragrant. Add the bay leaves, lime leaves, galangal, and lemongrass. Stir for 1–2 minutes to release their aroma.
- Pour the coconut milk, reserved beef broth, and seasonings into the pot. Let the soup simmer gently for about 10 minutes while stirring. Remove and discard the bay leaves, lime leaves, galangal, and lemongrass, then strain the broth for a smooth finish.
- To serve, place fried potatoes, tomato slices, beef cubes, and green onions into a bowl. Ladle in the hot broth, sprinkle with fried shallots, and enjoy with sambal, emping crackers, and a squeeze of fresh lime.
Video
Notes
- Keep it creamy: After adding coconut milk, do not let the soup boil hard, gentle simmer only, or it may split.
- Clear broth, richer flavor: Strain the broth after cooking the meat for a clean, silky finish.
- Fried potatoes: Par-fry until just golden so they stay crisp when the hot broth hits.
- Make-ahead: The broth tastes even better the next day. Reheat gently and add fresh toppings before serving.
I love the authentic taste of this Soto Betawi. It really throws me back to my life in Indonesia!