A mouthwatering fish biryani (traditionally known as machi biryani) to complement any celebration! It’s a layered Basmati rice dish made with spicy haddock fish fillets and uses the “dum” method to create a truly unique and flavourful meal. This recipe is high in protein and packed with fibre, using less oil and lots of nutritious ingredients, like spices, tomatoes and pepper to create a nourishing recipe. It has a mild spice level.

peeking through plant leaves overlooking a tray of yellow-coloured rice topped with fish fillets and garnished with mint.

May I just say that this is one of my favourite rice dishes? It’s a marvellous combination of pan-seared spicy fish overlayed with a rich zingy tomato masala and tiers of delicate fluffy Basmati rice. How can you resist?

As a registered dietitian and certified diabetes educator, I believe that diabetes-diet friendly and heart healthy meals are about balance, making room for the foods we love.

Truly, to eat well, we need to enjoy our cultural foods without guilt. Because food and culture are so intertwined, bringing our families and friends together around a festive table is one of the most cherished things we can do.

I can confidently say that the fish biryani recipe I am about to share is a terrific way to celebrate any occasion – Ramadan and Eid, a birthday, or just a regular old Thursday night!

Traditionally, biryani is a dish that is prepared with either lamb, beef, or chicken. However, this fish biryani is delightful if you want to try something new. It’s a hit at home — which is why it’s my favourite celebratory dinner recipe. It exudes Desi (South Asian) flavours and reminds me of my childhood. Charming moments spent with my lovely granny, Amma.

What is dum biryani?

Dum is a cooking method in Pakistani and Indian cuisine where the food is sealed in an earthenware pot (usually clay) and cooked over a slow fire. The end result is a succulent, aromatic and flavourful dish. The tight seal traps the flavour and moisture, which gently cooks the rice and meat (poultry or fish) over a period of time.

The seal for dum biryani can be achieved in different ways, such as using dough to seal the pot or using a cloth napkin. I lean on my cast iron pot to do the trick.

Flatlay of yellow-coloured rice with fillets of haddock embedded in it. Topped with mint and lime slices. There is also a decorative traditional scarf arranged around the tray.

What fish can I use for fish biryani?

Any firm white fish will work well in this recipe. I like to use haddock fish because of its flavour and texture, but you can also use basa fillets, tilapia, cod, or any other firm fish.

A firm type of fish ensures that the fillets don’t break apart during the cooking process.

Haddock nutrition

Haddock is a low-fat fish that is an excellent source of protein. It’s an abundant source of vitamin D and vitamin B12.

Vitamin D is important for bone health and helps the body to absorb calcium. Vitamin B12 is essential for red blood cell formation and cognitive function.

Haddock is also a good source of selenium and a source of phosphorus as well.

Here is a summary of haddock nutrition:

  • high source of vitamin D (about 170 % DV)
  • high source of B12 (about 150% DV)
  • high source of protein (63% DV)
  • high source of selenium (90% DV)
  • low fat
  • high source of phosphorus

The nutrition data is taken from the USDA to calculate the % DV for one raw haddock fillet (193 g).

Following is the nutrition information for one raw fillet of haddock fish (193 g).

Nutrient and caloriesAmount
Calcium21.2 mg
Fat0.9 g
Folate/Folic Acid23.2 mcg
Iron0.3 mg
Magnesium40.5 mg
Phosphorus438.0 mg
Potassium552.0 mg
Protein31.5 g
Selenium50 mcg
Sodium411.0 mg
Vitamin A32.8 mcg
Vitamin B123.5 mcg
Vitamin D34.7 mcg
Zinc0.6 mg
Calories143.0 kcal

Basmati rice nutrition

Basmati rice is a type of long-grain rice that is native to the Indian subcontinent.

The limited nutritional information available shows that Basmati rice is low in fibre, vitamin A, calcium, and potassium.

