Oxalates are naturally occurring compounds found in many plant foods that can bind to minerals in your body, most notably calcium. Chemically, oxalic acid is a small organic acid that plants produce to regulate their own growth, defend against insects, and detoxify heavy metals from soil. For most people, oxalates pass through the digestive system without causing problems. But in certain circumstances, they can accumulate and contribute to kidney stones or other health issues.
Why Plants Produce Oxalates
Oxalic acid serves several purposes for the plant itself. It helps regulate growth and development, acts as a chemical defense against pests, and neutralizes heavy metals the plant absorbs from the ground. Because oxalic acid is so useful to plants, it shows up across a wide range of fruits, vegetables, grains, nuts, and legumes. Some plants simply produce far more of it than others.
Once you eat an oxalate-containing food, the oxalic acid can bind to calcium and other minerals in your gut. When it binds to calcium in the intestines, most of it forms an insoluble compound that leaves through your stool. The trouble starts when free oxalate gets absorbed into the bloodstream and reaches the kidneys, where it can meet calcium again and form crystals.
Which Foods Are Highest in Oxalates
Spinach is the single biggest source in most diets, and it’s not close. A half cup of cooked spinach contains roughly 547 mg of oxalate. Even a cup of raw spinach has about 316 mg. For context, people following a low-oxalate diet typically aim to keep their entire daily intake around 100 mg or less.
Beyond spinach, oxalate content varies widely. Here are some of the highest-oxalate foods per standard serving, based on data from Harvard’s T.H. Chan School of Public Health:
- Buckwheat groats, roasted (1 cup): 133 mg
- Wheat berries, cooked (1 cup): 98 mg
- Navy beans, canned (½ cup): 96 mg
- Baked potato with skin (one): 92 mg
- Beets, canned (½ cup): 76 mg
- Almonds, oil roasted (1 oz): 72 mg
- Dark chocolate (1.5 oz): 68 mg
- Cashews, oil roasted (1 oz): 64 mg
Beet greens and Swiss chard are also very high. Nuts as a category tend to be concentrated sources, with peanuts, almonds, pecans, and cashews all flagged as very high oxalate by the National Kidney Foundation.
How Oxalates Contribute to Kidney Stones
About 80% of kidney stones are made of calcium oxalate, which makes dietary oxalate a meaningful factor for people prone to stones. The process starts when both calcium and oxalate ions are present in urine at high enough concentrations to exceed what the liquid can hold in solution. This state, called supersaturation, is the thermodynamic trigger for crystals to begin forming.
From there, tiny crystal seeds form either freely in the urine or on surfaces like kidney cell walls and protein molecules. These seeds grow as more calcium and oxalate ions attach, and individual crystals can stick together into larger clusters. Certain proteins in urine act like glue between crystals, accelerating this aggregation. Eventually, crystals can adhere to the lining of the kidney itself, anchoring in place and continuing to grow. This is where a stone truly begins to develop.
Not everyone who eats high-oxalate foods will form stones. Your overall hydration, calcium intake, genetics, and gut health all play a role. Interestingly, eating calcium-rich foods alongside oxalate-rich foods can actually be protective, because the calcium binds oxalate in the gut before it ever reaches the kidneys.
When Oxalates Become a Medical Problem
The normal upper limit for oxalate in urine is about 40 mg over 24 hours. Anything above that is considered hyperoxaluria. There are a few different types, and they vary dramatically in severity.
Primary hyperoxaluria is a rare genetic condition where the body’s normal metabolic pathways are disrupted, forcing oxalate production into overdrive. People with this condition typically excrete more than 100 mg of oxalate per day in their urine, regardless of what they eat. It can lead to recurrent stones and, in severe cases, kidney damage.
Enteric hyperoxaluria is more common and happens when a gut condition involving chronic diarrhea or fat malabsorption changes how oxalate is handled in the intestines. Normally, calcium in the gut binds to oxalate and carries it out. But when fat malabsorption is present, calcium binds to fatty acids instead, leaving oxalate free to be absorbed into the bloodstream. People with this form often excrete 80 mg or more of oxalate daily.
For the average person without these conditions, dietary oxalate contributes a smaller share of urinary oxalate. The body also produces oxalate internally as a byproduct of metabolism. But if you’ve had calcium oxalate kidney stones, reducing dietary oxalate is one of the practical levers you can pull.
Reducing Oxalates Through Cooking
Boiling is the most effective cooking method for lowering oxalate content. When vegetables are boiled, soluble oxalate leaches into the water, which is then discarded. Research on common vegetables shows boiling reduces soluble oxalate by 30% to 65%, with some studies reporting losses as high as 77% for certain foods boiled for 12 to 15 minutes. Spinach, carrots, beetroot, and beans all showed significant reductions.
Dry heat methods are less effective. Baking taro corms at low temperature for an hour, for instance, only reduced soluble oxalate by about 22%, compared to 34% from boiling for 30 minutes. Steaming falls somewhere in between, since there’s less water contact to draw the oxalate out. If you’re trying to lower your oxalate exposure but still want to eat foods like spinach or beets, boiling and discarding the cooking water is the simplest strategy.
Low-Oxalate Swaps for Common Foods
If you’re working to keep oxalate intake low, the biggest gains come from swapping out the very highest sources. The National Kidney Foundation recommends several substitutes that deliver similar nutrition without the oxalate load.
For greens, broccoli, cauliflower, cabbage, Brussels sprouts, lettuce, and asparagus are all low-oxalate options that replace spinach, Swiss chard, and beet greens. For starchy sides, white potatoes in moderate portions, corn, parsnips, and turnips work well. Green peas, lima beans, and carrots are also recommended. If you eat a lot of almonds or peanuts, coconut is the main nut alternative flagged as low oxalate.
Tomatoes (one small or as juice), cucumbers (peeled), mushrooms, onions, and avocado round out the list of vegetables you can eat freely. The variety is broad enough that a low-oxalate diet doesn’t have to feel restrictive, it just requires knowing which handful of foods to limit or prepare differently.

