- View
Table of Contents
ToggleBrief Overview
Soto Betawi is a dish that feels like Jakarta in a bowl. Rich, creamy, and warmly spiced, it is a beef soup with a depth of flavour that goes far beyond its modest appearance. It is often served with rice, pickles, and lime, making for a satisfying, well-rounded meal.
This isn’t the kind of soup you sip quietly on a rainy day. It is bold and full bodied, the type of dish that invites conversation, family gatherings, and second helpings. It holds a proud place in Betawi cuisine, tying together heritage and taste.
Its creamy broth and tender chunks of meat make it instantly comforting, yet it still carries a certain sharpness from spices and garnishes. It is food that feels familiar but still surprises with every spoonful.
What Is Soto Betawi?
Soto Betawi is a beef based soup native to the Betawi people of Jakarta. What sets it apart is its rich broth made from a combination of coconut milk and cow’s milk, creating a creamy, fragrant base with a slightly sweet finish.
Chunks of beef and sometimes offal are simmered until tender, absorbing the flavours of the broth. The soup is then served hot with rice or lontong, and topped with fried shallots, spring onions, tomatoes, and a squeeze of lime.
The result is a complex and hearty dish, blending richness with brightness. Every element has a purpose, from the mellow broth to the zingy condiments on top. It is a dish where tradition meets everyday indulgence.
Ingredients and Taste
The broth starts with a careful balance of coconut milk and fresh milk, creating a smooth, slightly thick base. Garlic, shallots, ginger, galangal, lemongrass, coriander, and nutmeg bring warmth without overpowering the dish.
Beef, tripe, and sometimes lungs or liver are used for variety. Each is cooked slowly until tender, soaking in the spices while keeping their own texture. The beef turns soft and rich, while offal adds depth and earthiness.
The taste is layered but never heavy. Creamy notes are lifted by lime juice and tomatoes. Sambal adds heat for those who want it. A spoonful of soup carries spice, sweetness, savoury meat, and fresh herbs all in one go.
A Taste of History
Soto Betawi emerged from Jakarta’s multicultural past. The Betawi people, descended from a mix of local and immigrant communities, created a cuisine that drew from Arab, Chinese, Indian, and Dutch influences.
This version of soto became popular in the early 20th century, especially in food stalls near markets and train stations. It used affordable cuts of meat and local spices, making it both accessible and flavourful.
Over time, Soto Betawi evolved into a symbol of Jakarta’s food identity. It is now a menu fixture in homes and restaurants alike, especially during festive occasions or Sunday family gatherings around the table.
To eat Soto Betawi is to take part in a long standing tradition of comfort and cultural expression. It is a dish shaped by city life, shared history, and a deep understanding of balance in flavour. Few meals carry such warmth with such character.
How to make Soto Betawi
Soto Betawi is a rich, creamy beef soup from Jakarta, known for its comforting depth and iconic coconut milk broth. Expect tender beef in a spiced, fragrant soup layered with aromatic herbs and warming undertones. Patience in simmering rewards you with a satisfying, traditional bowl. See the recipe card at the bottom for printable directions
Ingredients
For the soup
- 500g beef brisket or shank, cut into large cubes
- 1.5 litres water
- 400ml coconut milk
- 200ml full fat evaporated milk
- 2 lemongrass stalks (bruised)
- 4 kaffir lime leaves
- 2 Indonesian bay leaves (daun salam)
- 2 cm cinnamon stick
- 3 cloves
- 3 cardamom pods
- 1 tbsp salt
- 1 tsp white pepper
Spice paste (Bumbu)
- 8 shallots
- 5 garlic cloves
- 3 candlenuts
- 2 cm fresh ginger
- 2 cm fresh galangal
- 1 tsp coriander seeds
- 1 tsp ground nutmeg
- ½ tsp ground cumin
For frying & garnish
- 3 tbsp oil
- Fried shallots
- Sliced tomatoes
- Lime wedges
- Spring onions (sliced)
- Emping (melinjo crackers)
- Steamed rice (optional)
Cooking Instructions
Step 1: Prepare the spice paste
To begin, blend shallots, garlic, candlenuts, ginger, galangal, coriander seeds, nutmeg, and cumin into a smooth paste. Add a splash of oil or water if needed to help blend. Proceed to sautéing.
Step 2: Sauté the spice paste
Heat oil in a saucepan over medium heat. Sauté the spice paste for 5–7 minutes until fragrant and the paste turns golden. This builds the foundation of flavour. Move on to the beef.
Step 3: Simmer the beef
Place beef cubes in a large pot with water. Add the sautéed spice paste, lemongrass, kaffir lime leaves, bay leaves, cinnamon, cloves, and cardamom. Bring to a boil, then reduce to a gentle simmer for 60–75 minutes or until the beef is tender. Skim off any foam.
Step 4: Prepare coconut milk
In a separate pan, warm the coconut milk and evaporated milk together over low heat. Stir constantly to prevent curdling. Do not let it boil. Once warm, set aside for combining.
Step 5: Add milk mixture to soup
Once the beef is tender and the broth has reduced slightly, slowly pour in the warm milk mixture. Stir gently to combine. Continue cooking over low heat for 10 minutes. Avoid boiling to keep the soup smooth. Transition to seasoning.
Step 6: Season the soup
Add salt and white pepper. Taste and adjust as needed. The balance should be savoury, slightly creamy, and aromatic. Move on to garnishing preparation.
Step 7: Prepare the garnish
While the soup simmers gently, slice tomatoes, spring onions, and lime wedges. Fry shallots until golden and crisp, if not using store bought. Ready the emping crackers. Proceed to final serving.
Final step: Serve hot
Ladle the soup into bowls. Add beef chunks, garnish with spring onions, tomatoes, lime, and fried shallots. Serve with emping crackers and steamed rice if desired. Presentation tip: Serve hot in deep bowls to keep warmth and aroma intact.
Variations and substitutions
- Swap coconut milk with light cream for a modern twist.
- Add beef lung or tripe for more traditional texture.
- Substitute candlenuts with macadamia nuts if unavailable.
Cooking Tips for Perfect Soto Betawi
- Do not rush the simmering process, it tenderises the meat and deepens the flavour.
- Warm the coconut and evaporated milk gently to prevent splitting in the soup.
- Skim the broth regularly during boiling to keep it clear and clean tasting.
- Use brisket or shank for the best texture that holds up in the creamy broth.
Indonesian Soto Betawi (Beef Soup)
Ingredients
For the soup
- 500 g beef brisket or shank cut into large cubes
- 1.5 litres water
- 400 ml coconut milk
- 200 ml full fat evaporated milk
- 2 lemongrass stalks bruised
- 4 kaffir lime leaves
- 2 Indonesian bay leaves daun salam
- 2 cm cinnamon stick
- 3 cloves
- 3 cardamom pods
- 1 tbsp salt
- 1 tsp white pepper
Spice paste (Bumbu)
- 8 shallots
- 5 garlic cloves
- 3 candlenuts
- 2 cm fresh ginger
- 2 cm fresh galangal
- 1 tsp coriander seeds
- 1 tsp ground nutmeg
- ½ tsp ground cumin
For frying & garnish
- 3 tbsp oil
- Fried shallots
- Sliced tomatoes
- Lime wedges
- Spring onions sliced
- Emping melinjo crackers
- Steamed rice optional
Instructions
- To begin, blend shallots, garlic, candlenuts, ginger, galangal, coriander seeds, nutmeg, and cumin into a smooth paste. Add a splash of oil or water if needed to help blend. Proceed to sautéing.
- Heat oil in a saucepan over medium heat. Sauté the spice paste for 5–7 minutes until fragrant and the paste turns golden. This builds the foundation of flavour. Move on to the beef.
- Place beef cubes in a large pot with water. Add the sautéed spice paste, lemongrass, kaffir lime leaves, bay leaves, cinnamon, cloves, and cardamom. Bring to a boil, then reduce to a gentle simmer for 60–75 minutes or until the beef is tender. Skim off any foam.
- In a separate pan, warm the coconut milk and evaporated milk together over low heat. Stir constantly to prevent curdling. Do not let it boil. Once warm, set aside for combining.
- Once the beef is tender and the broth has reduced slightly, slowly pour in the warm milk mixture. Stir gently to combine. Continue cooking over low heat for 10 minutes. Avoid boiling to keep the soup smooth. Transition to seasoning.
- Add salt and white pepper. Taste and adjust as needed. The balance should be savoury, slightly creamy, and aromatic. Move on to garnishing preparation.
- While the soup simmers gently, slice tomatoes, spring onions, and lime wedges. Fry shallots until golden and crisp, if not using store bought. Ready the emping crackers. Proceed to final serving.
- Ladle the soup into bowls. Add beef chunks, garnish with spring onions, tomatoes, lime, and fried shallots. Serve with emping crackers and steamed rice if desired. Presentation tip: Serve hot in deep bowls to keep warmth and aroma intact.
Leave a Review