Overview
Start with a firm, boneless white fish, give it a short marinade built around sharp carom seeds, then dip it in gram flour batter and fry until the outside turns deeply crisp and the inside stays tender. This is the signature street and restaurant dish of Amritsar in Punjab, traditionally made with freshwater fish pulled from the rivers near the city. Ajwain is non-negotiable here — its slightly bitter, thyme-adjacent bite cuts through the heaviness of the fried coating, and it's the single element that sets this fry apart from other regional versions.
Background & Origin
This fry belongs to Amritsar specifically, a city whose fish markets and street stalls once drew their supply from freshwater fish in the nearby Beas and Sutlej rivers. It's a product of Punjab's inland, river-fed cooking tradition — a different lineage entirely from the coastal fish fries of Goa, Kerala or West Bengal, where the fish, the spicing and often the coating itself (rice flour rather than gram flour) all differ. That distinction matters: "fish fry" isn't one dish repeated across India, it's a category, and each coastal or riverine region built its own version around whatever fish and spices were locally available.
How It's Made
-
Prep
Marinate the fish
Pat the fish strips fully dry, then fold in the ginger-garlic paste, lemon juice, crushed carom seeds, chilli powder, turmeric and salt without breaking the pieces apart. Cover and chill for 20 to 30 minutes. Fish has no use for the long marinating window that works on meat — leave it in the acidic lemon juice too long and the texture turns mushy instead of firming up.
-
Prep
Make a thick, clinging paste batter
Whisk together the gram flour, rice flour, carom seeds, chilli powder and turmeric, then add water bit by bit until you get a thick paste, loose enough to spread but still heavy enough to sit in a solid layer on the fish. Aim for something closer to a paste than a standard pakora batter — it needs that extra body to grip the fish's smooth surface.
-
Assemble
Coat each piece
Lift the fish out of the marinade and press each piece into the batter, working it over every surface so it adheres evenly.
-
Cook
Fry in small batches
Bring the oil to 175 to 185°C (345 to 365°F). Lower the batter-coated fish into the oil in small batches, leaving room between pieces, and fry 3 to 5 minutes, flipping once, until the coating is deep gold and crisp.
-
Cook
Confirm the fish is cooked through
You're looking for fish that flakes apart easily under a fork and has turned opaque all the way through — a thermometer should read at least 63°C (145°F) at the center. These strips are thin enough that doneness usually tracks with the batter turning deep gold, but on any thicker piece, confirm by flaking or temperature rather than trusting color alone.
-
Serve
Drain and serve hot
Set the fried pieces on a wire rack to drain, then get them to the table right away with lemon wedges, sliced onion and a mint or coriander chutney, while the crust still has its crunch.
Swaps & Substitutes
Nearly any firm, boneless white fish holds up here; something delicate and flaky is more likely to break apart during marinating or coating, so a firmer fillet is the safer bet if this is your first attempt. There's no real stand-in for ajwain — it defines the dish — though a lesser amount of dried thyme gets you somewhat close if you're stuck.
Dialing the Heat Up or Down
Red chilli powder in the marinade and batter is your main heat control; cut it in both places for a gentler version. Carom seeds aren't about heat at all — they bring a sharp, slightly bitter note — so trim them back a little if that flavor feels too strong, keeping in mind it's what makes the dish recognizable in the first place.
Where This Goes Wrong
Leaving the fish in the marinade too long is the most frequent misstep — the lemon juice's acid will turn delicate fillets mushy, so hold the line at 20 to 30 minutes. A batter mixed too thin is another common issue; it won't grip the fish's smooth surface and ends up sliding off in the oil. And relying on color alone to judge doneness on thicker pieces can mislead you — the coating can go deep gold before the fish inside has actually finished cooking, so flake a thicker piece or check it with a thermometer instead of guessing.
Keeping & Reheating Leftovers
To store: Use raw marinated fish the same day it's prepared, and keep it refrigerated right up until it hits the oil — unlike meat, fish doesn't hold safely for long once marinated raw. Once cooked, the fry keeps in the fridge for up to 2 days, though the crisp texture fades fast, so fresh is genuinely better here.
To reheat: An oven or air fryer at 180°C (350°F) for 6 to 8 minutes brings it back to temperature and restores some of the crunch. Skip the microwave — it softens the coating and can leave the fish with a rubbery bite.
Safety Note
Since this recipe handles raw fish, source it from somewhere reliable, keep it cold until you're ready to marinate, and either cook or freeze it promptly rather than letting it sit at room temperature. Marinate it in the fridge, never on the counter, and don't exceed the time given — fish breaks down texturally faster than meat when left too long in an acidic marinade. Keep a dedicated cutting board and utensils for raw fish, and scrub your hands, surfaces and tools with hot soapy water after they've touched it, before anything else does. Cook to the point where it flakes easily and reads at least 63°C (145°F) internally, and get any leftovers into the fridge within two hours of cooking.