Kufteh Tabrizi is not a weeknight meatball. It is a project - and a celebration. Named after the city of Tabriz in northwestern Iran, this giant stuffed meatball combines ground beef with cooked rice, bulgur, yellow split peas, and a mountain of fresh herbs, then gets packed with a sweet-tart filling of dried apricots, sour cherries, barberries, and walnuts. It simmers low and slow in a saffron-tinged tomato broth until impossibly tender. The payoff? A cross-section that looks like edible confetti and a flavor that manages to be fruity, savory, herbal, and warm-spiced all at once.

If you have only ever made quick skillet meatballs, this recipe will feel different. The mixture rests overnight. The pastry-like shaping technique demands patience. The pot stays undisturbed for most of the cooking. But that is exactly why kufteh Tabrizi has survived for centuries - the technique rewards you with a texture no quick meatball can match.

Key Takeaways

  • Rest the mixture overnight. Refrigerating the meat-rice base for at least 2 hours (overnight is better) lets the grains absorb moisture and the flavors meld. Do not skip this.
  • Beat the mixture. The Persian word kufteh means “to pound.” Throwing handfuls of the paste back into the bowl aerates it and creates the famously light, fluffy texture.
  • Do not move the meatballs while they cook. The first 30 minutes are critical - stirring breaks them apart. Let the heat set the protein undisturbed.
  • The fruit filling is non-negotiable. Dried apricots, barberries, and walnuts create pockets of sweet-tart richness inside the savory meat. Without them it is just a giant meatball.

How to Make Kufteh Tabrizi (Persian Stuffed Meatballs)

  1. Cook the split peas. Simmer the yellow split peas in water to cover by 1 inch with 1/4 tsp salt for 25 to 30 minutes until very tender. Drain and set aside.
  2. Cook the rice and bulgur. Combine the rice, bulgur, 1 1/2 cups water, 1 tbsp butter, 1/4 tsp salt, and 1/4 tsp turmeric in a saucepan. Bring to a boil, cover, reduce heat to low, and cook 15 to 18 minutes until the liquid is absorbed. The grains should be tender but still slightly firm. Spread on a plate to cool.
  3. Grind the meat base. Pulse the cooked split peas and 1 onion (cut into chunks) in a food processor until finely chopped. Add the ground beef and pulse until uniform - do not over-process into a paste. Transfer to a large bowl.
  4. Mix and rest. Add the cooled rice-bulgur mixture, eggs, remaining turmeric, cinnamon, black pepper, cayenne, and half the saffron water. Mix with your hands until evenly combined. Cover and refrigerate for at least 2 hours, preferably overnight.
  5. Make the filling. Combine chopped dried apricots, sour cherries, barberries, and walnut halves in a small bowl.
  6. Make the sauce. Thinly slice the remaining onion and fry in 2 tbsp butter over medium heat 8 to 10 minutes until deep golden brown. Add 2 tbsp tomato paste and cook 2 to 3 minutes until darkened. Add 3 cups hot water, 3/4 tsp salt, 1/4 tsp black pepper, 1/2 tsp cinnamon, and the remaining saffron water. Bring to a simmer, then set aside.
  7. Finish the kufteh mixture. Remove the chilled base from the fridge. Add the garlic chives, parsley, cilantro, dried savory or oregano, and remaining salt. Mix well. Pick up handfuls of the mixture and throw it back into the bowl - repeat 10 to 12 times until the paste is smooth and holds together when shaped.
  8. Shape and stuff. Divide into 6 equal portions. Wet your hands. Flatten one portion into a 4-inch round in your palm. Place about 1 1/2 tbsp of fruit-nut filling in the center. Fold the edges up and over, then shape into a smooth ball. Repeat.
  9. Simmer without moving. Bring the sauce to a gentle simmer in a wide pot. Gently lower each kufteh into the sauce. Do not move or turn them after they go in. Cook uncovered over medium-low 30 minutes.
  10. Cover and finish. Carefully baste the tops with sauce. Cover, reduce heat to low, and simmer 1 hour 30 minutes. Baste a few times. The kufteh are ready when oil rises to the surface of the sauce.
  11. Rest and serve. Turn off the heat and let rest 10 minutes. Most of the sauce will be absorbed. Transfer to a platter, spoon the thickened sauce on top, and sprinkle with cinnamon and saffron.

