Indonesian Fish Soup with Turmeric, Ginger and Lime

Updated November 3, 2026

Total time
50 min
prep 25 min · cook 25 min
Serves
4
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece

Jump to recipe

Indonesian Fish Soup with Turmeric, Ginger and Lime

Indonesian fish soup is a fragrant, clear-broth dish made with tender fish, aromatics such as ginger and lemongrass, and a bright finish of lime. Recipes vary across Indonesia and from household to household; this version uses turmeric, tomato and tamarind for a gently tangy broth that is satisfying with rice.

Ingredients

  • 1½ pounds (680 g) firm white fish fillets, such as snapper, cod, halibut or grouper, pin bones removed
  • 1 teaspoon (5 g) fine salt, divided
  • 2 tablespoons (30 ml) neutral oil, such as canola or sunflower oil
  • 6 medium shallots (about 90 g), peeled and finely chopped
  • 4 garlic cloves (about 20 g), peeled and finely chopped
  • 1 tablespoon (10 g) finely grated fresh ginger
  • 1 tablespoon (12 g) finely grated fresh turmeric, or 1 teaspoon (3 g) ground turmeric
  • 2 stalks lemongrass (about 30 g), tough outer layers removed and lower sections bruised
  • 1 small red chili (about 10 g), thinly sliced; remove the seeds for less heat
  • 6 cups (1.4 L) low-sodium fish stock, chicken stock or vegetable stock
  • 2 makrut lime leaves, lightly torn, optional
  • 1 tablespoon (15 g) tamarind paste
  • 1 teaspoon (4 g) granulated sugar
  • 1 medium tomato (about 150 g), cut into wedges
  • 2 cups (60 g) baby spinach, optional
  • 2 tablespoons (30 ml) fresh lime juice, plus lime wedges for serving
  • 2 scallions (about 20 g), thinly sliced
  • ½ cup (15 g) loosely packed cilantro leaves, roughly chopped
  • 4 cups (about 600 g) cooked rice, for serving

Instructions

  1. Prepare the fish and aromatics. Cut the fish into pieces about 1½ inches (4 cm) across so they cook at a similar rate. Pat the pieces dry and season them with about half the salt. Finely chop the shallots and garlic, grate the ginger and turmeric, slice the chili, and bruise the lemongrass by pressing it firmly with the flat side of a knife. Bruising helps the stalk release its citrusy aroma into the broth. Keep the fish refrigerated while you prepare the soup base.

  2. Build the aromatic base. Warm the oil in a large, heavy pot over medium heat. Add the shallots and cook for about 3 minutes, stirring often, until they soften without browning deeply. Stir in the garlic, ginger, turmeric and chili and cook for another 2 minutes. The mixture should smell fragrant; if the garlic starts to darken, lower the heat so it does not turn bitter. Ground turmeric can be added at this stage just like fresh turmeric.

  3. Simmer the broth. Add the stock, bruised lemongrass, makrut lime leaves if using, tamarind paste, sugar and remaining salt. Stir to dissolve the tamarind, then bring the liquid to a gentle boil. Lower the heat and simmer uncovered for 12 minutes, allowing the lemongrass and spices to flavor the stock. Keep it at a quiet simmer rather than a hard boil, which can make the broth cloudy and cause more evaporation. Taste a spoonful; it should be savory, lightly sour and aromatic, not sharply acidic.

  4. Add the tomato and fish. Stir in the tomato wedges, then lower the fish pieces into the gently simmering broth in a single layer as much as the pot allows. Cook for about 5 minutes, turning the pieces once only if needed. Fish thickness varies, so check the thickest piece with an instant-read thermometer; USDA FSIS recommends that fish reach a safe minimum internal temperature of 145°F (63°C). At that temperature it should look opaque and separate into moist flakes. Avoid vigorous stirring, which can break the fish apart.

  5. Finish and serve. Stir in the spinach, if using, and cook for about 1 minute until just wilted. Turn off the heat and mix in the lime juice. Taste the broth and adjust with a little more salt, lime juice or sugar if needed: the goal is a rounded broth with a clean tang, not a sweet or sour one. Lift out the lemongrass stalks and lime leaves if you prefer not to have them in the bowls. Ladle the soup and fish over or alongside warm rice, then scatter over scallions and cilantro.

Tips

  • Choose fish that holds together. Snapper, cod, halibut, grouper and firm pollock all work; very delicate fillets can crumble when ladled. If using thinner fillets, cut larger pieces and lower them in carefully. Keep the fish cold until it is ready to go into the pot, and do not leave raw seafood at room temperature while preparing the other ingredients.

  • Adjust hard-to-find ingredients sensibly. Makrut lime leaves add a distinctive floral citrus aroma; if you cannot find them, omit them or add a wide strip of lime zest while the broth simmers. It will be less perfumed but still lively. Tamarind paste gives a rounded, fruity sourness. If unavailable, use 1 tablespoon (15 ml) extra lime juice at the end instead; the flavor will be sharper and more citrus-forward.

  • Use fresh turmeric carefully. It can stain cutting boards, cloth and fingertips, so grate it on a washable surface and rinse tools promptly. Ground turmeric is an easy substitute and gives a slightly earthier, less fresh aroma. If your stock is already salty, start with less added salt and correct the seasoning only after the broth has simmered.

  • Keep the broth gentle once the fish is added. A rolling boil can break up the pieces and make the texture tough. Add the lime juice after cooking rather than simmering it for a long time; its bright flavor is more noticeable that way. If the soup tastes flat, first try a small pinch of salt or a squeeze of lime before adding more chili.

