Custrd is out on the App Store — Download it free →
Back to recipes

Canh Chua Ca Loc (Sour Catfish Soup)

A tangy, aromatic Vietnamese catfish soup with tamarind, pineapple, and fresh herbs. This elegant yet comforting dish comes together quickly and impresses with layered, bright flavors.

Total time
35 min
Servings
4
Calories
285
Protein
32g
Canh Chua Ca Loc (Sour Catfish Soup)
vietnameseseafoodsoupcatfishtamarind

Ingredients

16 items — tap to check off

Missing one? Custrd suggests a swap that works.

Open the app

Instructions

  1. Step 1

    Pat the catfish fillets dry with paper towels and check for any remaining pin bones by running your fingers along the flesh — remove any you find with tweezers or needle-nose pliers. Cut the fillets into 2-inch pieces and set aside on a plate.

  2. Step 2

    Peel 3 shallots and cut them in half lengthwise, leaving the root end intact so they stay together during cooking. Peel and lightly smash 4 garlic cloves with the side of your knife to release their oils.

  3. Step 3

    Cut the white and light green parts from 2 lemongrass stalks into 2-inch pieces, then smash each piece with the side of your knife to bruise it and release the aromatic oils. Peel a 1-inch piece of fresh galangal (or ginger) with a small spoon and slice it into thin matchsticks.

  4. Step 4

    Dissolve 2 tablespoons of tamarind paste in 3 tablespoons of warm water by stirring until no lumps remain — set aside. Cut the pineapple into 1-inch chunks (remove any tough core). Halve the fresh okra lengthwise. Halve the cherry tomatoes. Slice the 2 Thai red chilies at an angle — leave seeds in for more heat, or remove some if you prefer mild spice.

  5. Step 5

    Pour 6 cups of fish stock (or water) into a 5-quart Dutch oven or large pot and set over medium-high heat. Add the smashed shallots, garlic cloves, lemongrass pieces, and galangal matchsticks. Bring to a boil, then reduce heat to medium and simmer for 8-10 minutes until the broth is fragrant and slightly amber-colored — the aromatics will infuse the entire base.

  6. Step 6

    Strain the broth through a fine-mesh strainer into a clean pot, pressing gently on the solids to extract all the flavored liquid. Discard the spent aromatics. Return the broth to medium heat and stir in the tamarind water, 2 tablespoons of fish sauce, and 1 teaspoon of palm sugar — taste and adjust seasoning to your preference (the soup should be savory, sour, and slightly sweet in balance).

  7. Step 7

    Bring the broth back to a gentle simmer, then carefully add the catfish pieces one at a time, sliding them in gently so the broth doesn't stop simmering. Cook for 3-4 minutes — the fish will begin to turn opaque and firm. You'll see small white strands of cooked protein on the surface.

  8. Step 8

    Add the pineapple chunks and okra halves to the pot. Simmer for 3-4 minutes more, until the okra is tender-crisp and the pineapple has warmed through. The okra should yield slightly when pierced with a knife but still have a bit of snap.

  9. Step 9

    Gently stir in the halved cherry tomatoes and sliced Thai chilies. Simmer for 1-2 minutes more — the tomatoes should soften slightly but not lose their shape. Taste the broth one final time and adjust with a squeeze of fresh lime juice if needed for brightness.

  10. Step 10

    Ladle the soup into four deep bowls, distributing the catfish, pineapple, okra, tomatoes, and broth evenly. Tear a generous handful of fresh basil and dill fronds and scatter over each bowl. Serve immediately with lime wedges on the side — guests can squeeze extra juice to taste, and the bright herbs will add a final aromatic lift as the warmth releases their oils.

Tools you’ll need

  • tweezers or needle-nose pliers
  • paper towels
  • knife (8-inch chef's knife recommended)
  • cutting board
  • 5-quart Dutch oven or large pot
  • fine-mesh strainer
  • spoon (for stirring and tasting)
  • deep bowls (4)
  • ladle

Cook smarter

Get matched recipes for what’s in your fridge

Custrd is a free iOS app that finds real recipes from the ingredients you already have. No more grocery-list aspirations.