Calibrated Cuisine

Albondigas Soup: Mexican Meatball Mineral Matrix

14 min read

↓ Jump to Recipe

Albondigas soup is one of Mexico’s most beloved comfort foods, a slow-simmered caldo brimming with tender herb-flecked meatballs, sweet carrots, zucchini, and a tomato-chile broth that smells like a grandmother’s kitchen from three houses away. The word albondigas comes from the Arabic al-bunduqa, meaning little hazelnut or ball, a linguistic fingerprint of the Moorish culinary tradition that traveled through Spain to Mexico centuries ago. What results is a dish with remarkable depth: earthy, aromatic, faintly spiced, and deeply satisfying in a way that only broth-based meals with good bone structure can be.

From a nutritional standpoint, this soup is a genuine mineral powerhouse. The combination of lean ground beef, brown rice cooked directly into the meatballs, and an abundance of mineral-dense vegetables creates what we call a Mineral Matrix: a synergistic arrangement of iron, zinc, phosphorus, magnesium, potassium, and selenium all present in bioavailable forms in a single bowl. The heme iron from beef is absorbed at rates three to four times higher than plant-based iron, and the vitamin C from tomatoes and zucchini further enhances non-heme iron absorption from the rice and vegetables. Mint and spearmint, the traditional herbs folded into the meatballs, are not just aromatic choices. They contribute small but meaningful amounts of folate and vitamin A.

We have engineered this recipe so that each serving delivers precise, research-backed percentages of your daily mineral requirements, without any synthetic fortification. Every ingredient earns its place, whether it is the chipotle chile adding selenium-boosted smokiness, the chickpea-sized rice adding binding starch and manganese, or the fresh epazote giving the broth its distinctive grassy, anise-like character. Choose your cooking method below and prepare for a bowl that feeds both body and history.

Prep: 25 minutes
Servings: 4
Category: Mineral Matrix
✓ Gluten-Free✓ Dairy-Free✓ Nut-Free✓ Peanut-Free✓ Soy-Free✓ Fish-Free✓ Shellfish-Free✓ Sesame-Free
Servings:

4

servings

Ingredients

  • 450 glean ground beef (90/10)
  • 60 guncooked long-grain white rice, rinsed
  • 1 largeegg, lightly beaten
  • 3 clovesgarlic, minced (divided)
  • 2 tbspfresh mint leaves, finely chopped
  • 2 tbspfresh cilantro, finely chopped (plus more to serve)
  • 1 tspground cumin
  • 0.5 tspdried oregano (preferably Mexican)
  • 1 tspfine sea salt, for meatball mixture
  • 0.25 tspblack pepper, freshly ground
  • 2 tbspextra-virgin olive oil
  • 1 mediumwhite onion, finely diced
  • 2 mediumcarrots, peeled and cut into 1cm rounds
  • 2 stalkscelery, sliced 1cm thick
  • 400 gcanned diced fire-roasted tomatoes
  • 1 chipotle chile in adobochipotle chile in adobo sauce, minced (plus 1 tsp sauce)
  • 1.5 litreslow-sodium beef broth
  • 2 mediumzucchini, cut into 2cm half-moons
  • 2 sprigsfresh epazote (or 1 tbsp fresh flat-leaf parsley as substitute)
  • 1 tbspfresh lime juice
  • Fine sea salt and black pepper to taste
  • Sliced avocado and lime wedges, to serve

Instructions

🔧 Equipment

🫕Large Dutch oven (oven-safe with lid)
🐢Slow cooker (5 to 6 quart)
♨️Instant Pot or electric pressure cooker (6 quart)
🥣Large mixing bowl
🔪Chef’s knife
🪵Cutting board
🥄Wooden spoon
📋Rimmed baking sheet
🫗Ladle
🥄Measuring spoons
⚖️Kitchen scale




