Puri is prepared with wheat flour, either atta (whole wheat flour), maida (refined wheat flour), or sooji (coarse wheat flour). Maida flour is the most common flour used in making Puris. In some recipes, cumin seed are also added to the dough. A dough of flour and salt is either rolled out in a small circle or rolled out and cut out in small circles and deep fried in ghee or vegetable oil. While deep frying, it puffs up like a round ball because moisture in the dough changes into steam which expands in all directions. When it is golden-brown in color, it is removed and may be served hot or saved for later use (as with the snack food pani puri). The rolled puri may be pricked with a fork before deep frying to get a flat puri for chaat like bhel puri. A punctured puri does not puff when cooked because the steam escapes as it cooks.
Puri can be served with halwa, korma, chana masala, dal, potato based curries (e.g.: saagu, bhaji, bhujia, Aloo ki tarkari), shrikhand, basundi. In some parts of India, puri is also served with a mixed vegetable dish that is prepared during Puja, and with kheer, a dessert prepared with rice, milk and sugar.Puri is often served during a special occasion.
A variant of puri is bhatoora, which is three times the size of a puri and served with chholey (spicy chick peas). It often constitutes a full meal. (See chole bhature). Bhatoora is made of a different flour; puri uses whole-wheat flour while bhatoora uses leavened all-purpose flour (maida). In the Indian state of Odisha a large size Puri is made during Bali Yatra which is called Thunka puri (Oriya: ଠୁଙ୍କା ପୁରି).
Another variant of the puri popular in the eastern states of West Bengal and Odisha is the luchi. In Assam, it is pronounced as lusi.
The puris used for Panipuri are smaller, and are usually made crisper by the addition of Rava/sooji to the dough.
Sev puri is an Indian snack offered by street vendors who serve chaat.
Street vendors in Mumbai serve Bhel in a throw-away folded leaf with a flat puri to scoop it.