Cambodia · Southeast Asia

Cambodian Sour Soup Recipe with Fish and Tamarind

Updated November 2, 2026

Total time
53 min
prep 25 min · cook 28 min
Serves
6
portions as written
Safe temperature (USDA)
145°F / 63°C
check the thickest piece
Cuisine
Cambodia
Southeast Asia

Jump to recipe

Cambodian Sour Soup Recipe with Fish and Tamarind

Cambodian sour soup, often called samlor machu, is a Khmer soup made in many regional and family styles; this version simmers white fish with tamarind, pineapple, vegetables, and fresh herbs. Its balance of tart, savory, sweet, and fragrant flavors makes a lively meal, while the ingredients can be adjusted to suit what is available.

Ingredients

  • 8 cups (1.9 L) water, or unsalted fish stock for a fuller broth
  • 2 stalks lemongrass (about 50 g), tough ends trimmed and stalks bruised, then cut into pieces
  • 1 medium shallot (about 40 g), thinly sliced
  • 3 garlic cloves (about 9 g), lightly crushed
  • 1 tablespoon (15 g) finely grated fresh ginger
  • 1 teaspoon (5 g) prahok, Cambodian fermented fish paste, optional; use a little extra fish sauce if you do not have it
  • 2 tablespoons (30 ml) tamarind concentrate, plus more to taste; check the label because some products are diluted
  • 2 tablespoons (30 ml) fish sauce
  • 1 tablespoon (12 g) sugar
  • 1/2 teaspoon (1 g) fine salt, then more as needed
  • 1 1/2 cups (225 g) pineapple chunks, fresh or canned and drained
  • 2 medium tomatoes (about 300 g), cut into wedges
  • 8 ounces (225 g) fresh okra, ends trimmed and pods cut in half lengthwise
  • 1 pound 8 ounces (680 g) firm white fish, such as catfish, cod, or snapper, cut into 1-inch (2.5 cm) pieces
  • 4 ounces (115 g) water spinach, also called morning glory, cut into 2-inch (5 cm) lengths; substitute baby spinach if needed
  • 2 cups (200 g) bean sprouts, rinsed and drained
  • 1/2 cup (15 g) chopped rice paddy herb (ma om), if available; otherwise use 1/4 cup (10 g) chopped cilantro and 1 tablespoon (2 g) chopped dill
  • 1/2 cup (15 g) chopped cilantro leaves and tender stems
  • 1 small red chile (about 10 g), thinly sliced, optional

Instructions

  1. Prepare the ingredients. Cut the fish into even pieces so they cook at about the same rate. Bruise the lemongrass with the flat side of a knife to release its aroma, and prepare the vegetables and herbs. If using prahok, stir it with a spoonful of water in a small bowl to loosen it; this makes it easier to distribute through the soup.
  2. Start the fragrant broth. Put the water or fish stock in a large pot with the lemongrass, shallot, garlic, ginger, and prahok, if using. Set the pot over medium-high heat. Bring it to a boil, which should take about 5 minutes, stirring once or twice so the paste dissolves rather than sticking to the bottom.
  3. Season and simmer. Stir in the tamarind concentrate, fish sauce, sugar, and salt. Lower the heat and simmer gently for 8 minutes. The broth should smell fragrant and taste distinctly tart, but not harsh. Tamarind products differ in strength, so avoid adding extra concentrate until you have tasted the finished broth.
  4. Cook the firm vegetables. Add the pineapple, tomato wedges, and okra. Keep the soup at a gentle simmer for 7 minutes, until the okra is just tender and the tomatoes begin to soften without completely falling apart. Taste a spoonful of broth and add a little more tamarind if you want a sharper sour note, or a pinch of sugar if the acidity feels too pointed.
  5. Poach the fish carefully. Slide in the fish pieces and keep the liquid at a gentle simmer for 7 minutes; avoid vigorous boiling, which can break up the fish. Check the thickest piece with a food thermometer. The USDA FSIS safe minimum temperature for fish is 145°F (63°C); if a piece has not reached that temperature, continue cooking and check again.
  6. Finish with greens and herbs. Stir in the water spinach and cook for 1 minute, just until wilted. Turn off the heat and fold in the bean sprouts, rice paddy herb or its substitute, cilantro, and chile if using. Taste once more and adjust the salt, fish sauce, or tamarind in small additions. Remove the lemongrass pieces before serving, or leave them in the pot as a reminder not to eat them.

