Soups & Stews
This West African fish soup recipe brings the vibrant flavors of coastal communities to your kitchen, where aromatic spices and tender fish create a dish that's both comforting and deeply satisfying. The secret lies in slow-simmering the broth with fresh tomatoes, peppers, and okra until the flavors meld into a rich, velvety base that perfectly complements flaky fish like tilapia or mackerel. I've perfected this version after years of experimenting with traditional techniques, balancing heat, acidity, and earthiness for a soup that's complex yet approachable.
The beauty of this recipe is in its versatility—it's hearty enough for a family dinner but simple enough for a weeknight meal. We start with a base of onions, garlic, and ginger, which form the aromatic foundation before adding tomatoes and peppers that cook down into a thick, flavorful paste. Okra contributes its signature sliminess, while thyme and bay leaves infuse the broth with deep, earthy notes. The fish cooks just until tender, ensuring it stays moist and flaky.
What you'll end up with is a steaming bowl of golden broth filled with tender fish, vibrant vegetables, and a garnish of fresh herbs that adds brightness. The aroma alone will have everyone gathering around the table, and each spoonful delivers layers of flavor—savory, slightly spicy, and tangy all at once. This is the kind of soup that feels like a hug in a bowl, perfect for serving with fufu, rice, or crusty bread.
One of the best things about this recipe is how it adapts to what you have on hand. Whether you're using fresh or dried okra, local fish varieties, or adjusting the spice level to taste, it's a dish that evolves with your preferences. Let's get cooking—this African fish soup is about to become a staple in your meal rotation.
Ingredients for african fish soup
Just 16 ingredients for a soup that tastes like home and tradition.
| Ingredient | Amount | Notes |
|---|---|---|
| Fresh Tilapia Fillets 🐟 | 1 ½ lb | Skin-on preferred for texture |
| Yellow Onions 🧅 | 1 whole | Diced, medium size |
| Garlic Cloves 🧄 | 6 cloves | Minced, fresh preferred |
| Fresh Ginger 🌿 | 1 inch | Thinly sliced, peeled |
| Fresh Tomatoes 🍅 | 4 medium | Diced, Roma preferred |
| Bell Peppers 🌶️ | 1 whole | Red or green, diced |
| Fresh Okra 🌱 | 1 cup | Sliced, fresh or frozen |
| Fresh Thyme 🌿 | ¼ cup | Leaves only, chopped |
| Bay Leaves 🍃 | 2 whole | Fresh preferred |
| Scotch Bonnet Peppers 🌶️ | 1 whole | Seeded, adjust for heat |
| Fish Stock 💧 | 4 cups | Homemade or quality store-bought |
| Olive Oil 🫒 | ¼ cup | Extra-virgin for richness |
| Lemon Juice 🍋 | 2 tbsp | Freshly squeezed |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
The fish is the star—tilapia or mackerel work best, but any firm white fish will do. Look for freshness at local seafood markets or the fish counter at Whole Foods. If using frozen, thaw overnight in the fridge. For the okra, fresh is ideal—it adds that signature velvety texture—but frozen works in a pinch. The tomatoes? Roma hold up better than beefsteak when simmered. And those Scotch bonnet peppers? Buy one, seed it, and use the rest in other dishes—they're worth the heat.
No fresh okra? Frozen okra works perfectly—just thaw and slice. Skip the Scotch bonnet? Jalapeño or habanero at half the amount adds heat without overpowering. The thyme can be dried (use one-third the amount), but fresh is better if you've got it. For the fish stock, homemade is ideal, but Pacific Foods or Imagine brands are solid store-bought options. The bell pepper can be swapped for tomato paste (2 tbsp) if you're short on fresh veggies.
This soup tastes even better the next day—double the batch and freeze half for later. Store leftovers in the fridge for 4-5 days or freeze for 3 months. The fish cooks quickly, so add it last. For serving, keep the broth warm on low heat—it only gets richer as it sits. Garnish with fresh cilantro right before eating, or it'll wilt in the hot broth.
Why You'll Love This Recipe
- Pantry Magic: I swear by this recipe when I forget to grocery shop—just onions, garlic, and ginger from my stash, plus whatever tomatoes I have. The tilapia fillets cook in minutes, and the broth builds flavor without needing fancy ingredients.
- Ginger-Garlic Punch: That fresh ginger and garlic combo? It’s the secret weapon. The ginger adds a zesty warmth while the garlic deepens the soup’s richness—like a hug in a bowl. (Honestly, my husband steals bites before the fish even goes in.)
- Weeknight to Dinner Party: Same recipe, different vibes. Simmer it for 20 minutes for a quick weeknight meal, or let it slow-cook for hours with extra tomatoes and a splash of palm oil for a showstopper at gatherings. The tilapia stays flaky either way.
- Leftovers That Don’t Suck: Most soups turn sad the next day, but not this one. The fish stays moist, the broth thickens beautifully, and I’ve reheated it three times—each time just as good. Bonus: it freezes like a dream for lazy Mondays.
Step-by-step instructions for West African spice-simmered fish soup
Let's build this rich, aromatic soup layer by layer—where every ingredient transforms into bold, comforting flavor.
Build the Spice and Aromatic Base
Heat the 0.25 cup olive oil in a large pot over medium heat. Add the 1 whole yellow onions and cook for 5 minutes until softened and translucent. Stir in the 6 cloves garlic cloves and 1 inch fresh ginger, cooking for 1 minute until fragrant—this is where the foundation of flavor begins.
Add the 1 whole bell peppers and 4 medium fresh tomatoes, stirring to combine. Let them cook for 5 minutes until the tomatoes break down and the mixture becomes a thick, vibrant paste. This step develops the soup's signature depth—don't rush it. The tomatoes will release their juices and create a rich base for the rest of the ingredients.
Incorporate Heat and Herbs
Reduce heat to medium-low and add the 1 whole scotch bonnet peppers (seeded if you prefer less heat), 0.25 cup fresh thyme, 2 whole bay leaves, 1.5 tsp salt, and 0.5 tsp black pepper. Stir well to distribute the spices evenly. Let the mixture simmer for 3 minutes, allowing the flavors to meld together—this is where the soup starts to come alive with its signature warmth.
Here's the thing—don't walk away. The scotch bonnet adds a fiery kick, but the thyme and bay leaves will mellow it into something complex and balanced. If you're sensitive to heat, you can remove the seeds and membranes before adding it.
Add Okra and Fish Stock
Increase heat to medium and stir in the 1 cup fresh okra. Cook for 5 minutes, stirring occasionally, until the okra softens slightly. This step thickens the soup naturally—okra acts as a gentle thickener without requiring any additional starch.
Pour in the 4 cups fish stock and bring the mixture to a gentle boil. Once boiling, reduce heat to low and let it simmer for 10 minutes. This allows all the flavors to infuse into the stock, creating a harmonious broth that will cradle the fish beautifully. Skim off any foam that rises to the surface for a cleaner-tasting soup.
Cook the Fish to Perfection
Gently add the 1.5 lb fresh tilapia fillets (skin-side down if skin-on) to the simmering soup. The fish should float just below the surface. Cover the pot and let it cook for 8-10 minutes until the fish is opaque and flakes easily with a fork. You'll know it's done when it releases from the bone with minimal resistance—this ensures tender, moist fish every time.
I like to check the fish after 7 minutes to ensure it doesn't overcook. The soup should be hot enough to cook the fish through but not so aggressive that it breaks the fillets apart. If the soup reduces too much during cooking, add a splash of water to maintain the proper consistency.
Finish and Serve with Freshness
Remove the pot from heat and stir in the 2 tbsp lemon juice and 0.25 cup fresh cilantro. Let the soup rest for 5 minutes—this allows the flavors to settle and the lemon to brighten the dish without overpowering the other elements. The cilantro adds a fresh, herbal note that cuts through the richness of the soup.
Ladle the soup into bowls, ensuring each serving gets a generous portion of fish. Garnish with additional cilantro if desired. Serve immediately with crusty bread or steamed rice to soak up every last drop of that flavorful broth. This soup tastes even better the next day as the flavors continue to develop, but the fish is best enjoyed fresh.
Pro Tips For Making African Fish Soup
- Sear the Fish First: Tiltapia fillets turn rubbery if you drop them straight into the simmering broth. Hit a dry skillet over medium-high heat, add a splash of oil, and sear the fish skin-side down for 2-3 minutes until golden—then transfer to the soup. The crust locks in flavor and keeps the flesh tender.
- Blanch the Tomatoes: I used to just chop tomatoes raw, but blanching them first (drop whole into boiling water for 30 seconds, then ice bath) removes bitterness and concentrates their sweetness. Finely dice them afterward—they’ll release more juice into the soup, making it richer without overpowering the fish.
- Low and Slow for Stock: African fish soup relies on a deep, aromatic base. After frying onions, garlic, and ginger, don’t rush the stock. Simmer with a splash of water (or fish stock) at gentle heat for 10 minutes—this dissolves flavors, not just water. Stir occasionally to prevent burning.
- Save the Ginger Juice: Grate ginger fine, but don’t toss the leftover pulp. After squeezing out the juice for the soup, blend the fibrous bits with a little water and strain it back in. That extra ginger punch makes the difference between "good" and "unforgettable"—trust me, I’ve tasted both.
Regional styles of this african fish soup
West African Style
This version stays true to coastal Ghanaian and Nigerian traditions, where fish soup is a centerpiece of family meals. The key difference here is the longer simmer time—typically 30-45 minutes—which develops a deeper, more complex broth. I like to add 1 extra bay leaf and ½ tsp smoked paprika for that authentic smoky depth. The fish is often whole small fish (like croaker or mackerel) rather than fillets, cooked directly in the broth for 12-15 minutes until the bones are easily picked. 🌶️
East African Twist
In Kenya and Tanzania, the soup takes on a lighter, brighter profile with coconut milk (¼ cup) added at the end for creaminess. Swap the okra for 1 cup spinach or kale, and use green chili peppers instead of Scotch bonnet. The fish choice shifts to red snapper or kingfish, and serve with ugali (maize porridge) instead of rice. I've found that adding 1 tsp ground coriander enhances the East African character beautifully.
Senegalese Version
Senegalese fish soup, or thieboudienne, incorporates broken rice (½ cup) cooked directly in the broth for a one-pot meal. The base includes 1 tbsp tomato paste and 1 tsp dried shrimp for umami depth. Use firm white fish like cod and add 1 small cabbage, quartered, during the final 10 minutes of cooking. The dish is traditionally served with a spicy peanut sauce on the side—a perfect contrast to the creamy soup. 🥗
Nigerian Okra Focus
For a thicker, more okra-forward version, increase the okra to 1½ cups and reduce the stock to 3 cups. This style often includes palm oil (1 tbsp) for a rich, reddish hue and deeper flavor. Add 1 cup pumpkin leaves (or spinach) and ½ lb smoked fish for extra complexity. The soup is typically served with pounded yam or garri (cassava flour). I've noticed this version holds up exceptionally well when reheated—perfect for meal prep.
Cape Verdean Adaptation
Cape Verdean fish soup incorporates dried malagueta peppers (½ tsp) and 1 tsp annatto seeds for color. The broth is often lighter, with less okra (½ cup) and more tomato (6 medium). Use salt cod (soaked overnight) instead of fresh fish, and finish with 1 tbsp vinegar for tang. Serve with cornmeal fritters or coconut bread. This version is particularly popular during festivals and family gatherings.
Nutrition facts
Frequently asked questions
What type of fish works best for this African fish soup?
Firm white fish like tilapia, mackerel, or red snapper work beautifully, but any mild-flavored fish like cod or halibut will do. For authentic West African versions, smaller whole fish (like croaker) are traditional. Avoid delicate fish like sole, as they can fall apart in the broth.
Can I make this soup without okra?
Yes! If you can't find okra, substitute with 1 tbsp cornstarch mixed with 2 tbsp water to thicken the broth. For a different texture, add 1 cup diced sweet potato instead—it'll soften and blend into the soup naturally. The soup will still be flavorful, just with a slightly different mouthfeel.
How do I adjust the spice level?
Remove the seeds and membranes from the Scotch bonnet pepper for milder heat, or use jalapeño instead. For extra spice, add ½ tsp cayenne pepper when incorporating the herbs. Always taste as you go—you can reduce heat by adding more tomatoes or lemon juice at the end.
Can I prepare this soup ahead of time?
Make the broth and prep all ingredients up to Step 3, then refrigerate for up to 3 days. When ready to serve, reheat the broth, add the fish (cooking it fresh), and finish with lemon and cilantro. For longer storage, freeze the broth (without fish) for 3 months
What's the best way to serve this fish soup?
Pair it with steamed rice, fufu, or crusty bread to soak up the rich broth. For a complete meal, add a side of collard greens or plantains. In East Africa, it's traditionally served with ugali (maize porridge), while West African versions often include garri or pounded yam.
