Duck Kofta Curry: Tender Meatballs in Spiced Gravy

Updated November 4, 2026

Total time
1 hr 25 min
prep 30 min · cook 40 min
Serves
4
portions as written
Safe temperature (USDA)
165°F / 74°C
check the thickest piece

Jump to recipe

Duck Kofta Curry: Tender Meatballs in Spiced Gravy

Duck kofta curry is a South Asian-style dish of spiced ground-duck meatballs simmered in a rich tomato and yogurt gravy. The duck brings a deep, savory flavor, while warming spices, ginger, and a little acidity keep the sauce balanced; regional and family versions of kofta curry vary widely.

Ingredients

  • 1½ lb ground duck (680 g)
  • ⅓ cup fine dry breadcrumbs (35 g)
  • 1 large egg (about 50 g without shell)
  • ¼ cup finely grated yellow onion (40 g), squeezed lightly to remove excess liquid
  • 2 tbsp chopped cilantro (8 g), plus more to serve
  • 1 tbsp finely grated fresh ginger (10 g)
  • 2 garlic cloves, finely grated (6 g)
  • 1 tsp ground cumin (2 g)
  • 1 tsp ground coriander (2 g)
  • ¾ tsp fine salt (4 g), divided
  • ½ tsp ground black pepper (1 g)
  • 2 tbsp neutral oil (30 ml), divided
  • 1 medium yellow onion, finely chopped (about 1 cup / 150 g)
  • 2 garlic cloves, minced (6 g)
  • 1 tbsp finely grated fresh ginger (10 g)
  • 1 tbsp tomato paste (16 g)
  • 1 tsp ground cumin (2 g)
  • 1 tsp ground coriander (2 g)
  • 1 tsp garam masala (2 g), divided
  • ½ tsp ground turmeric (1 g)
  • ¼ tsp cayenne pepper (0.5 g), or to taste
  • 1 can crushed tomatoes (14½ oz / 410 g)
  • ½ cup water (120 ml), plus a little more if needed
  • ½ cup plain whole-milk yogurt (120 g), at room temperature
  • 1 tbsp lemon juice (15 ml)
  • ½ tsp fine salt (3 g), or to taste

Instructions

  1. Mix the kofta. In a large bowl, combine the ground duck, breadcrumbs, egg, grated kofta onion, cilantro, ginger, grated garlic, cumin, coriander, ½ teaspoon salt, and black pepper. Mix gently with your hands or a fork just until evenly combined. Overworking the mixture can make the meatballs dense. Shape it into 16 meatballs, about 1½ inches (4 cm) across. Arrange them on a plate, cover, and refrigerate for 15 minutes so they firm up while you start the gravy.
  2. Start the gravy. Heat 1 tablespoon oil in a wide, heavy saucepan or deep skillet over medium heat. Add the chopped onion and cook for 6–8 minutes, stirring occasionally, until soft and lightly golden. Add the minced garlic and grated ginger; stir for 30 seconds, just until fragrant. If either begins to brown quickly, lower the heat.
  3. Bloom the spices and cook the tomatoes. Stir in the tomato paste, cumin, coriander, ½ teaspoon garam masala, turmeric, and cayenne. Cook for 1 minute, stirring to coat the onion. Add the crushed tomatoes, water, and ½ teaspoon salt. Bring the sauce to a gentle simmer, then cook uncovered for 10 minutes, stirring from time to time. It should thicken slightly but still be loose enough to simmer the kofta; add a splash of water if it becomes very thick.
  4. Brown the meatballs. While the sauce simmers, heat the remaining 1 tablespoon oil in a separate nonstick or well-seasoned skillet over medium heat. Add the chilled kofta in a single layer, working in batches if necessary. Brown them for about 5–6 minutes total, turning carefully so several sides take on color. They do not need to cook through at this stage. Handle them gently; duck fat renders as they brown, and the meatballs will firm further in the gravy.
  5. Finish cooking in the gravy. Lower the browned kofta into the simmering sauce. Cover the pan partly and cook gently for 12–15 minutes, turning the meatballs once with a spoon. Check a kofta in the center of the pan with a food thermometer inserted into its middle: because these are made from ground duck, USDA FSIS guidance calls for a safe minimum internal temperature of 165°F (74°C). If one has not reached that temperature, continue simmering and check again after a few minutes. Avoid a hard boil, which can break up the kofta.
  6. Stir in the yogurt and finish. Turn off the heat. In a small bowl, stir a few spoonfuls of hot gravy into the room-temperature yogurt to warm it gradually. Stir this mixture back into the pan along with the lemon juice and remaining ½ teaspoon garam masala. Taste and adjust the salt or lemon. Keep the curry warm over very low heat if needed, but do not let it boil after adding yogurt, as boiling can make the sauce grainy. Scatter with extra cilantro and serve.

