Mix the milk and the lemon juice together and leave to one side while you prepare the onions.
Peel the onions, top and tail and slice thinly. Put them in a mixing bowl, pour over the 'buttermilk' and stir to coat. Leave while you prepare the garlic and ginger.
Chop the peeled garlic and ginger and add to the onions, along with all the spices and salt.
Mix the gram flour and cornflour together and add to the onions a little at a time until all the liquid is absorbed.
Heat at least two inch of oil in a pan, or use a deep fat fryer, to between 165℃ and 170℃.
Shape the mixture into balls, slightly larger than a golf ball, using two spoons and carefully slide them into the hot oil. only do 3 to 4 at a time otherwise the temperature of the oil will drop.
Cook for around 6 minutes or until the bhaji is a deep golden colour and crispy. Turn occasionally so they cook evenly and keep an eye on the temperature. Over 170℃ and they will burn and be uncooked in the middle. Under 165℃ and the bhajis will absorb the oil and be greasy.
When the bahjis are cooked, remove from the oil with a slotted spoon and put to drain on a cooling rack.
Eat as soon as possible after cooking with some salad and mint and yoghurt raita
Keyword fried onion snack, Indian snack, Indian Street Food, onion bhaji, onion bhaji recipe