
This Hyderabadi fish curry brings centuries-old flavors to your kitchen with a traditional preparation that stays true to its roots.
I’ve adapted this recipe to maintain authenticity while simplifying the process for home cooks. The key is layering spices slowly to build depth without overpowering the delicate fish.
The result is a rich, aromatic curry with tender fish pieces swimming in a thick, spiced gravy that’s both comforting and complex.
Serve with steamed rice or flatbread to soak up every bit of the sauce. Here’s how to make it right.
Ingredients for Machli Ka Salan Recipe in Urdu
Traditional spices and fresh fish create this aromatic, layered Hyderabadi curry at home.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Firm white fish like cod or tilapia |
| Onion 🧅 | 2 whole | Medium, finely chopped |
| Tomatoes 🍅 | 3 whole | Ripe, pureed |
| Fresh Ginger 🌿 | 1 tbsp | Peeled and grated |
| Fresh Garlic 🧄 | 6 cloves | Minced finely |
| Green Chilies 🌶️ | 3 whole | Slit lengthwise |
| Fresh Cilantro 🌿 | ½ cup | Chopped, for garnish |
| Fresh Mint Leaves 🍃 | ¼ cup | Chopped, optional garnish |
| Turmeric Powder 🌶️ | 1 tsp | Ground, for color |
| Red Chili Powder 🌶️ | 1 ½ tsp | Adjust to spice preference |
| Coriander Powder 🌿 | 2 tbsp | Ground, for depth |
| Cumin Seeds 🌿 | 1 tsp | Whole, for tempering |
| Mustard Seeds 🌿 | ½ tsp | Whole, for tempering |
| Curry Leaves 🍃 | 10 pieces | Fresh, for aroma |
| Vegetable Oil 🫒 | ½ cup | For cooking fish and curry |
[recipe_ingredient_scaler]
The fish choice is critical for authenticity. Cod or tilapia hold up best to the spiced gravy without falling apart. For the freshest selection, Asian or Indian grocery stores often carry cuts ideal for curry. The onions should be browned well—this builds the base flavor. Fresh ginger and garlic are non-negotiable here; powdered versions won’t give the same depth.
No fresh curry leaves? Dried at half the amount works, but rehydrate in warm water first. If you can’t find mustard seeds, skip them—don’t substitute with powder. The tomatoes can be canned (San Marzano for best quality), but fresh ripe ones are traditional. For a milder curry, reduce the chili powder by half and add more toward the end if needed.
The curry tastes even better the next day as the spices meld. Store in an airtight container in the fridge for up to 3 days. Reheat gently to avoid breaking the fish. For longer storage, freeze without the fish and add cooked pieces when reheating.
Why You’ll Love This Recipe
- One-Pot Wonder: I love how everything—fish, onions, tomatoes—cooks together in one pan, saving me from a sink full of dishes.
- Flavor Bomb: The combination of fresh ginger and garlic with tender fish fillets creates a taste that’s rich and comforting.
- Weeknight Hero: This dish comes together fast, so I can serve a hearty meal even on busy evenings.
- Budget Friendly: White fish fillets and basic pantry staples make this a cost-effective meal that doesn’t skimp on flavor.
Step-by-Step Instructions for Traditional Hyderabadi Fish Curry
This traditional method delivers authentic flavors through careful layering of spices and proper cooking techniques.
Step 1: Prepare and Marinate the Fish Fillets
Rinse the 1.5 lb white fish fillets under cold water and pat them completely dry with paper towels. This removes any fishy odor and ensures the marinade adheres properly. I always check for any remaining bones at this stage to prevent unpleasant surprises later.
In a bowl, combine the fillets with 1 tsp turmeric powder, 1.5 tsp red chili powder, and 1 tbsp fresh ginger (peeled and grated). Rub this mixture evenly over all surfaces of the fish. Let it marinate for 15-20 minutes—this infuses the fillets with color and protects them during cooking.
The turmeric gives the fish its characteristic golden hue while the ginger adds a subtle warmth. Don’t skip this step; the marinade creates a protective barrier that keeps the fish moist and prevents it from breaking apart in the curry.
Step 2: Create the Aromatic Base for the Curry
Heat 0.5 cup vegetable oil in a heavy-bottomed pot over medium heat. Add 1 tsp cumin seeds and 0.5 tsp mustard seeds. When they begin to splutter after about 30 seconds, add the 10 pieces curry leaves—this releases their citrusy aroma into the oil.
Immediately add the 2 whole onion (finely chopped) and sauté for 6-8 minutes until they turn golden brown. The onions should be soft and translucent with caramelized edges. Then add 6 cloves fresh garlic (minced finely) and 3 whole green chilies (slit lengthwise), cooking for another 2 minutes until fragrant.
This tempering process builds the foundation of your curry. The mustard and cumin seeds add earthy depth, while the curry leaves contribute their unique South Indian character. Cook the onions low and slow to develop their natural sweetness.
Step 3: Build the Spiced Tomato Gravy
Add the 3 whole tomatoes (ripe, pureed) to the pot along with 2 tbsp coriander powder. Cook this mixture for 8-10 minutes on medium-low heat, stirring frequently to prevent sticking. You’ll know it’s ready when the oil begins to separate and the mixture thickens slightly.
The tomatoes should break down completely and the raw smell of coriander should disappear. I often add a splash of water during this stage if the mixture seems too thick. This cooking process develops the complex flavor base that makes Hyderabadi curries so distinctive.
Taste and adjust the seasoning at this point. The gravy should have a balanced spice level with the sweetness of onions and tomatoes complementing the heat from the chilies and chili powder.
Step 4: Cook the Fish in the Spiced Gravy
Gently place the marinated white fish fillets into the tomato gravy. Spoon some of the hot gravy over the fillets to coat them evenly. Cover the pot and cook on low heat for 8-10 minutes. Resist the urge to stir—this can break the delicate fillets.
The fish is done when it flakes easily with a fork and turns opaque throughout. I check this by gently pressing a piece with a spatula—if it separates easily, it’s ready. The curry should have a thick, gravy-like consistency with the fish pieces fully submerged.
Be careful not to overcook the fish. It continues cooking slightly even after you remove it from heat, so take it off just as it finishes cooking.
Step 5: Garnish and Rest Before Serving
Once the fish is cooked, turn off the heat and let the curry rest for 5 minutes. This allows the flavors to meld together. Sprinkle 0.5 cup fresh cilantro (chopped) and 0.25 cup fresh mint leaves (chopped) over the top just before serving.
The fresh herbs add a bright, fresh contrast to the rich curry. I always tear the mint leaves slightly with my fingers rather than chopping them finely—this releases more of their aromatic oils.
Serve the curry hot with steamed rice or flatbread to soak up the delicious gravy. The fish should be tender and flaky, with each bite carrying the complex flavors of the spiced tomato base.
Pro Tips For Making Machli Ka Salan Recipe In Urdu
- Pat Fish Dry: I learned this the hard way—wipe the white fish fillets with a paper towel before marinating. Wet fish steams instead of searing, and you’ll miss that light crust that makes machli ka salan special. —
- Bloom the Spices: After sautéing onions, give the ginger, garlic, and ground spices a full 2-3 minutes on medium-low heat. Sounds simple, but skipping this leaves the curry tasting raw and one-dimensional. —
- Skip Overcrowding: Resist the urge to dump all the fish in at once. Cook the fillets in batches if needed—too much in the pan drops the temperature and turns your salan into a sad, soggy stew. —
- Use Ripe Tomatoes: My grandmother swore by this, and she was right: only use deep red, fully ripe tomatoes for the gravy. Underripe ones add a sour bitterness that no amount of sugar can fix.
Best Sauces and Condiments for These Flavors
Classic Chutneys
Serve with mint-coriander chutney for a cooling contrast to the warm spices. Blend 1 cup fresh cilantro, ½ cup mint leaves, 2 green chilies, and 1 tbsp lemon juice with a pinch of salt. This bright, herby dip balances the richness perfectly. 💡
Yogurt Raita
I always make a simple cucumber raita to serve alongside. Beat 1 cup plain yogurt with ½ cup grated cucumber, ½ tsp cumin powder, and salt to taste. The cool yogurt cuts through the heat beautifully.
Pickled Onions
Thinly slice 1 red onion and soak in ¼ cup vinegar with 1 tsp sugar and ½ tsp salt for 30 minutes. These tangy onions add a satisfying crunch and acidity that complements the curry’s depth.
Fresh Lime Wedges
A squeeze of fresh lime just before eating brightens all the flavors. I serve 4-6 lime wedges on the side—it lets everyone adjust the tanginess to their taste. The acidity also helps highlight the spices in the dish.
Spiced Rice
For a complete meal, serve with jeera rice. Cook basmati rice with 1 tsp cumin seeds toasted in 2 tbsp ghee. The nutty, aromatic rice pairs wonderfully with the fish curry. ✨
Nutrition Facts
Frequently Asked Questions
What type of fish works best?
Firm white fish like cod or tilapia hold up perfectly in the spiced gravy. Avoid delicate varieties that might break apart during cooking.
Can I make this less spicy?
Yes! Reduce the red chili powder by half and remove seeds from green chilies. You can always add more spice later to taste.
How do I prevent the fish from breaking?
Pat the fillets completely dry before marinating and avoid stirring once they’re in the curry. Cook on low heat for 8-10 minutes.
What if I don’t have curry leaves?
Use dried curry leaves (rehydrated) or skip them entirely. Don’t substitute with other herbs as they won’t provide the same authentic flavor.
- Recipe for Boneless Pork Chops in Cast Iron Skillet: Sear and Baste to Juicy Perfection - October 3, 2026
- Recipe for Boneless Cross Rib Roast: Slow-Roasted Beef with Herb Crust - October 3, 2026
- Hamburgers in Sauce Recipe Crock Pot: Slow-Cooked Savory Delight - October 3, 2026