Asam Laksa.
Penang Sour Fish Noodle Soup
Asam laksa · say it: AH-sam LAK-sa
Asam laksa is a sour, fishy, herbal noodle soup that tastes like nothing else in Southeast Asia. The broth is made by poaching oily mackerel, flaking the flesh back into the cooking water, and souring it hard with tamarind and slices of asam gelugor — dried sour fruit — until it is aggressively tart. A rempah of chile, shallot, lemongrass and belacan goes in, along with torch ginger flower, which smells floral and slightly of ginger and rose at once. Over that go thick, soft rice noodles and a pile of raw garnishes: shredded pineapple, cucumber, red onion, mint and lettuce. A dark spoonful of sweet prawn paste on top pulls the whole sour thing back into balance.


- Gate
MalaysiaPenang- Prep
- 35 min
- Cook
- 50 min
- Total time
- 1 hr 25 min
- Serves
- 4
- Status
- Takes skill
- Nutrition / serving · estimated
- Calories 480 kcal
- Protein 32 g
- Carbs 66 g
- Fat 8 g
- Fiber 5 g
- Sugar 14 g
- Sodium 1400 mg
Why this recipe works.
- Real broth technique: the fish is poached, flaked and returned, so the soup carries body without cream, coconut or thickener.
- Two souring agents used deliberately — tamarind for depth, asam gelugor for a clean edge — with an honest fallback if you can only get one.
- The garnish plate is treated as part of the recipe, not a suggestion, because raw pineapple and mint are what make the bowl work.
- Explains what torch ginger flower and hae ko do, so you can judge whether to hunt for them or cook without.
Ingredients.
21 itemsFor the broth
For the rempah
To serve
Equipment
- Large stockpot
- Fine sieve
- Blender or stone mortar
- Slotted spoon
Instructions.
Poach the fish
Bring the water to a gentle simmer, slide in the whole fish and poach for 8–10 minutes until the flesh pulls easily from the bone. Lift the fish out onto a tray and keep the cooking water in the pot.
Tip Keep it below a rolling boil or the fish shreds into the broth and you will spend twenty minutes fishing out bones.
Flake and pick over
When the fish is cool enough to handle, pull the flesh from the frame and go through it with your fingertips, removing every bone including the fine pin bones along the lateral line. Set half aside for garnish and reserve the rest.
Blend and add the rempah
Blend the soaked chiles, shallots, garlic, lemongrass, turmeric and toasted belacan into a coarse paste with a splash of the fish water. Stir it straight into the pot and bring back to a simmer.
Sour and simmer the broth
Add the strained tamarind water, the asam gelugor slices, the torch ginger halves and the larger portion of flaked fish. Simmer uncovered for 30 minutes, breaking the fish up with a spoon, until the broth turns cloudy and tastes sharply sour with a deep fish savour behind it.
Balance the seasoning
Add the sugar and salt a little at a time, tasting after each addition, until the broth is sour first, salty second and just faintly sweet. Fish out the gelugor slices and the torch ginger before serving.
Tip It should make you wince slightly on its own — the cold garnishes and noodles will soften it considerably in the bowl.
Assemble the bowls
Rinse the noodles in hot water and divide them between four warmed bowls. Ladle the boiling broth over, then pile on the pineapple, cucumber, red onion, mint, lettuce, sliced chile and the reserved flaked fish. Serve each bowl with a teaspoon of loosened hae ko on the side to stir in.
Tips from our kitchen.
- Use oily fish. Mackerel, sardines or bonito give the broth its character; white fish makes a thin, characterless soup that no amount of tamarind will save.
- Poach the fish gently and lift it out the moment it flakes, then pick every bone out by hand before returning the flesh. Bones in asam laksa are a real hazard.
- Taste the broth for sourness only after it has simmered 20 minutes — tamarind mellows considerably and a broth balanced too early ends up flat.
- Rinse the thick rice noodles under hot water just before serving and portion them into hot bowls, since they stiffen quickly as they cool.
- Prepare all the garnishes before the broth is finished and keep them cold. The contrast between hot sour broth and cold crunchy toppings is most of the pleasure.
- Go easy the first time with hae ko: half a teaspoon stirred in, tasted, then more. It is intensely sweet and salty and easy to overdo.
Substitutions.
- Asam gelugor (dried sour fruit slices) → Extra tamarind pulp plus a squeeze of lime at the end
- Gelugor gives a rounder, less fruity sourness. Doubling the tamarind gets you a sour broth, and the lime restores some of the sharpness the gelugor was providing.
- Torch ginger flower (bunga kantan) → A stalk of lemongrass, finely shredded, plus a strip of lime zest
- There is no real equivalent for its floral, faintly rosy aroma, and frozen buds are the best bet if an Asian grocer stocks them. Without it the broth is still sour and good, just less distinctive.
- Hae ko (black prawn paste) → A teaspoon of dark molasses plus half a teaspoon of fish sauce
- This mimics the sweet-salty function rather than the flavour. Hae ko keeps almost indefinitely in the fridge, so it is worth buying a jar if you plan to make this again.
Variations.
- Laksa lemak
- The coconut branch of the family: the same noodles in a rich coconut-and-rempah broth with prawns and cockles, common in Kuala Lumpur and Malacca.
- Sarawak laksa
- A different dish again — sambal-based broth with coconut milk, omelette strips, shredded chicken and prawns, from across the sea in Borneo.
- Asam laksa with sardines
- The common home shortcut in Malaysia: tinned sardines in tomato sauce stirred into the broth alongside the fresh fish, which adds body and sweetness.
Storage & reheating.
The broth keeps 3 days refrigerated and tastes better on day two once the sourness settles; it freezes for 2 months, though the flaked fish softens. Store broth, noodles and garnishes strictly separately — noodles left in broth swell and disintegrate, and cut pineapple and mint turn limp within hours. Reheat the broth to a full simmer and pour it over freshly rinsed noodles and freshly cut garnishes. Never reheat an assembled bowl.
Serve with
Nothing else — asam laksa is a whole meal in a bowl, eaten with a spoon and chopsticks.
The story behind Asam Laksa.
Laksa is not one dish but a family, and the family splits along one hard line: coconut or no coconut. The curry laksas of Kuala Lumpur, Singapore and Sarawak are rich and creamy, built on coconut milk. Penang asam laksa is the other branch entirely — no coconut, no fat to speak of, and sourness as the organising principle. Asam simply means sour, and the tartness comes from two sources at once: tamarind pulp and asam gelugor, the sun-dried slices of a garcinia fruit that give a cleaner, less sweet acidity.
The word laksa itself may descend from a Persian or Sanskrit root for noodles, and the dish sits squarely in the Peranakan tradition — the Chinese communities who settled the Straits ports, married locally, and built a kitchen out of Chinese ingredients and Malay technique. Penang, the island port where much of that community concentrated, made asam laksa its own to the point that the dish is essentially a regional passport. It appears on international lists of great dishes with regularity, which locals find both gratifying and slightly beside the point.
It is genuinely divisive food. The flavour profile is sour, pungent and fish-forward, and the finishing spoon of hae ko — thick black prawn paste, sweet and almost molasses-like — is the part visitors most often ask to have left off, which is a bit like ordering a bowl of pho without the herbs. Malaysians eat it as a mid-afternoon meal from stalls that boil a cauldron of broth each morning and ladle from it all day, and the broth genuinely does improve over those hours as the fish and tamarind settle into each other. The version below is scaled to a household pot but keeps the same order of operations.
Questions, answered.
What is the difference between asam laksa and curry laksa?
They are separate dishes that share a name. Asam laksa, from Penang, contains no coconut milk at all: it is a sour, thin fish broth soured with tamarind and topped with raw herbs and pineapple. Curry laksa, also called laksa lemak, is rich and creamy with coconut milk, chile and usually prawns or chicken. If a laksa is orange and creamy, it is not asam laksa.
Which fish should I use?
Oily fish with strong flavour: mackerel is the classic choice, and sardines, horse mackerel or bonito all work. The fish is poached, flaked and returned to the broth, so it needs to be robust enough to season several litres of liquid. Cod, haddock and other lean white fish give a broth that tastes watery no matter what else you add.
My broth tastes harshly sour. Can I fix it?
Yes. Add sugar in small increments — half a teaspoon at a time — and a little more salt, both of which round off the tamarind. A larger spoonful of hae ko does the same job while adding depth. If it is still too sharp, dilute with a ladle of hot water and re-season. Do not add coconut milk, which turns it into a different dish.
What noodles does asam laksa use?
Thick, round rice noodles about 3 mm across, sold fresh or dried as laksa noodles, lai fun or thick rice vermicelli. They are soft and slippery rather than springy. Fresh ones need only a rinse in hot water; dried ones need boiling and then a cold rinse to stop them clumping. Thin rice vermicelli is a poor substitute — the bowl needs the weight.
Do I have to include the shrimp paste garnish?
The bowl works without it but is noticeably less balanced. Hae ko is thick, black, sweet and salty, and its job is to counter the sourness of the broth from underneath. Serve it on the side in a small dish so each person stirs in as much as they want, which is how stalls handle nervous first-timers.
You might also like.
All recipes →Keep exploring Malaysia.
Malaysia has 9 more dishes in the atlas — Acar Awak and Ayam Percik, and 7 more.
Recipe by The DishRoute Kitchen · published August 20, 2026 · updated August 20, 2026



