Soup-e Jafari (سوپ جعفری) — Persian Parsley Meatball Soup
A clear, aromatic Persian parsley soup with tender Gouda-stuffed meatballs simmered in beef stock. Bright herbs, gentle spices, and buttery finish make it a comforting starter or light meal.

Printable Recipe Card
Servings: 6 · Total: 85 min · Difficulty: medium
Ingredients (quick list)
- 120 g Fresh parsley leaves and tender stems, finely chopped (About 3 packed cups; reserve 20 g for finishing)
- 200 g Yellow onion, finely diced (About 1 large)
- 30 g Unsalted butter (For sautéing and finishing)
- 1500 ml Beef stock (Low-sodium preferred)
- 250 ml Water (Adjust for desired clarity)
- 120 g Carrot, small dice (About 1 medium)
- 80 g Celery, small dice (About 1 large stalk)
- 60 g Basmati rice (Rinsed until water runs mostly clear)
- 8 g Sea salt (Plus more to taste depending on stock saltiness)
- 1 tsp Black pepper, freshly ground (Divided)
- 400 g Ground beef (85–90% lean) (Chilled)
- 1 large Egg (Binder)
+ 3 more in the full ingredients section below.
Steps (summary)
- Prepare the meatball mixture: In a cold bowl, combine ground beef, egg, grated onion, breadcrumbs, sea salt, and black pepper.…
- Shape Gouda-stuffed meatballs: Divide the chilled mixture into 18 portions (about 28–30 g each). Flatten one portion in your pa…
- Build the parsley base: In a 4–5 liter pot, melt 20 g butter over medium heat. Add diced onion and cook 8–10 minutes, stirring,…
- Simmer the broth and rice: Pour in beef stock and water, then add 8 g sea salt and 1/2 tsp black pepper. Bring to a gentle boil…
- Poach the meatballs gently: Lower the heat so the soup barely simmers (small bubbles). Add meatballs one by one, spacing them o…
- Finish with butter and fresh parsley: Turn heat to low. Stir in the remaining 10 g butter and the reserved 20 g parsley. Simmer…
Cultural Background
Parsley-based soups are commonly prepared in Iranian home cooking as light, aromatic starters, especially in cooler months. This style highlights fresh herbs and a clear broth, often served before a larger meal to warm the table and stimulate appetite.
Equipment
💡 Tips
- Keep the soup at a gentle simmer; a hard boil can split meatballs and cloud the broth.
- Chill the Gouda cubes so they stay centered and melt slowly rather than leaking out.
- If your stock is salty, start with 4 g salt in the soup and adjust at the end.
- For extra clarity, skim foam during the first 5 minutes after adding meatballs.
- Chop parsley finely and add part of it at the end to preserve its fresh, green aroma.
⚠️ Common Mistakes
❌ Boiling the soup vigorously after adding meatballs
💡 Why: Strong agitation can break meatballs, cloud the broth, and push cheese out.
✅ Fix: Keep the pot at a bare simmer; add meatballs gently and avoid stirring for the first 5 minutes.
❌ Overmixing the meatball mixture
💡 Why: Excess mixing develops a tight texture, making meatballs dense and less tender.
✅ Fix: Mix only until cohesive (2–3 minutes), then chill before shaping.
❌ Adding all parsley at the beginning
💡 Why: Long simmering dulls parsley’s fresh flavor and turns it darker.
✅ Fix: Cook most parsley briefly in butter, then add a reserved portion at the end for brightness.
❌ Not sealing the cheese well inside the meatballs
💡 Why: Gaps allow melted cheese to leak into the broth and leave hollow centers.
✅ Fix: Flatten, center the cube, pinch seams closed firmly, and roll smooth; chill shaped meatballs before poaching.
🧊 How to Store
Cool quickly and refrigerate in an airtight container for up to 3 days. Reheat gently at a bare simmer to avoid tough meatballs and excessive cheese leakage. Freeze up to 2 months; thaw overnight in the refrigerator and reheat slowly. Add a splash of water if the rice thickens the soup.
📅 Make Ahead
Shape and stuff the meatballs up to 24 hours ahead; cover and refrigerate on a tray. You can also chop parsley and dice vegetables 1 day ahead. Cook the soup up to 2 days ahead, but for the brightest herb flavor, stir in the final parsley and butter when reheating.
🍽️ Pairs Well With
- Warm flatbread or crusty bread
- A simple cucumber and tomato salad
- Pickled vegetables
- Lemon wedges (optional
- for brightness)
Regional Variations
- Tehran-style home cookingOften kept very clear with minimal vegetables, focusing on parsley aroma and small, delicate meatballs; rice may be reduced or omitted for a lighter starter.
- Northwestern IranSometimes includes additional herbs such as dill or a small amount of dried mint, and meatballs may be slightly larger for a more filling bowl.
Ingredients
- 120 gFresh parsley leaves and tender stems, finely chopped (About 3 packed cups; reserve 20 g for finishing)
- 200 gYellow onion, finely diced (About 1 large)
- 30 gUnsalted butter (For sautéing and finishing)
- 1500 mlBeef stock (Low-sodium preferred)
- 250 mlWater (Adjust for desired clarity)
- 120 gCarrot, small dice (About 1 medium)
- 80 gCelery, small dice (About 1 large stalk)
- 60 gBasmati rice (Rinsed until water runs mostly clear)
- 8 gSea salt (Plus more to taste depending on stock saltiness)
- 1 tspBlack pepper, freshly ground (Divided)
- 400 gGround beef (85–90% lean) (Chilled)
- 1 largeEgg (Binder)
- 80 gYellow onion, grated (Squeeze lightly to remove excess liquid)
- 30 gBreadcrumbs (Fine, plain)
- 90 gGouda cheese (Cut into 18 cubes (about 5 g each), chilled)
🔄 Substitutions
- Gouda cheese→ Low-moisture mozzarella
- Beef stock→ Chicken stock
- Breadcrumbs→ Cooked and cooled mashed potato (60 g)
Instructions
- 1
Prepare the meatball mixture: In a cold bowl, combine ground beef, egg, grated onion, breadcrumbs, sea salt, and black pepper. Mix with your hand for 2–3 minutes until tacky and cohesive, but do not overwork. Cover and refrigerate 15 minutes so the mixture firms up and shapes cleanly.
- 2
Shape Gouda-stuffed meatballs: Divide the chilled mixture into 18 portions (about 28–30 g each). Flatten one portion in your palm, place 1 Gouda cube in the center, then seal tightly and roll into a smooth ball. Repeat, keeping finished meatballs on a tray. Refrigerate 10 minutes while you start the soup.
- 3
Build the parsley base: In a 4–5 liter pot, melt 20 g butter over medium heat. Add diced onion and cook 8–10 minutes, stirring, until translucent with light golden edges. Add carrot and celery and cook 4 minutes. Stir in 100 g of the chopped parsley and cook 2 minutes to release aroma without browning.
- 4
Simmer the broth and rice: Pour in beef stock and water, then add 8 g sea salt and 1/2 tsp black pepper. Bring to a gentle boil over medium-high heat, then reduce to a steady simmer. Add rinsed basmati rice and simmer 12–15 minutes, partially covered, until the rice is tender but not breaking apart.
- 5
Poach the meatballs gently: Lower the heat so the soup barely simmers (small bubbles). Add meatballs one by one, spacing them out so they do not stick. Do not stir for the first 5 minutes; instead, gently shake the pot. Continue simmering 12–14 minutes until meatballs reach 71°C/160°F internally.
- 6
Finish with butter and fresh parsley: Turn heat to low. Stir in the remaining 10 g butter and the reserved 20 g parsley. Simmer 2 minutes to keep the herb flavor bright. Taste and adjust salt and pepper as needed, considering stock saltiness. Rest off heat 5 minutes before serving for a clearer, calmer broth.
🪪 Recipe Passport
Cultural Background
Parsley-based soups are commonly prepared in Iranian home cooking as light, aromatic starters, especially in cooler months. This style highlights fresh herbs and a clear broth, often served before a larger meal to warm the table and stimulate appetite.
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

Smoked Silk Mirza Ghasemi (میرزا قاسمی) — Silky smoked eggplant with tomato, garlic, and eggs
Persian · Appetizers · 60 min

Mast-o-Khiar (ماست و خیار) — Persian Cucumber and Herb Yogurt Dip
Persian · Side Dishes · 25 min

Shirazi Salad (سالاد شیرازی) — Brunoised cucumber-tomato herb salad with ab-ghooreh
Persian · Salads · 20 min

Colombian Chicken and Potato Soup (Ajiaco Santafereño) — Bogotá-Style Guascas Soup
Colombian · Soups · 110 min

Crossing-the-Bridge Rice Noodles (过桥米线) — Yunnan Hot Broth Noodle Soup
Chinese · Soups · 195 min

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

Salgam Juice (Şalgam) — Spicy, tangy fermented black-carrot drink
Turkish · Drinks · 25 min

Koofteh Havij (کوفته هویج) — Persian Carrot Meatballs in Saffron-Tomato Broth
Persian · Main Courses · 120 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.