Kakavia (Κακαβιά) — Greek Fisherman’s Fish Soup with Herbs
Kakavia is a classic Greek fisherman’s soup, traditionally made dockside with the day’s mixed catch, olive oil, lemon, and herbs. It’s light yet deeply savory, celebrating the Aegean love of simple, pristine seafood.

Printable Recipe Card
Servings: 6 · Total: 65 min · Difficulty: medium
Ingredients (quick list)
- 900 g whole white fish (e.g., red mullet, sea bream, or snapper), scaled and gutted (Use 2 small fish or 1 medium; include heads and bones for broth)
- 250 g raw shrimp, shell-on (Optional but traditional in island versions)
- 45 ml extra-virgin olive oil
- 180 g yellow onion, thinly sliced
- 120 g leek (white and light green), thinly sliced
- 120 g carrot, sliced into 5 mm rounds
- 100 g celery stalks, sliced
- 10 g garlic cloves, lightly crushed
- 450 g potatoes, peeled and cut into 3 cm chunks
- 120 g tomato, grated (For a slightly rosier, island-style broth)
- 120 ml dry white wine
- 1600 ml water
+ 7 more in the full ingredients section below.
Steps (summary)
- Rinse the fish and shrimp under cold water and pat them dry thoroughly. If using shrimp, peel them and reserve the shells separ…
- Heat the olive oil in a wide pot over medium heat, then add onion, leek, carrot, and celery. Cook for 8 minutes, stirring often…
- Add the crushed garlic and cook for 60 seconds, just until fragrant. Pour in the white wine and simmer for 2 minutes to reduce…
- Add the water, bay leaves, salt, pepper, and the reserved shrimp shells if using. Bring to a gentle simmer and cook for 10 minu…
- Stir in the potatoes and the grated tomato (if using), then return the pot to a gentle simmer. Cook for 15 minutes, until the p…
- Lower the heat so the broth barely trembles, then slide in the whole fish. Simmer gently for 10 minutes, turning the fish once…
+ 3 more steps in the full instructions section below.
Cultural Background
Kakavia began as a practical fisherman’s meal, simmered on boats with mixed small fish, seawater, and wild herbs. Today it remains a beloved Greek seaside staple, prized for its clean broth and lemony finish that highlights ultra-fresh catch.
Equipment
💡 Tips
- Keep the soup at a gentle simmer after the fish goes in; a rolling boil breaks the fish and turns the broth cloudy.
- Straining the broth is the easiest way to get a clean, classic kakavia texture while still extracting maximum flavor from bones and aromatics.
- Add lemon juice off the heat to preserve its fresh aroma and prevent bitterness.
⚠️ Common Mistakes
❌ Boiling the soup hard after adding the fish.
✅ Fix: Keep the heat low so the liquid barely simmers; if it starts to boil, slide the pot off the burner for 1 minute and then continue gently.
❌ Overcooking shrimp until rubbery.
✅ Fix: Add shrimp only after straining the broth and cook for about 2 minutes, then stop the heat as soon as they turn pink.
❌ Leaving pin bones in the fish.
✅ Fix: Let the fish cool slightly, then flake with your fingers and inspect each piece under good light before returning it to the pot.
🧊 How to Store
Cool the soup within 1 hour and refrigerate in a sealed container for up to 2 days. Reheat gently over low heat to 70°C, stirring minimally; avoid boiling to keep the fish intact. Add an extra 10 ml lemon juice after reheating to refresh the flavor.
📅 Make Ahead
Slice the vegetables and peel the shrimp up to 12 hours ahead, keeping everything refrigerated in separate containers. You can also simmer the aromatic broth (without fish) up to 24 hours ahead, chill it, and reheat gently before poaching the fish fresh.
🍽️ Pairs Well With
- Crusty village bread
- olives
- Greek salad
- skordalia
- lemon wedges
Regional Variations
- Aegean island style: add grated tomato and a pinch more oregano for a lightly rosy, aromatic broth.
- Crete-style: increase olive oil to 60 ml and add 10 g fennel fronds for a richer, more herbal profile.
- Boat-style shortcut: use only small bony fish for stock, strain, then finish with a few prime fillets poached briefly in the clear broth.
Ingredients
- 900 gwhole white fish (e.g., red mullet, sea bream, or snapper), scaled and gutted (Use 2 small fish or 1 medium; include heads and bones for broth)
- 250 graw shrimp, shell-on (Optional but traditional in island versions)
- 45 mlextra-virgin olive oil
- 180 gyellow onion, thinly sliced
- 120 gleek (white and light green), thinly sliced
- 120 gcarrot, sliced into 5 mm rounds
- 100 gcelery stalks, sliced
- 10 ggarlic cloves, lightly crushed
- 450 gpotatoes, peeled and cut into 3 cm chunks
- 120 gtomato, grated (For a slightly rosier, island-style broth)
- 120 mldry white wine
- 1600 mlwater
- 2 leafbay leaves
- 15 gfresh parsley, chopped
- 8 gfresh dill, chopped
- 2 gfresh oregano leaves, chopped (Or 1 tsp dried oregano (1 g))
- 60 mllemon juice (freshly squeezed)
- 10 gfine sea salt
- 1 tspblack pepper, freshly ground (About 2 g)
🔄 Substitutions
- whole white fish (e.g., red mullet, sea bream, or snapper)→ cod or haddock (whole or bone-in pieces)
- dry white wine→ water plus 15 ml lemon juice
- fresh dill→ fresh fennel fronds
Instructions
- 1
Rinse the fish and shrimp under cold water and pat them dry thoroughly. If using shrimp, peel them and reserve the shells separately; keep the shrimp meat chilled while you build the broth.
- 2
Heat the olive oil in a wide pot over medium heat, then add onion, leek, carrot, and celery. Cook for 8 minutes, stirring often, until the vegetables soften and smell sweet but do not brown.
- 3
Add the crushed garlic and cook for 60 seconds, just until fragrant. Pour in the white wine and simmer for 2 minutes to reduce slightly and cook off the harsh alcohol edge.
- 4
Add the water, bay leaves, salt, pepper, and the reserved shrimp shells if using. Bring to a gentle simmer and cook for 10 minutes so the aromatics and shells perfume the liquid without turning it cloudy from a hard boil.
- 5
Stir in the potatoes and the grated tomato (if using), then return the pot to a gentle simmer. Cook for 15 minutes, until the potatoes are nearly tender when pierced with a knife.
- 6
Lower the heat so the broth barely trembles, then slide in the whole fish. Simmer gently for 10 minutes, turning the fish once if needed, until the flesh flakes easily and the eyes look opaque.
- 7
Lift the fish out carefully onto a tray and let it cool for 5 minutes so you can handle it safely. Strain the broth through a fine sieve into a clean pot, pressing lightly on the vegetables for flavor, then discard the bay leaves and any shrimp shells.
- 8
Pick the fish meat from the bones and skin, keeping the pieces fairly large, and check meticulously for pin bones. Return the strained broth to a gentle simmer, add the shrimp meat, and cook for 2 minutes until just pink and tender.
- 9
Add the fish pieces back to the pot along with parsley, dill, and oregano, and warm for 1 minute without boiling. Turn off the heat, stir in the lemon juice, and rest the soup for 5 minutes so the flavors round out and the herbs stay bright.
🪪 Recipe Passport
Cultural Background
Kakavia began as a practical fisherman’s meal, simmered on boats with mixed small fish, seawater, and wild herbs. Today it remains a beloved Greek seaside staple, prized for its clean broth and lemony finish that highlights ultra-fresh catch.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Slow-Baked Chickpeas (Ρεβύθια φούρνου) — Greek chickpeas with onion and bay
Greek · Main Courses · 205 min

Fasolakia Lathera (Φασολάκια λαδερά) — Greek Green Beans Braised in Tomato and Olive Oil
Greek · Main Courses · 70 min

Kokoretsi (Κοκορέτσι) — Charcoal-Grilled Offal Wrapped in Caul Fat
Greek · Kebabs · 170 min

Romanian Tripe Soup (Ciorbă de burtă) — Creamy Sour Beef Tripe Soup
Romanian · Soups · 270 min

Cold Beet Soup (Aukstā zupa) — Latvian Kefir Beet Summer Soup
Latvian · Soups · 45 min

Izmir Kofte (İzmir Köfte) — Oven-Baked Meatballs with Tomato Sauce and Potatoes
Turkish · Main Courses · 70 min

Sac Kavurma (Saç Kavurma) — Thin-Sliced Turkish Meat Sautéed with Onions
Turkish · Main Courses · 38 min

Amygdalota (Αμυγδαλωτά) — Chewy Greek Almond Cookies with Orange and Almond
Greek · Desserts · 38 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.