Serving Suggestions

Serve the soup hot with steamed jasmine rice or another plain long-grain rice, which gives the fragrant broth something mild to soak into. For a more substantial meal, put rice in each bowl and ladle the broth, tomato and fish over it, or serve rice separately so everyone can choose how much to add. Offer lime wedges, sliced chili and extra cilantro at the table for individual adjustment.

A plate of sliced cucumber, lightly dressed greens or quickly blanched vegetables makes a crisp contrast to the warm broth. Fried shallots can add a savory crunch if you have them, though they are not necessary. If serving guests, keep the soup at a gentle simmer only until the fish is cooked, then serve promptly; extended holding can make the fish break apart. Arrange the rice and garnishes before the fish goes into the pot so the final step stays relaxed.

Variations

For a more vegetable-rich bowl, add sliced green beans or thinly cut cabbage with the tomato, allowing them to soften in the same five-minute fish-cooking window. For vegetables that need longer, simmer them in the broth before adding the fish. You can also use prawns in place of some of the fish, but cook them just until opaque and check that they are fully cooked; avoid crowding the pot so the broth stays hot.

To make the soup hotter, add another sliced chili or serve sambal on the side. For a milder pot, leave out the chili and let diners add heat individually. A small amount of coconut milk can make a richer, creamier variation, though it changes the clear, tangy character of this recipe: stir in ½ cup (120 ml) near the end and warm gently without boiling. For a different citrus note, a little extra lime zest can stand in for the makrut lime leaves, but it will not be quite as floral.

Different Indonesian regions and families make fish soups with their own combinations of souring ingredients, herbs and spices, so this recipe is one practical home-style approach rather than a single definitive version. If you have fresh basil or Indonesian kemangi, add a small handful at the end for a herbal aroma; ordinary Thai basil is a reasonable substitute, while cilantro gives a different but still fresh finish.

Storage and Reheating

Cool leftovers promptly and refrigerate them within 2 hours of cooking in a covered, shallow container. For the best texture, store the fish and broth together and use the leftovers within 3 days; cooked fish can become drier and more fragile the longer it sits. If you expect to freeze portions, do so promptly in freezer-safe containers, leaving a little room for expansion. The soup can be frozen for about 2 months for best quality, though the fish may be softer after thawing. Thaw it overnight in the refrigerator, not on the counter.

Reheat only the portion you plan to eat in a saucepan over low to medium heat, stirring the broth gently and turning the fish carefully. Heat leftovers to 165°F (74°C), checking the broth with a food thermometer; bring it up steadily without a prolonged boil. The fish may firm up during reheating, so avoid repeatedly warming and cooling the whole pot. You can also microwave an individual bowl covered loosely, stirring the broth partway through and checking that the center reaches 165°F (74°C). Add fresh lime juice and herbs after reheating if their aroma has faded.

Frequently Asked Questions

What fish is best for Indonesian fish soup?

Choose a firm, mild white fish that can be cut into large pieces, such as snapper, cod, halibut, grouper or pollock. Fresh or previously frozen fish both work if handled safely and thawed in the refrigerator. Very thin or delicate fillets can still be used, but add them gently and check them early because they may cook faster than the timing in the recipe.

Can I make the broth ahead of time?

Yes. Make the broth through the simmering step, then cool it promptly and refrigerate it in a covered container for up to 3 days. Reheat it until steaming, add the tomato and fish, and cook the fish fresh just before serving. This keeps the fish from becoming overcooked while the soup is stored and reheated.

Can I use frozen fish?

Yes. Thaw it in the refrigerator, ideally overnight, then drain away any liquid and pat the fish dry before seasoning. If you need to use it sooner, keep the fish in a sealed bag and thaw it in cold water, changing the water every 30 minutes; cook it immediately afterward. Do not thaw fish on the counter, and do not put frozen pieces straight into the broth unless you have adjusted the cooking time and can verify the center reaches 145°F (63°C).

How can I make this soup less sour or more sour?

Tamarind and lime both contribute acidity, but their flavors are different. For a gentler broth, begin with half the tamarind paste and add lime juice gradually after cooking. For more tang, add lime juice a teaspoon at a time and taste between additions. A small pinch of sugar can soften a sharp edge, but the soup should remain savory rather than sweet.

Is this soup traditionally made with coconut milk?

There is no single recipe used across Indonesia, and fish soups vary by region and household. Some versions have richer or coconut-based broths, while others are clear and sour or aromatic. This recipe is intentionally clear and bright; add a little coconut milk for a creamy variation, understanding that it changes the broth’s texture and flavor.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).