Preheat deep fryer or cooking oil to 180 degrees C.
For the onion mixture:
Warm the oil in a frying pan over a medium heat. Add the onions and cook and stir until just soft (do not brown!). This allows them to be formed into balls more easily. Add all the spices and toss to coat.
For the batter:
Mix batter ingredients together in a large bowl, gradually adding the water last to achieve the consistency of thin peanut butter. Mix in the onions so that they are evenly coated in batter.
Using two dessert spoons, form into balls and carefully place into the hot oil (a deep fryer is highly recommended to get an even cook). Cook 4 bhajis at a time until a deep golden colour. Remove from the oil and allow to drain on kitchen paper before serving.
Can be kept warm in oven or reheated from room temperature before serving.