However, when compared to other types of rice, Basmati rice has a lower glycemic index (50-58). In other words, it is absorbed more slowly into the bloodstream and causes a slower rise in blood sugar levels. This makes Basmati rice a good option for people looking for diabetes diet-friendly grains.

Many folks are particularly concerned about the carb content of Basmati rice. You might be surprised to learn that boiling Basmati rice has been shown to reduce its carbohydrate content by about 50%.

Following is the nutrition information for one cup of cooked Basmati rice (142 g).

Nutrient and caloriesAmount
Calcium19.9 mg
Dietary Fiber1.0 g
Potassium59.6 mg
Protein5.0 g
Total carbohydrate46.0 g
Calories210 kcal
a close up perspective shot of yellow coloured rice with pieces of fish embedded in it.

Nutrition information per serving of biryani

Below you will find the nutrition information for one serving of fish biryani:

  • 28 g of protein (high-protein)
  • Reduced in total fat and low in saturated fat (10% DV)
  • A high source of fibre
  • A high source of vitamin A
  • A high source of vitamin C
  • A high source of potassium

Percent Daily Values are based on a 2000-calorie diet. Interpretation of DVs from US FDA.

After looking at all of the scientific evidence and considering how well it meets stringent criteria, the American Heart Association concludes that replacing saturated fats with unsaturated fats, especially polyunsaturated fats, can help lower your risk of developing heart disease.

Ingredients

Here is a snapshot of the ingredients you’ll need to make this fish biryani recipe:

display of ingredients in different sized ramekins and bowls. The ingredients are mostly spices with a few vegetables, fish, rice and herbs.
  • Basmati rice: Opt for long-grain basmati rice for this recipe. It’s light and fluffy, with a nutty flavour. Make sure you rinse the rice several times before cooking.
  • Haddock: Frozen or fresh fish fillets can be used for this recipe. If using frozen fish, make sure it’s fully thawed and patted dry before cooking.
  • Tomatoes: I like to use fresh tomatoes (on the vine variety). Just make sure they’re ripe and juicy. Canned tomatoes wouldn’t be the best choice because they will make the biryani too wet and mushy.
  • Onions: You can use any type of onion you have on hand, but I prefer to use yellow onions because they’re sweeter. You will want to cut them into thin slices instead of chopping them too small.
  • Garlic: I always use fresh garlic; it just has the best flavour.
  • Ginger: Fresh ginger gives the biryani a nice zing that isn’t as pungent if you were to use ginger paste.
  • Plant milk: to release the saffron’s colour and flavour. I like to use oat milk, but you could also use any other type of plant milk you have on hand.
  • Saffron: This is a key ingredient in this recipe because it gives the biryani a beautiful yellow colour — and the best floral flavour. Just make sure to use good-quality saffron.
  • Spices: I like to use a combination of whole and powdered spices like cumin, cardamom (black and green), bay leaves, cinnamon, garam masala, ginger, red chilli powder (a mild sweet variety) and turmeric to flavour this fish biryani. You may also increase the spiciness by adding extra red chilli powder or chopped chillies, as long as you don’t go too zealous. I’ve noticed that when I use a lot of chillies, the other flavours become overpowered. Plus, if you have kids or family members who don’t like spicy food, they’ll enjoy this fish biryani recipe just as it is.
  • Olive oil: for pan-frying the haddock fish fillets and for tempering the whole spices.
  • Bell pepper: I like to use orange or red bell peppers because they’re sweeter, but you could also use green bell peppers.
  • Mint: I love using fresh mint in biryani recipes! It really brightens up the dish and gives it a nice fresh flavour. It’s used to garnish the biryani.
  • Plums: dried plums add a nice sweetness and depth of flavour to the biryani, but you could also use raisins or dates.
  • Salt: to season the fish biryani. I used sea salt.

Instructions – step by step

