Main Courses
This authentic Thai fish cake recipe brings the vibrant flavors of street markets to your kitchen with its signature crispy exterior and fragrant herbal filling. The secret lies in the delicate balance of fresh herbs like lemongrass and galangal, combined with tender white fish or shrimp, creating a dish that's both light and deeply satisfying. I've perfected this traditional recipe over years of testing, ensuring every bite delivers that perfect crunch and aromatic essence of Thailand.
The key to authentic Tod Mun Pla is the batter—made with rice flour and coconut milk—which creates a golden, crispy crust while keeping the inside tender and flavorful. Fresh herbs like kaffir lime leaves and Thai basil infuse the mixture with bright, citrusy notes, while a touch of chili adds just the right kick. What sets this recipe apart is the traditional shaping technique, which ensures even frying and that signature crispy texture.
By the time you're done, you'll have perfectly golden fish cakes with a satisfying crunch that gives way to a fragrant, herby interior. These are best served immediately with a side of som tam (green papaya salad) or fresh cucumber slices, but they also make a fantastic appetizer for any gathering. The aroma alone will transport you to bustling Thai markets, where these crispy delights are a staple.
This recipe is versatile enough to adapt—swap in tofu for a vegetarian version or adjust the spice level to suit your taste. The traditional garnishes of fried shallots and sweet chili sauce take it to the next level, balancing the crispy texture with a tangy, slightly sweet finish. Let's bring the flavors of Thailand to your table with this foolproof method.
Ingredients for authentic thai fish cake
Fresh herbs and tender fish create these golden, crispy Thai fish cakes bursting with market-fresh flavor.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Firm white fish like cod or snapper |
| All-Purpose Flour 🌾 | ½ cup | For light batter |
| Rice Flour 🌾 | ½ cup | For crispy texture |
| Fresh Lemongrass 🌿 | 3 stems | White parts only, finely chopped |
| Galangal 🌿 | 1 piece | Fresh, peeled and minced |
| Thai Basil Leaves 🌿 | ½ cup | Packed, loosely chopped |
| Kaffir Lime Leaves 🍋 | 4 whole | Torn into thin strips |
| Coconut Milk 🥥 | ½ cup | Full-fat for creaminess |
| Fish Sauce 🍶 | 1 tbsp | Red Boat preferred |
| Sweet Chili Sauce 🌶️ | 2 tbsp | For serving |
| Vegetable Oil 🫒 | 2 cups | For deep frying |
| Salt 🧂 | 1 tsp | Fine sea salt |
| Ground White Pepper 🌶️ | ½ tsp | Freshly ground |
| Bird's Eye Chilies 🔥 | 2 whole | Seeds removed, finely chopped |
The herbs are non-negotiable here—Thai basil and kaffir lime leaves give that signature aroma. Asian markets have the best selection, but most grocery stores carry the frozen versions (they work in a pinch). Fresh galangal can be hard to find—look for it in the frozen section or swap with ginger at half the amount. The fish should be firm and fresh, with no fishy smell. Cod or snapper are perfect, but tilapia works too if you're on a budget. For the lemongrass, only use the white parts—the rest is too fibrous.
No lemongrass? Double the ginger for a close substitute. Running low on Thai basil? Regular basil plus a pinch of lime zest gets you halfway there. The coconut milk matters—full-fat only, as the lighter versions won't crisp up right. For extra crunch, add 1 tbsp cornstarch to the batter. The fish sauce is essential—Red Boat brand is the gold standard, but any good-quality one works. Want it spicier? Add 1 extra chili to the batter or serve with more chili sauce.
These are best served immediately, but you can prep the batter ahead and store it covered in the fridge for up to 2 days. The fried cakes keep for 1 day in an airtight container, though they lose some crispiness. For freezing, fry them first, then store in a single layer before transferring to a container—freeze for up to 1 month. Reheat in a skillet over medium heat for 2-3 minutes per side to restore crispiness.
Why You'll Love This Recipe
- No-Fuss Ingredients: I keep a bag of rice flour and all-purpose flour in my pantry—this recipe just needs a quick mix and a pulse in the food processor. No fancy prep, no special tools, just the basics you already have.
- Lemongrass-Lemony Magic: That bright, citrusy lemongrass punch cuts through the richness of the fish, while the galangal adds this subtle, peppery depth—like a Thai spa day for your taste buds. It’s the kind of flavor that lingers just right.
- Weeknight to Party Ready: Pan-fry a batch on Tuesday, then reheat them for Friday’s potluck or Monday’s lunch. They hold up shockingly well—crispy outside, tender inside—no one will guess they’re leftovers.
- Budget-Friendly Luxury: White fish fillets are affordable, and a little goes a long way. I stretch this recipe to feed four or even six if I slice it thin, making it feel like a restaurant-quality dish without the splurge.
Step-by-step instructions for authentic Thai fish cake recipe
Here's how to create these golden, fragrant fish cakes with perfect texture and bold flavors.
Prepare the Herbal Paste
In a food processor, combine the white parts of 3 stems fresh lemongrass and 1 piece peeled galangal. Pulse until finely minced—you should end up with about 2 tablespoons of bright green paste. This aromatic base forms the heart of the fish cake flavor.
Transfer the paste to a mixing bowl and add the 0.5 cup packed Thai basil leaves and 4 whole kaffir lime leaves torn into strips. Use a spoon to gently mash everything together, releasing the essential oils. The mixture should smell intensely citrusy and herbal—this is where the authentic Thai flavor comes from.
Mix the Fish and Batter
In a separate bowl, flake the 1.5 lb white fish fillets into small, irregular pieces using your fingers. Add the herbal paste mixture and gently fold together until just combined. Be careful not to overmix—the fish should remain tender.
In another bowl, whisk together the 0.5 cup all-purpose flour, 0.5 cup rice flour, 1 teaspoon salt, and 0.5 teaspoon ground white pepper. Gradually add the 0.5 cup coconut milk while whisking to create a smooth, thick batter. The rice flour will give your fish cakes that signature crispy exterior.
Combine and Rest the Batter
Pour the flour mixture over the flaked fish and gently fold everything together until fully incorporated. The batter should be thick but still spoonable. Here's the thing—let it rest for 15 minutes at room temperature. This allows the flours to hydrate properly and the flavors to meld.
After resting, taste a small spoonful and adjust seasoning if needed. You might want to add a tiny bit more fish sauce (start with ½ teaspoon) if the mixture tastes bland. The batter should have a fresh, herbal aroma with a hint of saltiness.
Shape and Fry to Golden Perfection
Heat 2 cups vegetable oil in a deep skillet to 350°F—use a thermometer to monitor the temperature carefully. The oil should be hot enough to create small bubbles around the fish cakes when you add them.
Using a spoon, carefully drop rounded tablespoons of batter into the hot oil. Fry for 3-4 minutes per side until deep golden brown and crispy. You'll know they're ready when the exterior develops a beautiful crackly crust while maintaining a tender interior. Work in batches to maintain the oil temperature.
Serve with Sweet Chili Sauce
Transfer the fried fish cakes to a paper towel-lined plate to drain excess oil. Let them rest for 2-3 minutes before serving—this helps them set slightly and makes them easier to handle.
Arrange the crispy fish cakes on a platter and drizzle with the 2 tablespoons sweet chili sauce. The contrast of sweet, spicy, and umami flavors with the herbal fish cakes is what makes this dish so irresistible. Serve immediately while still warm and crispy for the best experience.
Pro Tips For Making Authentic Thai Fish Cake
- Blend Fish Until Smooth: I learned this the hard way—lumpy fish cakes happen when you’re in a hurry. Pulse the fish fillets in a food processor until completely smooth, almost like a paste. This isn’t just about texture; it guarantees even cooking and a tender bite every time.
- Toast Flours Separately: Skip mixing the flours first—toss them in the pan one at a time. Start with all-purpose flour over medium heat for 30 seconds until golden, then swap in rice flour. The rice flour burns fast, so watch it like a hawk. This adds that crispy, caramelized edge without turning the whole batch into charcoal.
- Grate Galangal Fine: Sounds weird, but it works: use a microplane or the smallest holes on a box grater for galangal. The finer the texture, the more it blends into the fish mixture without leaving bitter chunks. (Yes, even if you’re impatient like me—just don’t skip this.)
- Chill the Dough: After mixing, let the fish cake dough rest in the fridge for at least 30 minutes. Cold dough holds its shape better when frying, and it prevents the cakes from falling apart mid-cook. I know, I know—waiting feels like torture, but your future self will thank you.
Dietary considerations for this recipe
Gluten-Free Adaptation
Replace the all-purpose flour and rice flour with 1 cup gluten-free rice flour for a naturally gluten-free version. I've tested this with Bob's Red Mill brand, which creates a crispy exterior without compromising texture. For extra binding, add 1 tablespoon cornstarch to the batter—this helps maintain the signature crispiness. 🌾
Vegetarian Option
Swap the fish for 1.5 lbs firm tofu, pressed and crumbled into small pieces. The tofu absorbs flavors beautifully, though you may want to add 1 extra tablespoon fish sauce to compensate for the lack of umami. For texture, fold in ¼ cup finely chopped mushrooms to mimic the fish's bite. The result is still aromatic and crispy!
Low-Fat Version
Reduce the coconut milk to ¼ cup and replace the remaining ¼ cup with unsweetened almond milk to cut fat while maintaining creaminess. For frying, use 1 cup vegetable oil instead of 2 cups, and keep the oil at 375°F—the higher temp helps crisp the cakes with less oil. Serve with extra sweet chili sauce to balance the lighter texture. 🥥
Allergy-Friendly Swaps
For nut allergies, skip the almond milk and use ¼ cup additional coconut milk instead. If avoiding seafood entirely, try chickpeas (1.5 cups, drained and mashed) as a base—they add protein and a slightly earthy note. Always check labels on fish sauce for shellfish traces if severe allergies are a concern.
Spice Level Control
Remove the seeds from bird's eye chilies before chopping for mild heat, or omit them entirely for a completely mild version. For extra kick, serve with 1-2 extra sliced chilies on the side. I like to keep the batter itself mild but offer spicy sauce as a customization option—this way, everyone can adjust to their preference. 🌶️
Nutrition facts
Frequently asked questions
Can I use frozen fish for this recipe?
Yes, but thaw it completely first in the refrigerator overnight. Frozen fish releases more water during cooking, which can make your fish cakes soggy. Pat the fish thoroughly dry with paper towels before using to help maintain that perfect crispy texture.
What's the best way to store leftover fish cakes?
Keep them in an airtight container for up to 1 day at room temperature, but they're best enjoyed fresh. For longer storage, freeze them on a tray first (to prevent sticking), then transfer to a bag for up to 1 month. Reheat in a skillet over medium heat for 2-3 minutes per side to restore crispiness.
Why did my fish cakes turn out greasy?
This usually happens when the oil isn't hot enough (350°F) or the batter contains too much moisture. Make sure your fish is completely dry before mixing, and let the batter rest for 15 minutes to thicken properly. Also, avoid overcrowding the pan—fry in batches to maintain proper oil temperature.
Can I bake these instead of frying?
You can try! Preheat oven to 400°F and brush the batter with oil before placing on a parchment-lined tray. Bake for 15-18 minutes, flipping halfway, until golden. However, they won't be as crispy as fried versions—they'll be more cake-like. For extra crunch, broil for 1-2 minutes at the end.
What's the secret to authentic flavor?
The combination of fresh herbs—especially kaffir lime leaves and Thai basil—is non-negotiable for authentic taste. Don't substitute with regular lime leaves or Italian basil. Also, use Red Boat fish sauce if possible, and let the batter rest to allow flavors to meld. The subtle aroma of galangal (like ginger but citrusy) is what makes these truly Thai.
