When I was little, fish ball soup was something my mother always cooked for us as our weekday lunch after school or a quick add-on soup during dinner time. Growing up in tropical Malaysia, it was easy to get ready-made fish balls from the wet market. In Southeast Asia, fish balls are normally made from white fish like mackerel pike (also known as saury), mullet (mackerel), or milkfish (called bangus in Philippines).
Sometimes, fish balls are also made from fish with a minced pork filling. They are called the ‘Fuzhou fish balls’ and are generally larger in size. Fish balls are cooked in many ways. They can be grilled or fried as a snack, skewered on a bamboo stick and boiled in a spicy curry sauce in Hong Kong, or cooked in noodle soups like in Malaysia and Singapore.
The basic ingredients of traditionally hand-made fish balls are just pounded fish paste, salt, egg white and some starch or flour. However, commercially made fish balls from wholesalers are usually from cheaper or stale fish mixed with more flour, sugar and flavourings to make the cost cheaper. Sometimes food additives like binding agents which are not good for gut health are added.
To avoid those nasty food additives, I have been contemplating and experimenting in the kitchen. Here is the healthy recipe that I managed to come up with after referencing some traditional recipes. I have made it healthier by replacing some ingredients with sugar-free, gluten-free and wheat-free options. I hope you can give it a try as they are fairly simple to make and can be done in less than 30 minutes!
Prep time: 15 minutes
Cook time: 15 minutes
Serving size: 14 balls

Ingredients
For the soup or broth:
- 1.5 litres of fish stock or vegetable stock
- A big handful of Chinese cabbage or normal cabbage, cut into 1-inch slices
- An inch of fresh ginger root, peeled and chopped or grated
- Pinch of sea salt or Himalayan salt, to taste
- ¼ teaspoon of ground white pepper
- 1 tablespoon of sugar-free soy sauce like coconut or soy aminos or tamari sauce
- 1 teaspoon of sesame oil
For the fish balls:
- 300g of any white fish fillets, skin removed and roughly chopped (you can use cod, basa or haddock if you are not living in the tropics.)
- 100g of squid or cuttlefish, cleaned and roughly chopped (cuttlefish will give a sweeter taste — the reason to add in squid or cuttlefish is to create the firm bouncy texture of fish balls without using the nasty food additives!)
- Pinch of salt
- ¼ teaspoon of ground white pepper
- 2 teaspoons of soy or coconut aminos or tamari sauce
- 1 teaspoon of rice wine or lemon or lime juice (for alcohol free version) or you can even use apple cider vinegar (to just get rid of the fishy smell a bit and to enhance the flavour)
- 1 tablespoon of tapioca, arrowroot or corn starch. You can also use coconut flour or almond flour for a wheat free option. I was using coconut flour.
- 1 large egg white
- 1 tablespoon of finely sliced coriander leaves and stalks
To garnish:
- 1 tablespoon of chopped fresh coriander leaves
- 1 tablespoon of chopped fresh chives
- 1 teaspoon of chilli oil, to taste (optional if you like to have some spicy kick!)
Instructions:
- First, we make the fish balls. Put the chopped white fish fillets and squid in a food processor. You can also use pestle and mortar (the traditional way!) and pound them for a long time. Add in the rest of the fish ball ingredients and blend until well combined. At this stage, the fish should have already been finely ground and mixed well with other ingredients to create a fine fish paste (like you want to make a fish burger!).
- Before making the fish balls, you can start making the soup or the broth. Add the stock to a large wok or pot. Bring it to a simmer. Add the Chinese cabbage and ginger and roughly cook for 1 minute. Add in the rest of the seasoning ingredients.
- If you are a perfectionist, you can roll the fish paste into a ping pong ball size. Coat your palms with a bit of oil to avoid the sticky fish paste getting stuck to your palms before rolling the balls. For the rustic version, use 2 tablespoons. Scoop the fish paste with 1 tablespoon then pass the mixture from spoon to spoon to create an oval ball shape, called quenelle. Refer to my picture. Here is a short video to learn how to make a quenelle.
- Make sure the soup is still simmering and if it starts boiling, turn the heat down to medium. Gently add the fish balls to the soup. Cook until the fish balls float to the surface. They should look opaque and white.
- Once cooked, divide the soup, vegetables and fish balls into serving bowls. Drizzle with some chilli oil, sprinkle some chopped coriander leaves and chives. Serve immediately.