Tips

  • Keep the mixture cool and handle it lightly. Ground duck can be soft, especially if warm. Chilling the shaped kofta for 15 minutes helps them hold together, and gentle mixing keeps the texture tender. If the mixture still feels too sticky to shape, mix in 1 tablespoon (7 g) extra breadcrumbs rather than adding a large amount at once.
  • Use a thermometer rather than color. The browned outside does not tell you whether ground duck is safely cooked inside. Check a meatball from the center of the pan, and wash the thermometer probe between checks if it has touched undercooked meat.
  • Choose a practical meat substitute if needed. Ground lamb works well in the same quantity and gives a richer, more assertive flavor. Ground chicken is milder and leaner, so take care not to overcook it; still cook poultry kofta to 165°F (74°C). Ground turkey is another suitable option and may make a slightly firmer meatball.
  • Temper the yogurt. Room-temperature yogurt stirred together first with a little hot sauce is less likely to split. Full-fat plain yogurt gives the smoothest result; low-fat yogurt can be used, but the gravy may be thinner and more prone to curdling.

Serving Suggestions

Serve the curry hot with basmati rice, jeera rice, or another plain long-grain rice that can soak up the tomato gravy. Warm naan, roti, or paratha are useful for scooping up the sauce; a simple cucumber salad or sliced cucumber with lemon adds a cool, crisp contrast. For a fuller meal, add a bowl of dal or a lightly cooked vegetable such as spinach, green beans, or cauliflower.

Bring the pan to the table only if it can be kept safely hot, and spoon the meatballs and plenty of gravy over each portion. A final scatter of cilantro and a small squeeze of lemon brighten the rich duck. If serving a group, offer extra cayenne or sliced green chili on the side rather than making the whole curry very hot.

Variations

Adjust the heat: Leave out the cayenne for a gentler curry, or add a finely chopped green chili with the ginger and garlic for sharper, fresher heat. The heat of chilies varies, so add a little first and taste the gravy before increasing it.

Make it dairy-free: Replace the yogurt with ⅓ cup (80 ml) full-fat coconut milk, stirred in off the heat. It makes the gravy sweeter and more coconut-forward than the yogurt version. You can also omit the dairy altogether and finish with lemon juice; the sauce will be less creamy but still flavorful.

Change the sauce texture: For a smoother, restaurant-style gravy, blend the cooked tomato-onion sauce before adding the kofta, taking care with the hot liquid. Return it to the pan and continue with the recipe. For a more rustic curry, leave the sauce as written.

Use a different binder: If breadcrumbs are unavailable, use 3 tablespoons (24 g) chickpea flour or finely ground oats. Chickpea flour gives a lightly nutty note; oats make the kofta a little softer. Mix in the substitute and chill the shaped meatballs as directed.

Storage and Reheating

Refrigerate leftover curry within 2 hours of cooking in a shallow, covered container. It keeps for 3–4 days in the refrigerator. The sauce may thicken as it chills, and the duck fat can firm on top; both are normal. Stir gently when reheating and loosen the gravy with a tablespoon or two of water if needed.

For safe reheating, warm only the amount you plan to eat in a covered saucepan over low to medium-low heat, turning the kofta occasionally. Reheat leftovers to 165°F (74°C), checked with a food thermometer. Avoid letting the yogurt-based sauce boil, which can affect its texture. You may also microwave a portion in a covered, microwave-safe dish, stirring the sauce and turning the meatballs partway through, then checking that the center reaches 165°F (74°C).

For longer storage, freeze the cooled curry in a freezer-safe container for up to 2 months for best quality. Thaw it overnight in the refrigerator, then reheat to 165°F (74°C). The sauce may separate slightly after freezing; stir gently as it warms rather than whisking aggressively.

Frequently Asked Questions

Can I make duck kofta curry with store-bought ground duck?
Yes. Keep it refrigerated until you are ready to mix the kofta, and use it within the date on the package. Ground duck is not available everywhere; a butcher may be able to grind boneless duck meat, or you can use ground lamb, chicken, or turkey with the flavor differences described above.

Why are my kofta falling apart?
The mixture may be too wet, too warm, or insufficiently bound. Squeeze excess liquid from the grated onion, measure the breadcrumbs, and chill the shaped kofta before browning. Turn them with a spoon rather than a fork, and avoid stirring vigorously once they are in the sauce. If needed, add a little more breadcrumb to the uncooked mixture.

Can I prepare the meatballs ahead?
Yes. Shape them, cover, and refrigerate for up to 1 day before cooking. Keep raw ground duck separate from ready-to-eat foods and clean hands, utensils, and surfaces after handling it. For the best texture, brown and simmer the kofta shortly before serving rather than leaving the raw mixture at room temperature.

Can I cook the kofta directly in the sauce without browning?
Yes, though browning adds savory flavor and helps the outside hold together. If you skip it, lower the shaped, chilled kofta carefully into gently simmering sauce and cook until a thermometer in the center of a meatball reads 165°F (74°C). Do not crowd the pan, and avoid stirring until the meatballs have begun to firm.

How can I tell if the gravy is too thick?
It should coat a spoon but still flow around the kofta. If it looks pasty or catches on the bottom of the pan, stir in water 1 tablespoon (15 ml) at a time until it loosens. If the sauce is too thin, lift out the cooked kofta and simmer the gravy uncovered for a few minutes before returning them to the pan.

Can I make the curry without yogurt?
Yes. Use the coconut milk variation, or leave out the yogurt and finish with lemon juice. Either choice changes the flavor and texture: coconut milk is rounder and sweeter, while a yogurt-free tomato gravy is lighter and more tangy. Add any substitute off the heat and warm the curry gently.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).