Prep: 25 minutes
Cook: 35 minutes
Total: 60 minutes
Building a sofrito base directly in the pot before adding broth gives the stovetop version the most developed, layered flavour of all three methods.
  1. Make the meatball mixture: In a large bowl, combine the ground beef, uncooked rice, beaten egg, half the minced garlic (about 1.5 cloves), mint, cilantro, cumin, oregano, 1 tsp salt, and black pepper. Mix gently with your hands just until combined. Do not overmix or the meatballs will become dense. Cover and refrigerate while you prepare the broth base.
  2. Build the sofrito: Heat the olive oil in a large Dutch oven or heavy-bottomed pot over medium heat. Add the diced onion and cook, stirring occasionally, for 5 to 6 minutes until soft and translucent. Add the remaining garlic and cook for 1 minute more until fragrant. Stir in the chipotle chile and adobo sauce, pressing it into the onion mixture with the back of a wooden spoon to distribute the flavour evenly.
  3. Add tomatoes and broth: Pour in the fire-roasted tomatoes with all their juices, stirring to scrape up any fond from the bottom of the pot. Add the beef broth, carrots, and celery. Bring the broth to a gentle boil over medium-high heat, then reduce to a steady simmer.
  4. Shape and add the meatballs: Remove the meat mixture from the refrigerator. With wet hands, roll the mixture into balls approximately 3.5 cm in diameter (about the size of a large walnut). You should get 20 to 24 meatballs. Gently lower each meatball into the simmering broth one at a time, spacing them so they do not stick together. Do not stir aggressively for the first 3 minutes, to allow the meatballs to set.
  5. Simmer until cooked through: Once all meatballs are added, partially cover the pot and simmer over medium-low heat for 20 minutes. The rice inside the meatballs will cook and expand, so they will puff slightly. Add the zucchini and epazote (or parsley) after 20 minutes and continue to simmer uncovered for a further 8 to 10 minutes, until the zucchini is just tender and the meatball rice is fully cooked.
  6. Finish and serve: Remove the epazote sprigs. Stir in the lime juice and taste the broth, adjusting with salt and pepper as needed. Ladle into deep bowls, making sure each serving gets 5 to 6 meatballs. Top with fresh cilantro, sliced avocado, and a lime wedge.
Prep: 25 minutes
Cook: 6 to 8 hours on Low, or 3 to 4 hours on High
Total: 6 hours 25 minutes (Low) or 3 hours 25 minutes (High)
For slow cooker, use cooked rice in the meatballs rather than raw rice. Raw rice does not cook evenly over a long slow-cooker cycle and can stay gritty. Cook 60g dry rice separately, use 120g cooked rice in the meat mixture.
  1. Prepare the meatballs with cooked rice: Cook the rinsed rice according to package directions and allow it to cool to room temperature. In a large bowl, combine the ground beef, 120g cooked and cooled rice, beaten egg, half the minced garlic, mint, cilantro, cumin, oregano, 1 tsp salt, and black pepper. Mix gently with your hands. With wet hands, roll into 3.5 cm balls (20 to 24 meatballs) and place on a lined baking sheet. Refrigerate for 15 minutes to firm up.
  2. Build the broth base in the slow cooker insert: Add the diced onion, remaining garlic, chipotle chile and adobo sauce, fire-roasted tomatoes, beef broth, carrots, and celery directly to the slow cooker insert. Stir briefly to combine. The aromatics do not need to be sauteed first since the long cooking time will soften and mellow them, though if you have 10 minutes to spare you can soften the onion in olive oil on the stovetop first for a richer base.
  3. Nestle the meatballs into the broth: Remove the meatballs from the refrigerator. Gently lower them into the slow cooker broth one by one, ensuring they are submerged. Try not to stack them. Drizzle the olive oil over the top. Add the epazote sprigs. Do not stir.
  4. Cook low and slow: Secure the lid and cook on Low for 6 to 8 hours, or on High for 3 to 4 hours. Resist lifting the lid during cooking, as each peek adds 20 to 30 minutes of effective cook time. The meatballs are done when they are completely firm and the rice inside is tender throughout.
  5. Add zucchini in the final hour: In the last 45 to 60 minutes of cooking (whether on Low or High), lift the lid and add the zucchini half-moons, pressing them gently into the broth. Replace the lid and continue cooking until the zucchini is just tender but not mushy. Slow cookers vary, so check at 45 minutes.
  6. Finish and serve: Remove the epazote sprigs. Stir in the lime juice and the remaining olive oil if not already added. Taste and adjust seasoning. The broth will have concentrated slightly. If it seems too rich, add up to 250ml of hot water to loosen. Serve in deep bowls topped with fresh cilantro, sliced avocado, and lime wedges.
