Skip to content

Free recipe datasets you can download today

What's in RecipeNLG, Recipe1M+, Food.com, Epicurious and more, and what their licenses really let you do.

Sometimes you want a lot of recipes at once. Maybe you're training a model, or poking at a year of food trends, or you have a class project due on Friday. A big file you can load into pandas is exactly what you need.

The good news is there are plenty of free recipe datasets. The less good news: free to download isn't the same as free to use. Most of these were scraped from recipe sites. Many say "research only". Some say nothing at all, which isn't the same as "do what you like".

So here's what's out there, what's in each file, and what you're actually allowed to do with it. We checked every one of them in October 2026.

The datasets

RecipeNLG. The big one. 2,231,142 recipes, put together by researchers at Poznań University of Technology for a 2020 paper on recipe text generation. It starts from Recipe1M+ (below) and adds over a million more recipes gathered from the web. Each row has a title, ingredients, directions, link, source and ner. That last one is a list of the food words in each recipe, like "brown sugar" and "milk". You download it from the project site after agreeing to its terms.

The terms are clear: "Researcher shall use the Dataset only for non-commercial research and educational purposes." So it's great for a paper or a thesis. It's not something to ship in a product.

A few gotchas. Ingredients are raw text lines, like "1 c. firmly packed brown sugar". The ner field gives you the food but not the amount or the unit, so you'll be parsing lines yourself. (We wrote about parsing ingredient lines if you want a head start.) The source column says whether a row came from Recipe1M+ or was newly gathered. The authors say the gathered part, about 1.6 million recipes, is the better quality half. Expect near-duplicates too, since the same recipe gets copied around the web a lot.

Recipe1M+. From MIT. Over a million recipes and about 13 million food photos, built to teach a model to match a picture to its recipe. If you're working on food images, this is the classic. The catch is access. It has been handed out for non-commercial research after you sign up and agree to terms. When we checked the project page, it linked to code and models but gave no working way to get the dataset itself. You may need to contact the authors, or use a copy that came with another project. If you find a mirror, the same research-only terms still apply.

Food.com Recipes and Interactions. On Kaggle, from a 2019 paper on personalised recipe generation. 180K+ recipes and 700K+ reviews covering 18 years of Food.com. It's about 890 MB in total. RAW_recipes.csv holds the recipes: name, minutes, tags, a nutrition list, steps and ingredient names. RAW_interactions.csv holds who rated what, and when. There are also tokenized files for reproducing the paper.

This is the one to grab for a recommender system, because the user ratings are the interesting part. The ingredients are names only, with no amounts. The license on Kaggle reads "Data files © Original Authors". That's not an open license. Treat it as research use.

Food.com Recipes and Reviews. A bigger Food.com scrape, also on Kaggle. 522,517 recipes in 312 categories and 1,401,982 reviews from 271,907 users. It has cooking times, servings, nutrition, instructions and ingredients, with the amounts and the ingredient names in two separate lists you zip back together. Use the Parquet files. The CSV is set up for R and the list columns are a pain to read anywhere else.

Kaggle shows this one as CC0, public domain. Be careful with that. The person who uploaded it scraped it from Food.com. Putting a CC0 label on someone else's recipes doesn't make them public domain. Fine for learning and research, but don't build a business on that label.

Epicurious, twice. Epicurious - Recipes with Rating and Nutrition has over 20,000 recipes with ratings, nutrition and categories, from 2017. Use full_format_recipes.json if you want ingredients and directions. epi_r.csv drops them in favour of hundreds of 0/1 category columns. The license is listed as "Unknown".

Food Ingredients and Recipes Dataset with Images has 13,582 Epicurious recipes, each with a photo. Columns are Title, Ingredients, Instructions, Image_Name and Cleaned_Ingredients. It's a nice small set for an image-to-recipe experiment on a laptop. It's labelled CC BY-SA 3.0, with the same catch as above: the uploaders scraped it, so the label isn't theirs to give.

