Harira Soup is a classic Moroccan soup made with beef, lentils, chickpeas, and fresh tomatoes. It’s flavored with Moroccan spices and fresh herbs. The soup is hearty, healthy, and gets even better the next day.

Would you like to save this?
I learned how to make Moroccan harira soup while I was teaching English in Morocco. The smell of it cooking and taste always transports me back to North Africa!
Recipes vary by region and by family. They almost always include meat, onion, tomatoes, parsley, cilantro, and fragrant spices. This soup is healthy, filling, and hearty enough to stand on its own as a meal.
I typically make harira with beef. I’ve also made it vegetarian and it’s just as good. The lentils and chickpeas give it plenty of protein.
If you love North African flavors like I do, you’ll also want to try my Moroccan cookies, Moroccan shakshuka and Tunisian salad!
Jump to:
Why You’ll Love This Recipe
- Beef, chickpeas, and lentils make this soup is filling and nutritious. You enjoy this soup as the main dish!
- Ginger, turmeric, parsley and cilantro are classic Moroccan herbs and spices. They give this soup its rich flavor!
- You’ll find this soup all over Morocco, especially during Ramadan. I used to love having a bowl of this soup in one of my favorite stalls in the marketplace in Jemma el Fnaa in Marrakesh. They’d serve it alongside some Moroccan bread filled with some Laughing Cow cheese, some hard boiled eggs, olive oil and a pinch of cumin. It was so good!
- It’s perfect for any time you’re craving a warming, hearty soup.
- You can easily swap in chicken or lamb or leave out the meat for a vegan and vegetarian version.
Instructions

Below are useful notes about some of the ingredients.
- Beef: Use stew meat or chuck cut into small cubes. The small pieces cook faster and make the soup easier to eat.
- Onion: One large yellow onion adds sweetness and body to the broth.
- Use fresh or canned tomatoes. For canned, use a 28 ounce can of crushed tomatoes. Make sure to buy plain canned tomatoes, not the kind with Italian seasoning. For fresh, you’ll need about 2 pounds or 6 large soft, ripe vine or roma tomatoes. To peel them easily, score an X on the bottom and drop them in boiling water for 20 seconds.
- Use dried or canned chickpeas. I usually use canned chickpeas since they’re more convenient. If you use dried chickpeas, you’ll need to soak them overnight. Add dried chickpeas to the soup when you add the celery and lentils. Dried chickpeas will take longer to cook.
- Use brown or green lentils. Be sure to rinse then drain lentils before adding them to the soup.
- Ground ginger and turmeric give the soup its warm, earthy taste. The cinnamon stick adds a subtle warm flavor. Make sure to also give my delicious turmeric cookies recipe a try!
- Tomato paste intensifies the tomato flavor.
- Use finely chopped fresh parsley and cilantro are traditional and add brightness.
- Vermicelli or acini di pepe (tiny pasta) thickens the soup and makes it more substantial. Add it during the last 10 minutes so it doesn’t get mushy.
- Whisk some all-purpose flour with water to thicken the soup. Make sure there are no lumps before adding it to the pot.
- I like to serve harira with a squeeze of fresh lemon juice. It’s optional but adds a nice bright flavor.
- Smen (optional): This aged butter has a strong, cheese-like flavor that’s traditional in Moroccan cooking. If you can find it, it really does add something special, but the soup is still delicious without it. Smen is a quintessential Moroccan ingredient, kind of like preserved lemons. If you’re a big fan of Moroccan flavors and ingredients, try my preserved lemon tea cake!
Please see recipe card below for full list of ingredients and their measurements.
Substitutions & Variations
- I’ve sometimes seen fava beans in harira which I loved!
- In place of celery, use some chopped cabbage.
- Leave out the meat for a meat free, vegan version.
- You can also swap in chicken or lamb in place of beef.
- I always add flour to thicken the soup. You can leave out the flour for thinner soup or to make it gluten free!
Instructions


Step 1: (Photo 1 above) Add the oil to a large soup pot over medium heat. Add the meat and onions. Cook, stirring, until the onions are tender and the meat is lightly browned, about 5 minutes.
Step 2: (Photo 2 above) Add the ginger, turmeric, the cinnamon stick, pepper, salt, lentils, celery, 7 cups water. Bring to a boil then reduce heat to low, cover and allow to simmer.


