Soups & Stews
This 10-spice soup recipe delivers restaurant-quality depth in every bowl, where aromatic spices transform simple ingredients into a complex, warming broth. The secret lies in a carefully balanced blend—cumin, coriander, turmeric, and more—that simmers for hours to create layers of flavor without overpowering the dish. I perfected this recipe after years of testing, ensuring the spices harmonize rather than compete, resulting in a soup that’s both bold and approachable.
The magic happens in the slow cooking process, where the spices infuse the broth with earthy, smoky, and slightly sweet notes. You’ll start with a base of onions, garlic, and ginger, then build the spice blend gradually to avoid bitterness. The result? A velvety broth that cradles tender vegetables, protein of choice, and herbs—all while maintaining a perfect balance of heat and depth. This isn’t just a soup; it’s a flavor experience that feels like a hug in a bowl.
What makes this recipe stand out is its versatility—use it as a standalone meal or pair it with crusty bread, rice, or naan. The spices are adjustable, so you can tailor the heat to your preference while keeping the complexity intact. Whether you’re serving a crowd or meal prepping for the week, this soup delivers restaurant-quality results with minimal effort. The aroma alone will have everyone gathered around the table.
Ready in about 1 hour (with minimal active time), this recipe is designed for home cooks who want depth without complication. The key is patience—letting the spices develop fully in the broth ensures a flavor profile that’s far more nuanced than store-bought versions. Once you taste the difference, you’ll never go back to basic soups again.
Ingredients for 10 spice soup
Simple ingredients meet bold spices for a restaurant-worthy soup in one pot.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onions 🧅 | 2 whole | Medium size, thinly sliced |
| Garlic Cloves 🧄 | 6 cloves | Peeled, roughly chopped |
| Fresh Ginger 🌿 | 1 inch | Peeled, thinly sliced |
| Cumin Seeds 🌶️ | 1 tbsp | Toasted for aroma |
| Ground Coriander 🌿 | 1 tbsp | Freshly ground preferred |
| Turmeric Powder 🧂 | 1 tsp | Bright yellow color |
| Ground Cinnamon 🌶️ | ½ tsp | Ceylon cinnamon preferred |
| Cardamom Pods 🌿 | 4 whole | Lightly crushed |
| Cloves 🌶️ | 3 whole | Whole, lightly crushed |
| Black Peppercorns 🌶️ | ½ tsp | Freshly cracked |
| Garam Masala Powder 🌶️ | 1 tbsp | Store-bought or homemade |
| Coconut Milk 🥥 | 1 can | Full-fat, 13.5 oz can |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Potatoes 🥔 | 2 medium | Yukon gold, cubed |
| Carrots 🥕 | 3 whole | Medium, sliced |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
| Fresh Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
| Olive Oil 🫒 | 2 tbsp | Extra-virgin preferred |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
The spices are the heart of this soup—get good ones. Penzeys Spices or the bulk bins at Whole Foods are my go-tos for whole spices like cardamom and cloves. Toast your cumin seeds in a dry pan for 30 seconds first—this releases their aroma and makes the whole dish sing. For garam masala, I use MDH brand (it's widely available and reliable), but any good-quality store-bought blend works. The ginger should smell fresh and zesty, not musty—if it does, grab a new root. Onions and garlic are the base, so don't skimp on quality here either. I always grab yellow onions from the store brand at Trader Joe's—they're sweet and consistent.
No cardamom? Skip it—it's not essential, but if you must, use a pinch of cinnamon plus nutmeg at half the amount. Running low on cloves? Allspice works in a pinch, but it's not the same. Fresh ginger too expensive? Powdered works at one-third the amount, but you'll lose some depth. For the coconut milk, full-fat is non-negotiable—it adds richness that light versions can't match. The broth can be homemade or store-bought (I use Pacific Foods low-sodium for convenience), but taste it first—some brands add weird aftertastes. Potatoes and carrots can be swapped for sweet potatoes or butternut squash if you prefer, but keep the total volume similar.
This soup tastes even better the next day—trust me, it's worth making extra. Store leftovers in the fridge for up to 5 days, or freeze portions for 3 months. I like to portion it into glass containers with a layer of coconut milk on top to preserve freshness. For reheating, add a splash of water or broth to prevent drying out. The spices mellow slightly after chilling, so it's perfect for meal prep. Garnish with fresh cilantro and a squeeze of lemon right before serving—that bright pop of acidity cuts through all the richness and makes the whole dish shine.
Why You'll Love This Recipe
- Minimal Chopping Required: I swear by this—just dice one onion, mince a few garlic cloves, and grate a thumb of ginger. The rest? Toast whole cumin seeds in the pot while you prep. No knife marathons here.
- Warmth in a Bowl: That first sip of ginger and coriander hitting your tongue? Pure satisfaction. The cumin’s earthy kick lingers, but the onions and garlic soften it into something cozy—like a hug in soup form.
- Meal Prep MVP: Make a double batch on Sundays, and you’ve got lunch for days. It reheats beautifully, and the flavors deepen overnight. Honestly, my freezer’s always got a jar of this ready for lazy days.
- Spice Cabinet Staple: You’re already using these spices for other dishes—why not let them shine together? One pot, zero waste, and a fraction of the cost of takeout. My go-to when I’m broke or busy.
Step-by-step instructions for 10-Spice soup
Here's how to build bold Indian flavors in one aromatic, spice-packed pot.
Toast the Whole Spices for Maximum Flavor
Heat a dry skillet over medium heat and add the 1 tablespoon cumin seeds. Toast them for 30 seconds until they begin to sizzle and release their aroma—this is when you'll smell that deep, nutty fragrance. Immediately add the 4 whole cardamom pods and 3 whole cloves, stirring constantly for another 30 seconds until they darken slightly.
Remove the pan from heat and let the spices cool for 1 minute. Then transfer them to a spice grinder or mortar and pestle and grind until you have a fine powder. This step unlocks the full complexity of the spices—don't skip it. The toasted spices will form the aromatic base of your soup.
Build the Spice Base with Aromatics
In a large pot, heat the 2 tablespoons olive oil over medium heat. Add the 2 whole yellow onions and cook for 5 minutes, stirring occasionally, until they soften and begin to caramelize at the edges. Add the 6 cloves garlic cloves and 1 inch fresh ginger, cooking for another 2 minutes until fragrant.
Stir in the ground spices you toasted earlier along with the 1 tablespoon ground coriander, 1 teaspoon turmeric powder, 0.5 teaspoon ground cinnamon, and 0.5 teaspoon black peppercorns. Cook for 1 minute until the spices are fully incorporated and the mixture smells like a spice market in India. This aromatic base is where all the magic happens.
Simmer the Vegetables in Spiced Broth
Pour in the 4 cups vegetable broth and bring to a boil. Add the 2 medium potatoes and 3 whole carrots, then reduce heat to low and let it simmer for 15-20 minutes until the vegetables are tender but not falling apart. You'll know it's ready when a fork slides in easily—this ensures they hold their shape while still being fork-tender.
Stir occasionally to prevent sticking. The broth should be infused with deep golden color and rich spice aroma. If it reduces too much, add a splash of water to maintain the proper consistency. This step develops the soup's hearty texture and balanced flavors.
Finish with Creamy Coconut and Fresh Accents
Add the 1 can coconut milk and 1 tablespoon garam masala powder, stirring well to combine. Simmer for another 5 minutes on low heat—this allows the coconut to meld with the spices and vegetables. Taste and adjust seasoning with the 1.5 teaspoon salt if needed, remembering that garam masala is quite flavorful.
Remove from heat and stir in the 1 tablespoon fresh lemon juice. This brightens the dish and cuts through the richness of the coconut milk. The lemon juice should be freshly squeezed for maximum zing. Let the soup sit for 5 minutes to allow all the flavors to meld together completely.
Serve with Fresh Garnish
Ladle the soup into bowls and garnish generously with the 0.25 cup fresh cilantro. The bright green color contrasts beautifully with the golden soup and adds a fresh finish. Serve immediately while hot, with crusty bread or naan to soak up every last drop of that flavorful broth.
Each spoonful should deliver a perfect balance of spicy heat, sweet potatoes, earthy spices, and creamy coconut. The aroma alone will make your kitchen smell like a bustling Indian street market—trust me, it's worth every step of the process.
Pro Tips For Making 10 Spice Soup
- Bloom Your Onions First: Slice those yellow onions thin—like paper—and let them sit in a bowl of cold water for 10 minutes before cooking. This stops them from releasing bitter compounds right away, so your soup starts with a clean, sweet base instead of a harsh aftertaste. (Yes, even if you’re impatient like me.)
- Toast the Spices Dry: Heat your cumin seeds and ground coriander in a dry pan for 30 seconds until they smell toasted, not burnt. This wakes up their flavor—no need to add oil, just keep them moving. I learned this the hard way after making soup that tasted flat.
- Grate Ginger Fine: Use the small holes of a box grater for the ginger, not the large ones. You want it almost paste-like so it blends smoothly into the soup instead of sitting as chunks. (And skip the microplane if you’re lazy—it’s overkill for this dish.)
- Simmer Low and Slow: Once the soup comes to a boil, drop the heat to a gentle simmer—you’re not racing here. A rolling boil can make the spices bitter and the broth cloudy. Trust me, 20 minutes of steady heat beats 15 minutes of chaos.
Storing and reheating this recipe
Refrigerator Storage
Let your 10-spice soup cool completely before transferring to airtight glass containers—I prefer mason jars with tight-sealing lids. Store in the fridge for up to 5 days, but I find the flavors actually deepen after 24 hours as the spices continue to meld. The coconut milk layer on top helps preserve freshness and keeps the soup creamy when reheated. 🥫
Freezer Prep Tips
For long-term storage, portion the soup into freezer-safe glass containers or silicone molds (they thaw faster). Leave ½-inch headspace to prevent expansion cracks. Label with dates—this soup freezes beautifully for 3 months while maintaining its rich texture. I like to freeze individual servings so I can grab just what I need without thawing the whole batch. ❄️
Stovetop Reheating
My preferred method is gentle stovetop reheating to preserve texture. Pour soup into a pot and heat over low-medium heat for 8-10 minutes, stirring occasionally. Add 2-3 tablespoons water or broth if it looks too thick—this prevents the coconut milk from separating. Taste and adjust seasoning, as reheating can mellow the spices slightly. A squeeze of fresh lemon juice at the end restores brightness. 🔥
Microwave Shortcuts
For quick meals, transfer soup to a microwave-safe bowl and heat on 50% power for 3-4 minutes, stirring halfway. Cover loosely with a microwave-safe lid or damp paper towel to retain moisture. If the coconut milk separates, whisk vigorously or add a splash of hot water to re-emulsify. This method works best for 1-2 servings at a time. 💡
Garnish Refresh
Always finish with fresh garnishes after reheating. Sprinkle with cilantro and a drizzle of lemon juice—this brightens flavors that may have mellowed during storage. For extra richness, add a dollop of yogurt or a swirl of coconut cream on top. The contrast between warm soup and cool garnishes makes each bite feel fresh. ✨
Spice Boost Option
If your soup tastes bland after reheating (common with frozen versions), revive it by adding ½ teaspoon freshly cracked black pepper or a pinch of garam masala. Toast ½ teaspoon cumin seeds in a dry pan for 20 seconds, then grind and stir into the soup. This reactivates the spices and restores depth instantly. 🌶️
Nutrition facts
Frequently asked questions
Can I make this soup without coconut milk?
For a lighter version, replace the coconut milk with ½ cup heavy cream or ½ cup Greek yogurt at the end. If you prefer a dairy-free option, use ½ cup cashew cream (blend soaked cashews with water) or an extra ½ cup vegetable broth to maintain consistency. The spices will still shine, but the texture will be thinner.
How do I adjust the spice level for kids or sensitive eaters?
Start by reducing the black peppercorns to ¼ teaspoon and omit the whole cloves and cardamom pods (replace with ½ teaspoon cinnamon for sweetness). For extra mildness, add ½ cup extra coconut milk at the end—it helps balance any residual heat. Always taste as you go! The soup can be made spicier and then diluted with broth or milk for individual servings.
What protein can I add to make it a complete meal?
This soup pairs beautifully with chicken thighs (add after toasting spices, simmer 20 minutes until cooked), tofu (press and cube, add with vegetables), or shrimp (add in the last 5 minutes to avoid overcooking). For vegetarian options, try lentils (½ cup, cooked) or chickpeas (½ cup, added with vegetables). The coconut milk adds richness that complements all proteins.
Why does my soup taste bitter? What went wrong?
Bitterness usually comes from overcooking the spices or burning them. Always toast spices on medium heat (never high) and remove immediately when fragrant. If you notice bitterness, stir in 1 tablespoon lemon juice or ½ teaspoon sugar to balance. For future batches, reduce simmering time with vegetables to 12-15 minutes and add coconut milk earlier to prevent concentration.
Can I use this spice blend for other dishes?
Yes! This 10-spice blend works wonders in curries, rice dishes, or even marinades for grilled meats. For curries, use 1 tablespoon of the blend per pound of protein/vegetables. For rice, toast the spices in oil first, then cook with 1 cup rice and 2 cups liquid. The blend also elevates roasted vegetables or stir-fries—just sprinkle ½ teaspoon at the end. Store the extra blend in an airtight container for up to 3 months.
