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

terminal
curl https://recipe-api.com/api/v1/dinner
32 USDA nutrients Doneness cues ISO 8601 timing Ingredient-level sources Zero attribution
GET /api/v1/dinner — full recipe response
{
  "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"
    ]
  }
}
25,000+
Recipes, all one schema
32
Tracked nutrients per serving
80+
Structured fields per recipe
1
Schema — retrieval and generation

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, all 32 fields
"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.

Free
$0 /mo
Evaluate the schema
Full schema on every response
100 req/day, 10/min
25 unique recipes/mo
No generate
No caching rights
Get API Key
Indie
$39 /mo
Build something real
500 req/day, 20/min
150 unique recipes/mo
Generate 3/day, 50/mo
24h caching
Email support
Get Started
Growth
$249 /mo
Ship your first product
2,000 req/day, 60/min
1,000 unique recipes/mo
Generate 10/day, 200/mo
7-day caching
Email support
Get Started
Enterprise
$4,999 /mo
Your brand, your data
100K req/day, 1,000/min
Unlimited unique recipes/mo
Generate 100/day, 2,000/mo
Unlimited caching + white-label
99.9% SLA + dedicated support
Get Started

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.

JavaScript
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);
Python
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

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.