Prep: 25 minutes
Cook: 10 minutes at High Pressure
Total: 35 minutes
Use the Saute function to develop the sofrito before pressure cooking. This step is not optional for this method since it builds the foundational flavour that the shorter cook time cannot develop on its own.
  1. Saute the aromatics: Set your Instant Pot or electric pressure cooker to Saute mode on Normal heat. Add the olive oil and heat until shimmering. Add the diced onion and cook for 4 to 5 minutes, stirring occasionally, until softened. Add all the minced garlic and the chipotle chile with adobo sauce and cook for 1 minute more. Pour in the fire-roasted tomatoes, stir to deglaze the bottom of the insert thoroughly, and cancel the Saute function. Deglazing is critical here to prevent a burn warning during pressurisation.
  2. Prepare the meatball mixture while the sofrito cooks: In a large bowl, combine the ground beef, uncooked rinsed rice, beaten egg, mint, cilantro, cumin, oregano, 1 tsp salt, and black pepper. Mix gently. With wet hands, roll into 3.5 cm balls. The rice cooks fully at pressure even when raw, so no pre-cooking is needed here unlike the slow cooker method.
  3. Add broth, vegetables, and meatballs: Pour the beef broth into the insert and stir to combine with the tomato base. Add the carrots and celery. Gently lower the meatballs into the liquid one at a time, distributing them evenly. Do not add the zucchini yet as it will become mushy under pressure. Tuck in the epazote sprigs.
  4. Pressure cook: Secure the lid and set the valve to Sealing. Select Pressure Cook (Manual) on High Pressure for 10 minutes. The pot will take approximately 8 to 10 minutes to come to pressure before the countdown begins.
  5. Release and finish with zucchini: Once the 10 minutes are complete, perform a controlled quick release by carefully moving the valve to Venting in short bursts to prevent sputtering broth. When all pressure has released, open the lid. Switch back to Saute mode on Low. Add the zucchini half-moons and simmer for 5 to 6 minutes until just tender. Remove the epazote sprigs, stir in the lime juice, and taste for salt and pepper.
  6. Serve immediately: Ladle into deep bowls, ensuring 5 to 6 meatballs per serving. The pressure cooker version produces a slightly more concentrated broth with very tender meatballs. Top with fresh cilantro, sliced avocado, and lime wedges.
