Kufteh Holoo (کوفته هلو) — Persian Peach-Style Meatballs
Kufteh Holoo are Shiraz-style Persian meatballs shaped like peaches, blending savory beef with raisins, herbs, and warm spices. They are gently simmered in a fragrant saffron-turmeric broth brightened with lemon.

Printable Recipe Card
Servings: 6 · Total: 110 min · Difficulty: medium
Ingredients (quick list)
- 220 g Yellow onion (1 large onion, finely grated; squeeze out excess juice and reserve 2 tbsp onion juice for the broth)
- 600 g Ground beef (85% lean) (or a mix of beef and lamb)
- 35 g Chickpea flour (about 1/3 cup; helps bind and keeps the meatballs tender)
- 120 g Carrot (1 medium carrot, finely grated)
- 20 g Fresh dill (finely chopped (about 1/2 cup loosely packed))
- 15 g Fresh basil (finely chopped (about 1/2 cup loosely packed))
- 2 tsp Dried mint (crushed between fingers)
- 1.5 tsp Turmeric
- 2 tsp Fine sea salt
- 1 tsp Black pepper (freshly ground)
- 90 g Raisins (golden or dark; soak in hot water 10 minutes, then drain well)
- 15 g Unsalted butter (for sautéing the raisins)
+ 7 more in the full ingredients section below.
Steps (summary)
- Soak the raisins in hot water for 10 minutes, then drain thoroughly and pat dry so they do not steam inside the meatballs. Mean…
- Make the filling: melt the butter in a small skillet over medium heat. Add the drained raisins and cook 2–3 minutes until plump…
- Prepare the meatball mixture: in a large bowl combine ground beef, squeezed grated onion, chickpea flour, grated carrot, choppe…
- Shape and fill: lightly wet your hands. Divide the meat mixture into 12 equal portions (about 75–80 g each). Flatten one portio…
- Start the broth: in a wide pot or deep sauté pan, heat the oil over medium heat. Add the diced onion and cook 8–10 minutes unti…
- Season the broth: add the reserved 2 tablespoons onion juice, bloomed saffron with its liquid, lemon juice, sugar (if using), s…
+ 2 more steps in the full instructions section below.
Cultural Background
Kufteh Holoo is associated with home-style cooking in Shiraz and is named for its peach-like shape and warm golden color. Dishes like this reflect a common Persian preference for balancing savory flavors with gentle sweetness from dried fruit and aromatic herbs.
Equipment
💡 Tips
- Squeezing grated onion is essential; excess liquid can cause the meatballs to crack while simmering.
- Kneading until the mixture becomes sticky develops a stable bind without eggs or breadcrumbs.
- Keep the broth at a gentle simmer; vigorous boiling is the most common cause of broken meatballs.
- If the mixture feels soft, chill an additional 15 minutes before shaping for cleaner ‘peach’ forms.
- For a deeper golden hue, increase broth turmeric by 1/2 teaspoon and add a little more bloomed saffron.
⚠️ Common Mistakes
❌ Dropping meatballs into rapidly boiling broth
💡 Why: Strong agitation can crack the surface before the proteins set, causing the meatballs to fall apart
✅ Fix: Reduce to a gentle simmer first; add meatballs carefully and avoid stirring for the first 10 minutes
❌ Not squeezing the grated onion
💡 Why: Excess onion liquid loosens the mixture and weakens binding during simmering
✅ Fix: Squeeze firmly and use only the onion pulp in the mixture; reserve a small measured amount of juice for the broth
❌ Under-kneading the meat mixture
💡 Why: Insufficient mixing prevents proper binding, leading to crumbly texture and splitting
✅ Fix: Knead 5–7 minutes until the mixture turns sticky and holds together when pressed
❌ Filling with warm raisins
💡 Why: Heat melts fat in the meat mixture and makes shaping difficult, increasing the risk of leaks
✅ Fix: Cool the raisin filling completely before stuffing and sealing the meatballs
🧊 How to Store
Cool completely, then refrigerate meatballs and broth together in an airtight container for up to 3 days. Reheat covered at a gentle simmer (do not boil) for 10–12 minutes. Freeze up to 2 months; thaw overnight in the refrigerator and reheat gently.
📅 Make Ahead
Prepare and shape the meatballs up to 24 hours ahead; arrange on a parchment-lined tray, cover tightly, and refrigerate. The broth base can be made 2 days ahead and refrigerated. Cook meatballs in gently reheated broth just before serving for best texture.
🍽️ Pairs Well With
- Steamed basmati rice
- Flatbread
- Fresh herb platter (mixed herbs
- radishes
- scallions)
- Plain yogurt with cucumber
Regional Variations
- Fars (Shiraz and surrounding areas)Often shaped into peach-like ovals and simmered in a light saffron-turmeric broth with lemon for a clean, fragrant finish.
- Tehran (home-style adaptations)Some cooks enrich the broth with a little tomato paste for deeper color and a slightly fuller taste, while keeping the sweet raisin center.
Ingredients
- 220 gYellow onion (1 large onion, finely grated; squeeze out excess juice and reserve 2 tbsp onion juice for the broth)
- 600 gGround beef (85% lean) (or a mix of beef and lamb)
- 35 gChickpea flour (about 1/3 cup; helps bind and keeps the meatballs tender)
- 120 gCarrot (1 medium carrot, finely grated)
- 20 gFresh dill (finely chopped (about 1/2 cup loosely packed))
- 15 gFresh basil (finely chopped (about 1/2 cup loosely packed))
- 2 tspDried mint (crushed between fingers)
- 1.5 tspTurmeric
- 2 tspFine sea salt
- 1 tspBlack pepper (freshly ground)
- 90 gRaisins (golden or dark; soak in hot water 10 minutes, then drain well)
- 15 gUnsalted butter (for sautéing the raisins)
- 0.5 tspGround cinnamon
- 2 tbspNeutral oil (such as grapeseed or sunflower)
- 1 tbspTomato paste (optional but adds color and depth)
- 900 mlChicken stock (or water; low-sodium preferred)
- 0.25 tspSaffron threads (bloomed in 2 tbsp hot water for 10 minutes)
- 3 tbspLemon juice (freshly squeezed, plus more to taste)
- 1 tspGranulated sugar (balances the lemon; optional)
🔄 Substitutions
- Ground beef (85% lean)→ Ground lamb or a 50/50 mix of lamb and beef
- Chickpea flour→ Fine breadcrumbs
- Chicken stock→ Water plus 1/2 tsp extra salt (to taste)
Instructions
- 1
Soak the raisins in hot water for 10 minutes, then drain thoroughly and pat dry so they do not steam inside the meatballs. Meanwhile, grate the onion for the meat mixture and squeeze it firmly; reserve 2 tablespoons of the onion juice for the broth and keep the squeezed onion pulp.
- 2
Make the filling: melt the butter in a small skillet over medium heat. Add the drained raisins and cook 2–3 minutes until plump and glossy. Stir in the cinnamon for 10 seconds, then transfer to a plate to cool completely (warm filling can soften the meat mixture and make shaping difficult).
- 3
Prepare the meatball mixture: in a large bowl combine ground beef, squeezed grated onion, chickpea flour, grated carrot, chopped dill, chopped basil, dried mint, turmeric, salt, and black pepper. Knead vigorously by hand for 5–7 minutes until sticky and cohesive; cover and chill 20 minutes.
- 4
Shape and fill: lightly wet your hands. Divide the meat mixture into 12 equal portions (about 75–80 g each). Flatten one portion into a thick disc, place 1 heaped teaspoon of raisin filling in the center, then seal and roll into an oval ‘peach’ shape. Repeat and keep covered.
- 5
Start the broth: in a wide pot or deep sauté pan, heat the oil over medium heat. Add the diced onion and cook 8–10 minutes until soft and lightly golden. Stir in tomato paste (if using) and turmeric; cook 1 minute to remove raw taste, then add stock and bring to a gentle simmer.
- 6
Season the broth: add the reserved 2 tablespoons onion juice, bloomed saffron with its liquid, lemon juice, sugar (if using), salt, and black pepper. Keep the heat at a low simmer (small bubbles). A rolling boil can break the meatballs, so adjust the flame before adding them.
- 7
Cook the meatballs: lower the shaped meatballs into the simmering broth one by one, spacing them apart. Do not stir for the first 10 minutes; instead, gently shake the pot occasionally. Cover partially and simmer 30–35 minutes, turning the meatballs carefully once halfway through.
- 8
Finish and serve: taste the broth and adjust with up to 1 tablespoon extra lemon juice or a small pinch more salt. Simmer uncovered 5 minutes to slightly concentrate the sauce. Rest off heat 10 minutes so the meatballs firm up. Serve hot with broth spooned over.
🪪 Recipe Passport
Cultural Background
Kufteh Holoo is associated with home-style cooking in Shiraz and is named for its peach-like shape and warm golden color. Dishes like this reflect a common Persian preference for balancing savory flavors with gentle sweetness from dried fruit and aromatic herbs.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Mixed Vegetable Rice (برنج با مخلوط سبزیجات) — Persian-Style Aromatic Pilaf
Persian · Rice Dishes · 75 min

Katteh Tond (کته تند) — Spicy Caspian-Style One-Pot Chicken Rice
Persian · Rice Dishes · 85 min

Saffron Sweet Rice (پلو شیرینی زعفرانی) — Festive Persian milk-saffron rice with nuts
Persian · Rice Dishes · 75 min

Cuban Crispy Shredded Beef (Vaca Frita) — Garlic and Citrus
Cuban · Main Courses · 140 min

Pone Yay Gyi Curry (ပုန်းရည်ကြီးဟင်း) — Burmese Pork and Fermented Bean Paste
Burmese · Main Courses · 115 min

Chicken Chygyrtma (Toyuq Çığırtması) — Azerbaijani Chicken with Eggs and Tomatoes
Azerbaijani · Main Courses · 65 min

Turkish Cağ Kebab (Cağ Kebabı) — Erzurum Slow-Roasted Charcoal Lamb Skewer
Turkish · Kebabs · 160 min

Uzbek Shurpa (Шўрпа) — Lamb and Vegetable Soup
Uzbek · Soups · 160 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.