Every morning when I was young on Kos, the fishing boats came back before the town was awake. My father would walk down to the harbor market near the old castle, and whatever fish the men hadn’t sold by mid-morning — the smaller ones, the odds and ends, sometimes a whole sea bass or a fat piece of grouper — that is what became psarosoupa.
Psarosoupa is the Greek fisherman’s soup, and it is older than any recipe I could write for it. It is not bouillabaisse. It is not cioppino. It is something quieter and more honest than either of those: a whole fish (or good fillets) simmered with celery, carrot, onion, and potato until the broth turns golden and the kitchen smells of the Aegean. Then, if you want to make it something truly special, you finish it off the heat with avgolemono — the egg-lemon sauce that transforms every clear Greek broth into something silky and luminous.
The focus keyword here — psarosoupa — means simply “fish soup” in Greek, but that translation doesn’t carry the weight of what it actually is. On an island like Kos, where the sea was always close, psarosoupa was not a restaurant dish. It was what you made at home, mid-week, when the fishmonger had good fish and your family was hungry. It required nothing exotic. Just good fish, a few vegetables, olive oil, lemon, and time.
That’s still how I make it. And that is what I am going to show you today.
Table of Contents
Why This Recipe Works
- Building the broth from the fish itself. Rather than opening a carton of stock, simmering the fish directly in water with aromatics pulls collagen and flavor from the flesh and bones, creating a broth that no store-bought shortcut can replicate. Whole fish is ideal; good fillets still produce an excellent result.
- Firm, white-fleshed fish hold their shape. Cod, sea bass, snapper, or halibut stay intact during simmering. Oily fish like salmon or mackerel release too much fat and overpower the delicate broth — this soup is about balance, not richness.
- The vegetable sequence matters. Onion, celery, and carrot go in early to flavor the broth; potato goes in later so it cooks through without turning to mush. This is not complicated, but the timing makes a real difference in texture.
- Avgolemono is optional but transformative. A tempered egg-lemon finish turns a clear, clean fish broth into something silky and rounded without adding any fat. The technique is identical to what I use in Youvarlakia (Greek Meatball Soup) and in my Chicken Vegetable Avgolemono Soup — the key is always to temper slowly and never return the pot to a boil after adding the egg mixture.
Ingredients
For the Soup
- 1.5-2 lbs (680-900g) white fish — whole cleaned fish or thick fillets (cod, sea bass, snapper, or halibut)
- 8 cups (2 liters) cold water
- 1 medium onion, halved
- 2 ribs celery, cut into large pieces
- 2 medium carrots, sliced into 1/2-inch rounds
- 2 medium yellow potatoes (about 500g), peeled and cut into chunks
- 3 tablespoons extra-virgin olive oil
- 1-1/2 teaspoons fine sea salt, plus more to taste
- 1/2 teaspoon black pepper
- 1 bay leaf
- Fresh dill, for serving
- Lemon wedges, for serving
For the Avgolemono Finish (Optional but Recommended)
- 2 large eggs, at room temperature
- 3 tablespoons fresh lemon juice (about 1-1/2 lemons)
Step-by-Step Instructions
Step 1: Build the Base Broth
Place the fish in a large pot with the cold water, halved onion, celery, bay leaf, olive oil, salt, and pepper. Bring to a gentle boil over medium-high heat, skimming any foam that rises to the surface during the first few minutes. Reduce heat to a steady simmer.
Chef’s note: Starting in cold water draws flavor from the fish gradually and gives you a cleaner, clearer broth. If you start in hot water, you shock the proteins and get a cloudier result.
Step 2: Simmer the Fish and Aromatics
Simmer uncovered for 20-25 minutes. If using a whole fish, it will be fully cooked through at this point. Remove the fish carefully with a slotted spoon or spider and set aside on a plate to cool slightly.
Step 3: Add the Carrots and Potatoes
Add the sliced carrots and potato chunks directly to the broth. Continue simmering for 15-20 minutes, until the potatoes are tender when pierced with a knife.
Chef’s note: If you added the potatoes at the start, they would either turn to mush or absorb so much broth that the soup tastes flat. Patience here pays off.
Step 4: Flake and Return the Fish
While the vegetables cook, remove the fish from the bone if using a whole fish, discarding the skin, bones, and the onion and celery pieces from the broth. Flake the flesh into large, clean pieces. Return the fish to the pot for the last 5 minutes of cooking.
Step 5: Taste and Adjust
Before finishing, taste the broth carefully and adjust salt and pepper. The broth should taste clean, mildly briny, and lightly savory. A squeeze of fresh lemon at this stage is optional — you can save all the acid for the avgolemono or for the table.
Step 6: The Avgolemono Finish (Optional)
Turn off the heat completely. In a bowl, whisk the eggs until frothy, then whisk in the lemon juice. Ladle one or two cups of the hot (not boiling) soup broth slowly into the egg mixture while whisking constantly — this tempers the eggs and prevents scrambling. Pour the tempered mixture back into the pot in a slow, steady stream, stirring gently. Do not return the pot to the heat.
Chef’s note: This is the same technique I describe in my Avgolemono Soup post. The critical rule: off the heat, temper slowly, never boil again. If you boil after adding the eggs, the soup will curdle. It cannot be undone.
Step 7: Serve
Ladle into bowls. Finish each bowl with a drizzle of good olive oil, a scatter of fresh dill, and a lemon wedge on the side. Serve immediately.
Recipe Card