Prep: 25 minutes
Cook: 55 minutes at 175C / 350F
Total: 80 minutes
The oven braise method produces the most luxurious, velvety broth as the even all-around heat gently extracts collagen and melds flavours in a way stovetop simmering cannot replicate. Use a heavy oven-safe Dutch oven with a tight-fitting lid.
  1. Preheat oven to 175C (350F) with the rack positioned in the lower third. Make the meatball mixture: In a large bowl, combine the ground beef, uncooked rinsed rice, beaten egg, half the minced garlic, mint, cilantro, cumin, oregano, 1 tsp salt, and black pepper. Mix gently with your hands. Roll into 3.5 cm balls and refrigerate on a lined tray while you build the base.
  2. Sear the aromatics on the stovetop: Place your Dutch oven over medium heat on the stovetop and add the olive oil. Add the diced onion and cook for 5 to 6 minutes until softened and just beginning to colour at the edges. Add the remaining garlic and chipotle chile with adobo sauce and cook for 1 minute. Add the fire-roasted tomatoes and cook for 2 more minutes, pressing with a spoon to break down the tomatoes slightly and concentrate the base.
  3. Build the broth and bring to a simmer: Add the beef broth, carrots, and celery to the Dutch oven. Increase the heat to medium-high and bring the broth to a gentle simmer, stirring occasionally. Taste the broth and adjust salt before adding the meatballs.
  4. Add the meatballs and transfer to the oven: Gently lower the chilled meatballs into the simmering broth one by one. Add the epazote sprigs. Place the lid firmly on the Dutch oven and carefully transfer it to the preheated oven. Bake for 40 minutes, undisturbed. The sealed environment prevents evaporation and creates a gentle, all-around heat that cooks the meatballs to a remarkable tenderness without any stirring or agitation.
  5. Add zucchini and finish in the oven: After 40 minutes, carefully remove the Dutch oven from the oven using thick oven mitts and set it on a heat-safe surface. Remove the lid (stand back from steam). Add the zucchini half-moons, gently pressing them into the broth. Replace the lid and return the pot to the oven for a further 12 to 15 minutes, until the zucchini is just tender.
  6. Rest, finish, and serve: Remove from the oven and let the soup rest with the lid on for 5 minutes. Remove the epazote sprigs. Stir in the lime juice and taste the broth, which will have taken on a beautifully rounded, deep quality from the oven braise. Adjust seasoning. Ladle into warmed deep bowls with fresh cilantro, sliced avocado, and lime wedges.

Nutrition Breakdown

Per 1 serving (makes 4)

388Calories
32gProtein
28gCarbs
14gFat
4gFiber

Glycemic Load13Medium
Low0–10
Medium11–19
High20+
The GL is driven primarily by the white rice cooked inside the meatballs (estimated GI 65) and the tomatoes, but the substantial protein and fat content of the beef significantly slows gastric emptying and blunts the glycemic response in practice.

% Daily Value based on a 2,000 calorie diet (FDA reference)

Iron7.4mg
Zinc8.1mg
Phosphorus380mg
Selenium28mcg
Vitamin B122.8mcg
Niacin (B3)8.4mg
Potassium820mg
Magnesium52mg
Vitamin A (RAE)310mcg
Vitamin C22mg

% of recommended daily intake (RDA) per serving

Leucine2980mg
Lysine2760mg
Isoleucine1580mg
Valine1920mg
Threonine1340mg
Phenylalanine1820mg
Histidine890mg
Methionine940mg
Tryptophan310mg

🛡 Antioxidant Profile

Lycopene8.6mgFrom fire-roasted tomatoes, lycopene reduces oxidative stress and is associated with lower cardiovascular disease risk.
Beta-carotene2.8mgSupplied by carrots and tomatoes, beta-carotene converts to vitamin A and protects cell membranes from free radical damage.
QuercetinA flavonoid from onions and fresh herbs that inhibits inflammatory enzymes and supports immune cell signalling.
Chlorogenic acidPresent in the chipotle chile and tomatoes, this polyphenol helps moderate postprandial blood glucose and reduce vascular inflammation.
Rosmarinic acidConcentrated in the fresh mint and oregano folded into the meatballs, this potent antioxidant inhibits lipid peroxidation and has antimicrobial properties.

Complete your day: Pair this soup with a side of sliced orange or a small glass of freshly squeezed orange juice: the vitamin C will boost absorption of the soup’s non-heme iron by up to 67%, and the additional folate and potassium in the orange rounds out your B-vitamin and electrolyte profile for the day.

The Nutrition Science

The exceptional mineral density of albondigas soup is not accidental. Ground beef is one of the most concentrated dietary sources of heme iron (approximately 2.7mg per 100g in 90/10 beef) and bioavailable zinc (approximately 5.6mg per 100g), both minerals that the body absorbs at far higher efficiencies from animal sources than from plant foods. Heme iron is absorbed at a rate of 15 to 35%, compared to 2 to 10% for non-heme plant iron. Zinc from beef is similarly well absorbed, with animal-source zinc bioavailability consistently exceeding 40%, compared to 15 to 25% for legume-based zinc that is often bound to phytates. Together in a single bowl, these two minerals address two of the most globally prevalent micronutrient deficiencies.

