Polo Cheshm Bolboli ba Koofteh Rizeh (پلو چشم بلبلی با کوفته ریزه) — Persian Black-Eyed Pea Rice with Mini Meatballs
Fragrant saffron rice layered with tender black-eyed peas and caramelized onions, served with juicy spiced mini meatballs. A comforting Persian home-style dish with crisp tahdig and balanced, savory aromas.

Printable Recipe Card
Servings: 4 · Total: 145 min · Difficulty: medium
Ingredients (quick list)
- 360 g Persian basmati rice (about 2 cups; rinse until water runs mostly clear)
- 2400 ml Water (for parboiling rice and peas; plus more as needed)
- 22 g Fine sea salt (about 4 tsp, divided (includes rice boiling water and seasoning))
- 180 g Black-eyed peas (dried) (about 1 cup; picked over and rinsed)
- 60 ml Olive oil (4 tbsp, divided)
- 300 g Yellow onions (2 medium; thinly sliced)
- 3 g Ground turmeric (1 1/2 tsp, divided)
- 0.25 g Saffron threads (about 1/2 tsp threads)
- 45 ml Hot water (3 tbsp, for blooming saffron)
- 400 g Ground beef or lamb (minced) (15–20% fat preferred for juicier meatballs)
- 100 g Yellow onion (1 small; grated finely, then squeezed to remove excess juice)
- 6 g Garlic (2 cloves; minced)
+ 1 more in the full ingredients section below.
Steps (summary)
- Rinse the rice in several changes of cool water until it turns mostly clear. Cover with 900 ml water and dissolve 10 g salt int…
- Bloom the saffron: grind the saffron threads to a powder, then stir in 45 ml hot water. Cover and set aside 15 minutes; the liq…
- Cook the black-eyed peas: bring 700 ml soaking water and peas to a gentle boil, then reduce to a steady simmer. Cook 20–30 minu…
- Prepare the onion mixture: heat 45 ml olive oil in a skillet over medium heat. Add the sliced onions and cook 12–15 minutes, st…
- Parboil the rice: bring 1700 ml water to a rolling boil in a large nonstick pot. Add 12 g salt, then drain the soaked rice and…
- Make the mini meatballs: in a bowl, combine minced meat, grated-and-squeezed onion, minced garlic, 3/4 tsp turmeric, 1 tsp salt…
+ 6 more steps in the full instructions section below.
Cultural Background
Black-eyed pea rice is a familiar home-style preparation in Iranian cooking, valued for its balance of legumes and fragrant rice. It is commonly served as a comforting family meal, and the small meatballs add a festive touch while keeping the dish practical for sharing at the table.
Equipment
💡 Tips
- For separate grains, do not fully cook the rice during parboil; stop when the center is slightly firm.
- Squeeze grated onion for meatballs; excess liquid makes them fragile and prone to breaking.
- If you want extra-crisp tahdig, extend the low-heat steaming by 10 minutes and keep the lid towel dry.
- Blooming saffron in hot (not boiling) water preserves aroma and color; cover it so the volatile oils do not dissipate.
- If black-eyed peas are very old, add 10–15 minutes to simmering time; avoid adding salt to the pea pot to prevent tough skins.
⚠️ Common Mistakes
❌ Overboiling the rice during parboil
💡 Why: Fully cooked rice will break during steaming and turn sticky, blurring the layers and softening tahdig.
✅ Fix: Boil only until grains are elongated with a slightly firm center (6–8 minutes), then drain promptly and rinse briefly.
❌ Overcooking black-eyed peas until they split
💡 Why: Split peas mash into the rice, making it heavy and muddy rather than distinct and fluffy.
✅ Fix: Simmer just until tender (typically 20–30 minutes), drain well, and avoid aggressive stirring when layering.
❌ Meatballs falling apart in the pan
💡 Why: Too much onion juice or insufficient kneading prevents the proteins from binding, and high heat can tear delicate balls.
✅ Fix: Squeeze grated onion dry, knead 2–3 minutes until tacky, and sear over medium-high heat without overcrowding.
❌ Soggy rice from trapped condensation
💡 Why: Steam condenses on the lid and drips back, wetting the top layer and softening the crust.
✅ Fix: Wrap the lid with a clean towel and keep the pot tightly covered; poke steam vents through the rice mound.
🧊 How to Store
Cool leftovers within 2 hours. Refrigerate rice and meatballs in separate airtight containers for up to 3 days. Reheat rice covered with 1–2 tbsp water in a pot on low 10–15 minutes or microwave covered; reheat meatballs gently with a splash of water to prevent drying. Freeze up to 2 months; thaw overnight in the refrigerator.
📅 Make Ahead
Soak peas and rice up to 30 minutes ahead as written. Onion-pea mixture can be cooked 1 day ahead and refrigerated. Meatballs can be rolled up to 24 hours ahead; sear just before serving for best texture. Leftover polo reheats best steamed with a splash of water.
🍽️ Pairs Well With
- Plain yogurt or yogurt with cucumber and herbs
- Shirazi-style tomato-cucumber salad
- Pickled vegetables
- Fresh herbs and radishes
Regional Variations
- Tehran-style home cookingOften includes a stronger saffron finish and a more pronounced tahdig, with onions cooked to a deeper golden color for sweetness.
- Southern IranMay be seasoned more boldly with additional black pepper and turmeric, and served with sharper pickles or herb-heavy sides to contrast the richness.
Ingredients
- 360 gPersian basmati rice (about 2 cups; rinse until water runs mostly clear)
- 2400 mlWater (for parboiling rice and peas; plus more as needed)
- 22 gFine sea salt (about 4 tsp, divided (includes rice boiling water and seasoning))
- 180 gBlack-eyed peas (dried) (about 1 cup; picked over and rinsed)
- 60 mlOlive oil (4 tbsp, divided)
- 300 gYellow onions (2 medium; thinly sliced)
- 3 gGround turmeric (1 1/2 tsp, divided)
- 0.25 gSaffron threads (about 1/2 tsp threads)
- 45 mlHot water (3 tbsp, for blooming saffron)
- 400 gGround beef or lamb (minced) (15–20% fat preferred for juicier meatballs)
- 100 gYellow onion (1 small; grated finely, then squeezed to remove excess juice)
- 6 gGarlic (2 cloves; minced)
- 1 gGround black pepper (about 1/2 tsp)
🔄 Substitutions
- Persian basmati rice→ Indian basmati rice
- Black-eyed peas (dried)→ Canned black-eyed peas (drained and rinsed)
- Ground beef or lamb (minced)→ Ground turkey (dark meat preferred)
Instructions
- 1
Rinse the rice in several changes of cool water until it turns mostly clear. Cover with 900 ml water and dissolve 10 g salt into it; soak 30 minutes at room temperature. Meanwhile, rinse the dried black-eyed peas and cover with 700 ml water; soak 30 minutes to help them cook evenly and stay intact.
- 2
Bloom the saffron: grind the saffron threads to a powder, then stir in 45 ml hot water. Cover and set aside 15 minutes; the liquid should turn deep orange-red. This concentrated saffron will be used for both the rice layers and finishing, giving aroma without needing a large quantity.
- 3
Cook the black-eyed peas: bring 700 ml soaking water and peas to a gentle boil, then reduce to a steady simmer. Cook 20–30 minutes until tender but not mushy, skimming foam if needed. Drain well and set aside. If peas are very fresh, check at 18 minutes; overcooking will make them split during layering.
- 4
Prepare the onion mixture: heat 45 ml olive oil in a skillet over medium heat. Add the sliced onions and cook 12–15 minutes, stirring often, until soft and golden. Add 1 1/2 tsp turmeric and cook 30 seconds to bloom. Stir in the drained peas and cook 2 minutes to coat; remove from heat and cool slightly.
- 5
Parboil the rice: bring 1700 ml water to a rolling boil in a large nonstick pot. Add 12 g salt, then drain the soaked rice and add it to the boiling water. Boil 6–8 minutes, stirring gently once or twice, until the grains are elongated and the center is still slightly firm. Drain in a colander and rinse briefly with 250 ml cool water.
- 6
Make the mini meatballs: in a bowl, combine minced meat, grated-and-squeezed onion, minced garlic, 3/4 tsp turmeric, 1 tsp salt, and 1/2 tsp black pepper. Knead 2–3 minutes until sticky and cohesive. With damp hands, roll into 2.5 cm meatballs (about 24–28 pieces), keeping sizes even for uniform cooking.
- 7
Sear the meatballs: heat 1 tbsp olive oil in a wide skillet over medium-high heat. Add meatballs in a single layer and sear 6–8 minutes total, turning gently, until browned on most sides (they do not need to be fully cooked through). Transfer to a plate. If the pan gets dry, add 1–2 tsp water to prevent scorching.
- 8
Set up for steaming and tahdig: rinse and dry the rice pot. Warm 1 tbsp olive oil in the pot over medium heat. Add 2–3 tbsp of parboiled rice and stir with 1 tbsp saffron water to create a saffron base for tahdig. Spread it evenly, then reduce heat to low so the bottom sets without burning.
- 9
Layer the rice and peas: add one-third of the rice, then scatter half of the onion-pea mixture. Repeat with another third of rice and the remaining peas. Finish with the last third of rice, shaping a gentle mound. Using a chopstick or spoon handle, poke 5–6 holes to the bottom to vent steam and prevent sogginess.
- 10
Steam the polo: drizzle 2 tbsp olive oil and 2 tbsp saffron water over the top. Cover the lid with a clean towel and place it tightly on the pot. Steam on medium heat for 10 minutes to build heat, then reduce to low and steam 40 minutes. The towel absorbs condensation for fluffier grains and crisper tahdig.
- 11
Finish the meatballs gently: during the last 15 minutes of rice steaming, return the seared meatballs to the skillet over medium-low heat. Add 60 ml water, cover, and cook 10–12 minutes until cooked through (74°C/165°F internal). Uncover for 1 minute to evaporate excess moisture, keeping them glossy and juicy.
- 12
Serve: turn off the rice heat and rest, covered, 10 minutes. Fluff the rice, lifting from the sides to keep layers distinct. Spoon a little extra saffron water over the serving platter if desired. Serve the black-eyed pea rice with the mini meatballs alongside, and include pieces of tahdig for crunch.
🪪 Recipe Passport
Cultural Background
Black-eyed pea rice is a familiar home-style preparation in Iranian cooking, valued for its balance of legumes and fragrant rice. It is commonly served as a comforting family meal, and the small meatballs add a festive touch while keeping the dish practical for sharing at the table.
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.
- Polo Portugali (پلو پرتغالی) — Persian Portuguese-Style Rice
- Polow-e Cheshm Bolboli ba Koofteh Rizeh (پلو چشم بلبلی با کوفته ریزه) — Persian Rice with Black-Eyed Peas and Soy Mini Meatballs
- Potato and Cabbage Kuku (کوکوی سیبزمینی با کلم) — Persian comfort frittata with sautéed cabbage
- Quick Persian Chicken & Vegetable Medley (خوراک مرغ فوری) — One-pot weeknight khorak with sumac
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

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

Chelo Kebab Koobideh (چلو کباب کوبیده) — Persian Minced Meat Skewers with Saffron Rice
Persian · Kebabs · 75 min

Koofteh Havij (کوفته هویج) — Persian Carrot Meatballs in Saffron-Tomato Broth
Persian · Main Courses · 120 min

Moros y Cristianos (Moros y Cristianos) — Cuban Black Beans and Rice
Cuban · Rice Dishes · 130 min

Morog Polao (মোরগ পোলাও) — Bangladeshi Chicken Pilaf
Bangladeshi · Rice Dishes · 100 min

Azerbaijani Milk Rice Porridge (Südlü Sıyıq) — Creamy Breakfast Bowl
Azerbaijani · Rice Dishes · 40 min

Keshkek (Keşkek) — Creamy Ceremonial Wheat and Lamb Stew
Turkish · Stews · 240 min

Ash-e Sak (آش ساک) — Gorgani Spinach and Lamb Ash
Persian · Soups · 175 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.