Though this fish biryani recipe has numerous steps, it is easy to make. The most time-consuming part is chopping and slicing, but if you have a food processor – that can save you some time.

  1. Once you’ve prepared the ingredients according to the instructions in the recipe card, begin by combining the saffron with milk, mix and set aside (Step 1).
  2. Meanwhile, on medium heat, temper the whole spices in olive oil (Step 2).
  3. Add onions, garlic, and ginger once the whole spices have begun to release their fragrance. Sauté until golden brown. (Step 3).
  4. Then, add the powdered spices, tomatoes, plums and salt (Step 4). Cook the tomatoes (uncovered) over medium heat until soft and mushy.
  5. Finish the biryani base masala by adding pepper and cook for 2 minutes. Turn off the heat, and transfer the sauce to a large bowl (Step 5). Keep the pot aside to be used for the dum biryani (only if it is oven-safe).
  6. Meanwhile, prepare the fish for pan-frying. Combine the powder spices with salt and sprinkle over the fish fillets, ensuring that both sides of the fish are well-coated (Steps 6-8).
  7. Heat 1 tbsp of oil in a large frying pan and carefully place half the spiced fillets in the pan. The goal is not to “cook” the fish. Rather, you want to sear it over high heat so that the spices can adhere to the fish. I go right to turning the fish over and then removing them as soon as I’ve dropped the final fish fillet into the pan (Step 9). Sear the fillets in two batches and set them aside.
  8. Preheat the oven to 380 degrees Fahrenheit. In a medium saucepan, add the rice and water and bring to a boil. This usually takes 7-8 minutes over high heat. It’s important to keep an eye on the rice and reduce the heat to medium-high to prevent overflow. Cook the rice at boiling point for one minute, drain immediately and prepare to layer the fish biryani (Step 10).
  9. Carefully arrange half of the fish fillets in the pot as a single layer (Step 11).
  10. Next, place one-third of the cooked rice (Step 12).
  11. Then, spread half of the tomato-pepper sauce over the rice (Step 13).
  12. Next, lay the remaining fish fillets in a single layer (Step 14).
  13. On top of the fish fillets, add half of the remaining rice (Step 15).
  14. Cover the rice with the remaining sauce (Step 16).
  15. Finally, add the remaining rice, garnish with mint and pour over the saffron-infused milk. Cover the pot with a tight-fitting lid and send it in a preheated oven for 20 minutes (Step 17).
  16. Once the biryani is cooked, serve and enjoy with your favourite chilli or carrot achar.

You can find the complete ingredient list, along with detailed instructions, in the recipe card below.

Tips and substitutions

  • This biryani was intended to be mild to cater to a wider audience. However, if you like things on the spicier side, increase the amount of red chilli used or add fresh green or red chillies to the sauce. Of course, you could serve this alongside spicy achars or pickles.
  • Adjust the salt to suit your taste and dietary needs. If you’re watching your blood pressure for heart health, you could consider reducing the salt by adding additional herbs and citrus.
  • If you’re not a fan of fish, you can use chicken or lamb in this biryani recipe. The meat will need to be cooked in the sauce until it’s almost cooked through – before layering the biryani.
  • Make sure the fish fillets are thoroughly dry before pan-frying them. This will help to prevent the fish from sticking to the pan and also allow the spices to adhere better.
  • If you don’t have access to an oven, you can cook the fish biryani on the stovetop. Simply place a lid on the pot after layering and cook over very low heat for 15 minutes, or until the fish and rice are fully cooked.
  • The fresher your ingredients – the better your fish biryani will taste.
  • For a vegan or vegetarian version of this dish, you could use tofu or paneer in place of the fish.
  • The tomato-pepper sauce should be extremely thick and not runny for optimum results. Also, avoid “over-cooking” the rice and fish; note that these will finish cooking in the oven (dum). If your fish is too dry or the rice is mushy, it’s a sign you overcooked them both, or the tomato sauce was too runny.

Storage

I know my readers love leftovers – especially biryani! If you’re using frozen fish, store the biryani in an airtight container in the fridge for up to 2-3 days. Simply reheat gently over low heat on the stovetop or in the microwave.

What is the secret ingredient of biryani?

