Generative + Structured Recipe API

Own the Recipe Layer
in Your Product

Production-ready recipe data and generation with structured JSON, USDA-backed nutrition mapping, and licensing built for commercial apps. No attribution required.

Generate brand-new recipes from structured constraints with POST /api/v1/generate.

Try it now - no signup required

terminal
curl https://recipe-api.com/api/v1/dinner

Or use our official SDK

npm
npm install @recipe-api/sdk
Join the growing developer base 32 nutrients per recipe 99.9% SLA on Pro No attribution required
GET /api/v1/dinner — 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 and growing weekly
32
Nutrients Tracked
10,000+
Searchable Ingredients
Growing
Developer Base

From First Call to Production in Minutes

No vague setup. The path is explicit: validate schema, activate a key, then ship with confidence.

Step 1

Validate the Data Instantly

Run one public call and inspect full recipe shape before signup.

GET /api/v1/dinner

Step 2

Activate Your API Key

No credit card on Free. Magic-link onboarding takes about a minute.

Get Free API Key

Step 3

Ship Search + Generate

Use retrieval endpoints for scale and add generation where personalization matters.

Review Generate Docs

Why Teams Choose Recipe API

🥗

Complete Nutrition

32 nutrients per recipe including vitamins, minerals, and macros. Sourced from USDA FoodData Central and other verified databases.

📋

Structured Instructions

Every step includes action, temperature (C/F), duration, and doneness cues. Perfect for voice and screen interfaces.

Generate New Recipes

Create recipes from structured JSON inputs with POST /api/v1/generate. View docs.

🧑‍🍳

Chef-Developed

Every recipe created by a professional chef. Troubleshooting tips, storage instructions, and cultural context included.

Free to Start

100 requests/day free forever. Generate credits start on Hobby. Scale up to 50,000/day. No attribution required.

📖

Great DX

OpenAPI spec, interactive docs, consistent JSON schema. Start building in minutes.

Trust and Authority, Not Hype

The product promise is backed by explicit docs, auditable nutrition sources, and transparent plan guarantees.

Transparent Data Contract

OpenAPI spec, consistent schema, and response examples for every endpoint.

View API Contract

Nutrition Methodology

Ingredient-level nutrition mapping with USDA FoodData Central references.

Read Quality Details

Commercial-Ready Rights

Clear caching and white-label terms so teams can plan with certainty.

Compare Plan Rights

Build and Buy Guides

Use these guides to evaluate fit faster and reduce decision friction for your team.

Simple, Predictable Pricing

Start free. Upgrade when you need more. No credit card required.

Generate endpoint available on Hobby and above.

Free
$0 /mo
No credit card
100 req/day
100 recipes/mo
No generate
32 nutrients
Get API Key
Hobby
$9 /mo
Side projects
500 req/day
500 recipes/mo
1/day, 25/mo gen
24h caching
Get Started
Pro
$199 /mo
Scale & white-label
50K req/day
10K recipes/mo
10/day, 250/mo gen
99.9% SLA
Get Started

Need more? Contact us for enterprise pricing.

Quick Start

Get started in minutes with 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

Perfect For

Built for apps that need reliable, structured recipe data.

📱
Meal Planning Apps
Nutrition filters, dietary flags
🏋️
Fitness Apps
Macro tracking, calorie goals
🔊
Voice Assistants
Structured step-by-step
📺
Smart Displays
Rich media, temperatures

Ready to Build?

Start free with 100 requests/day. No credit card required.
Generate credits start on Hobby and above.