Ingredients

For the Kufteh Base

  • 2 1/4 lbs (1 kg) ground beef, 85/15
  • 1 cup short-grain white rice (Calrose or sushi rice)
  • 1/2 cup fine bulgur wheat
  • 1/2 cup yellow split peas
  • 2 medium yellow onions (about 12 oz / 340 g total)
  • 2 large eggs
  • 1 1/4 tsp ground turmeric
  • 1 1/4 tsp ground cinnamon
  • 1 tsp black pepper
  • 1/4 tsp cayenne pepper
  • 1/4 tsp saffron powder, dissolved in 2 tbsp hot water
  • 1 1/2 tsp kosher salt (divided)

For the Herbs

  • 1 cup thinly sliced garlic chives or green part of scallions
  • 2 tbsp fresh parsley, finely chopped
  • 2 tbsp fresh cilantro, finely chopped
  • 1 tbsp dried summer savory or dried oregano

For the Filling

  • 1/2 cup dried apricots, coarsely chopped
  • 1/3 cup dried sour cherries or cranberries
  • 1/3 cup dried barberries or dried currants
  • 18 walnut halves (about 3/4 cup)

For the Sauce

  • 2 tbsp butter
  • 2 tbsp tomato paste
  • 3 cups hot water
  • 3/4 tsp kosher salt
  • 1/4 tsp black pepper
  • 1/2 tsp ground cinnamon
  • Remaining saffron water (from above)

The Story Behind Kufteh Tabrizi

Kufteh Tabrizi comes from Tabriz, a historic city in the Azerbaijani region of northwestern Iran, and it is one of the most celebrated dishes in Persian cuisine. The word kufteh (also spelled koofteh or kufte) comes from the Persian “kuftan” (to pound or grind) - a reference to the technique of beating the meat mixture until fluffy.

Traditional kufteh Tabrizi is enormous. A single meatball can weigh one pound or more. Some cooks stuff a whole hard-boiled egg inside alongside the dried fruit. There are even stories of banquet-sized kufteh weighing 60 pounds stuffed with an entire chicken or turkey. The version here is scaled for home cooking - six generous individual meatballs that each serve one person.

In Tabriz, the dish is as much about the broth as the meatball itself. The thickened sauce at the bottom of the pot, called tilit, is served with torn pieces of sangak (Persian flatbread) that soak up every drop. It is common to serve kufteh with sabzi khordan (fresh herb platter), torshi (pickled vegetables), and torshi sir (pickled garlic).

Filling Variations

The dried fruit stuffing is where kufteh Tabrizi gets its signature sweet-sour contrast. The apricots bring chewiness and honeyed sweetness. The barberries (zereshk) add sharp, lemony pops. The walnuts provide crunch and tannic depth.

Filling option Effect Traditional?
Dried apricots + barberries + walnuts Sweet, tart, crunchy - the classic Yes
Dried sour cherries + almonds More tart, less sweet Yes
Dried figs + walnuts Honeyed, dense Yes
Hard-boiled egg + prune + walnuts Rich, filling Yes
Cranberries + pecans American pantry swap Substitute
Golden raisins + pine nuts Milder, affordable Substitute

If you cannot find barberries (available at Middle Eastern markets or online), substitute dried currants for a similar tart pop. Sour cherries can be replaced with dried cranberries.

What Is the Beating Technique and Why Does It Matter?

The defining step of kufteh Tabrizi is the beating - picking up handfuls of the meat-herb paste and throwing them back into the bowl with force. Do this 10 to 12 times. The motion incorporates air into the mixture, creating tiny pockets that lighten the texture. A kufteh made without this step is noticeably denser.

This is not the same as kneading. Kneading would develop protein strands and make the meatball tough. The throwing action aerates without activating the proteins. You are aiming for a paste that is smooth and cohesive but not springy.

The Overnight Rest: Why It Matters

The rest period is not optional. When the rice and bulgur sit in the refrigerator with the meat and eggs, they absorb moisture evenly. The starch granules swell and soften. The ground spices infuse the fat. The final texture after the overnight rest is dramatically better than if you shape and cook immediately.