Step 3: (Photo 3 above) Stir in your canned crushed tomatoes. (Alternatively you can stir in cored, deseeded, blended fresh tomatoes). Next, stir in the tomato paste, an extra tablespoon each parsley and cilantro and some salt. Continue cooking til until the meat and the vegetables are cooked through.
Step 4: (Photo 4 above) Whisk the flour with a cup of water in a large bowl. Pour mixture into the soup. Stir for a few minutes til incorporated and to prevent flour from clumping. Add the pasta and chickpeas during the last few minutes. Adjust the seasonings and enjoy!
Expert Tips
- Use canned crushed tomatoes and canned chickpeas for a shortcut to traditional harira.
- Make sure to buy plain canned tomatoes, not the kind with Italian seasoning.
- Peel your tomatoes. This is optional, but more traditional. It will give you the smoothest consistenty. To peel tomatoes, score an X on the bottom of each tomato. Place in boiling water for about 20 seconds. The skins will slip right off.
- Remove the tomato seeds. Halve and deseed your tomatoes before blending to prevent bitterness.
- Add pasta during the last 10 minutes. This prevents it from getting mushy and absorbing too much broth.
- Taste and adjust the seasoning at the end of cooking. I usually have to add more salt at the end of cooking.

Recipe FAQs
Yes, canned chickpeas work fine. Drain and rinse them and add them towards the end. They only need time to warm through.
Absolutely. Skip the beef and use vegetable broth instead of water. You can add more chickpeas and lentils for extra heartiness.
Let the soup cool completely, then store it in an airtight container in the refrigerator for up to 4 days. The soup will thicken as it sits, so add a little water when reheating. Warm over medium heat, stirring occasionally.
More Recipes You’ll Love

Harira Soup
Ingredients
- 3 tablespoons (44.36 ml) extra virgin olive oil
- 1 large onion finely chopped
- 8 ounces (225 g) beef cut into small ¼ inch cubes
- 3/4 teaspoon ground ginger
- 1/2 teaspoon ground turmeric
- 1 cinnamon stick
- salt to taste
- ¾ teaspoon pepper
- 8 cups (1,892 ml) water divided
- 1 (40 g) stalk celery chopped, leaves included
- ¾ cup (144 g) dried brown lentils washed and drained
- ¾ cup (150 g) canned chickpeas drained, see notes below for using dried chickpeas
- 2 pounds (907 g) tomatoes 6 vine or roma tomatoes, or 28 oz/800 g canned crushed tomatoes
- 1 tablespoon (16 g) tomato paste
- 3 tablespoons (12 g) finely chopped parsley plus more for serving
- 3 tablespoons (1.2 g) finely chopped cilantro plus more for serving
- ⅓ cup (35 g) vermicelli pasta
- ½ cup (62.5 g) all-purpose flour
- fresh lemon juice optional, for serving
Instructions
- Start by dicing the onions and celery and finely chopping the parsley and cilantro. Cut the meat into small ¼ inch cubes. Set aside.
- Add the oil to a large soup pot over medium heat. Add the meat and onions. Cook, stirring, until the onions are translucent and the meat is lightly browned, about 5 minutes.
- Add the celery, the washed and drained lentils, ginger, turmeric, salt, pepper, 2 tablespoons each parsley and cilantro, 7 cups of water and the cinnamon stick. Raise the heat to medium high. Bring to a boil then reduce heat to low. Cover and let simmer for about 45 minutes or until the lentils and vegetables are fully cooked and the very tender (check occasionally).
- While the soup is cooking, prepare the tomatoes using canned or fresh tomatoes. Canned tomatoes (easier option): Use a 28 oz can of crushed tomatoes.Fresh tomatoes: Core the tomatoes and cut in half horizontally. Use a spoon or your fingers to scoop out the seeds. Discard seeds. Place the tomatoes in a blender. Blend til smooth.Once all the legumes are cooked through, pour the pureed canned or fresh tomatoes into the soup.
- Stir in the tomato paste, an additional 1 tablespoon each finely chopped parsley and cilantro, and a pinch of salt. Allow soup to continue cooking for 5-10 minutes to allow the tomatoes to warm though.
- Whisk together the flour and 1 cup of water in a large mixing bowl. Pour the flour mixture into the soup. Stir continuously for 2-3 minutes to avoid lumps until flour is incorporated. Stir in the pasta and chickpeas and cook an additional 10 minutes.
- Taste the soup and adjust seasonings as needed. Remove the cinnamon stick. Serve with a little squeeze of fresh lemon juice, if you like. Enjoy!
Notes
Nutrition
Please note that nutritional values are created by an online calculator and should only be used as an estimate.





Barbara Briggs Ward
January is the perfect month to make this delicious soup!