Foods high in vitamin D (and why food alone probably isn't enough)

Vitamin D is unusual among vitamins. Almost everything else we need — vitamin C, the B-complex, iron, magnesium — is widely distributed across the food supply. You can get a healthy intake by eating a varied diet. Vitamin D doesn't work that way.

It exists in meaningful amounts in maybe a dozen foods total, almost all of them oily fish. Plant sources are rare and weak. Dairy and grain fortification in Australia is patchy and modest. Even people with otherwise excellent diets routinely show up deficient on testing — because food was never how humans were supposed to get vitamin D. Sun was.

Here's an honest accounting of what food can contribute.

The natural food sources, ranked

Wild fatty fish (the only real food source)

  • Wild salmon: 400–600 IU per 100g serving. Farmed salmon is much lower (about a quarter of wild) because farmed fish don't eat the plankton that makes vitamin D in the food chain.
  • Trout (rainbow, wild): ~650 IU per 100g
  • Mackerel: ~360 IU per 100g
  • Sardines (tinned in oil): ~270 IU per 100g
  • Tuna (fresh, not tinned): ~270 IU per 100g
  • Tinned tuna in oil: ~230 IU per 100g
  • Herring: ~220 IU per 100g

These are the heavyweights. A 150g salmon fillet eaten three times a week would deliver something close to a meaningful daily intake — but very few Australians eat fish that often, and most of what we do eat is white fish (snapper, flathead, barramundi), which contains almost no vitamin D.

Cod liver oil (the historical answer)

A tablespoon of cod liver oil contains roughly 1,300 IU of vitamin D — by far the highest concentration in any traditional food. This is why generations of British and Scandinavian children were dosed with it through winter. It's still available in pharmacies and works as a supplement, though the fishy taste keeps adoption low.

Egg yolks

Each yolk contains 30–40 IU on average. Eggs from pasture-raised hens that get sun exposure can carry 100–300 IU per yolk — a four-fold difference — because the chickens themselves are making vitamin D from sunlight and passing it through to the eggs.

This is one of the few cases where "free-range" actually changes the nutritional profile meaningfully.

UV-exposed mushrooms

Mushrooms are the only plant-kingdom source of vitamin D worth talking about. They produce vitamin D2 (ergocalciferol) when exposed to ultraviolet light. Standard supermarket mushrooms grown in the dark contain almost none. UV-exposed mushrooms — some growers now expose them deliberately, and the packaging will say so — can contain up to 1,000 IU per 100g.

Worth knowing: vitamin D2 is less efficient at raising blood levels than D3 (the form from animal sources and sun). A 1,000 IU dose of D2 produces about 70% of the blood-level increase a 1,000 IU dose of D3 would. If you eat a plant-based diet, this matters a lot — our Australian guide for vegans and vegetarians goes through the D2-vs-D3-from-lichen choice in detail.

Beef liver

About 50 IU per 100g. Not enough to matter, but worth mentioning since people sometimes assume liver is high in everything.

Fortified foods in Australia

Unlike the United States (where milk is mandatorily fortified) or Finland (where margarine and dairy are fortified at high levels), Australia's vitamin D fortification is limited and voluntary.

What's typically fortified:

  • Margarine and dairy spreads: Most contain 4–8 µg (160–320 IU) per 100g. A typical 10g serve on toast contributes only 16–32 IU.
  • Some plant milks and dairy alternatives: Soy, almond, and oat milks vary widely — read labels. Fortified varieties typically contain 80–100 IU per 250mL serve.
  • Some breakfast cereals: A small number contain added vitamin D — usually 25–75 IU per serve. Not enough to matter.
  • Some baby formula: Mandatorily fortified to support infant requirements.

You'd have to eat several fortified foods every day to get an additional 200–300 IU from fortification — still well below what most adults need to maintain a healthy level.

The realistic food contribution

Add it up. A typical Australian adult eating a mixed diet — some fish, eggs at breakfast a few times a week, dairy, occasional fortified spreads — gets roughly 100–300 IU of vitamin D per day from food. Even an intentional diet built around oily fish would top out around 600–800 IU on a good day.

For people who don't eat fish or eggs at all — vegans, strict vegetarians, those with allergies — the realistic dietary contribution collapses to near zero. See our guide for plant-based Australians for what actually works in that case.

Compare that to the standard physiological requirement (roughly 1,000–2,000 IU daily for most adults to maintain optimal blood levels) and the gap is obvious. Food can't fill it. It can contribute, but it cannot be the primary source.

Why this is different from other vitamins

Most vitamins evolved as essential nutrients we couldn't make ourselves — vitamin C, B12, folate, the fat-solubles A, E, and K. We had to eat them.

Vitamin D is the exception. For most of human evolutionary history, our species made it from sunlight, not food. Hunter-gatherer ancestors near the equator made all the vitamin D they needed from incidental daily sun exposure. Food was a backup, not the primary source.

Modern life broke that system. Indoor work, sun protection (for very good skin cancer prevention reasons), and northern migration all reduced sun exposure faster than the food supply or human physiology adapted. The vitamin D problem we have now is essentially a mismatch between an ancient biological pathway and a modern lifestyle.

The pragmatic strategy

For most Australians, the right approach is:

  1. Eat oily fish 2–3 times a week when you can. Real food, real benefit.
  2. Get some incidental sun when the UV index allows — typically all year in Queensland, summer-only in Tasmania.
  3. Supplement through winter with 1,000–2,000 IU of D3 daily.
  4. Test annually to confirm your strategy is working.

The food, sun, and supplement contributions all matter. None of them alone is enough for most people.

Want to know where you sit? Our at-home Vitamin D Test measures your 25(OH)D level using gold-standard LC-MS/MS analysis. From $49.95/kit (2-pack) with free Australia-wide shipping. Results in 3–5 days.

Back to blog

Ready to test?Find out your level.

TGA-registered at-home kit, gold-standard LC-MS/MS lab analysis, plain-English report — delivered to your door from $59.95.