If you are pressed for time, 2 hours is the minimum. But overnight (12 to 24 hours) produces the best results.

How Kufteh Tabrizi Compares to Other Stuffed Meatballs

Recipe Meat Filling Cooking method Prep time
Kufteh Tabrizi (this recipe) Beef Dried fruit + walnuts + herbs Simmered in saffron tomato broth 3 hours
Indian Kofta Curry Lamb or beef None (spices in meat) Simmered in yogurt curry 40 min
Moroccan Kefta Mkaouara Lamb + beef None Simmered in tomato sauce + eggs 55 min
Greek Lamb Keftedes Lamb None Pan-fried or baked 30 min
Italian Sunday Gravy Meatballs Beef + pork Mozzarella (optional) Slow-simmered in marinara 2.5 hours

Kufteh Tabrizi is the only one built around a nut-and-fruit filling and the only one that uses the beating technique. It is also the largest - each meatball is roughly the size of a baseball.

What to Serve with Kufteh Tabrizi

  • Sangak or lavash bread: The traditional way to serve kufteh is with torn pieces of Persian flatbread soaked in the saffron broth. This is called tilit.
  • Steamed basmati rice: Chelo (plain steamed Persian rice) with crispy tahdig on the bottom is the classic accompaniment.
  • Sabzi khordan: A fresh herb platter of mint, parsley, tarragon, basil, scallions, and radishes. It cuts through the richness of the meatball.
  • Torshi: Persian pickled vegetables. The acidity balances the sweet fruit filling.
  • Mast-o khiar: Yogurt with cucumber, dried mint, and raisins. A cooling side.
  • Shirazi salad: Cucumber, tomato, and onion in a simple lime-juice dressing.

Storage, Freezing, and Reheating

  • Fridge: Cooked kufteh and sauce keep in an airtight container for up to 5 days. The flavors deepen over time.
  • Freeze: Cool completely, wrap individually, and freeze in a freezer-safe container for up to 3 months. Freeze the thickened sauce separately.
  • Reheat: Thaw in the refrigerator overnight. Prepare a thin sauce (3 tbsp fried onion, 1 tbsp butter, 1 tbsp tomato paste, 3 cups water, salt, cinnamon, and saffron). Bring to a simmer, add the kufteh, cover, and simmer 30 to 40 minutes until heated through.

FAQ

What does kufteh Tabrizi taste like?

Savory, herbal, and sweet-tart all at once. The beef base is gently spiced with turmeric, cinnamon, and saffron. The fresh herbs (chives, parsley, cilantro) keep it bright. The dried fruit filling provides occasional pops of sweetness and sourness. The overall impression is complex but balanced - no single element dominates.

Can I use ground lamb instead of beef?

Yes. Ground lamb works beautifully with the warm Persian spices. Use 80/20 lamb or a lamb-beef blend. The extra fat keeps the kufteh tender during the long simmer.

Can I make this gluten-free?

The bulgur wheat contains gluten. For a gluten-free version, substitute an additional 1/2 cup of short-grain rice (cooked separately) for the bulgur. Use certified gluten-free oats or quinoa flakes as a second alternative. The texture will be slightly different but still delicious.

Why did my kufteh fall apart in the pot?

Three common causes: (1) the mixture was not beaten enough - it needs to hold together when shaped; (2) the pot was boiling too hard, not simmering gently; (3) you moved or stirred the kufteh during the first 30 minutes of cooking. Keep the heat low and leave them completely still after they go into the sauce.

Where do I find barberries (zereshk)?

Barberries are available at Middle Eastern grocery stores, Persian markets, and online (Amazon, Sadaf). They have a distinctive sharp, lemony flavor. If you cannot find them, substitute dried currants or dried cranberries soaked in lemon juice for 10 minutes.

Is this recipe spicy?

Not by the standards of Persian cuisine. The cayenne and black pepper add warmth, not heat. The dominant flavors are turmeric, cinnamon, and saffron. If you want more heat, add a pinch of red pepper flakes to the sauce.

Sources


Related: Indian Kofta Curry | Moroccan Kefta Mkaouara | Greek Lamb Keftedes | Italian Sunday Gravy Meatballs | Asian Meatball Recipes | Indian Meatball Recipes