There is no one “secret” ingredient to biryani. Rather, it’s the combination of spices and ingredients that make this dish so special. That said, some folks believe that saffron is the key to a phenomenal fish biryani. Saffron not only adds beautiful colour to the dish, but it also imparts a unique flavour that takes this recipe to the next level.

I hope you will love this as much as we do!

Desi~liciously Yours, Shahzadi

What’s your favourite biryani memory? Let me know in the comments below!

If you try this recipe, would love to hear from you! Leave a comment, rate it, or share a photo and hashtag with #desiliciousrd on Instagram, Facebook and Twitter! Can’t wait to see your photos.

Hungry for more?

Subscribe to my newsletter for free recipes, nutrition tips and all the latest updates.

RD Approved Badge - Staying Power
peeking through plant leaves overlooking a tray of yellow-coloured rice topped with fish fillets and garnished with mint.
4.64 stars (11 reviews)

Get the Recipe:

Haddock Fish Biryani – Easy To Follow!

Prep Time: 20 minutes
Cook Time: 40 minutes
Total Time: 1 hour
Yield: 6 people
A mouthwatering fish biryani (traditionally known as machi biryani) to complement any celebration! It's a layered Basmati rice dish made with spicy haddock fish fillets and uses the "dum" method to create a truly unique and flavourful meal. This recipe is protein-rich and packed with fibre, using less oil and lots of tomatoes and pepper to create a nutritious recipe.

Ingredients
 

Biryani sauce (masala)

  • 2 tbsp olive oil, extra virgin
  • tbsp cumin seeds
  • 1 cinnamon stick, large
  • 3 bay leaves
  • 10 green cardamoms, seeds only, crushed
  • 3 black cardamoms, seeds only, crushed
  • tbsp garlic, fresh, grated or crushed
  • 2 tbsp ginger, fresh, finely chopped
  • 2 onions, small, thinly sliced
  • 3 tomatoes, medium size, on the vine variety, washed and cut into small chunks
  • 6 dried plums, small
  • 2 tsp tumeric
  • 2 tsp garam masala
  • tsp red chilli powder, sweet mild variety, adjust to taste
  • 2 tsp salt, sea salt
  • 1 bell pepper, orange or red, washed and cut into small cubes

Saffron milk

  • 2 tbsp oat milk, unsweetened
  • tsp saffron

Haddock fish

  • 2 tsp red chilli powder, sweet mild variety, adjust to taste
  • 1 tsp ginger powder
  • tsp salt, sea salt
  • 800 g haddock, 5 frozen fillets, thawed, cut into medium pieces, thoroughly dried. Could use fresh.
  • 2 tbsp olive oil, for pan frying haddock fish

Basmati rice

  • 2 cups basmati rice, washed thoroughly, drained
  • 6 cups water, for boiling rice

Garnish

  • ½ cup mint, fresh, washed, finely chopped

Instructions
 

Saffron milk

  • In a small ramekin, combine saffron with milk, mix and set aside

Biryani sauce (masala)

  • In a large pot, heat 2 tablespoons of oil on low to medium heat
  • Add the cumin, cinnamon, bay leaves and crushed cardamoms. Temper the spices in oil until they become fragrant but be careful not to burn them
  • Add garlic, ginger and onions and sauté on medium heat until golden brown
  • Stir in the tomatoes, plums, turmeric, garam masala, chilli powder and salt
  • Cook over medium heat until the tomatoes are soft and mushy
  • Finish the biryani base masala by adding pepper and cook for 2 minutes
  • Turn off the heat, and transfer to a large bowl. Set the pot aside to be used for the dum biryani (only if it is oven-safe)

Haddock fish

  • Meanwhile, prepare the fish for pan-frying. Combine salt, chilli powder and ginger powder and sprinkle over the fish fillets, ensuring that both sides of the fish are well-coated
  • In a large frying pan, heat 1 tbsp of oil over medium-high heat and place half the fillets in the pan. You don't want to "cook" the fish fillets; rather sear them so that the spices can stick to the fish. Turn the fish over and sear the other side as quickly as possible
  • Remove the fillets as soon as feasible and repeat the process with the remaining fillets. Once all the fillets are seared, set them aside