Tips

  • Adjust sourness at the end. Tamarind concentrate varies from mild to very concentrated. Start with the amount listed, then add it by the teaspoon after the vegetables are cooked. That approach is easier than trying to correct an overly sour pot.
  • Keep the broth at a gentle simmer. A rolling boil can make fish pieces fall apart and can turn tender vegetables mushy. Cut the fish evenly, lower it into simmering liquid, and stir around it rather than directly through it.
  • Use substitutions with their flavor in mind. Rice paddy herb has a distinctive, savory fragrance and is not stocked everywhere; cilantro with a little dill gives a fresh, somewhat different finish. Baby spinach works in place of water spinach but wilts faster, so add it right at the end.
  • Be cautious with prahok and salt. Prahok contributes a strong fermented savoriness, but its salt level varies. If you use it, begin with the listed salt and adjust only after the soup has simmered and the fish sauce has been added.

Serving Suggestions

Serve the soup hot in individual bowls, making sure each serving gets fish, vegetables, and plenty of broth. Steamed jasmine rice is a natural companion: eat it alongside the soup or spoon some into the bowl to absorb the tart, savory liquid. A plate of extra bean sprouts, cilantro, and sliced chile lets diners add crunch, fragrance, or heat to taste.

For a larger Cambodian-inspired meal, pair the soup with plain rice and a mild stir-fried vegetable dish. Because the broth is already bright and strongly seasoned, keep side dishes simple rather than adding another sour or salty sauce. Put a small bowl of lime wedges on the table only if guests want extra sharpness; taste first, since the tamarind already supplies acidity.

Variations

Choose a different fish. Catfish gives a soft, traditional-feeling texture, while cod and snapper are mild, firm alternatives that are widely available. Use boneless fillets and check each piece for bones before cooking. If using a thinner fish, cut larger pieces and check for doneness early so they do not overcook while the broth is simmering.

Make it with shrimp. Replace the fish with 1 pound (450 g) peeled, deveined shrimp. Add them near the end and simmer just until opaque and cooked through; shrimp size affects timing, so check carefully rather than relying only on the clock. The required safe minimum temperature for shrimp is 145°F (63°C), measured with a food thermometer.

Change the vegetables. Long beans, sliced eggplant, or additional leafy greens can stand in for some of the okra or water spinach. Add firmer vegetables with the pineapple and tomatoes, and add delicate leaves in the final minute. The result will differ from the listed combination, but the tamarind broth still brings the ingredients together.

Make it more or less spicy. Leave out the chile for a mild pot, or serve sliced chile separately so everyone can choose their own heat level. For a deeper fermented flavor, use the optional prahok; for a cleaner, lighter-tasting broth, leave it out and season with fish sauce instead.

Storage and Reheating

Refrigerate leftover soup within 2 hours of cooking, in a covered container, and keep it for 3 to 4 days. If possible, store the fish and broth together so the fish stays moist, but note that it will soften as it sits. For easier reheating, divide the soup into shallow containers so it cools promptly before refrigeration.

Reheat only the portion you plan to eat in a saucepan over medium-low heat, stirring gently until the soup is steaming throughout and reaches 165°F (74°C), the USDA FSIS temperature for reheated leftovers. Avoid a hard boil, which can break up the fish. You can freeze the soup for about 2 to 3 months for best quality, though the fish and vegetables may become softer after thawing. Thaw it in the refrigerator and reheat to 165°F (74°C); do not leave cooked soup at room temperature for more than 2 hours.

Frequently Asked Questions

What does samlor machu mean?

Samlor machu is commonly used for Cambodian sour soup, with recipes varying by household, region, and ingredients. It describes a style of soup rather than one fixed list of ingredients. Tamarind is one familiar way to give this version its sour flavor, while other preparations may use different souring ingredients.

Can I make this Cambodian sour soup without tamarind?

Yes. Lime juice can provide a bright sour flavor, though it tastes sharper and less rounded than tamarind. Begin with 1 tablespoon (15 ml) added after cooking, taste, and add more gradually. A small amount of rice vinegar can also add acidity, but it changes the flavor and will not reproduce tamarind’s fruity depth.

Where can I find rice paddy herb and prahok?

Look for rice paddy herb, also labeled ma om, and prahok in Cambodian or other Southeast Asian grocery stores, especially those with fresh herb sections and refrigerated or jarred fermented fish products. If you cannot find ma om, the cilantro-and-dill substitute in the ingredients provides a fresh finish. Prahok is optional; leaving it out makes a less deeply fermented broth.

Can I prepare the soup ahead?

You can chop the vegetables and herbs and portion the fish earlier in the day, keeping the fish refrigerated until cooking. You can also make the aromatic broth through the simmering stage, cool it promptly, and refrigerate it. Reheat the broth, cook the vegetables, and add the fish and fresh herbs just before serving for the best texture.

Can I use frozen fish?

Yes. Thaw it in the refrigerator, then pat it dry and cut it into even pieces. If the fish is still icy in the center, it will cook unevenly and may release extra water into the broth. Check the thickest piece with a thermometer and cook fish to 145°F (63°C) before serving.

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).