The vitamin C contribution from the tomatoes (approximately 18mg per 100g for canned fire-roasted) and zucchini (approximately 17mg per 100g) plays a scientifically meaningful supporting role. Ascorbic acid reduces ferric iron (Fe3+) to the more absorbable ferrous form (Fe2+) in the intestinal lumen, a reaction that can enhance non-heme iron absorption from the rice and vegetables by two to four times. The chipotle chile also contributes a modest but notable selenium boost, as dried chile peppers concentrate this trace mineral during dehydration. Selenium functions as a cofactor for glutathione peroxidase, one of the body’s primary antioxidant enzyme systems, directly linking the soup’s antioxidant and mineral profiles.

Perhaps most notably from an amino acid standpoint, the combination of beef and egg in this recipe creates a complete and abundant essential amino acid profile. All nine essential amino acids exceed 70% of the RDA per serving, and six of them exceed 100%. Leucine, the primary activator of mTOR-mediated muscle protein synthesis, is present at approximately 2,980mg per serving, well above the 2,520mg RDA. This makes albondigas soup not just a comfort food but a genuinely muscle-supportive meal, especially valuable post-exercise when leucine-triggered protein synthesis rates are elevated for up to 24 hours.

Pro Tips

  • Do not overwork the meatball mixture. Mix just until the ingredients are combined and stop. Overworking develops the myosin proteins in the beef, producing tough, rubbery meatballs rather than light, tender ones.
  • Chilling the shaped meatballs for 15 to 30 minutes before adding them to the broth is not optional if you have time. Cold meatballs hold their shape dramatically better in hot liquid, reducing the risk of them breaking apart during the initial few minutes of cooking.
  • If you cannot find epazote, do not substitute dried epazote for fresh. The fresh herb adds a grassy, slightly medicinal brightness that dried epazote rarely replicates. Fresh flat-leaf parsley or a small sprig of fresh thyme are better alternatives.
  • For a richer mineral profile, substitute 250ml of the beef broth with a homemade bone broth. Bone broth contributes additional phosphorus, magnesium, and glycine, which supports collagen synthesis and joint health.
  • Leftovers store beautifully but note that the rice in the meatballs continues to absorb broth overnight. Add 250 to 500ml of extra beef broth when reheating the next day to restore the soup to its original consistency.

3 thoughts on “Albondigas Soup: Mexican Meatball Mineral Matrix”

  1. Love this take on albondigas, especially highlighting the mineral density! I’m curious if you’re using any particular herbs in the meatballs, because I’ve been experimenting with cilantro and epazote lately and noticed they actually enhance iron absorption. Also, this reminds me how soups like this were designed by our ancestors to be nutrient-dense in a practical way, not just trending wellness foods, you know? The fact that one bowl covers that much iron and zinc speaks to how these traditional recipes were the original functional nutrition.

    Log in or register to reply
    • omg yes jasmine this is SO true and i love that you brought up the ancestral wisdom angle, like our grandmas were literally doing functional nutrition before it was a hashtag! ive been doing the same thing with cilantro in my albondigas and my kids actually dont realize theyre getting folate and better iron absorption at the same time, which feels like the ultimate win lol. the fact that these recipes are naturally mineral dense instead of needing to be “optimized” is honestly what gets me most excited about traditional cooking, its just built in!

      Log in or register to reply
  2. This is such a smart observation about the herbs, Jasmine! I’ve been noticing something similar with cilantro in my own kitchen experiments, and I think it might actually tie into methylation support. Both cilantro and epazote are rich in folate and other methyl donors, which help your body properly utilize those minerals you’re absorbing. I started tracking my energy levels and iron-related symptoms after shifting toward herb-forward broths and soups like this, and the difference has been noticeable over a few months. Have you noticed any changes in your own energy or digestion since you started playing with those herbs, or are you mainly focusing on the absorption angle?

    Log in or register to reply

Leave a Comment