Open Food Facts. Not recipes, but worth knowing. It's an open database of packaged food: ingredient lists, nutrition, allergens and barcodes for millions of products. The data page has nightly exports as a MongoDB dump, JSONL, tab-separated CSV and a Parquet version on Hugging Face. Here the license is real and clear. The database is ODbL, and product photos are CC BY-SA. ODbL is share-alike, so if you publish a database built from it, that has to be ODbL too.

USDA FoodData Central. Also not recipes. It's nutrient data for foods, and it's what you join recipe ingredients to when you want calories and protein. The downloads come as CSV and JSON: Foundation Foods and Branded (both April 2026), FNDDS (October 2024) and SR Legacy (April 2018, no longer updated). It's public domain under CC0. USDA asks you to credit FoodData Central, but you don't need permission. This is the cleanest license on the list. Our nutrition APIs compared post covers the API side.

Wikibooks Cookbook. Small and a bit messy, but it's one of the few recipe collections you can reuse with a proper open license. The text is CC BY-SA, so you credit it and share alike. It comes inside the Wikibooks dumps from dumps.wikimedia.org, as wiki markup you'll need to clean up.

Here's the short version:

Dataset Size License Good for
RecipeNLG 2.2M recipes Non-commercial research and education Text models, big analysis
Recipe1M+ 1M+ recipes, 13M photos Research only, hard to get Food image research
Food.com Interactions 180K+ recipes, 700K+ reviews © original authors Recommenders
Food.com Reviews 522K recipes, 1.4M reviews Labelled CC0, but scraped Bigger recommenders
Epicurious (two sets) 20K and 13.5K recipes Unknown / labelled CC BY-SA Small experiments
Open Food Facts Millions of products ODbL, photos CC BY-SA Packaged food, allergens
USDA FoodData Central Nutrient data CC0 Nutrition
Wikibooks Cookbook Small CC BY-SA Openly licensed recipes

Dataset or API?

If you're doing research, a dataset is usually the right call. A frozen file is a feature. Everyone who downloads RecipeNLG gets the same 2.2 million rows, so your results can be checked. You can run it all offline and loop over it as often as you like.

It gets harder when you're building something people will use. Three things tend to bite.

First, the license. Most of the big sets are research only, and the "open" labels on scraped Kaggle uploads won't hold up if anyone asks. Second, the ingredients. Almost every dataset gives you text lines, so "2 (14.5 oz) cans diced tomatoes, drained" is yours to pull apart. Third, freshness. These are snapshots from 2017 to 2020, and the links in them die over time.

That's where a recipe API fits. We're one option, so let's be straight about what Tiny Plates is and isn't. It's not a dataset. You can cache the recipes your users ask for, but copying the index in bulk isn't allowed. We have thousands of recipes, not millions. And the free plan is 50 requests a day and 300 a week. So if you need two million recipes to train a model, RecipeNLG is the better pick. Just keep to its terms.

What you get instead is one recipe at a time, already structured. Here's a search that only asks for the ingredients:

curl 'https://api.tinyplates.dev/search?query=banana+bread&fields=title,ingredients&limit=1' \
  -H 'Authorization: Bearer rd_your_api_key'

Each ingredient comes back already split up, with the line the source wrote kept in original:

{
  "name": "baking soda",
  "ingredientId": "baking-soda",
  "quantity": { "value": 1, "unit": "tsp" },
  "display": "1 tsp baking soda",
  "original": "1 teaspoon baking soda"
}

The ingredientId is the same across our English, Spanish and Swedish recipes, so baking soda is baking-soda whatever language the recipe is in. Every recipe also has numbered steps, true or false flags for the EU's 14 allergens, and serving scaling. Credit the source and link to the original recipe when you show one.

If you're still choosing between APIs, our roundups of the best recipe APIs and free food APIs compare the options, warts and all.

Training a model? Grab RecipeNLG and read the terms. Building an app? A free Tiny Plates key takes a minute, no credit card needed.