# 🍳 Recipe & Meal Intelligence - Ingredients & Steps (`benthepythondev/recipe-intelligence`) Actor

Search and extract recipe data from a database of 300+ meals. Get ingredients, cooking instructions, nutritional categories, and meal photos. Filter by cuisine (Italian, Mexican, Chinese, Indian), category (beef, chicken, seafood, vegetarian, dessert), or ingredient.

- **URL**: https://apify.com/benthepythondev/recipe-intelligence.md
- **Developed by:** [Ben](https://apify.com/benthepythondev) (community)
- **Categories:** AI, Developer tools, Other
- **Stats:** 6 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🍳 Recipe & Meal Intelligence — Structured Recipe Data for Apps & Meal Planners

Get **clean, structured recipe data** — ingredients with measures, step-by-step instructions, cuisine, category, photo and a YouTube tutorial link — for hundreds of meals, with no scraping and no API key. Search by name, ingredient, cuisine or category, or pull random recipes for discovery features. Every recipe comes back as one tidy row, ready to drop into a cooking app, meal planner or shopping-list generator. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

### 🍽️ What is the Recipe & Meal Intelligence?

It turns a public recipe database (TheMealDB) into a structured dataset you can build products on. Tell it how to search — by recipe name, main ingredient, meal category, cuisine/area, or random — and it returns full recipes with a parsed `ingredients` array (each ingredient paired with its measure), so meal-planning tools, food blogs and AI cooking assistants get ready-to-use data instead of messy HTML. No paid subscription, no key, no parsing.

#### What data does it extract?

- **Recipe name** and stable **meal `id`**
- **Category** (Beef, Chicken, Dessert, Vegetarian, etc.) and **area/cuisine** (Italian, Mexican, Indian…)
- **Full cooking instructions** (step-by-step text)
- **Structured `ingredients`** — each item paired with its **measure** (e.g. soy sauce / 3/4 cup)
- **`ingredients_list`** (names only) and an **`ingredients_count`** for quick filtering
- **Recipe photo** (`image` thumbnail URL)
- **`tags`** array and a **YouTube tutorial URL** when available
- **`source_url`** to the original recipe and an `extracted_at` timestamp

Because the data comes from a public recipe API rather than a scraped page, the output is consistent every time — the same fields, the same structured `ingredients` shape, and no broken layouts to clean up before you import it.

### ⬇️ Input

Pick a search mode and optional filters, then run — no key or login required:

| Field | Description |
|-------|-------------|
| `searchType` | `name`, `ingredient`, `category`, `area` (cuisine), or `random` |
| `searchQuery` | Search term, e.g. `chicken`, `pasta`, `garlic` (default `chicken`) |
| `category` | Filter by meal category: `Beef`, `Chicken`, `Dessert`, `Vegetarian`, `Seafood`, etc. |
| `area` | Filter by cuisine: `American`, `British`, `Chinese`, `Italian`, `Mexican`, etc. |
| `maxResults` | Cap the run (1–200, default 50) |

#### Example input

```json
{
  "searchType": "category",
  "category": "Dessert",
  "maxResults": 50
}
```

### ⬆️ Output

Every recipe is one clean row (view as a **table**, or export **JSON / CSV / Excel**):

```json
{
  "id": "52772",
  "name": "Teriyaki Chicken Casserole",
  "category": "Chicken",
  "area": "Japanese",
  "instructions": "Preheat oven to 350°F. In a small bowl, whisk together the soy sauce, water, brown sugar...",
  "image": "https://www.themealdb.com/images/media/meals/wvpsxx1468256321.jpg",
  "tags": ["Meat", "Casserole"],
  "youtube_url": "https://www.youtube.com/watch?v=4aZr5hZXP_s",
  "source_url": "https://www.example.com/teriyaki-chicken-casserole",
  "ingredients": [
    {"ingredient": "soy sauce", "measure": "3/4 cup"},
    {"ingredient": "water", "measure": "1/2 cup"},
    {"ingredient": "brown sugar", "measure": "1/4 cup"}
  ],
  "ingredients_count": 12,
  "ingredients_list": ["soy sauce", "water", "brown sugar"],
  "extracted_at": "2026-06-26T15:30:00"
}
```

### 💡 Use cases

- 📱 **Cooking & recipe apps:** populate your catalog with structured recipes, photos and ingredient lists in minutes.
- 🗓️ **Meal-planning tools:** generate weekly menus by cuisine and category, then auto-build shopping lists from the `ingredients` array.
- 🤖 **AI cooking assistants:** ground LLM answers in real recipes instead of hallucinated ingredients and steps.
- ✍️ **Food blogs & nutrition platforms:** source recipe ideas and clean ingredient data for content and diet tracking.

### ❓ FAQ

**How do I search for recipes?** Choose a `searchType` (name, ingredient, category, area or random) and a `searchQuery` or filter, then run. You get full recipes with ingredients, instructions and photos.

**Are ingredients structured or just plain text?** Structured. Each ingredient is returned as an object paired with its measure, and you also get a flat `ingredients_list` and an `ingredients_count` for easy parsing and shopping lists.

**Do I need an API key?** No. There is no key, login or token — just pick a search mode and run.

**Can I filter by cuisine or diet?** Yes. Use `searchType: "area"` (or the `area` filter) for cuisines like Italian or Indian, and `category` for types like Vegetarian, Vegan, Seafood or Dessert.

**Is there a video tutorial link?** Many recipes include a `youtube_url` to a step-by-step cooking video, plus a `source_url` to the original recipe.

**How many recipes can it return?** Up to your `maxResults` cap (1–200). Random search returns up to 10 recipes per run for discovery.

**How fresh is the data?** Each run fetches live from the source, so any new or updated recipes are reflected automatically.

**Can I run it on a schedule or via API?** Yes. Schedule recurring runs in Apify, call it via the API/SDK, or connect it to Make, Zapier or n8n to keep your recipe catalog updated.

**Is it legal?** It retrieves recipe data from a publicly available, openly licensed recipe database. Use it responsibly for your apps and content, and respect source attribution where required.

### 🔗 You might also like

- **[Cocktail & Drink Recipe Intelligence](https://apify.com/benthepythondev/cocktail-intelligence)** — hundreds of cocktail and drink recipes
- **[Open Food Facts Product Intelligence](https://apify.com/benthepythondev/open-food-facts-product-intelligence)** — food product and nutrition data
- **[OpenLibrary Book Intelligence](https://apify.com/benthepythondev/openlibrary-book-intelligence)** — millions of book records
- **[Art Museum Intelligence](https://apify.com/benthepythondev/art-museum-intelligence)** — museum art collections

***

**Keywords:** recipe scraper, recipe API, meal data, recipe database, ingredients with measures, cooking instructions, meal planning API, food blog data, recipe search by ingredient, cuisine filter, TheMealDB alternative, structured recipes, shopping list generator, nutrition data, cooking app data.

# Actor input Schema

## `searchType` (type: `string`):

How to search for recipes

## `searchQuery` (type: `string`):

Recipe name, ingredient, category or area to search for

## `category` (type: `string`):

Filter by meal category

## `area` (type: `string`):

Filter by cuisine origin

## `maxResults` (type: `integer`):

Maximum number of recipes to return

## Actor input object example

```json
{
  "searchType": "name",
  "searchQuery": "chicken",
  "maxResults": 50
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/recipe-intelligence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("benthepythondev/recipe-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call benthepythondev/recipe-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=benthepythondev/recipe-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/n8tGgqXxQKLZGOWsU/builds/aZ3i7dpfBHzaNILs1/openapi.json
