A humble, clear-broth fish soup from Paraguay built on simmered freshwater fish, cassava, and a generous handful of fresh herbs. Pira caldo is everyday home cooking in Paraguay, where rivers provide fresh fish that cooks quickly in a lightly seasoned broth. It's nourishing, restorative, and finishes with a bright squeeze of lime.
Prep Time20 mins
Cook Time35 mins
Total Time55 mins
Servings4
Yield4 servings
Nutrition Facts
Per serving (estimated)
- 385 kcalCalories
- 9 gFat
- 1.5 gSaturated Fat
- 42 gCarbs
- 4 gFiber
- 6 gSugar
- 34 gProtein
- 540 mgSodium
- 920 mgPotassium
- 95 mgCalcium
- 2.5 mgIron
- 38 mgVitamin C
- 85 mcgVitamin A
Ingredients
For the fish and broth
- 1.5 lb skinless freshwater fish fillets (catfish, tilapia, or pacu), cut into 2-inch pieces
- 6 cups water or mild fish stock
- 1 small onion, quartered
- 2 cloves garlic, smashed
- 1 bay leaf
- 1 tsp whole black peppercorns
For the vegetables
- 1 lb cassava (yuca), peeled and cut into 1-inch pieces
- 1 large yellow onion, finely diced
- 1 red bell pepper, finely diced
- 2 ripe tomatoes, peeled, seeded, and chopped
- 2 tbsp olive oil
- 1 tsp kosher salt, plus more to taste
For finishing
- 1/3 cup fresh flat-leaf parsley, chopped
- 2 tbsp fresh cilantro, chopped
- 1 small green onion, thinly sliced
- 1 lime, cut into wedges
- 1/4 tsp freshly ground black pepper
Directions
- Make the base broth: combine water, quartered onion, smashed garlic, bay leaf, and peppercorns in a large pot. Bring to a gentle boil over medium heat, then reduce and simmer for 10 minutes to infuse the liquid.
- Meanwhile, soak the cut cassava in cold water for 10 minutes, then drain. Add the cassava to the simmering broth and cook for 15 to 18 minutes, until tender when pierced with a knife.
- Strain the broth into a clean pot, discarding the aromatics and keeping the cooked cassava. Heat the olive oil in the same pot over medium heat, add the diced onion and bell pepper, and cook for 5 minutes until softened and translucent.
- Stir in the chopped tomatoes and salt, cooking for 3 minutes until the tomatoes break down into a chunky sauce. Pour the strained broth back in and bring to a low simmer.
- Gently slide the fish pieces into the pot in a single layer. Simmer uncovered for 6 to 8 minutes, turning once, until the fish flakes easily with a fork and is opaque throughout.
- Remove from the heat and stir in the parsley, cilantro, and green onion. Taste and adjust salt and pepper. Let the soup rest off the heat for 2 minutes so the herbs mellow.
- Ladle the soup into wide bowls, making sure each portion gets a generous share of cassava, fish, and vegetables. Serve immediately with lime wedges on the side for squeezing over each bowl.
Cook’s Notes
- Use the freshest fish you can find; in Paraguay, this dish is built on whatever was caught that morning from the river, so a quick-cooking white-fleshed fillet works best.
- Add the fish gently and resist stirring too much; aggressive movement will break the delicate flakes into the broth and muddy the clarity.
- If cassava isn't available, peeled potato or boniato (sweet potato) makes a faithful substitute, though the texture will be slightly softer.
- Always cook cassava thoroughly; raw cassava contains naturally occurring compounds that break down with heat, so don't shorten the simmering time for the root.
- A splash of lime juice at the very end is not optional in Paraguay; it lifts the broth and balances the natural sweetness of the cassava.










