
Soto Betawi
Soto Betawi is the signature soup of Jakarta's indigenous Betawi people, distinguished from the countless other regional soto varieties across Indonesia by its rich, creamy broth made from both coconut milk and evaporated or condensed milk. While most soto recipes lean on a clear, turmeric-tinted chicken broth, Betawi cooks built a heartier version around beef and sometimes offal, reflecting the influence of Jakarta's historic role as a trading port where Arab, Chinese, and European ingredients all left their mark on local cuisine. The soup did not appear in written records until the mid-twentieth century, relatively recent by Indonesian culinary standards, and it is believed to have developed from Betawi beef stews that were gradually enriched with dairy introduced through colonial trade. Restaurants and street stalls around Jakarta now serve it with cubes of crispy fried potato, a squeeze of lime, and pickled vegetables called acar on the side, and the dish remains one of the clearest examples of how Jakarta's multicultural history is expressed through food.
Rich broth of coconut and milk
A creamy base sets it apart from clear-broth soto varieties
Slow-braised beef until tender
Beef or offal simmers for hours before joining the soup
Fragrant spice paste base
Candlenut, coriander, and nutmeg build deep aromatic flavor
Topped with crispy fried potato
Fried potato cubes add crunch against the creamy broth
Ingredients 4 servings
- 600g beef brisket or offal, cubed
- 500ml coconut milk
- 250ml evaporated milk
- 6 shallots and 4 cloves garlic
- 3 candlenuts, toasted
- 2 tsp ground coriander
- 1 tsp ground nutmeg
- 3 tomatoes, quartered
- Fried potatoes, lime, and chopped celery, for serving
How to make it
- 1Simmer the beef in water with a bay leaf and bruised lemongrass for about ninety minutes, until it turns fork-tender, then reserve the broth.
- 2Grind the shallots, garlic, toasted candlenuts, coriander, and nutmeg into a smooth spice paste.
- 3Fry the spice paste in a little oil until fragrant and the raw smell disappears.
- 4Pour the reserved beef broth into the pot with the fried spice paste and bring everything to a simmer.
- 5Stir in the coconut milk and evaporated milk, then add the cooked beef and quartered tomatoes.
- 6Simmer gently over low heat for fifteen minutes, stirring often so the coconut milk doesn't split.
- 7Ladle the soup into bowls over fried potato cubes and finish with a squeeze of lime and chopped celery.
Nutritional info
per serving (~350 g)
Estimated nutritional values.
Pairs perfectly with






