25,000+ structured recipes. One consistent schema.
Deep Recipe Data. Written by Chefs. Built for Machines.
Every recipe includes grouped ingredients with linked IDs and USDA source traceability, 32 tracked nutrients per serving, step-by-step instructions with machine-readable actions, temperatures in Celsius and Fahrenheit, ISO 8601 durations, visual and tactile doneness cues, dietary flags, allergen warnings, storage and reheating guidance, troubleshooting, equipment with alternatives, chef notes, and cultural context.
All 25,000+ recipes follow this exact schema. Every field documented. Every null explicit. POST /api/v1/generate returns the same structure.
Try it now — no signup required
curl https://recipe-api.com/api/v1/dinner
{
"id": "a066f472-ed0c-46ea-8e2c-a0053c3183a8",
"name": "Texas Chili con Carne",
"description": "A thick, beef-based stew featuring tender cubes of meat in a rich sauce made from reconstituted whole chilies and aromatic spices without beans or tomatoes.",
"category": "Dinner",
"cuisine": "American",
"difficulty": "Intermediate",
"tags": [
"Beef",
"Slow-Cooked",
"High-Protein",
"Southwestern"
],
"meta": {
"active_time": "PT20M",
"passive_time": "PT1H40M",
"total_time": "PT2H",
"overnight_required": false,
"yields": "4 servings",
"yield_count": 4,
"serving_size_g": 300
},
"dietary": {
"flags": [
"Gluten-Free",
"Dairy-Free",
"Egg-Free",
"Nut-Free",
"Peanut-Free",
"Soy-Free"
],
"not_suitable_for": []
},
"storage": {
"refrigerator": {
"notes": "Flavor improves after 24 hours.",
"duration": "P4D"
},
"freezer": {
"notes": "Thaw overnight in refrigerator before reheating.",
"duration": "P3M"
},
"reheating": "Heat in a saucepan over medium-low heat, adding a splash of water if too thick.",
"does_not_keep": false
},
"equipment": [
{
"name": "Blender",
"required": true,
"alternative": "Food processor or mortar and pestle"
},
{
"name": "Heavy skillet",
"required": true,
"alternative": "Dutch oven or heavy-bottomed pot"
},
{
"name": "Mixing bowl",
"required": true,
"alternative": null
}
],
"ingredients": [
{
"group_name": "Chili Base",
"items": [
{
"name": "red chilies",
"quantity": 6,
"unit": null,
"preparation": "dried",
"notes": "about 30g",
"substitutions": [],
"ingredient_id": "3c3f97d4-c951-43fd-865c-88fa8b445739",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "stewing beef",
"quantity": 910,
"unit": "g",
"preparation": "cut into 1.3cm (1/2 inch) cubes",
"notes": null,
"substitutions": [],
"ingredient_id": "09f2eef4-739a-4fca-8b63-97d697257990",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "olive oil",
"quantity": 15,
"unit": "ml",
"preparation": null,
"notes": null,
"substitutions": [],
"ingredient_id": "e9f370c4-07c8-4d8d-8a9f-0edea38db44c",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "bay leaves",
"quantity": 2,
"unit": null,
"preparation": null,
"notes": null,
"substitutions": [],
"ingredient_id": "eab2ef3a-7a0e-4188-b746-645b795ada1e",
"nutrition_source": "USDA FoodData Central"
}
]
},
{
"group_name": "Flavor Paste",
"items": [
{
"name": "garlic",
"quantity": 2,
"unit": null,
"preparation": "peeled",
"notes": "about 6g",
"substitutions": [],
"ingredient_id": "30109e1e-d8e8-4f76-a6f4-82ac5b071fde",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "cumin",
"quantity": 7,
"unit": "g",
"preparation": null,
"notes": null,
"substitutions": [],
"ingredient_id": "b9c9e3cb-61b7-4bbc-87c0-7858d42d7935",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "oregano",
"quantity": 3,
"unit": "g",
"preparation": null,
"notes": null,
"substitutions": [],
"ingredient_id": "687f54eb-e811-4e5e-ac2e-e2735458480c",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "paprika",
"quantity": 14,
"unit": "g",
"preparation": null,
"notes": null,
"substitutions": [],
"ingredient_id": "f4c3bdd7-6528-40d2-84b3-a6325df15e8e",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "sugar",
"quantity": 4,
"unit": "g",
"preparation": null,
"notes": null,
"substitutions": [],
"ingredient_id": "8ae7f905-b311-4f45-9527-5e3840369506",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "salt",
"quantity": null,
"unit": null,
"preparation": null,
"notes": "to taste",
"substitutions": [],
"ingredient_id": "2631739c-2de4-4389-a6e3-ed3d06d0406f",
"nutrition_source": "USDA FoodData Central"
},
{
"name": "black pepper",
"quantity": null,
"unit": null,
"preparation": null,
"notes": "to taste",
"substitutions": [],
"ingredient_id": "c25dc1c9-4ea7-403c-976e-ab1d06578b7a",
"nutrition_source": "USDA FoodData Central"
}
]
}
],
"instructions": [
{
"step_number": 1,
"phase": "prep",
"text": "Tear the dried chilies into strips and place them in a bowl. Cover with 240ml (1 cup) of boiling water and soak for 30 minutes.",
"structured": {
"action": "SOAK",
"temperature": null,
"duration": "PT30M",
"doneness_cues": null
},
"tips": []
},
{
"step_number": 2,
"phase": "prep",
"text": "Drain the chilies and set them aside. Reserve the soaking liquid for the cooking process.",
"structured": {
"action": "DRAIN",
"temperature": null,
"duration": null,
"doneness_cues": null
},
"tips": []
},
{
"step_number": 3,
"phase": "cook",
"text": "Heat olive oil in a heavy skillet over medium-high heat. Brown the beef cubes on all sides until a crust forms.",
"structured": {
"action": "SEAR",
"temperature": null,
"duration": null,
"doneness_cues": {
"visual": "Beef is deeply browned on all sides",
"tactile": null
}
},
"tips": []
},
{
"step_number": 4,
"phase": "cook",
"text": "Pour the reserved chili soaking liquid into the skillet. Add bay leaves and bring the liquid to a boil.",
"structured": {
"action": "BOIL",
"temperature": null,
"duration": null,
"doneness_cues": null
},
"tips": []
},
{
"step_number": 5,
"phase": "cook",
"text": "Reduce the heat to low, cover the skillet, and simmer for 1 hour.",
"structured": {
"action": "SIMMER",
"temperature": {
"celsius": 90,
"fahrenheit": 194
},
"duration": "PT1H",
"doneness_cues": null
},
"tips": []
},
{
"step_number": 6,
"phase": "prep",
"text": "Combine the soaked chilies, garlic, cumin, oregano, paprika, sugar, salt, and pepper in a blender. Puree until smooth, adding a small amount of fresh water if the mixture is too thick.",
"structured": {
"action": "PUREE",
"temperature": null,
"duration": null,
"doneness_cues": null
},
"tips": []
},
{
"step_number": 7,
"phase": "cook",
"text": "Stir the chili puree into the skillet with the beef. Cover and continue to simmer for 30 minutes.",
"structured": {
"action": "SIMMER",
"temperature": null,
"duration": "PT30M",
"doneness_cues": {
"visual": null,
"tactile": "Beef cubes are fork-tender"
}
},
"tips": []
},
{
"step_number": 8,
"phase": "finish",
"text": "Remove and discard the bay leaves. Taste and add more salt or pepper if needed before serving.",
"structured": {
"action": "SERVE",
"temperature": null,
"duration": null,
"doneness_cues": null
},
"tips": []
}
],
"troubleshooting": [
{
"symptom": "Beef is tough or chewy",
"likely_cause": "The meat has not simmered long enough to break down connective tissue.",
"prevention": "Ensure the liquid is at a very low simmer and the lid is tightly sealed.",
"fix": "Continue simmering in 15-minute increments until tender."
},
{
"symptom": "Chili is too watery",
"likely_cause": "Too much water added during blending or insufficient reduction.",
"prevention": "Add water to the blender only 15ml at a time.",
"fix": "Simmer uncovered for the final 15 minutes to evaporate excess moisture."
}
],
"chef_notes": [
"For the deepest chili flavor, use a variety of dried chilies like ancho, guajillo, and pasilla. Toasting them briefly before soaking can enhance their aroma.",
"Don't overcrowd the skillet when browning the beef; sear in batches if necessary to ensure a good crust, which adds significant flavor to the final dish.",
"The simmering time is crucial for tenderizing the beef. Low and slow is key; the meat should be easily pierced with a fork.",
"The consistency of the chili can be adjusted by the amount of soaking liquid you use and the final simmering time. If it's too thick, add a splash of water or beef broth; if too thin, simmer uncovered for a bit longer."
],
"cultural_context": "Texas Chili, or Chili con Carne, is a hearty stew deeply rooted in Texan culinary tradition. Its origins trace back to the mid-19th century, with early versions featuring simple ingredients like dried beef, chilies, and spices, cooked by cowboys and ranchers. The absence of beans and tomatoes is a defining characteristic, distinguishing it from other regional chili variations and emphasizing its pure, meat-and-chili flavor profile.",
"nutrition": {
"per_serving": {
"calories": 569.02,
"protein_g": 44.14,
"carbohydrates_g": 5.59,
"fat_g": 41.99,
"saturated_fat_g": 16.48,
"trans_fat_g": 2.39,
"monounsaturated_fat_g": 20.66,
"polyunsaturated_fat_g": 2.29,
"fiber_g": 1.97,
"sugar_g": 1.84,
"sodium_mg": 350.75,
"cholesterol_mg": 154.7,
"potassium_mg": 903.3,
"calcium_mg": 74.24,
"iron_mg": 7.16,
"magnesium_mg": 60.57,
"phosphorus_mg": 434.12,
"zinc_mg": 16.82,
"vitamin_a_mcg": 101.01,
"vitamin_c_mg": 11.51,
"vitamin_d_mcg": 0.23,
"vitamin_e_mg": 2.15,
"vitamin_k_mcg": 14.73,
"vitamin_b6_mg": 0.97,
"vitamin_b12_mcg": 6.14,
"thiamin_mg": 0.19,
"riboflavin_mg": 0.38,
"niacin_mg": 10.47,
"folate_mcg": 12.53,
"water_g": 154.87,
"alcohol_g": null,
"caffeine_mg": null
},
"sources": [
"USDA FoodData Central"
]
}
}
Schema Deep Dive
Every recipe. Every field. Explore each section of the response.
Nutrition
32 Tracked Nutrients Per Serving
Every recipe includes calories, protein, carbohydrates, total fat, saturated fat, trans fat, monounsaturated fat, polyunsaturated fat, fiber, sugar, sodium, cholesterol, potassium, calcium, iron, magnesium, phosphorus, zinc, vitamins A, C, D, E, K, B6, and B12, thiamin, riboflavin, niacin, folate, water, alcohol, and caffeine. All calculated from ingredient-level data backed by USDA FoodData Central.
Build macro calculators, nutrition labels, meal planners, dietary compliance tools, or health tracking apps without maintaining your own nutrition database. Nullable fields (like alcohol and caffeine) are explicit — never silently omitted.
"nutrition": {
"per_serving": {
"calories": 569.02,
"protein_g": 44.14,
"carbohydrates_g": 5.59,
"fat_g": 41.99,
"saturated_fat_g": 16.48,
"trans_fat_g": 2.39,
"monounsaturated_fat_g": 20.66,
"polyunsaturated_fat_g": 2.29,
"fiber_g": 1.97,
"sugar_g": 1.84,
"sodium_mg": 350.75,
"cholesterol_mg": 154.7,
"potassium_mg": 903.3,
"calcium_mg": 74.24,
"iron_mg": 7.16,
"magnesium_mg": 60.57,
"phosphorus_mg": 434.12,
"zinc_mg": 16.82,
"vitamin_a_mcg": 101.01,
"vitamin_c_mg": 11.51,
"vitamin_d_mcg": 0.23,
"vitamin_e_mg": 2.15,
"vitamin_k_mcg": 14.73,
"vitamin_b6_mg": 0.97,
"vitamin_b12_mcg": 6.14,
"thiamin_mg": 0.19,
"riboflavin_mg": 0.38,
"niacin_mg": 10.47,
"folate_mcg": 12.53,
"water_g": 154.87,
"alcohol_g": null,
"caffeine_mg": null
},
"sources": ["USDA FoodData Central"]
}
25,000+ Recipes. One Schema. Including AI Generation.
Every recipe in the catalog — from a simple egg recipe to a complex multi-day fermentation — returns this exact schema. Same fields, same types, same nesting. No structural surprises. No missing sections. Your code handles one shape. Your types work on every response. Your tests pass on every recipe.
When you call POST /api/v1/generate, the AI returns the same schema — same 32 nutrients, same structured instructions, same doneness cues. Your integration does not know the difference between a catalog recipe and a generated one. Build once. It works for all 25,000+ recipes and every generated recipe after that.
Pricing
Evaluate on the free tier. Pay when you need production throughput, generation, and caching rights. Re-fetching a recipe you've already accessed does not count against your unique recipe limit.
Caching rights scale by tier: evaluation only on Free, 24-hour caching on Indie, 7-day caching on Growth, permanent caching on Scale, and unlimited caching plus white-label on Enterprise.
Need custom limits? Contact us for a tailored plan.
Quick Start
Authenticate with your API key and start fetching deep structured recipe data. The same schema works from any language.
const response = await fetch(
'https://recipe-api.com/api/v1/recipes',
{
headers: {
'X-API-Key': 'rapi_your_key'
}
}
);
const { data } = await response.json();
console.log(data);
import requests
response = requests.get(
'https://recipe-api.com/api/v1/recipes',
headers={
'X-API-Key': 'rapi_your_key'
}
)
data = response.json()['data']
print(data)
Starter kits available: TypeScript, Python, Go
Guides & Comparisons
Evaluate the schema depth, data pipeline, and commercial terms for your use case.
Generative Recipe API Guide
How to ship structured recipe generation — same schema as retrieval.
Meal Planning API Guide
Implementation path for planning, nutrition, and dietary filtering.
Recipe API vs Spoonacular
Compare schema depth, generation, and commercial fit.
Recipe API vs Edamam
Compare nutrition trust, structured data, and time to value.
See the Schema. Then Decide.
Run curl recipe-api.com/api/v1/dinner and inspect a full recipe object — 32 nutrients, doneness cues, ingredient sources, and all. Use free discovery to explore the catalog. Upgrade when you need more.