Malabar Fish Biryani

A Kerala-style dum biryani: chunks of seer fish marinated in turmeric, chili and lime, fried in coconut oil, then folded into a fragrant masala of onions, tomatoes, green chilies and mint. Layered with par-cooked basmati and steamed until every grain is perfumed.

Prep
45 min
Cook
1 hr 10 min
Wait
1 hr
Total
2 hr 55 min
Makes
6 generous servings
Share

Steps

Before you start
  • Wash the rice and soak it for 30 minutes; the fish marinates during this time, so start both together.
  • Ask the fishmonger for seer fish (kingfish) steaks, or use thick firm fish steaks such as king mackerel; cut into 2-inch (5 cm) pieces, bones in.
  • Use a heavy-bottomed 5-quart (5 L) pot with a tight lid for the dum steaming, plus foil or dough to seal if the lid is loose.
  • Have all spices measured and the onions sliced before heating oil; the masala moves quickly.
  1. Marinate the fish

    • In a bowl, toss the fish pieces with turmeric, Kashmiri chili powder, lime juice and ¾ teaspoon of the salt.
    • Turn gently to coat every piece.
    • Leave at room temperature for 30 minutes.
    + Show details

    Ready when: Fish is evenly coated in a deep red paste

    Tip: Do not marinate longer than 45 minutes; lime juice will turn the fish chalky.

  2. Soak the saffron

    • Warm the milk until just hot to the touch, crumble in the saffron and set aside to steep.
    • Meanwhile rinse and soak the basmati in cold water for 30 minutes, then drain well.
    + Show details

    Ready when: Milk is deep orange-gold; rice is opaque white and drains clean

  3. Fry the fish

    • Heat 3 tablespoons of the coconut oil in a 12-inch (30 cm) skillet over medium-high heat.
    • Fry the fish in a single layer, in two batches if needed, for 2 minutes per side.
    • Transfer to a plate; the fish will finish cooking later.
    + Show details

    Ready when: Surface is lightly golden and set but the center is still slightly underdone

    Tip: Handle gently; seer fish flakes easily. Leave the leftover oil in the pan.

  4. Brown the onions

    • Add the remaining 2 tablespoons coconut oil to the same skillet over medium heat.
    • Add the sliced onions with 1 teaspoon salt and cook, stirring often, for 15 to 18 minutes.
    • Scoop out about one-third of the onions and reserve for layering.
    + Show details

    Ready when: Onions are soft and deep golden brown, not burnt

    Tip: If onions darken too fast, lower the heat and splash in 1 tablespoon of water.

  5. Build the masala

    • To the onions left in the pan, add ginger-garlic paste and slit green chilies; stir 1 minute until raw smell fades.
    • Add tomatoes, coriander and garam masala and cook 6 to 8 minutes, mashing the tomatoes.
    • Lower heat, stir in the yogurt and half of the mint and cilantro, and cook 3 minutes.
    + Show details

    Ready when: Thick, jammy masala with oil separating at the edges

    Tip: Add yogurt on low heat and stir constantly so it does not split.

  6. Add fish to masala

    • Gently lay the fried fish into the masala in a single layer and spoon some masala over the top.
    • Cook uncovered 3 minutes, then turn off the heat.
    • Do not stir; shake the pan to avoid breaking the fish.
    + Show details

    Ready when: Masala clings to the fish and looks thick, not watery

    Tip: The masala should be thick; excess liquid makes the rice soggy.

  7. Parboil the rice

    • Bring the water to a rolling boil in a 6-quart (6 L) pot.
    • Add 1 teaspoon salt, the cardamom, cloves, cinnamon and bay leaf.
    • Add the drained rice and boil over high heat for 5 to 6 minutes.
    • Drain immediately in a colander.
    + Show details

    Ready when: Grains are about 70% cooked: they snap when bitten, with a hard white dot in the center

    Tip: Overcooking now leads to mushy biryani after steaming.

  8. Layer the biryani

    • Rinse out the 5-quart (5 L) pot and spread half the fish masala on the bottom.
    • Cover with half the rice, then sprinkle with half of the reserved onions, remaining mint and cilantro.
    • Repeat with remaining masala and rice.
    • Drizzle with saffron milk and melted ghee, then top with the remaining onions and the cashews and raisins, if using.
    + Show details

    Ready when: Two even layers with saffron streaks across the top

    Tip: Spoon the rice in loosely; pressing it down crushes the grains.

  9. Steam on dum

    • Cover the pot with foil, then press the lid on tightly.
    • Set over medium heat for 3 minutes until steam escapes, then reduce to the lowest heat and steam for 25 minutes.
    • Turn off the heat and leave closed for 10 minutes.
    + Show details

    Ready when: Steam smells of saffron and spices; rice is fluffy and fish reaches 145°F (63°C)

    Tip: Place a flat tawa or heavy skillet under the pot to prevent scorching on the bottom.

  10. Fluff and serve

    • Open the lid and gently fold from the edges with a flat spoon, bringing masala up through the rice without breaking the fish.
    • Serve hot with raita, pickle or papadam.
    + Show details

    Ready when: Grains are separate, long and tender; fish flakes but holds its shape

Good to know

Tips
  • Use aged basmati; it stays separate and elongates when steamed.
  • Fry the fish only until the surface sets; it cooks through during dum.
  • Keep the masala thick and not watery, because steam adds moisture.
  • Seal the pot tightly with foil so the aroma and steam stay in.
Make ahead

Marinate the fish and prepare the fish masala up to 1 day ahead and refrigerate. Bring to room temperature for 30 minutes before layering, and parboil the rice fresh.

Storage & reheating

Room temperature: up to 2 hours. Refrigerator: airtight container up to 2 days. Freezer: not recommended, since the fish turns dry. Reheat covered in a skillet over low heat or microwave with a splash of water until steaming hot (165°F/74°C).

Substitutions
  • seer fish (kingfish) steaks → King mackerel, pomfret, or thick halibut steaks. Firm fish that holds shape; reduce frying time for thinner cuts.
  • coconut oil → Neutral oil such as sunflower. You lose the signature Kerala aroma.
  • Kashmiri chili powder → 1 tsp paprika plus ¼ tsp cayenne. Approximates color and heat.
  • ghee → Unsalted butter. Slightly less nutty flavor.

More biryani

See all →

Find more like this

Meal
Lunch
Main ingredient
Basmati RiceFish
Method
Stovetop

Reviews (0)