Allergen data for every recipe
Sixteen allergens on every recipe, and an easy way to leave them out.
If you build anything that suggests food, allergies come up fast. A parent wants dinners without peanuts. A school needs a week of lunches with no sesame. Someone with coeliac disease needs to know about wheat before they start cooking, not halfway through.
Most recipe sites don't tell you. Some put "contains nuts" in a footer. Most say nothing. So we work it out for every recipe, from its ingredients, and give you the answer in the same shape every time:
"allergens": {
"celery": false,
"crustaceans": false,
"eggs": true,
"fish": false,
"gluten-cereals": true,
"lupin": false,
"milk": true,
"molluscs": false,
"mustard": false,
"nuts-eu": false,
"peanuts": false,
"sesame": false,
"soy": false,
"sulphites": false,
"tree-nuts-us": false,
"wheat": true,
"disclaimer": "Informational only; not medical advice. Verify ingredients and product labels before serving someone with an allergy."
}
That's sixteen allergens. Fourteen are the ones EU law asks food businesses to declare. The US draws a couple of lines differently, so we added its versions of wheat and tree nuts too. A European app can show the EU list. An American app can show its own. Same recipe, same data.
How do we know? Every ingredient line is matched to a known ingredient, and each ingredient knows its allergens. Butter has milk. Soy sauce has soy and usually wheat. Pesto has nuts. If any line has it, the recipe has it.
That includes the optional bits. A sprinkle of sesame on top still counts. So does the pita on the side. When it comes to allergies, we'd rather warn you about something you can skip than stay quiet about it.
Leave them out
Add without to a search and those recipes never show up:
curl 'https://api.tinyplates.dev/search?query=weeknight%20curry&without=milk,peanuts' \
-H 'Authorization: Bearer rd_your_api_key'
It works on /search, /pantry and the /recipes list. You can mix it with everything else, like a cuisine or a time limit. Here's a fridge search for a table with a nut allergy:
curl 'https://api.tinyplates.dev/pantry?ingredients=chicken,rice,broccoli&without=nuts-eu,peanuts' \
-H 'Authorization: Bearer rd_your_api_key'
If you mistype an allergen, say dairy instead of milk, you get a clear error back. We'd rather fail loudly than let milk slip through. The full list of names lives at /vocabularies.
One thing that trips people up is diets. Recipes also have dietary flags like glutenFree and vegan. Those answer a different question: can you make this for someone on that diet? They ignore optional ingredients. So a salad with optional croutons can be glutenFree: true and still have gluten-cereals: true. Both are right. Skip the croutons and you're fine, but the recipe as written has gluten. Our rule of thumb: use diets to suggest recipes, and allergens to keep people safe.
Agents get this too. Connect the Tiny Plates MCP server and ask for "five quick dinners with no eggs, milk or sesame". Your assistant passes those to without instead of guessing from recipe titles.
There's a lot you can build on this. A family app that remembers everyone's allergies and filters every search. Allergen badges on recipe cards. A menu checker for a school or office. Labels that switch between EU and US rules depending on where your users live. Or, when a recipe has something you can't eat, call /substitutions and suggest a swap instead of hiding it.
One last thing. We can tell you what's in a recipe. We can't tell you how a product was made, or what the "may contain" label on the packet says. That's why every allergen block comes with a disclaimer. Please show it, and remind people with allergies to check the labels.