Moqueca (moh-KEH-kah) is the fish stew of Bahia, on Brazil’s northeastern coast: chunks of firm white fish layered between onion, tomato and peppers, then cooked covered in coconut milk and dendê, a red palm oil that turns the broth deep orange. There’s no water and no stirring. The vegetables release their juices, the coconut milk makes the broth, and in about 20 minutes the fish is just cooked through. Below is the recipe for 4, which fish to buy at a US or UK fish counter, where to find dendê and what to use if you can’t, and what Brazilians serve alongside.
What moqueca tastes like, and how long it takes
How do you make moqueca? Marinate 1¾ lb (800 g) of firm white fish in 1½ in (4 cm) chunks with lime, garlic and salt for 15 to 30 minutes. Layer onion, peppers and tomato in a wide pot, add the fish in one layer and top with more vegetables, then pour over 13.5 oz (400 ml) of coconut milk and 2 tbsp of dendê oil. Cook covered, without stirring, for about 20 minutes, until the fish is opaque and reads 145°F (63°C). 55 minutes for 4 servings.
Think of it as a brothy stew, somewhere between a fish curry and a cioppino, but with neither curry spices nor wine. The broth is rich and slightly sweet from the coconut, fresh from the tomato, lime and cilantro, and the dendê adds a fruity, earthy depth you can’t get from any other oil. It isn’t spicy unless you add chile.
Two Brazilian states claim the dish. This is the Bahian version, with coconut milk and dendê. The Espírito Santo version, moqueca capixaba, uses neither: it’s colored with annatto and cooked in black clay pots.
If you like fish stews, the Colombian pescado sudado braises fish in a tomato and onion sauce with no coconut, and the Colombian fish in coconut sauce cooks the coconut sauce first and adds the fish after. For a fish soup rather than a stew, the Ecuadorian encebollado is tuna and yuca in a cumin broth.
Timing. 55 minutes in all: 30 to slice, marinate and layer, 25 on the stove including a 5-minute rest. Easy, as long as you keep the heat low and your spoon out of the pot.
Ingredients at a glance
Each person gets about 7 oz (200 g) of raw fish, with plenty of broth for rice.
| Ingredient | Metric | US | Notes and UK swaps |
|---|---|---|---|
| Firm white fish | 800 g | 1¾ lb | Thick fillets or steaks, see below |
| Coconut milk | 400 ml | One 13.5 oz can | Full-fat, unsweetened |
| Dendê (red palm) oil | 45 ml | 3 tbsp | Substitutes below |
| Onion | 200 g | 1 large | Yellow or white |
| Tomatoes | 300 g | 2 medium | Ripe |
| Bell peppers | 150 g + 150 g | 1 red + 1 green or yellow | |
| Lime juice | 30 ml | 2 tbsp | |
| Cilantro | 20 g | 1 small bunch | UK: coriander |
| Shrimp, optional | 250 g | 9 oz | UK: prawns |
Which fish to buy
You want white, lean, firm fish cut 1½ in (4 cm) thick. A thin fillet, ½ to ¾ in, falls apart before the vegetables on top are cooked. Oily fish like salmon or mackerel hold up but overpower the coconut.
- US. Halibut, mahi-mahi, grouper or red snapper. Cod and tilapia work as thick loins only, and they flake fast: no stirring and 2 minutes less.
- UK. Monkfish is the firmest and the best. Sea bass and thick cod or hake loins also work, with the same care as cod.
- Frozen. Fine if you thaw it overnight in the fridge and pat it very dry. Any water it releases thins the broth.
Shrimp. Many moquecas mix fish and shrimp. Add 9 oz (250 g) of peeled shrimp over the top for the last 4 or 5 minutes; they’re done when pink and opaque. About 45 extra calories per serving.
Dendê oil, where to find it and what to use instead
Dendê is pressed from the pulp of the African oil palm fruit. It’s thick, red-orange and strongly flavored, fruity and earthy at once, and it goes semi-solid in a cool kitchen; stand the bottle in warm water to loosen it.
Where to buy it. In the US, look in Brazilian and West African grocery stores, some Latin supermarkets, and online, sold as dendê oil or red palm oil. In the UK, African and Brazilian grocers and online shops carry it under the same names.
What not to buy. Refined palm oil is white and flavorless, and palm kernel oil comes from the seed, not the fruit. Neither gives you color or taste.
It burns easily. Dendê turns bitter over high heat on its own, so this recipe never fries it: it goes cold into the bottom of the pot, over the broth, and raw at the end.
If you can’t find it, nothing tastes the same. Pick the swap by what you want to keep:
- Coconut oil plus 1 tsp ground annatto (achiote) or sweet paprika. Coconut oil is the closest in texture and sweetness; the annatto or paprika gives the color. The best match.
- Olive oil with annatto. A paler, fresher stew that tastes more of tomato. Close to the Espírito Santo style, but with coconut milk.
- Plain olive or vegetable oil. A good coconut fish stew, pale and without dendê’s depth.
Coconut milk. Full-fat, from a 13.5 oz (400 ml) can, shaken before opening. Light coconut milk makes a watery broth, and sweetened cream of coconut (the cocktail kind) won’t work.
Equipment. A wide 11 in (28 cm) pot or Dutch oven with a lid, big enough for the fish in a single layer. Brazilians use clay pots; enameled cast iron works just as well.
Step by step, with the signs to look for
The order of work is what keeps this to under an hour: the fish marinates while you slice, and once the pot is layered there’s little to do but watch the heat.
1. A short marinade. Lime, garlic and salt, 15 to 30 minutes in the fridge. The point is seasoning, not cooking: lime starts to turn the surface white, the way it does in ceviche, and past half an hour the edges go rubbery. Drain off any liquid before layering.
2. Layers. A film of dendê, half the vegetables with a pinch of salt and cilantro, the fish in one layer, then the rest of the vegetables. The bottom layer shields the fish from direct heat, the top one traps steam. The vegetables give up their juices, which, with the coconut milk, become the broth. That’s why there’s no water.
3. Heat. Medium, covered, about 10 minutes, until the broth bubbles at the edges. Then low for 8 to 10 minutes, with gentle bubbles only. A hard boil splits the coconut milk and breaks the fish. Instead of stirring, swirl the pot by its handles once, or spoon some broth over the top.
4. Doneness. The fish is ready when it’s opaque all the way through, flakes when pressed with a fork, and reads 145°F (63°C) in the center of the thickest piece on an instant-read thermometer.
5. Finish. Heat off, the last tablespoon of dendê, the rest of the cilantro, a taste for salt and a squeeze of lime if it needs it. Rest 5 minutes, covered, and bring the pot to the table.
Why moqueca goes wrong
- The fish broke into crumbs. It was stirred, or the fillets were too thin. Swirl the pot, not the fish, and buy 1½ in (4 cm) pieces.
- Greasy, split broth. It boiled hard. Drop to low as soon as the edges bubble; on the lowest heat with a swirl it usually comes back together in a minute or two.
- Rubbery fish. It sat in lime for hours. 30 minutes at most.
- Bitter edge. The dendê was fried on high heat. Keep it off direct high heat.
- Thin, watery broth. Wet or poorly thawed fish, or light coconut milk. Move the fish to a plate and reduce the broth uncovered for 3 or 4 minutes.
- Flat taste. It needs salt or lime more than spices. Taste at the end.
Allergens and heat. Contains fish and, with shrimp, shellfish. It’s naturally gluten-free and dairy-free. Without chile it’s mild, and kids usually like it if they don’t mind cilantro.
Versions, for a crowd and the Espírito Santo style
- Shrimp moqueca. 1½ lb (700 g) of peeled shrimp on the bottom vegetable layer; once the broth bubbles, 4 to 5 minutes on low. Any longer and they toughen.
- Moqueca capixaba. No coconut milk and no dendê: olive oil colored with annatto, fish steaks, tomato, onion and cilantro, cooked covered with no water in a clay pot. Lighter, redder, and it tastes more of fish and tomato. Served with rice and pirão.
- For 8 or 12. Double or triple the recipe and use two pots, or one very wide one, so the fish stays in a single layer. Stacked two layers deep in a tall pot, it takes about 40 minutes and the bottom layer cooks before the top.
- Make-ahead. Slice the vegetables the day before and keep them covered in the fridge. Marinate the fish on the day, just before layering.
The fish, and the shrimp if you add them, are what make this expensive; the coconut milk and vegetables barely register. Halibut and monkfish cost the most; grouper, mahi-mahi or thick frozen cod loins bring it down.
What to serve with moqueca
In Brazil it goes to the table in its pot, with these around it:
- White rice, about 1 cup cooked per person. Fluffy Colombian white rice is cooked the same plain way.
- Farofa, cassava flour toasted in butter, sprinkled on top for crunch. The method is in the Brazilian feijoada with all its sides, and it can be made that morning.
- Pirão, a soft porridge of cassava flour and fish stock.
Pirão. Warm 2 cups (500 ml) of fish stock, homemade or from a cube, with 2 ladles of moqueca broth. Over low heat, sprinkle in 1 cup of coarse cassava flour (farinha de mandioca) a little at a time, whisking so it doesn’t lump, and keep stirring until it’s as thick as soft polenta and no longer tastes of raw flour. Add hot stock if it gets too thick. Look for farinha de mandioca in Brazilian shops or online; tapioca starch and fine cassava baking flour won’t work.
For a Brazilian dessert after, brigadeiros can be rolled the day before.
Storing and reheating
Fridge. Refrigerate within 2 hours in a covered container; it keeps 3 to 4 days. Raw fish should be cooked within 2 days of buying.
Freezer. Best fresh, but it freezes for 2 to 3 months. The fish softens and breaks up a little after thawing, and the coconut milk may look split; it comes back together as it warms. Thaw in the fridge.
Reheating. In a covered pot over low heat, swirling rather than stirring, until the broth steams and the fish reaches 165°F (74°C) in the center. If there’s shrimp, lift them out and add them back for the last minute only. In the microwave, use medium power in 1-minute bursts.
Moqueca questions
Can I make moqueca ahead of time? Not all the way: reheated, the fish breaks and loses juice. Slice the vegetables and make the pirão stock the day before; the cooking itself takes 25 minutes.
I don’t like cilantro. What else works? In Brazil cooks often use cheiro-verde, half cilantro and half chives. Chives or parsley alone make a milder stew without the fresh, citrusy note, but it still works.
Is moqueca the same as a Thai fish curry? No. Both use coconut milk, but moqueca has no curry paste, no fish sauce and no lemongrass. Its flavor comes from tomato, peppers, lime, cilantro and dendê.
Moqueca nutrition
Per serving (7 oz / 200 g raw fish with its share of vegetables and broth, without shrimp or rice), calculated ingredient by ingredient from the recipe:
- Calories: 510 kcal
- Protein: 40 g
- Carbohydrates: 16 g
- Fat: 33 g, including 24 g saturated
- Fiber: 3 g
- Sugar: 7 g
- Sodium: 715 mg
Most of the saturated fat comes from the coconut milk and dendê, which together account for more than half the calories. Shrimp add about 45 calories per serving; a cup of cooked white rice adds about 200.
I keep the marinade to lime, garlic and salt, because the layers bring everything else, and I build the stew in the pot I serve it in so nothing gets moved twice. The dendê goes in at three moments, and the last drizzle, raw with the heat off, is the one you taste most at the table. Josnaisis.
