Malabar Fish Biryani
Fragrant Malabar-style biryani with succulent seer fish marinated in spices and layered between aromatic, short-grain Kaima rice. The gentle heat of green chilies, the freshness of mint and coriander, and the nuttiness of fried cashews and raisins make every bite a coastal Kerala celebration.
For 4 servings
- prep · ~30 min
Marinate the fish.
1.In a large bowl, mix yogurt, red chili powder, turmeric powder, half the crushed ginger-garlic paste, 1 tbsp lemon juice, and a pinch of salt.2.Add fish pieces, coat well, and set aside to marinate for 30 minutes. - prep · ~30 min
Soak the rice.
1.Wash the kaima rice under running water until the water runs clear.2.Soak in enough water to cover for 30 minutes, then drain completely.TIPShort-grain kaima rice is essential for the authentic Malabar texture; basmati won't give the same soft, fluffy result. - fry · ~25 min
Fry the onions, cashews, and raisins.
1.Heat oil for frying in a deep pan over medium heat.2.Fry the sliced onions in batches until deep golden brown and crispy (8-10 minutes per batch). Drain on paper towels.3.In the same oil, lightly fry the cashew nuts until golden, then the raisins until they puff up. Remove and set aside.TIPDon't overcrowd the pan while frying onions — they will steam instead of crisping. - fry · ~10 min
Shallow fry the marinated fish.
1.Remove fish pieces from the marinade, reserving the leftover marinade in the bowl.2.In a wide pan, heat 2 tbsp coconut oil over medium heat.3.Gently place the fish pieces and shallow fry for 2 minutes on each side until lightly golden. They should be 70% cooked. Remove and set aside.TIPHandle seer fish gently while turning as it's flaky; a flat spatula works best. - prep · ~10 min
Prepare the biryani gravy.
1.In the same pan used for the fish, add 1 tbsp ghee over medium heat.2.Add cumin seeds, fennel seeds, cinnamon stick, cloves, cardamom, bay leaf, and mace. Sauté until fragrant (1 minute).3.Add the remaining ginger-garlic paste and sauté until the raw smell disappears (1 minute).4.Add the reserved leftover marinade, green chilies, half the mint, and half the coriander leaves. Cook for 2 minutes.5.Add the fried fish pieces back gently, coat with the gravy, and cook for 2 more minutes. Switch off the heat. - boil · ~10 min
Parboil the rice.
1.In a large pot, bring 3 cups of water and the remaining 1 tbsp ghee to a rolling boil.2.Add the drained rice, a pinch of salt, and cook until the rice is 70% done (7-8 minutes). The grains should still have a bite.3.Drain the rice immediately in a colander and set aside.TIPTest the rice by pressing a grain between your fingers — it should split but still feel slightly firm at the center. - assemble · ~5 min
Layer the biryani.
1.Grease the bottom of a heavy-bottomed pot with a few drops of ghee.2.Spread half of the partially cooked rice as the first layer.3.Arrange the fried fish pieces and all the gravy over the rice.4.Top with half of the fried onions, half the fried cashews and raisins, and the remaining fresh mint and coriander.5.Cover with the rest of the rice as the final layer.6.Sprinkle saffron water evenly on top. Cover with the remaining fried onions, cashews, and raisins. - steam · ~25 min
Dum cook the biryani.
1.Seal the pot tightly with aluminum foil or a tight-fitting lid. If using a lid, place a heavy weight on top or seal the edges with atta dough.2.Place the pot on a tawa (griddle) over the lowest possible heat setting.3.Cook undisturbed for 20-25 minutes. You should see steam escaping gently. Switch off the heat and let it rest for 5 minutes.TIPNever open the lid during dum cooking — the trapped steam is what infuses the biryani with flavor. - serve · ~2 min
Gently fluff and serve.
1.Open the pot away from your face to avoid the steam burst.2.Gently mix the layers by sliding a flat spatula along the sides and lifting the rice from the bottom.3.Transfer to a serving platter, drizzle the remaining 1 tbsp lemon juice, and serve hot.TIPMix gently with a light hand to keep the rice grains and fish pieces intact.
What to keep in mind.
6 tips from the recipe — small details that make a real difference to the final dish.
- 1Always use short-grain Kaima rice for the authentic soft, non-sticky Malabar texture; basmati will yield a drier result.
- 2Marinate the seer fish for at least 30 minutes so the yogurt and spices tenderize the flesh from the inside.
- 3Fry the onions in small batches over medium heat — overcrowding causes steaming, not crisping.
- 4Parboil the rice to exactly 70% doneness; it will finish cooking during dum without turning mushy.
- 5When shallow-frying the fish, cook only until 70% done — it will cook further in the gravy and dum steam.
- 6Seal the pot airtight with dough or foil before dum cooking to trap all the aromatic steam inside.
Adapt it for your goals.
Substitute fish
Replace seer fish with firm white fish like kingfish, snapper, or pomfret for a similar texture; adjust cooking time based on thickness.
low oil versionLow-oil version
Skip the deep-frying step for onions and fish; instead, pan-roast sliced onions in minimal oil until caramelized and grill the marinated fish in an oven or air-fryer.
high protein variationHigh-protein variation
Swap half the rice with cauliflower rice (parboiled) to lower carbs and boost fiber; the dum cooking method still works well.
jain versionJain version
Omit garlic and onion from the recipe; use asafoetida (hing) for the allium flavor and substitute onion with raw banana or bottle gourd slices in the gravy.
Why this is on our healthy list.
Rich in Omega-3 Fatty Acids
Seer fish is a natural source of omega-3s, which support heart health and reduce inflammation.
Digestive Spices
Cumin, fennel, cardamom, and cloves aid digestion and help reduce bloating after a rich meal.
Iron from Saffron and Mint
Saffron and fresh mint provide small amounts of iron and antioxidants for cell protection.
Probiotics from Yogurt
The yogurt marinade introduces live cultures that support gut health and balanced digestion.
Frequently asked questions
Yes, but the texture will be different — Kaima rice is short and soft, while basmati is longer and firmer. Adjust cooking time by 2–3 minutes.