Basmati rice

  • Preheat the oven to 380 degrees Fahrenheit. In a medium saucepan, add the rice and water and bring to a boil. This will take anywhere from 7-8 minutes over high heat
  • Reduce the heat to medium-high to prevent overflow and cook the rice at boiling point for one minute. Drain the rice immediately and prepare for layering the fish biryani

Layering and garnish

  • Begin layering the biryani by starting with the bottom layer. Carefully arrange half of the fish fillets in the pot
  • Next, place one-third of the cooked rice on top of the fish
  • Spread half of the thick tomato-pepper sauce on top of the rice
  • Lay the remaining fish fillets on top of the sauce in a single layer
  • On top of the fish fillets, add half of the remaining rice
  • Cover the rice with the remaining sauce
  • Finally, add the remaining rice, garnish with mint and pour over the saffron-infused milk
  • Cover the pot with a tight-fitting lid and send it in a preheated oven for 20 minutes
  • Once the fish biryani is cooked, serve and enjoy with your favourite salad, chilli or carrot achar (pickle).

Notes

Tips and substitutions

  • This biryani was intended to be mild to cater to a wider audience. However, if you like things on the spicier side, increase the amount of red chilli used or add fresh green or red chillies to the sauce. Of course, you could serve this alongside spicy achars or pickles.
  • Adjust the salt to suit your taste and dietary needs. Consider reducing salt by adding more herbs and citrus.
  • If you’re not a fan of fish, you can use chicken or lamb in this biryani recipe. Just cook the meat in the sauce until it’s mostly cooked through – before layering.
  • Make sure the fish fillets are thoroughly dry before pan-frying them. This will help to prevent the fish from sticking to the pan and also allow the spices to adhere better.
  • If you don’t have access to an oven, you can cook the fish biryani on the stovetop. Simply place a lid on the pot after layering and cook over very low heat for 15 minutes, or until the fish and rice are fully cooked.
  • The fresher your ingredients – the better your fish biryani will taste.
  • For a vegan or vegetarian version of this dish, you could use tofu or paneer in place of the fish.
  • The tomato-pepper sauce should be extremely thick and not runny for optimum results. Also, avoid “over-cooking” the rice and fish; note that these will finish cooking in the oven (dum). If your fish is too dry or the rice is mushy, it’s a sign you overcooked them both, or the tomato sauce was too runny.

Storage

The fish biryani (made from frozen haddock fillets) will keep in an airtight container in the fridge for up to 2-3 days. Reheat gently over low heat on the stovetop or in the microwave. This fish biryani recipe is best enjoyed fresh.

Nutrition Information:

Calories: 485kcal (24%)Carbohydrates: 67g (22%)Protein: 28g (56%)Fat: 11g (17%)Saturated Fat: 2g (10%)Polyunsaturated Fat: 2gMonounsaturated Fat: 7gTrans Fat: 1gCholesterol: 72mg (24%)Sodium: 1666mg (69%)Potassium: 868mg (25%)Fiber: 5g (20%)Sugar: 8g (9%)Vitamin A: 1472IU (29%)Vitamin C: 39mg (47%)Calcium: 99mg (10%)Iron: 3mg (17%)

Keep in mind that the nutritional values provided are approximations and suggestions, and might fluctuate depending on ingredient variations, portion sizes, and recipe adjustments. This nutrition facts table cannot account for your individual needs. Your body — including your hunger and satiety cues — change daily. It’s perfectly fine to eat more or less on different days. Instead of letting food guilt take over, consider mindful eating.

* Percent Daily Values are based on a 2000 calorie diet.

Cuisine: Indian, pakistani
Course: Main
Did you make this recipe?Mention @desiliciousrd on Instagram or tag #desiliciousrd.