Keto Italian Wedding Soup

Why This Is Strictly Keto
Traditional wedding soup relies on tiny pasta and breadcrumb-bound meatballs. This version binds the meatballs with egg and Parmesan alone and lets spinach, onion and silky egg ribbons carry the bowl, so there is no pasta, no flour and no breadcrumbs — only meat, cheese, eggs and vegetables.
Ingredients
Meatballs
- 1 lb (450 g) ground beef (or half beef, half pork)
- 1 large egg
- ½ cup (50 g) freshly grated Parmesan cheese
- 2 cloves garlic, minced
- 2 tablespoons finely chopped fresh parsley
- ½ teaspoon salt
- ¼ teaspoon black pepper
Soup
- 1 tablespoon olive oil
- ½ medium onion, finely diced
- 1 stalk celery, finely diced
- 2 cloves garlic, minced
- 8 cups (1.9 L) chicken bone broth
- 5 oz (140 g) fresh baby spinach (about 6 packed cups)
- 2 large eggs, beaten
- 2 tablespoons freshly grated Parmesan cheese, plus more for serving
- Salt and black pepper, to taste
Instructions
Mix the meatballs: Combine the beef, egg, Parmesan, garlic, parsley, salt and pepper in a bowl and mix gently until just combined — overmixing makes them tough.
Shape and bake: Preheat oven to 400°F (200°C). Roll the mixture into about 24 small balls and place on a parchment-lined baking sheet. Bake for 12–15 minutes, until browned and cooked through.
Build the soup base: Heat the olive oil in a large pot over medium heat. Cook the onion and celery for 5 minutes until softened, then add the garlic and cook 30 seconds more.
Simmer: Pour in the broth, bring to a boil, then reduce to a simmer. Add the baked meatballs and simmer for 10 minutes.
Add the spinach: Stir in the spinach and cook 2 minutes, until wilted.
Make the egg ribbons: Stir the soup in a slow circle and drizzle in the beaten eggs in a thin stream so they set into silky strands. Stir in the 2 tablespoons Parmesan, then season to taste.
Serve: Ladle into bowls and top with extra Parmesan.
Nutritional Info (per serving, approximate)
| Calories | Fat | Protein | Net Carbs |
|---|---|---|---|
| ~290 kcal | 20g | 22g | 4g |
Tips
- Baking the meatballs first keeps the broth clear and saves you from browning them in batches.
- Kale, chard or escarole can replace the spinach — simmer them 5–8 minutes until tender.
- The meatballs freeze well; store them separately from the broth and reheat together.




