This post contains Amazon affiliate links. As an Amazon Associate I earn from qualifying purchases.
Quick Takeaway
Is tofu high in oxalate? Yes. Calcium-set firm tofu can carry up to about 235 mg of oxalate in a 3-ounce serving, well past an entire low oxalate day’s budget. Soy is a high oxalate food, and tofu, edamame, soy milk, and tempeh all carry it. Despite tofu’s healthy, high-protein reputation, it does not fit a low oxalate diet. For low oxalate protein, lean on eggs, dairy, poultry, fish, and meat instead.
Tofu is the poster child for healthy eating.
It is the lean, plant-based protein, the meat-free centerpiece, the thing you order to be virtuous. For anyone eating vegetarian, vegan, or just trying to cut back on meat, tofu and its soy cousins are the backbone of the plate.
But soy is a high oxalate food, and tofu carries that load. For someone watching their oxalate, the healthy plant protein can quietly be one of the bigger problems on the plate.
This post covers how much oxalate tofu carries, why soy in general is worth watching, and what to build your protein around instead.

Is tofu high in oxalate?
Yes, especially the kind most people buy. Firm tofu that is set with calcium can carry up to about 235 mg of oxalate in a 3-ounce serving.0 Against a daily low oxalate target of about 40 to 50 mg, a normal portion of tofu can blow several days’ worth of budget in one meal.1
And tofu is eaten as a main, half a block in a stir-fry, a thick slab on a grain bowl, not a garnish. A few tofu dinners a week, each built around a generous portion, makes tofu a steady, heavy oxalate source even in an otherwise careful diet.
If you are working toward a low oxalate diet, tofu is a clear one to take off the table, the same way you would spinach or almonds.
What about edamame, soy milk, and tempeh?
The issue is soy itself, so it is not just tofu. Edamame, soy milk, tempeh, and soy protein all come from the same high oxalate bean, and they show up across the plant-based pantry. Soy milk in your coffee, edamame as a snack, tempeh in a bowl, the soy adds up across the day.
So if you are leaning on soy as your main protein, the oxalate is not coming from one food you can simply portion down. It is woven through the whole soy-based way of eating, which is what makes it worth a real look.
A note from me, before we get into the swaps
This is a harder one for plant-based eaters than for omnivores, because the honest truth is that most plant proteins, beans, lentils, soy, and many nuts and seeds, run high in oxalate. So I am not going to pretend there is a perfect plant-based, low oxalate protein that matches tofu one for one.
What I can give you is the list of genuinely low oxalate proteins, and a clear-eyed take on where that leaves a soy-heavy diet.
Free 2-minute quiz
Not sure if oxalates are behind how you feel?
Take the free 2-minute quiz. Answer 9 quick questions to see whether oxalates could be the missing piece, and get your estimated oxalate intake plus a free guide and food chart to start feeling better.
Take the quizWhat can you eat instead of tofu?
The low oxalate proteins are mostly animal-based, which is the honest answer even though it is not always the popular one.
Eggs and dairy are low oxalate and bring calcium, which helps bind oxalate from the rest of your meal. They are some of the most flexible low oxalate proteins there are.
Poultry, fish, and meat are essentially oxalate-free, so they are the reliable low oxalate centerpieces for a plate.
If you want to stay plant-forward, know that most legumes and many nuts and seeds are also high in oxalate, so swapping tofu for beans or a nut-based protein is often not a real improvement. A couple of legumes are gentler, though: chickpeas and black-eyed peas are lower in oxalate than most beans, so they are the better plant-protein picks. Check any specific plant protein against the food look-up tool, and lean on eggs and dairy where you can.
Can you keep any tofu in your diet?
Tofu is high enough that it is best treated as a food to step away from rather than manage, but if you are not in a strict reduction phase, a few things help:
Watch the type and portion. Calcium-set tofu is the highest, and large portions are the main driver, so a smaller serving on occasion is a different thing from a daily block.
Account for all the soy. Remember soy milk, edamame, and tempeh count too, so cutting back on tofu while drinking soy milk all day does not get you very far.
Pair with calcium. Eating soy alongside a calcium source helps bind some of the oxalate in the gut.0
How do you cut back on soy?
1. Move your main protein to eggs, dairy, poultry, fish, or meat.
2. Swap soy milk for coconut, rice, or dairy milk.
3. Treat edamame and tempeh as soy too, not as free sides.
4. Pair with calcium during the transition.
So is tofu off the table?
For everyday eating on a low oxalate diet, yes. Tofu is a high oxalate food that happens to be the centerpiece of healthy, plant-based eating, which is exactly what makes it easy to overlook and worth setting down.
Build your protein around eggs, dairy, and lean meats and fish, keep an eye on the other soy foods, and you keep a satisfying, protein-rich plate without the heavy oxalate load.
Free 2-minute quiz
Not sure if oxalates are behind how you feel?
Take the free 2-minute quiz. Answer 9 quick questions to see whether oxalates could be the missing piece, and get your estimated oxalate intake plus a free guide and food chart to start feeling better.
Take the quizWant to see what low oxalate eating actually looks like?
Browse our low oxalate recipes for easy meals you can make tonight, from breakfast to dessert.
Browse the recipesFrequently asked questions about tofu and oxalate
Is tofu high in oxalate?
Yes. Calcium-set firm tofu can carry up to about 235 mg of oxalate in a 3-ounce serving, far more than a typical low oxalate daily target. Tofu is a clear food to avoid on a low oxalate diet.
Is soy milk high in oxalate?
Soy milk comes from the same high oxalate bean as tofu and carries oxalate, though amounts vary by brand. Coconut milk and rice milk are lower, and dairy milk is essentially oxalate-free if you tolerate it.
What is a low oxalate protein?
Eggs, dairy, poultry, fish, and meat are the reliable low oxalate proteins. Most plant proteins, including soy, beans, lentils, and many nuts and seeds, run high in oxalate.
What can I eat instead of tofu?
For low oxalate protein, lean on eggs, dairy, poultry, fish, and meat. Be cautious with other plant proteins like beans and nuts, which are also high in oxalate, and check specific ones against the food look-up tool.
Related recipe: Low Oxalate Cilantro Lime Pulled Chicken, a low oxalate protein to build a meal around instead of tofu.
Read These Next
- The High Oxalate Foods List, The complete reference for what is high and what to limit, tofu is one of many worth knowing about.
- 8 Surprising High Oxalate Foods (And What to Reach For Instead), Seven more foods that regularly surprise people, including other popular staples that fly under the radar.
- The Low Oxalate Foods List: What You Can Actually Eat (And Enjoy), What to reach for instead, a full list of foods that work with your body rather than against it.
Sources
- Tofu oxalate content (calcium-set firm tofu up to about 235 mg per 3-ounce serving); soy is a high oxalate food. Oxalate references. ohf.org
- A low oxalate diet generally targets about 40 to 50 mg of oxalate per day, calcium taken with a meal binds oxalate in the gut, and animal proteins such as eggs, dairy, poultry, fish, and meat are low in oxalate. University of Chicago Kidney Stone Program. kidneystones.uchicago.edu
The information on this site is for educational purposes only and is not intended as medical advice. Oxalate sensitivity and related conditions vary significantly between individuals. Always consult your healthcare provider before making significant dietary changes or starting any supplementation, especially if you have kidney disease, a history of kidney stones, or any other diagnosed health condition. Read our full medical disclaimer for more information.
