This Thai shrimp soup with coconut milk is a fragrant, creamy broth with tender shrimp, mushrooms, lemongrass, galangal, and lime. It takes inspiration from tom kha, a Thai coconut soup with many regional and family variations, and balances richness with salty, sour, and gently spicy flavors.
Ingredients
- 1 lb (454 g) large raw shrimp, peeled and deveined; thawed if frozen
- 1 tablespoon (15 ml) neutral oil, such as canola or vegetable oil
- 1 stalk lemongrass, about 6 inches (15 cm) long, cut into pieces and lightly bruised
- 1 oz (28 g) fresh galangal, sliced into thin coins
- 4 makrut lime leaves, torn once to release their aroma; fresh or frozen
- 1 small shallot, about 2 oz (55 g), thinly sliced
- 1 small Thai bird’s-eye chile, thinly sliced, or ½ teaspoon (1 g) red pepper flakes
- 3 cups (710 ml) low-sodium chicken or seafood stock
- 8 oz (225 g) cremini or oyster mushrooms, sliced
- 1 can (13.5 oz/400 ml) full-fat coconut milk, well shaken
- 1 tablespoon (15 ml) fish sauce, plus more to taste
- 1 teaspoon (4 g) granulated sugar
- 2 tablespoons (30 ml) fresh lime juice, plus more to taste
- ¼ cup (10 g) loosely packed fresh cilantro leaves, roughly chopped
- ¼ teaspoon (1 g) fine salt, only if needed after tasting
Instructions
- Prepare the ingredients. If using frozen shrimp, thaw them overnight in the refrigerator or in a sealed bag submerged in cold water, then drain and pat dry. Slice the shallot, mushrooms, galangal, and chile. Bruise the lemongrass with the flat side of a knife; this helps release its scent into the broth. Tear the makrut lime leaves once. Keep the lime juice aside until the end so its fresh, tart flavor stays bright.
- Start the aromatic broth. Warm the oil in a medium pot over medium heat. Add the lemongrass, galangal, lime leaves, shallot, and chile. Stir for about 2 minutes, just until fragrant and the shallot begins to soften. Do not brown the aromatics; scorching them can make the broth taste bitter. Add the stock, bring it to a gentle simmer, and cook uncovered for 6 minutes so the aromatics have time to flavor the liquid.
- Cook the mushrooms. Add the sliced mushrooms to the simmering stock and cook for 5 minutes, stirring once or twice. They should soften but still hold their shape. Keep the liquid at a steady, gentle simmer rather than a hard boil, which can make the broth reduce too quickly and muddle the delicate citrus and herbal aromas.
- Add coconut milk and season. Pour in the coconut milk and stir in the fish sauce and sugar. Heat for about 2 minutes, until the soup is steaming and just beginning to simmer around the edges. Avoid a vigorous boil: high heat can encourage coconut milk to separate, and it is not needed to cook the ingredients. Taste a spoonful of broth. It should be creamy and savory, with a little sweetness in the background; the lime will be added after the shrimp cooks.
- Cook the shrimp. Add the shrimp in an even layer and cook gently for about 3 minutes, turning them once if needed. The shrimp should become opaque and firm. USDA FSIS lists 145°F (63°C) as the safe minimum internal temperature for fish and shellfish; check the thickest part of a large shrimp with a food thermometer, without touching the pan. If it has not reached that temperature, continue cooking briefly and check again. Small shrimp may cook faster, so start checking early rather than relying only on the clock.
- Finish and serve. Turn off the heat. Stir in the lime juice and cilantro, then taste the broth. Add a little more lime for brightness or fish sauce for saltiness; if it is hotter than you like, add a splash of coconut milk. Remove the lemongrass, galangal, and lime leaves before serving, or let diners know to leave these fibrous aromatics in the bowl. Serve while hot.
Tips
- Find a good substitute for galangal. Galangal has a piney, peppery flavor that is distinct from ginger. If you cannot find it fresh or frozen, use ¾ oz (21 g) sliced ginger instead. The soup will still be aromatic, but its flavor will be warmer and more gingery than a tom kha-style broth.
- Make the aromatics easy to remove. Lemongrass, galangal, and makrut lime leaves are used to perfume the soup and are usually not eaten. Cut the lemongrass into large pieces and keep the galangal in recognizable slices. For a broth that is easier to serve, bundle the aromatics in a piece of cheesecloth or a reusable spice bag before simmering.
- Adjust the heat gradually. Thai bird’s-eye chiles can vary considerably in strength. Start with half a chile if you are unsure, then add more at the table. Removing the seeds can reduce some of the heat, but the chile will still contribute a noticeable kick.
- Keep coconut milk from splitting. Shake the can well before opening, and use gentle heat once it is in the pot. A little separation is harmless and the soup is still safe to eat, but stirring over a low simmer usually gives a smoother-looking broth. Add the lime juice after turning off the heat.
Serving Suggestions
Serve the soup in warm bowls with steamed jasmine rice on the side, or spoon the broth and shrimp over rice in each bowl for a more filling meal. Rice noodles are another good option: cook them separately according to their package directions, divide them among bowls, and ladle the soup over them just before eating. Cooking noodles in the soup itself can make the broth cloudy and leave them too soft if the pot sits for a while.
Offer lime wedges, extra cilantro, sliced chile, and a small dish of fish sauce at the table so each person can tune the balance. The soup is already creamy and richly flavored, so a simple side such as sliced cucumber, lightly dressed greens, or plain steamed vegetables works well. If serving it as part of a larger Thai-inspired meal, keep other dishes’ spice levels in mind; this soup can be mild or quite hot depending on the chile.
Variations
Use a more accessible aromatic combination: If makrut lime leaves are unavailable, add 1 teaspoon (2 g) finely grated lime zest to the broth near the end of its simmer. It gives a recognizable citrus fragrance, although it lacks the distinctive floral aroma of the leaves. If lemongrass is also hard to find, use 1 teaspoon (5 ml) additional lime juice at the end; this makes the soup brighter and more sour but does not fully replace lemongrass’s herbal character.
Make it milder or richer: Leave out the chile for a gentle version, or use two chiles for more heat. For a richer soup, replace ½ cup (120 ml) of the stock with additional coconut milk. That makes the broth thicker and less tangy, so taste and add lime a little at a time. For a lighter-tasting bowl, use light coconut milk, knowing it will be less creamy and may feel thinner.
Swap the protein: Thinly sliced boneless chicken breast or thigh can replace shrimp, but it needs more time to cook. Simmer the pieces in the broth until the thickest part reaches 165°F (74°C), the USDA FSIS safe minimum for poultry, before adding the lime and cilantro. Firm white fish is another option; cut it into bite-size pieces and cook until it reaches 145°F (63°C). Add either alternative according to its cooking time rather than following the shrimp’s three-minute timing.
Make it vegetarian: Replace the shrimp with 8 oz (225 g) extra mushrooms or 7 oz (200 g) firm tofu cut into cubes. Use vegetable stock and replace fish sauce with 1 tablespoon (15 ml) light soy sauce. Soy sauce adds savory saltiness but has a different flavor and less of fish sauce’s distinctive fermented character. Taste before adding extra salt, since both sauces vary in saltiness.
Storage and Reheating
Refrigerate leftover soup within 2 hours of cooking in a shallow, covered container. It keeps for 3–4 days in the refrigerator. The shrimp may become firmer after storage, and the coconut milk can separate slightly, but both are normal changes. If you expect leftovers, you can also refrigerate the broth and cooked shrimp separately; this makes it easier to warm the broth gently without giving the shrimp extra cooking time.
Reheat only the portion you plan to eat in a saucepan over medium-low heat, stirring occasionally until it reaches 165°F (74°C), the USDA FSIS safe temperature for reheated leftovers. Avoid boiling it hard. If the coconut milk looks separated, whisk gently as the soup warms; a small splash of stock or water can loosen a thickened broth. You can reheat it in a microwave-safe bowl in short intervals, stirring between intervals and checking the temperature in more than one spot. Freeze soup in airtight containers for up to 2 months for best quality, leaving room for expansion. Thaw it in the refrigerator and reheat to 165°F (74°C); expect some change in the coconut milk’s texture.
Frequently Asked Questions
Is this the same as tom kha?
It is a shrimp soup inspired by tom kha, not a claim to represent every version of that Thai soup. Tom kha commonly features coconut milk and aromatics such as galangal, lemongrass, and makrut lime leaves, but recipes vary by region and household. Some versions use chicken, mushrooms, or different levels of sourness and heat. This recipe uses shrimp and gives practical substitutes for the aromatics.
Can I use cooked shrimp instead of raw shrimp?
Yes, but cooked shrimp needs only enough time to heat through. Make the broth and cook the mushrooms as directed, then add the cooked shrimp after the coconut milk is warm and heat gently. Do not simmer it for 3 minutes or it may turn tough. For food safety, reheat leftovers containing cooked shrimp to 165°F (74°C).
Can I make the soup ahead?
You can make the aromatic broth with the mushrooms, coconut milk, fish sauce, and sugar up to a day ahead, then cool and refrigerate it promptly. Reheat the broth gently and cook the raw shrimp in it just before serving, checking that the shrimp reach 145°F (63°C). Add lime juice and cilantro at the end. This approach gives the shrimp a tenderer texture than cooking them ahead and warming them again.
Why does my coconut milk look grainy or separated?
Coconut milk can separate when heated at a rolling boil, and some cans separate naturally while sitting. Stirring over gentle heat often brings the broth back together, although a little separation does not mean it has spoiled. If the can smells sour or off before cooking, discard it rather than trying to fix it in the pot.
What can I use instead of fish sauce?
For a vegetarian alternative, use light soy sauce or tamari in the same amount, then adjust to taste. These provide salt and savoriness but do not taste exactly like fish sauce, which contributes a distinctive fermented flavor. If avoiding soy, use a suitable soy-free seasoning sauce and check its label for salt level; add it gradually so it does not overpower the coconut and lime.
Related
- Portuguese Fish Soup: Traditional Sopa de Peixe Recipe
- Portuguese Thanksgiving Stuffing with Chouriço
- Portuguese-Style Beef Stew with Red Wine and Vegetables
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).