Psarosoupa (Greek Fish Soup)
Ingredients
For the Soup
- 680-900 g white fish fillets or whole cleaned fish 1.5-2 lbs; cod, sea bass, snapper, or halibut
- 2 liters cold water 8 cups
- 1 medium onion halved
- 2 ribs celery cut into large pieces
- 2 medium carrots sliced into 1/2-inch rounds
- 500 g yellow potatoes about 2 medium, peeled and cut into chunks
- 3 tablespoons extra-virgin olive oil
- 1.5 teaspoons fine sea salt plus more to taste
- 1/2 teaspoon black pepper
- 1 bay leaf
- fresh dill for serving
- lemon wedges for serving
For the Avgolemono Finish (Optional)
- 2 large eggs at room temperature
- 3 tablespoons fresh lemon juice about 1-1/2 lemons
Instructions
- Combine the fish, cold water, onion, celery, bay leaf, olive oil, salt, and pepper in a large pot. Bring to a gentle boil over medium-high heat, skimming any foam from the surface. Reduce heat to a steady simmer.
- Simmer uncovered for 20-25 minutes. Remove the fish carefully and set aside to cool slightly. Discard the onion, celery, and bay leaf.
- Add the carrots and potato chunks to the broth. Simmer for 15-20 minutes, until the potatoes are tender.
- Flake the fish into large pieces, removing any bones or skin. Return the fish to the pot for the last 5 minutes of cooking. Taste and adjust salt and pepper.
- Turn off the heat. Whisk eggs in a bowl until frothy, then whisk in the lemon juice. Slowly ladle 1-2 cups of hot broth into the egg mixture while whisking constantly. Pour the tempered mixture back into the pot in a slow stream, stirring gently. Do not return to the heat.
- Ladle into bowls. Drizzle with olive oil, scatter fresh dill over each bowl, and serve with lemon wedges.
Notes
Nutrition
Chef’s Notes
On fish selection: The fish you use matters more than anything else in this recipe. Cod is reliable, widely available, and produces a mild, clean broth. Sea bass is my first choice when I can find good whole fish — it has sweetness in the flesh and the head and bones build an outstanding broth. Snapper and halibut are both excellent. Avoid anything oily: salmon, mackerel, bluefish, or sardines will overpower everything. This soup lives or dies on a clean, delicate broth.
According to Seafood Watch, choosing sustainably sourced seafood helps protect Mediterranean fish populations — when in season, wild-caught Mediterranean sea bass or line-caught cod are ideal choices here.
On serving: Psarosoupa is a full meal in a bowl. On Kos, it was always served with thick slices of country bread — not for dunking, but for eating alongside to fill in the edges of hunger. A simple Greek Village Salad (Horiatiki) on the side is exactly how I serve it today.
On the avgolemono: The egg-lemon version is traditional in many parts of Greece, especially the islands. The plain broth version — just fish, vegetables, olive oil, and lemon — is equally traditional and, on some days, what I prefer. If you are serving someone who cannot eat eggs, the plain version is excellent in its own right.
Storage: Psarosoupa stores well in the refrigerator for 2-3 days. If you made the avgolemono version, reheat very gently over low heat — never bring it to a boil, or the eggs will scramble. The plain broth version can be reheated normally. I do not recommend freezing the avgolemono version; the egg-lemon sauce tends to separate on thawing. The plain broth can be frozen for up to 1 month.
FAQ
What is the best fish to use for psarosoupa?
White-fleshed fish with firm texture work best: cod, sea bass, snapper, and halibut are all excellent choices. Whole fish produces a richer broth because the head and bones contribute gelatin and depth. Boneless fillets work well too — they cook faster and are easier to serve. Avoid oily, strong-flavored fish like salmon or mackerel, which overwhelm the delicate broth that psarosoupa is built around.
Do I have to use the avgolemono (egg-lemon) finish?
No — and in many parts of Greece, psarosoupa is served as a plain, clear fish broth with a squeeze of lemon on the side. Both versions are traditional. The avgolemono gives the soup a silkier texture and a rounder, more complex flavor; the plain version is lighter and more austere. I recommend trying it both ways and deciding which you prefer.
Can I use fish stock instead of water?
Yes. Substituting part of the water with a good fish stock deepens the broth, particularly if you are using boneless fillets rather than a whole fish. Use half stock, half water — pure fish stock can become too intense and salty. If using stock, reduce the salt you add at the start and adjust to taste at the end.
Is psarosoupa the same as bouillabaisse?
They are related by concept — both are fishermen’s soups built from fresh catch — but they are quite different in execution. Bouillabaisse is a Provencal dish with a specific spice profile (saffron, fennel, orange peel), a rouille, and a tradition of serving the broth and fish separately. Psarosoupa is simpler and quieter: no spice complexity, no elaborate service. It is the Aegean version of the same instinct — don’t let good fish go to waste.
How do I store leftover psarosoupa?
Refrigerate in an airtight container for up to 2-3 days. If you made the avgolemono version, reheat slowly over low heat — do not boil, or the egg-lemon sauce will curdle and separate. The plain broth version can be reheated at a normal simmer. For freezing, the plain broth (without avgolemono) can be frozen for up to 1 month. The avgolemono version does not freeze well; the eggs separate on thawing.
