Thai fish head soup is a hot-sour, aromatic broth made with fish head, lemongrass, lime, and chilies, usually served steaming with rice. This Thai-style version balances fragrant herbs, savory fish sauce, and fresh lime; family and regional versions vary in their herbs, vegetables, and level of heat.
Ingredients
- 1 cleaned fish head, about 2½ lb (1.1 kg), split into manageable pieces by the fishmonger; snapper, grouper, or another firm white fish works well
- 8 cups (1.9 L) water or unsalted fish stock
- 2 stalks lemongrass (about 4 oz / 115 g), tough outer leaves removed and lower portions bruised
- 1 piece galangal, about 2 oz (55 g), sliced into coins
- 6 kaffir lime leaves (makrut lime leaves), torn once to release their aroma
- 3 medium shallots (about 4 oz / 115 g), peeled and lightly crushed
- 2–4 Thai bird’s-eye chilies (about ¼ oz / 7 g), lightly bruised, or to taste
- 8 oz (225 g) oyster or straw mushrooms, halved if large
- 2 medium tomatoes (about 10 oz / 285 g), cut into wedges
- 3 tbsp (45 ml) fish sauce, plus more to taste
- 2 tbsp (30 ml) fresh lime juice, plus lime wedges for serving
- 1 tsp (5 g) granulated sugar, or to taste
- ½ cup (15 g) loosely packed cilantro leaves and tender stems, roughly chopped
- 2 scallions (about 1 oz / 30 g), thinly sliced
Instructions
- Prepare the fish and aromatics. Ask the fishmonger to clean and split the head into pieces that will fit your pot. Keep the pieces cold while you work. Bruise the lemongrass and chilies with the flat side of a knife or a pestle, just enough to crack them without turning them to pulp. Slice the galangal, tear the lime leaves, crush the shallots, and prepare the mushrooms and tomatoes. This preparation takes about 25 minutes, including arranging the fish and vegetables.
- Build the fragrant broth. Put the water or stock in a large pot with the lemongrass, galangal, lime leaves, shallots, and chilies. Bring it just to a boil over medium-high heat, then lower the heat and simmer gently for 20 minutes. Keep the lid partly on and avoid a rolling boil; a calm simmer draws out the aromatics without making the broth cloudy or overly harsh. If foam rises, skim it off with a spoon.
- Cook the fish head. Lower the fish pieces carefully into the broth, arranging them so they are mostly submerged. Return the liquid to a gentle simmer and cook for about 12 minutes, turning the pieces once if needed for even cooking. Avoid stirring vigorously, since the tender flesh can separate from the bones. Cooking time depends on the size and thickness of the pieces, so use a food thermometer in the thickest meaty part, away from bone. The USDA FSIS safe minimum internal temperature for fish is 145°F (63°C); continue simmering briefly if needed to reach it.
- Add vegetables and season. Add the mushrooms and tomatoes and simmer for 3 minutes, until the mushrooms are tender and the tomatoes have softened but still hold their shape. Stir in the fish sauce and sugar. Turn off the heat, then mix in the lime juice. Taste the broth: add fish sauce for more savory saltiness, lime for sharper sourness, or a little more sugar if the lime is especially tart. Keep the fish pieces intact while seasoning.
- Finish and serve. Scatter the cilantro and scallions over the soup. Ladle the broth, vegetables, and fish pieces into warm bowls, taking care around the bones. Offer extra lime wedges and, if desired, sliced chilies at the table. The soup is best served hot, soon after the lime and herbs are added.
Tips
Choose a head with plenty of meat. A fishmonger can clean and split it, which makes the pieces easier to fit in a pot and serve. Snapper, grouper, and other firm white fish are practical choices. The head should smell mild and fresh, not strongly fishy. If using a very large head, ask for it to be cut into several pieces so they cook evenly and are easier to check with a thermometer.
Find a balance rather than chasing a fixed flavor. Lime strength, chili heat, and fish sauce saltiness all vary. Add the fish sauce and lime in the stated amounts first, then adjust a little at a time at the end. Lime juice goes in after cooking because prolonged simmering dulls its fresh aroma. For a gentler bowl, use two chilies and leave them whole; for more heat, bruise additional chilies or serve them sliced on the side.
Use a sensible substitute for hard-to-find herbs. Galangal has a sharper, piney, citrus-like flavor than common ginger. If you cannot find it, use the same amount of sliced ginger; the broth will taste warmer and less distinctly Thai, but will still be fragrant. Makrut lime leaves are also sometimes sold as kaffir lime leaves. If unavailable, add a few thin strips of lime zest while the broth simmers, then remove them before serving; zest is more one-dimensional, so the soup loses some of the leaves’ floral character.
Keep the broth gentle. A hard boil can break the fish into small pieces and make it difficult to serve neatly. Lower the heat after adding the fish, and use a wide spoon or tongs to move pieces only when necessary. If the pot is crowded, cook the fish in two batches or use a larger pot rather than stacking the pieces tightly.
Serving Suggestions
Serve the soup as the centerpiece of a meal with steamed jasmine rice. Rice softens the sharp, spicy broth and makes a little fish go further; diners can spoon broth over the rice or eat it from a separate bowl. A plate of sliced cucumber, crisp greens, or lightly steamed vegetables makes a refreshing side without competing with the lime and herbs.
For a family-style meal, set the pot on a heatproof surface and let everyone choose a fish piece, while making clear that the head contains small bones. Provide a serving spoon for broth and a separate utensil for fish. Extra lime wedges, chopped cilantro, and sliced chilies let each person adjust their bowl. If serving a mixed menu, pair the soup with plain rice and mild dishes rather than another strongly sour or spicy preparation.
Variations
Make it milder. Leave out the bird’s-eye chilies or add just one whole chili without bruising it. The broth will keep its lemongrass and lime fragrance but lose much of its heat. Diners who want more spice can add sliced chili individually, which is easier than trying to tone down a pot that has become too hot.
Use fish steaks instead of the head. About 2 lb (900 g) of bone-in fish steaks can stand in for the head. Add them after the aromatic broth has simmered, and check the thickest flesh for 145°F (63°C), since cooking time varies with thickness. The broth will be less gelatinous and the serving will be simpler, though it will not have the same assortment of head meat.
Add greens or a different mushroom. A few handfuls of sliced napa cabbage or tender Asian greens can go in during the final few minutes. Shiitake mushrooms are another option; they give a deeper, earthier flavor than oyster or straw mushrooms. Keep additions modest so they do not overwhelm the clean, sour broth or make it difficult to serve the fish.
Adjust the sourness carefully. Lime juice gives the soup a fresh, direct sourness. For a rounder tart flavor, dissolve 1–2 teaspoons (5–10 g) of tamarind concentrate in the hot broth, then add lime gradually and taste. Tamarind is a variation rather than a required ingredient; it makes the soup darker and fruitier, so reduce the lime slightly if the result tastes too sharp.
Storage and Reheating
For food safety, refrigerate leftovers within 2 hours of cooking. If possible, separate the fish pieces from the broth and vegetables before chilling, and store everything in shallow, covered containers so it cools promptly. The soup keeps for 3–4 days in the refrigerator. Fish can become more delicate as it sits, so handle the pieces gently when transferring them.
Reheat only the amount you plan to eat. Warm the broth and fish gently in a covered saucepan over medium-low heat until the leftovers reach 165°F (74°C), checking with a food thermometer; avoid a prolonged boil, which can make the fish fall apart. You can also reheat individual portions in a microwave-safe bowl, stirring the broth partway through and checking the temperature in more than one place. Add fresh lime and herbs after reheating to restore their bright flavor.
For longer storage, freeze the cooled soup in airtight, freezer-safe containers for up to 2–3 months for best quality. Thaw it overnight in the refrigerator, then reheat to 165°F (74°C). The broth freezes better than the fish’s texture: after thawing, the flesh may be softer and more likely to separate from the bones. Do not leave the soup at room temperature to thaw.
Frequently Asked Questions
What fish is best for Thai fish head soup?
Choose a fresh, firm fish head with enough meat to make serving worthwhile. Snapper and grouper are good options, but other firm white fish can work. Ask the fishmonger to clean and split it, and choose pieces that fit your pot. The exact fish changes the broth’s flavor slightly, so taste and adjust the fish sauce and lime before serving.
Can I make this soup without galangal or makrut lime leaves?
Yes. Sliced ginger can replace galangal in an equal amount, though it tastes warmer and less citrusy. If you cannot find makrut lime leaves, simmer a few thin strips of lime zest in the broth and remove them before serving. Neither substitution is identical, but lemongrass, lime juice, fish sauce, and cilantro still give the soup a lively aromatic character.
How do I eat the fish head without getting bones in my mouth?
Use a spoon and chopsticks or a fork to lift off the larger pieces of cooked flesh, checking each bite for small bones. Fish heads naturally contain bones and cartilage, so serve them with care, especially to children. If you prefer an easier meal, use bone-in fish steaks or boneless fish portions and check them for the same safe internal temperature.
Can I make the broth ahead?
Yes. Simmer the water or stock with the lemongrass, galangal, lime leaves, shallots, and chilies, then strain out the aromatics if you want a clearer broth. Cool and refrigerate it promptly, then use it within 3–4 days. Reheat the broth to a simmer before adding the fish, and add lime juice and fresh herbs only at the end.
Why did my fish break apart?
Fish can flake when it is moved too much, cooked in a vigorous boil, or left in the pot longer than necessary. Keep the broth at a gentle simmer, lower the fish in carefully, and turn pieces only if they need it. Check the thickest flesh with a thermometer and remove the pot from the heat once the fish reaches 145°F (63°C).
Can I make the soup less salty or sour?
Use unsalted water or stock and begin with a little less fish sauce, then add more to taste. For less sourness, start with 1 tablespoon (15 ml) lime juice instead of 2 tablespoons and add a few drops at a time at the end. Salt and sourness are easier to add than remove, so make those final adjustments gradually.
Related
- Portuguese White Bean Stew with Kale and Sausage Recipe
- Portuguese Tomato Soup: A Simple Rustic Recipe
- Portuguese Fish Soup: Traditional Sopa de Peixe Recipe
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).