Start with the fish, then plan the broth
Caldo de pescado can be as simple as fish simmered with vegetables in a well-seasoned broth. The key is to build most of the flavor before the fish goes in. That way, the soup tastes complete without asking delicate pieces of seafood to sit over the heat for too long.
For about four bowls, use roughly 1 to 1½ pounds of boneless fish and 5 cups of broth or water. A firm, mild fish that holds its shape in chunks is a practical choice; ask your fishmonger what is suitable for soup. Cut the fish into evenly sized pieces, about 1½ inches across, so they cook at a similar rate. Keep it refrigerated while you prepare the other ingredients. If you use frozen fish, thaw it in the refrigerator rather than on the counter.
Give the vegetables time to make the soup
In a soup pot, soften a chopped onion and a chopped bell pepper in a little oil over medium heat. Add two or three minced garlic cloves and cook briefly, just until fragrant. Stir in two chopped tomatoes, or a modest amount of canned tomato, and let them soften into the vegetables. A pinch of cumin, dried oregano or mild chile can add warmth, but none is required. Season lightly with salt now; you can adjust it once the broth has simmered.
Pour in the broth or water and add a bay leaf if you like. Fish stock gives the soup a clear seafood character, while a mild vegetable broth lets the tomatoes and aromatics lead. Bring the pot to a simmer and cook for about 15 to 20 minutes. For a heartier bowl, add small pieces of potato early enough to become tender before the fish is added. Taste the broth at this stage. If it seems flat, try a little more salt rather than extending the fish’s cooking time later.
Add the fish at a gentle simmer
Once the vegetables are tender and the broth tastes good, lower the heat until the surface barely bubbles. Slide in the fish pieces and give them room to cook without vigorous stirring. A rolling boil can break up the fish and make the finished soup feel less delicate. Keep the pot uncovered or partly covered so you can watch the simmer.
Start checking the fish after about four minutes; thicker pieces may take several minutes more. Cooking time varies with the type of fish and the size of the chunks, so use time as a prompt to check rather than a guarantee. Fish should reach 145°F (63°C) at its thickest point. If you do not have a thermometer, look for flesh that is opaque and separates easily with a fork, though a thermometer is the more dependable check. Once the fish is done, turn off the heat. The hot broth will continue to warm it while you serve.
Finish with citrus, herbs and a little contrast
Squeeze in lime juice after turning off the heat, starting with half a lime and adding more to taste. Adding it at the end preserves a bright flavor that balances the savory broth. Chopped cilantro, parsley or sliced scallions make an easy finish. If you want heat, offer fresh chile or a hot sauce at the table so each person can adjust their bowl.
Lime is a seasoning here, not a substitute for cooking. Citrus can change the appearance and texture of raw seafood, but citrus curing does not make raw fish equivalent to properly cooked fish. In this soup, cook the fish in the hot broth and use the lime to finish it. Serve with rice, warm tortillas or crusty bread to catch the broth. A crisp vegetable salad alongside it adds a welcome contrast.
Keep leftovers pleasant and safe
Use separate utensils and surfaces for raw fish and ready-to-eat garnishes, or wash them thoroughly with hot, soapy water between tasks. Do not return cooked fish to a plate that held it raw. Refrigerate leftover soup promptly in shallow, covered containers rather than leaving a full pot to cool on the stove.
To reheat, warm the soup gently until it is steaming hot throughout, avoiding a hard boil that can toughen and fragment the fish. If you expect leftovers, another option is to save some broth separately and cook fresh fish in that portion when you are ready to eat. The broth can take its time developing flavor; the fish is best when it gets only the heat it needs.



