This is a ground turkey meatball soup built around a tomato-carrot broth, with meatballs that use almond meal and grated sweet potato instead of breadcrumbs. It makes 8 servings in 45 minutes, which makes it genuinely useful on a weeknight when you need to feed several people without a lot of fuss. The meatballs stay moist and the broth has enough body to feel like a real meal rather than a light starter.
What makes this version work
Two things matter here. First, puréeing one can of diced tomatoes with the carrots and tomato paste before adding it to the pot gives the broth real body — not a thin, watery base, but something that coats the spoon. Without that step, you get chunks floating in pale liquid. Second, the meatball mixture is intentionally soft. Almond meal, grated sweet potato, and coconut milk keep ground turkey — which dries out fast — from turning rubbery. Don’t try to hand-roll these into tight balls; a cookie scoop dropped straight into the simmering broth is the right call, and it keeps the texture loose and tender all the way through. Skip the garnish — not worth the extra dish.
Storage and reheating
Cool the soup completely before storing. It keeps in an airtight container in the fridge for up to 4 days. The meatballs will absorb broth overnight, so add a splash of chicken stock when reheating to loosen it back up. Reheat on the stovetop over medium heat until the internal temperature of the meatballs reaches 165°F (74°C) — ground turkey must never be served reheated without confirming it’s fully hot through the center. For freezing, leave the spinach out and add fresh spinach after thawing; frozen spinach turns slimy and muddy in the broth. Freeze in portions for up to 3 months. Thaw overnight in the fridge before reheating.
If something goes sideways
- Meatballs falling apart in the broth: The mixture needs both eggs fully incorporated. If it’s still too loose to hold any shape even with a scoop, refrigerate the mixture for 15 minutes before dropping it in — cold fat firms up the almond meal and sweet potato.
- Broth tastes flat: Tomato paste needs a minute of direct heat to bloom before you add liquid. If you added it straight to the broth, stir in an extra half-tablespoon and let the soup simmer uncovered for 5 more minutes to concentrate it.
- Meatballs are dense and dry inside: Overcooking is the usual cause. Once the meatballs show no pink at the center and hit 165°F (74°C), pull them off the heat. Simmering covered for much longer than 15 minutes pushes them past done.
- Broth is too thick after the purée: The carrot-to-liquid ratio can vary depending on carrot size. Stir in an extra half-cup of chicken stock and taste for seasoning before serving.
- Spinach turns brown and slimy: Add it only after you’ve taken the pot off the heat or right at the very end. Residual heat wilts it in under a minute — it doesn’t need active boiling.

Turkey Meatball Soup with Tomato-Carrot Broth
Equipment
Ingredients
Soup Ingredients
- 2 tablespoons cooking fat - ghee, avocado oil, or olive oil
1 medium onion - diced
3 cloves garlic - minced
3 medium carrots - peeled- 2 cans diced tomatoes - 14.5 oz / 411g each
2 tablespoons tomato paste
5 cups chicken stock - 1.2L
2 cups baby spinach- 1 teaspoon fine sea salt - plus more to taste
½ teaspoon ground black pepper - plus more to taste
Meatball Ingredients
1 ½ pounds ground turkey - 680g
1 ¼ cups almond meal - 120g
½ medium sweet potato - peeled and grated, about 3/4 cup / 100g
2 medium eggs
2 tablespoons coconut milk - 30ml, full-fat
½ teaspoon dried parsley - or 1 tablespoon fresh flat-leaf parsley, finely chopped
¼ teaspoon paprika
Instructions
- Melt 2 tablespoons cooking fat in a large pot over medium heat. Add the diced onion and minced garlic. Cook, stirring occasionally, until the onion is soft and translucent, about 3 to 4 minutes.2 tablespoons cooking fat, 1 medium onion, 3 cloves garlic
- Add one can of diced tomatoes (with juices), the tomato paste, and the peeled carrots (cut into rough chunks) to a food processor. Purée until smooth, about 30 seconds.2 cans diced tomatoes, 2 tablespoons tomato paste, 3 medium carrots
- Pour the tomato-carrot purée into the pot and stir to combine. Add the chicken stock and the second can of diced tomatoes (with juices). Bring to a boil, then reduce heat to medium-low and simmer uncovered for 10 to 15 minutes.5 cups chicken stock, 2 cans diced tomatoes
- While the soup simmers, combine the ground turkey, almond meal, grated sweet potato, eggs, coconut milk, parsley, and paprika in a medium bowl. Mix until just combined — do not overwork. The mixture will be very soft. Using a cookie dough scoop (about 1.5 tablespoons), drop the meatballs directly into the simmering soup.1 1/2 pounds ground turkey, 1 1/4 cups almond meal, 1/2 medium sweet potato, 2 medium eggs, 2 tablespoons coconut milk, 1/2 teaspoon dried parsley, 1/4 teaspoon paprika
- Cover the pot and simmer on medium-low heat for approximately 15 minutes, or until the meatballs reach an internal temperature of 165°F (74°C) and are no longer pink in the centre.
- Remove the lid, stir in the baby spinach, and cook for 1 to 2 minutes until the spinach is just wilted.2 cups baby spinach
- Taste the broth and adjust salt and pepper as needed. Ladle into bowls and serve immediately.1 teaspoon fine sea salt, 1/2 teaspoon ground black pepper
Notes
Nutrition
FAQ
Can I substitute regular breadcrumbs for the almond meal?
Yes, but the texture will be slightly denser and the recipe will no longer be gluten-free or paleo. Use the same quantity — 1¼ cups — and expect the meatballs to hold their shape a little more firmly.
How do I know when the meatballs are fully cooked?
The safest check is an instant-read thermometer — ground turkey must reach 165°F (74°C) at the center. If you don’t have one, cut a meatball in half; there should be no pink and the texture should be uniform throughout, not translucent.
Can I use ground chicken instead of ground turkey?
Ground chicken works as a direct swap and has a similar fat content and mild flavor. The same food safety rule applies: cook to an internal temperature of 165°F (74°C).
What fat works best for sautéing the garlic and onion?
Olive oil or avocado oil both work well and keep the recipe dairy-free. Butter adds flavor but will make it non-paleo if that matters to you — either way, 2 tablespoons is enough to soften the aromatics without making the broth greasy.
Can I double this recipe to feed a larger group?
Yes, it scales up cleanly. Use a large stockpot so the meatballs have room to cook without crowding — if they’re packed too tightly they steam against each other and can stick together. You may need to add 5 minutes to the meatball simmering time and verify temperature in the largest ones.








