Nutrition
Is Pistachio Keto? Net Carbs in Pistachios and 26 Plant Milks
Unsweetened pistachio milk works out at 2 g net carbs a cup. On 14 of the 26 cartons we read, there is no fiber to subtract at all.
Quick answer
Pistachios fit a low-carb diet in measured portions, and unsweetened pistachio milk fits easily. Three Trees unsweetened pistachio milk declares 4 g of total carbohydrate and 2 g of fiber a cup, so 2 g net carbs. Across 26 plant milk panels we compiled, net carbs run from 0 g a cup for unsweetened pea milk to 23 g for rice milk, with oat drinks at 14 to 17 g.
The short answer: pistachios fit a low-carb diet in measured portions, and unsweetened pistachio milk fits easily. Three Trees unsweetened pistachio nutmilk declares 4 g of total carbohydrate and 2 g of fiber a cup, which leaves 2 g of net carbs. The longer answer is that "net carbs" turns out to be a harder number to get hold of than the keto shelf suggests, and on most plant milk cartons it does not exist as a separate figure at all.
Which milk has the lowest carbs?
We read the published Nutrition Facts panel for 26 plant milks and compiled the carbohydrate side of each one. Net carbs per cup run from 0 g to 23 g, a spread of the whole carb budget of a strict keto day.
| Drink | Serving | Total carb | Fiber | Net carbs |
|---|---|---|---|---|
| Ripple Unsweetened Pea Milk | 240 ml | 0 g | 0 g | 0 g |
| 365 Unsweetened Organic Coconutmilk | 240 ml | <1 g | 0 g | 0 to 1 g |
| Harris Teeter Unsweetened Almondmilk | 240 ml | 1 g | <1 g | 0 to 1 g |
| Wegmans Organic Unsweetened Almondmilk | 237 ml | 1 g | <1 g | 0 to 1 g |
| Wegmans Unsweetened Almondmilk | 240 ml | 1 g | 0 g | 1 g |
| Fareway Unsweetened Almond Milk | 240 ml | 1 g | 0 g | 1 g |
| Great Value Unsweetened Coconutmilk | 240 ml | 1 g | 0 g | 1 g |
| Hy-Vee Unsweetened Coconutmilk | 240 ml | 1 g | 0 g | 1 g |
| So Delicious Unsweetened Cashewmilk | 240 ml | 1 g | 0 g | 1 g |
| Harris Teeter Unsweetened Cashewmilk | 240 ml | 2 g | 0 g | 2 g |
| Forager Unsweetened Creamy Cashewmilk | 237 ml | 2 g | 0 g | 2 g |
| Nature's Promise Organic Unsweetened Soymilk | 240 ml | 3 g | 1 g | 2 g |
| Silk Unsweetened Organic Soymilk | 240 ml | 4 g | 2 g | 2 g |
| Three Trees Unsweetened Pistachio Nutmilk | 237 ml | 4 g | 2 g | 2 g |
| Forager Unsweetened Soymilk | 240 ml | 5 g | 0 g | 5 g |
| Kikkoman Unsweetened Organic Soymilk | 240 ml | 6 g | 0 g | 6 g |
| Tache Pistachio Milk Original Blend | 240 ml | 9 g | 1 g | 8 g |
| Elmhurst Barista Edition Pistachio | 240 ml | 13 g | not published | not computable |
| Oatly Original Oatmilk | 240 ml | 16 g | 2 g | 14 g |
| Wholesome Pantry Original Oatmilk | 240 ml | 17 g | 2 g | 15 g |
| Wegmans Original Oatmilk | 240 ml | 18 g | 2 g | 16 g |
| Planet Oat Original Oatmilk | 240 ml | 19 g | 2 g | 17 g |
| Rice Dream Rice Drink Original | 240 ml | 23 g | 0 g | 23 g |
| O Organics Original Organic Ricemilk | 240 ml | 23 g | 0 g | 23 g |
Declared panel figures, checked October 2026. 24 of the 26 products in the dataset. The two left out are Elmhurst's unsweetened pistachio milk, which publishes no carbohydrate figure, and So Delicious unsweetened vanilla cashewmilk, whose figures match its plain variant above. The full dataset, including the USDA record behind every row, is in the CSV.
Three things come out of the table.
Unsweetened nut and coconut drinks are all much the same. Almond, cashew, coconut and pistachio all land between 0 g and 2 g of net carbs a cup. Choosing between them on carbs alone is choosing between 1 g and 2 g, which no carb budget notices. Pick on taste, protein or price instead. How pistachio milk tastes is the more useful question.
Oat and rice are a different drink entirely. Oat runs 16 g to 19 g of total carbohydrate a cup and rice 23 g. An oat drink carries roughly fifteen times the net carbs of an unsweetened nut drink, and rice over twenty times. Both are made from a grain, and the sugars on those panels come largely from enzymes breaking the starch down during manufacture rather than from a sugar sack. The oat comparison goes into why that also gives oat its body, and the rice one into why a drink that is almost all fast starch behaves the way it does.
The spread inside one category beats the gap between some categories. Unsweetened soy runs 2 g to 6 g of net carbs across four cartons, a threefold difference under one category name. Silk's declares 4 g of carbohydrate and 2 g of fiber; Kikkoman's declares 6 g and no fiber. So "soy milk" does not tell you the number. The specific carton does.
Why isn't net carbs on the label?
Because US law does not recognize the term. The phrase "net carbs" appears nowhere in 21 CFR 101.9, the regulation that prescribes the Nutrition Facts panel. What that paragraph requires is Total Carbohydrate, with Dietary Fiber, Total Sugars and Added Sugars as declared sub-items, plus voluntary lines for soluble fiber, insoluble fiber and sugar alcohol. Net carbs is arithmetic a reader does, not a figure a manufacturer declares.
There is a second layer to this that is worth knowing before you trust any such figure. US Total Carbohydrate is not measured. The regulation says it "shall be calculated by subtraction of the sum of the crude protein, total fat, moisture, and ash from the total weight of the food". So the carbohydrate line is whatever is left over once everything else has been weighed, and net carbs is then a subtraction from that subtraction.
On most plant milks there is nothing to subtract
This is the part the keto shelf does not mention. Of our 26 cartons:
- 14 declare zero dietary fiber. On those, net carbs and total carbohydrate are the same number, and the distinction does no work.
- 2 declare "less than 1 g" of fiber. Those cannot be resolved. A cup with 1 g of total carbohydrate and under 1 g of fiber has somewhere between 0 g and 1 g of net carbs, and the label will not say which.
- 2 publish no fiber figure at all, so net carbs cannot be computed from what the brand has released.
That leaves net carbs as a genuinely separate, computable number on 8 of the 26 cartons: the four oat drinks, two soy, and two pistachio. Everywhere else you are reading the carbohydrate line and calling it something else.
FDA rounding is what does most of the damage at this end of the scale. Quantities under 0.5 g may be declared as zero and quantities under 1 g as "less than 1 gram", so a drink genuinely carrying 0.4 g of carbohydrate and a drink carrying nothing both print 0 g. At 20 g a cup that rounding is noise. At 1 g a cup it is the entire figure.
The same carton says a different number in Europe
Here the two rulebooks disagree in a way that matters, and a European label effectively prints the net figure for you.
EU law defines carbohydrate, in Annex I of Regulation (EU) No 1169/2011, as "any carbohydrate which is metabolised by humans, and includes polyols". The same Annex defines fiber, which it spells "fibre", as polymers that are not digested in the small intestine. Fiber therefore falls outside the European carbohydrate figure by definition. Two further parts of the regulation confirm it: Annex XV lists fiber as a top-level line after carbohydrate and its sub-items rather than indented inside it, and Annex XIV gives fiber its own energy conversion factor of 2 kcal/g against carbohydrate's 4 kcal/g. A nutrient inside carbohydrate would not need its own factor.
US law goes the other way. Total Carbohydrate is the leftover weight and dietary fiber is an indented line underneath it, which means fiber is counted in the headline figure and then reported again below.
So the same oat drink can honestly declare 16 g of carbohydrate on an American carton and 14 g on a European one, and neither label is wrong. The European carbohydrate line already is the net carb figure. The American one is not. Anyone comparing a figure quoted off a UK or EU pack against a US panel is comparing two different quantities, and the gap is exactly the fiber.
The same US and EU labeling asymmetry keeps deciding what a pistachio product's label will tell you. It runs through pistachio cream, pistachio butter, Dubai chocolate and pistachio liqueur, and in each case the European pack is the one carrying the number.
How many carbs are in pistachio milk?
Of the pistachio milks we have panels for, only two publish enough to work out net carbs.
Three Trees organic unsweetened pistachio nutmilk declares 4 g of total carbohydrate, 2 g of dietary fiber, 1 g of total sugars and no added sugars per 237 ml cup, which gives 2 g of net carbs. That is the cleanest answer the category offers, and it puts unsweetened pistachio milk level with unsweetened soy and a gram or so above unsweetened almond.
Tache's Pistachio Milk Original Blend declares 9 g of total carbohydrate, 1 g of fiber and 7 g of total sugars, of which 6 g are added, so 8 g of net carbs. That is four times the Three Trees figure, from a product sold in the same part of the chiller.
The other two are gaps rather than figures. Elmhurst's Barista Edition declares 13 g of total carbohydrate and no fiber line, so its net carbs cannot be computed. Elmhurst's unsweetened pistachio milk publishes calories and protein and no carbohydrate figure whatsoever, which is the same disclosure gap our label study found on the brand's other figures. Two more pistachio milks, Tache's barista edition and WholeMoon's, publish no panel we could find at all.
That makes six pistachio milks we have looked for: two publish enough to compute net carbs, two publish part of what is needed, and two publish no panel at all.
So the honest summary for anyone counting: if the carton says unsweetened and the ingredients are water, pistachios and salt, you are almost certainly looking at 1 g to 2 g of net carbs a cup. If it says anything else, read the panel, and accept that on four of those six the panel will not answer you. Making it yourself removes the question.
How many carbs are in pistachios?
The nut is where portion control actually matters. USDA's analytical figures for raw pistachios give 27.17 g of carbohydrate and 10.6 g of dietary fiber per 100 g, so 16.6 g of net carbs per 100 g. Scaled to a 28 g ounce, that is 7.6 g of carbohydrate, 3.0 g of fiber and about 4.6 g of net carbs.
Harvard's Nutrition Source puts a ketogenic diet at "less than 50 grams a day" of total carbohydrate, and "as low as 20 grams a day". On the stricter end, one ounce of pistachios spends about a third of the day's total carbohydrate, or a quarter of it counted as net carbs. That is affordable once and awkward three times, which is the real reason pistachios have a reputation for derailing a low-carb day. The nuts are not the problem; the second and third handful are. Weigh the portion rather than pouring it, and see how many pistachios a day for the shell trick that reliably cuts how many people eat.
A glass of unsweetened pistachio milk carries about 2 g of net carbs against the nut's 4.6 g an ounce, because the drink is mostly water. Our nut-content work put a US unsweetened pistachio milk at roughly 6% pistachio, which is why the milk is the easier thing to fit.
Methodology
What we included. Plant milks sold in the United States whose Nutrition Facts panel is published, with a declared total carbohydrate figure. 22 rows come from USDA FoodData Central's branded foods dataset, where each record carries the manufacturer's declared panel and a GTIN so the exact product can be identified. Four pistachio rows come from brand panels and retailer listings we transcribed for our August label study and re-checked for this page.
How the per-cup figures were recovered. FoodData Central publishes branded values per 100 g. For most of these records USDA's own derivation code states the value was "calculated from value per serving size measure", meaning USDA back-computed the per-100 g figure from the panel's per-serving one. Multiplying by the declared serving recovers the original declared figure, and the check that it worked is that every result lands on the integer FDA rounding produces. Oatly Original, for example, computes to 16.0 g of carbohydrate, 7.0 g of sugars, 120 kcal and 1.92 g of fiber, which is the carton's panel of 16 g, 7 g, 120 and 2 g. Where a figure did not resolve to a clean declared value we left the cell out rather than rounding it ourselves.
Net carbs here is total carbohydrate minus dietary fiber, which is the usual low-carb convention. Some versions of the calculation also subtract sugar alcohols. We did not collect a sugar alcohol figure, so for any product that declares one our number would be too high. Where fiber is declared as "less than 1 g" we give a range rather than a point figure. Where fiber is not published we record net carbs as not computable rather than assuming zero.
What we included and excluded by line. For almond, cashew, coconut and soy we took the unsweetened line, because that is the one a low-carb reader buys. For oat and rice we took the "Original" line, because neither category reliably sells an unsweetened version and Original is the standard carton. Those Original panels declare sugars that come largely from enzymatic starch conversion rather than from added sugar, which is why they are in the table rather than treated as sweetened products.
Excluded: dairy milk, because the dairy comparison is handled on pistachio milk vs cow's milk. Flavored lines, except one unsweetened vanilla kept to show it matches its plain sibling. Horchata-style rice drinks, which are a sweetened beverage rather than a milk substitute. Protein powders. Barista and extra-creamy variants, except the Elmhurst pistachio one, which is in because the pistachio category is small enough that leaving it out would hide a disclosure gap.
Limitations. Store brands are over-represented because they are well covered in USDA's branded dataset: all four almond rows are retailer own-labels, and national brands like Almond Breeze and Silk almondmilk are absent from this version. The almond and cashew figures are tightly clustered, so we do not expect the national brands to move the category ranges, but that is an expectation and not a measurement. Four plant milk categories are missing entirely: macadamia, flax, hemp and walnut. Each is a small category and none is likely to sit outside the 0 g to 2 g band the other unsweetened nut drinks occupy, but again, that is an expectation. Panels change without notice and USDA records carry a publication date rather than a live feed. Every figure here is what was published as of the checked date in the CSV, and nothing more.
The dataset
All 26 products are in a CSV download, free to reuse with attribution.
Columns: product, brand, base, label descriptor, serving in ml, total carbohydrate, dietary fiber, total sugars, calories, net carbs, whether fiber was declared as "less than", source, source URL and checked date.
Released under CC BY 4.0. Use it, and please link back.
Suggested citation: Ricci, E. (2026). Carbohydrate and net carbs in 26 US plant milks, from published Nutrition Facts panels. pistachiomilk.org. https://pistachiomilk.org/is-pistachio-keto/
Version history
- 2026-10-05, v2.0. Rebuilt around the 26-panel carbohydrate dataset. Corrected two figures that had been published as approximations: unsweetened pistachio milk was given as "about 2.5-3 g of carbohydrate per cup", where the only unsweetened pistachio panel that publishes one declares 4 g; and oat milk was given as "roughly 12-16 g carbs per cup", where the four oat panels here declare 16 g to 19 g. Removed a comparison table of net carbs in seven nuts whose figures were approximations with no per-nut source, and replaced the pistachio row with the USDA analytical figure. Added the US and EU labeling sections.
- 2024-02-05, v1.0. First published.
Practical notes
Three things follow from the table if you are actually shopping.
Read the carton, not the category. The word on the front that predicts the carb figure is "unsweetened", and after that the base barely matters among the nut drinks. An unsweetened pistachio, almond, cashew or coconut drink is a 1 g to 2 g decision.
Treat "net carbs" claims with the arithmetic in mind. If a product's fiber line reads 0 g, anyone quoting its net carbs is quoting its total carbohydrate. That is not dishonest, but it is not extra information either.
Watch the things built on pistachio rather than the pistachio itself. Pistachio pudding mix is sugar first. Sweetened pistachio creamer carries the carbs of the sweetener, not of the nut. Pistachio cream runs to more sugar than pistachio in 8 of the 13 jars we audited that publish both. The drink is the easy part of this category; the spreads are not.
For the rest of the nutrition picture see pistachio milk carbs and pistachio milk nutrition facts, and for the dairy comparison, pistachio milk vs cow's milk.
Frequently asked questions
Is pistachio milk keto?
Which milk has the lowest carbs?
Why isn't net carbs printed on the label?
Are pistachios keto-friendly?
Does fiber count toward carbs on keto?
Allergy note: Pistachios are a tree nut. If you have a nut allergy, avoid pistachio milk and pistachio products, and check labels for cross-contamination warnings. More on pistachio allergy, including who has to declare it. This article is general information, not personalized dietary or medical advice.