Brazilian fish soup is a coastal-style bowl of tender white fish in a tomato, coconut milk, and herb broth, with bright lime to balance its richness. Brazilian versions vary by region and household; this soup borrows flavors associated with moqueca while keeping the broth spoonable and the method straightforward.
Ingredients
- 1½ lb (680 g) firm white fish fillets, such as cod, haddock, halibut, or snapper, skin removed if needed
- 1 tsp fine salt (5 g), plus more to taste
- ¼ tsp ground black pepper (0.5 g)
- 1 medium yellow onion (150 g), finely chopped
- 1 medium red or yellow bell pepper (150 g), seeded and diced
- 3 garlic cloves (9 g), finely chopped
- 1 small jalapeño or mild fresh chile (about 10 g), seeded and finely chopped; optional
- 1 tbsp dendê oil (15 ml), also called red palm oil
- 1 can diced tomatoes, 14.5 oz (411 g), with their juices
- 4 cups fish stock (950 ml), preferably low-sodium
- 1 can full-fat coconut milk, 13.5 oz (400 ml), well shaken
- ½ tsp ground cumin (1 g)
- 2 tbsp fresh lime juice (30 ml), plus lime wedges for serving
- ½ cup loosely packed chopped fresh cilantro (15 g)
- 2 scallions (20 g), thinly sliced
Instructions
- Prepare the fish and vegetables, 25 minutes. Cut the fish into even chunks about 1¼ inches (3 cm) wide so they finish cooking at roughly the same time. Pat the pieces dry and season them with the salt and black pepper. Chop the onion, bell pepper, garlic, optional chile, cilantro, and scallions. Keep the fish chilled while you prepare the soup base, and set the herbs aside for finishing.
- Soften the aromatics, 7 minutes. Heat the dendê oil in a large, heavy-bottomed pot over medium heat. Add the onion and bell pepper and cook, stirring occasionally, until softened but not browned, about 5 minutes. Add the garlic, optional chile, and cumin; stir for 2 minutes, just until fragrant. If the vegetables begin sticking, lower the heat and add a spoonful of stock rather than letting the garlic scorch.
- Build the tomato broth, 9 minutes. Stir in the diced tomatoes and their juices, then pour in the fish stock. Bring the mixture to a gentle boil, lower the heat, and simmer uncovered for 9 minutes. The onion and pepper should be tender, and the broth should taste savory rather than raw or sharply acidic. Taste a spoonful before adding more salt, especially if your stock is not low-sodium.
- Add the coconut milk, 2 minutes. Pour in the shaken coconut milk and stir until the broth is a uniform pale orange. Bring it back to a gentle simmer over medium-low heat, about 2 minutes. Avoid a hard boil: vigorous boiling can make the broth look separated, and it is not needed to cook the fish.
- Cook the fish, about 10 minutes. Slide the fish chunks into the gently simmering broth, spacing them out, then cook without stirring vigorously for 8 to 10 minutes. Turn particularly large pieces carefully once if they are not mostly submerged. Check the thickest fish piece with a food thermometer; USDA FSIS lists 145°F (63°C) as the safe minimum internal temperature for fish. The flesh should also be opaque and separate easily into flakes. If it has not reached temperature, continue simmering briefly and check again.
- Finish and serve, 2 minutes. Turn off the heat, stir in the lime juice, cilantro, and scallions, and taste the broth. Add salt or another squeeze of lime if needed. Ladle the soup gently so the fish stays in generous pieces, and pass lime wedges at the table.
Tips
- Choose fish that holds its shape. Cod, haddock, snapper, halibut, and pollock are useful options. Very delicate fillets can break apart when stirred, so lower those into the broth at the end and move the pot gently instead of stirring with a spoon.
- Dendê oil has a distinctive flavor. Red palm oil is traditional in many moqueca-style preparations, but it may be difficult to find. Use the same amount of olive oil or neutral cooking oil instead, plus a small pinch of sweet paprika if you want some of its color. The result will still be good, though it will lack dendê’s earthy aroma.
- Keep the broth at a quiet simmer. A rolling boil can break delicate fish into small flakes and may cause the coconut milk to separate. Once the fish is in the pot, resist the urge to stir repeatedly; a gentle simmer and careful serving are enough.
- Adjust salt at the end. Fish stock, canned tomatoes, and coconut milk vary in saltiness. Starting with measured salt and tasting after the broth reduces gives you better control. Add lime gradually, too: it should lift the coconut broth, not make it taste sour.
Serving Suggestions
Serve the soup hot in wide bowls, making sure each serving gets fish, vegetables, and plenty of broth. Steamed white rice is a natural accompaniment: spoon it into the bowl or serve it alongside so diners can choose how much to add. In Brazil, rice is a familiar partner for saucy fish dishes, and here it makes the soup more substantial without competing with the herbs and lime.
For a lighter meal, offer crusty bread or toasted cassava flour on the side for catching the broth. A simple salad of lettuce, cucumber, and tomato adds a cool contrast. Put extra lime wedges and chopped cilantro on the table, along with sliced chile for anyone who wants more heat. Because the soup is already rich from coconut milk, a crisp, lightly dressed side works better than a heavy or creamy accompaniment.
Variations
Make it closer to a moqueca-inspired stew: Reduce the fish stock to 3 cups (710 ml) and simmer the vegetables until the broth is a little thicker. The result is less soup-like and is especially good served over rice. Moqueca has regional and family variations, so this is a practical direction rather than a claim to one definitive version.
Use shrimp with the fish: Replace up to 8 oz (225 g) of the fish with peeled, deveined shrimp, keeping the total seafood quantity at about 1½ lb (680 g). Add the shrimp during the final 4 to 5 minutes; cook until opaque and check that it reaches 145°F (63°C). Do not add it at the same time as the fish chunks, since shrimp generally cook faster.
Make a milder or hotter pot: Leave out the fresh chile for a gentle broth, or add a little more chile for heat. You can also use a pinch of red pepper flakes, but add it with the garlic so it flavors the oil. For a slightly less rich soup, replace up to 1 cup (240 ml) of coconut milk with an equal amount of stock; the broth will be lighter and less creamy.
Change the herbs carefully: Cilantro is a familiar finishing herb in many Brazilian coastal preparations. If you dislike it, use flat-leaf parsley, understanding that the flavor will be fresher and less citrusy. A small amount of chopped cilantro can still be added at the table for those who enjoy it.
Storage and Reheating
Refrigerate leftovers within 2 hours of cooking in a shallow, covered container. The soup keeps for 3 to 4 days in the refrigerator. For the best texture, store the fish in the broth rather than separating it, but handle the pieces gently when portioning. The coconut broth may look slightly separated after chilling; that is usually a texture change, and gentle reheating with a stir will bring it back together.
Reheat only the portion you plan to eat in a saucepan over low to medium-low heat, stirring the broth gently and turning the fish carefully. Heat leftovers to 165°F (74°C), checking with a food thermometer, and avoid boiling them for a long time because the fish can become dry and break apart. A microwave also works: cover a microwave-safe bowl loosely, heat in short intervals, and stir the broth carefully between intervals so it warms evenly. Add a fresh squeeze of lime after reheating if the flavors seem muted.
For longer storage, freeze the soup in airtight freezer-safe containers for up to 2 months for best quality. Leave a little room at the top for expansion and thaw it overnight in the refrigerator before reheating. Fish may become softer after freezing and thawing, but the soup remains suitable to reheat if it was cooled and stored promptly. Do not leave the soup at room temperature for extended storage.
Frequently Asked Questions
What fish is best for Brazilian fish soup?
Choose a firm white fish that can be cut into chunks and hold together in hot broth. Cod, haddock, snapper, halibut, and pollock are all practical choices. Fresh or properly thawed frozen fillets work; if using frozen fish, thaw it in the refrigerator, drain away excess liquid, and pat it dry before seasoning.
Can I make this soup without coconut milk?
Yes. Replace the coconut milk with an equal amount of additional fish stock for a lighter, tomato-forward broth. It will not have the creamy texture or coconut flavor associated with this version, so finish with lime and herbs and taste carefully for salt. Avoid substituting sweetened coconut beverage, which is thinner and may contain added sugar.
Is Brazilian fish soup the same as moqueca?
Not exactly. Moqueca is a Brazilian fish or seafood stew with regional versions, and coconut milk and dendê oil are associated with some well-known styles. This recipe uses related flavors in a more brothy soup. The names and ingredients used for fish dishes can vary across Brazil and between households.
Can I prepare the soup ahead?
You can chop the vegetables and herbs a day ahead and keep them covered in the refrigerator. You can also make the tomato and stock base earlier, refrigerate it within 2 hours, and bring it back to a simmer when ready to finish. For the best fish texture, add and cook the fish shortly before serving rather than leaving it in hot broth for a long time.
Why did my coconut broth separate?
Coconut milk can look grainy or oily if it is boiled hard, and some brands separate more readily than others. Keep the soup at a gentle simmer, stir the coconut milk in before adding the fish, and avoid prolonged boiling. If it separates, lower the heat and stir slowly; it may look smoother again, though the flavor should still be fine.
Can I use frozen fish directly in the soup?
Thawing first gives you more control over cooking time and prevents extra water from thinning the broth. Thaw the fish overnight in the refrigerator, or use a sealed package under cold running water if you need a quicker method. Pat it dry, cut it into even pieces, and cook until the thickest piece reaches 145°F (63°C).
Related
- Nigerian Fried Rice Ingredients: A Complete Recipe
- Nigerian Fried Rice Pictures: A Colorful Recipe Guide
- New Mexico Spanish Rice: Easy Stovetop 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).