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
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.
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− Hide 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.
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− Hide details
Ready when: Milk is deep orange-gold; rice is opaque white and drains clean
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− Hide 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.
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− Hide 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.
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− Hide 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.
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− Hide 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.
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− Hide 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.
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− Hide details
Ready when: Two even layers with saffron streaks across the top
Tip: Spoon the rice in loosely; pressing it down crushes the grains.
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− Hide 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.
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− Hide 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
- Cuisine
- South Indian
- Main ingredient
- Basmati RiceFish
- Method
- Stovetop
