Moroccan Sardine Balls (كفتة السردين) — Spiced sardine kefta simmered in tomato sauce
Moroccan sardine kefta is a coastal classic: fresh (or well-drained) sardines mixed with chermoula-style herbs and spices, then simmered in a bright tomato sauce. It’s commonly served family-style with bread to scoop up the sauce.

Printable Recipe Card
Servings: 4 · Total: 55 min · Difficulty: medium
Ingredients (quick list)
- 600 g canned sardines in olive oil, drained (about 4 standard cans; reserve 15 ml of the oil)
- 20 g fresh cilantro, finely chopped
- 20 g fresh parsley, finely chopped
- 12 g garlic, minced (about 3 cloves)
- 2 tsp ground cumin
- 2 tsp sweet paprika
- 1 tsp ground coriander
- 0.5 tsp ground turmeric
- 0.25 tsp cayenne pepper
- 0.5 tsp black pepper
- 1 tsp fine sea salt
- 1 tsp lemon zest
+ 10 more in the full ingredients section below.
Steps (summary)
- Drain the sardines very well, then press them gently with a fork to remove excess oil and moisture. Transfer to a bowl and mash…
- Add cilantro, parsley, garlic, cumin, paprika, coriander, turmeric, cayenne, black pepper, salt, lemon zest, and lemon juice to…
- Add the breadcrumbs and egg, then mix again until the paste holds together when pressed. Rest the mixture for 10 minutes so the…
- With slightly wet hands, form 18 balls, each about 35 g, and place them on a plate. Keep them compact but not overly tight, bec…
- Heat olive oil and the reserved sardine oil in a wide skillet or shallow pot over medium heat. Add the grated onion and cook fo…
- Stir in the garlic and cook for 30 seconds until fragrant, then add cumin, paprika, and turmeric. Cook the spices for 20 second…
+ 3 more steps in the full instructions section below.
Cultural Background
Sardine kefta reflects Morocco’s Atlantic and Mediterranean coasts, where sardines are abundant and often seasoned with chermoula. Simmering the fish balls in tomato sauce is a home-style method that stretches seafood into a hearty, bread-scooped meal.
Equipment
💡 Tips
- For the best texture, drain sardines for 5 minutes in a sieve, then blot with paper towels before mashing.
- If the mixture feels loose, add 10 g more breadcrumbs and rest 5 minutes before shaping.
- Keep the sauce at a gentle simmer; a hard boil can break the sardine balls and make the sauce oily.
⚠️ Common Mistakes
❌ Sardine balls fall apart in the sauce.
✅ Fix: Drain and blot sardines thoroughly, rest the mixture after adding breadcrumbs, and keep the sauce at a gentle simmer rather than a rolling boil.
❌ Sauce tastes raw or too sharp.
✅ Fix: Simmer the passata at least 8–10 minutes before adding the balls, and include the tomato paste to round out acidity.
❌ Kefta turns dense and heavy.
✅ Fix: Mix just until cohesive and shape lightly; avoid compressing the balls too tightly.
🧊 How to Store
Cool to room temperature within 1 hour, then refrigerate in an airtight container for up to 3 days. Reheat gently in a covered pan with 30 ml water for 6–8 minutes to keep the sardine balls tender and prevent the sauce from splitting.
📅 Make Ahead
Mix and shape the sardine balls up to 12 hours ahead, cover, and refrigerate on a tray. The tomato sauce can be made 2 days ahead; reheat to a simmer before adding the balls to cook through.
🍽️ Pairs Well With
- Khobz (Moroccan bread)
- couscous
- rice
- sliced cucumbers and olives
- preserved lemon wedges.
Regional Variations
- Coastal style: add 1 tsp ground caraway to the sardine mixture for a more pronounced North African spice note.
- Spicier version: increase cayenne to 0.5 tsp or add 1 tbsp harissa to the sauce for a deeper heat.
- Tagine presentation: cook in a tagine base and finish with extra chopped herbs and thin preserved-lemon strips.
Ingredients
- 600 gcanned sardines in olive oil, drained (about 4 standard cans; reserve 15 ml of the oil)
- 20 gfresh cilantro, finely chopped
- 20 gfresh parsley, finely chopped
- 12 ggarlic, minced (about 3 cloves)
- 2 tspground cumin
- 2 tspsweet paprika
- 1 tspground coriander
- 0.5 tspground turmeric
- 0.25 tspcayenne pepper
- 0.5 tspblack pepper
- 1 tspfine sea salt
- 1 tsplemon zest
- 1 tbspfresh lemon juice
- 35 gbreadcrumbs (use gluten-free breadcrumbs if needed)
- 1egg
- 1 tbspolive oil
- 1 tbspreserved sardine oil (optional but traditional for extra depth)
- 120 gyellow onion, finely grated
- 500 mltomato passata
- 120 mlwater
- 1 tbsptomato paste
- 10 gfresh cilantro, chopped
🔄 Substitutions
- breadcrumbs→ gluten-free breadcrumbs
- tomato passata→ crushed tomatoes
- cayenne pepper→ harissa paste
Instructions
- 1
Drain the sardines very well, then press them gently with a fork to remove excess oil and moisture. Transfer to a bowl and mash until mostly smooth, leaving a few small flakes for texture.
- 2
Add cilantro, parsley, garlic, cumin, paprika, coriander, turmeric, cayenne, black pepper, salt, lemon zest, and lemon juice to the sardines. Mix thoroughly for 45–60 seconds until the herbs and spices are evenly distributed and the mixture becomes cohesive.
- 3
Add the breadcrumbs and egg, then mix again until the paste holds together when pressed. Rest the mixture for 10 minutes so the breadcrumbs hydrate and the kefta becomes easier to shape.
- 4
With slightly wet hands, form 18 balls, each about 35 g, and place them on a plate. Keep them compact but not overly tight, because sardines can become dense if compressed too much.
- 5
Heat olive oil and the reserved sardine oil in a wide skillet or shallow pot over medium heat. Add the grated onion and cook for 6–8 minutes, stirring often, until softened and lightly golden at the edges.
- 6
Stir in the garlic and cook for 30 seconds until fragrant, then add cumin, paprika, and turmeric. Cook the spices for 20 seconds, then immediately add passata, water, and tomato paste to prevent scorching.
- 7
Bring the sauce to a gentle simmer and cook for 8–10 minutes until slightly thickened and glossy. Stir in the measured salt, then reduce the heat to low so the sauce bubbles softly.
- 8
Nestle the sardine balls into the sauce in a single layer, spacing them so hot liquid can circulate. Cover and simmer for 10 minutes, then uncover and simmer 5 more minutes to thicken the sauce while the kefta finishes cooking.
- 9
Turn off the heat and add the lemon juice and chopped cilantro. Let the dish rest for 5 minutes so the flavors settle and the sauce clings to the sardine balls more evenly.
🪪 Recipe Passport
Cultural Background
Sardine kefta reflects Morocco’s Atlantic and Mediterranean coasts, where sardines are abundant and often seasoned with chermoula. Simmering the fish balls in tomato sauce is a home-style method that stretches seafood into a hearty, bread-scooped meal.
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.
- Beghrir (بغرير) — Moroccan Thousand-Hole Semolina Pancakes with Honey-Butter
- Ras El Hanout Chicken (رأس الحانوت) — Moroccan Spiced Roasted Chicken with Aromatic Blend
- Tagine of Beef with Prunes (طاجين اللحم بالبرقوق) — Moroccan sweet-savory beef tagine with prunes and almonds
- Tanjia Marrakchia (طنجية مراكشية) — Moroccan Slow-cooked lamb in clay urn
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

Calentica (كالنتيكا) — Moroccan Chickpea Flan Street Food, Peppery and Warm
Moroccan · Side Dishes · 60 min

Ghriba (غريبة) — Moroccan crumbly almond cookies with orange blossom
Moroccan · Desserts · 34 min

Beghrir (بغرير) — Moroccan Thousand-Hole Semolina Pancakes with Honey-Butter
Moroccan · Desserts · 40 min

Yemeni Mandi (مندي) — Smoke-Scented Spiced Rice and Lamb
Yemeni · Main Courses · 170 min

Varenyky (Вареники) — Ukrainian Potato-Cheese Dumplings
Ukrainian · Main Courses · 95 min

Lebanese Tabbouleh (تبولة لبنانية) — Parsley Bulgur Herb Salad
Lebanese · Salads · 35 min

Spanish Ham Croquettes (Croquetas de Jamón) — Crisp Tapas with Creamy Ham Béchamel
Spanish · Appetizers · 70 min

Chilean Beef Empanada (Empanada de pino) — Baked pastry filled with beef, onion, egg, olive, and raisins
Chilean · Main Courses · 125 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.