# Chefkoch.de Recipe Scraper (`webdatalabs/chefkoch-scraper`) Actor

Scrape recipes from Chefkoch.de - Germany's #1 recipe website with 300,000+ German recipes. Get ingredients, cooking instructions, nutrition facts, ratings, and images in structured JSON format.

- **URL**: https://apify.com/webdatalabs/chefkoch-scraper.md
- **Developed by:** [WebDataLabs](https://apify.com/webdatalabs) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 23 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Chefkoch.de Recipe Scraper - Extract German Recipes with Nutrition Data

> **Scrape recipes from Chefkoch.de** - Germany's #1 recipe website with 300,000+ German recipes. Get ingredients, cooking instructions, nutrition facts, ratings, and images in structured JSON format.

**Perfect for:** Meal planning apps, recipe aggregators, nutrition analysis, food bloggers, diet tracking, cooking apps, and recipe data collection.

### What does this Chefkoch scraper do?

Extract complete recipe data from Chefkoch.de including:

- ✅ **Recipe ingredients** with exact amounts and units
- ✅ **Step-by-step cooking instructions** in German
- ✅ **Nutrition information**: calories, protein, carbs, fat per serving
- ✅ **User ratings and reviews** - see most popular German recipes
- ✅ **Cooking times**: prep time, cook time, total time
- ✅ **Recipe categories and tags**: vegetarian, vegan, quick, easy, Italian, Asian, etc.
- ✅ **High-quality recipe images** (960x720px)
- ✅ **Recipe metadata**: difficulty, servings, author, view count

### Use Cases - Who needs a Chefkoch recipe scraper?

#### 🍽️ Meal Planning & Recipe Apps
Build meal planning applications with German recipes. Extract recipe data for weekly meal prep, grocery lists, and cooking schedules.

#### 📊 Nutrition & Diet Tracking
Collect nutrition data (calories, macros) from thousands of German recipes for diet apps, fitness trackers, and nutrition databases.

#### 📰 Food Bloggers & Content Creators
Research trending German recipes, popular dishes, and cooking trends. Create curated recipe collections and cooking guides.

#### 🤖 Automation & Integrations
Feed recipe data to n8n, Zapier, Make, Airtable, Notion, or Google Sheets for automated workflows and recipe management.

#### 🔬 Food Industry Research
Analyze German cooking trends, ingredient popularity, seasonal recipes, and dietary preferences (vegetarian, vegan, low carb, gluten-free).

#### 🛒 Grocery & Food Delivery Apps
Build recipe recommendations and grocery shopping lists based on popular German recipes and ingredients.

### Input Parameters

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `searchQuery` | String | Search for recipes (e.g., "vegetarisch", "pasta carbonara", "schnell") | "beliebte rezepte" |
| `maxRecipes` | Number | How many recipes to scrape (1-10,000) | 100 |
| `includeNutrition` | Boolean | Include calories, protein, carbs, fat data | true |

#### Example Input - Scrape Vegetarian Recipes

```json
{
  "searchQuery": "vegetarisch schnell",
  "maxRecipes": 50,
  "includeNutrition": true
}
````

#### Example Input - Scrape Italian Pasta Recipes

```json
{
  "searchQuery": "italienisch pasta",
  "maxRecipes": 100,
  "includeNutrition": true
}
```

### Output - Structured Recipe Data

Each scraped recipe includes:

| Field | Type | Description |
|-------|------|-------------|
| `recipeId` | String | Unique Chefkoch recipe ID |
| `title` | String | Recipe name (e.g., "Spaghetti Carbonara") |
| `subtitle` | String | Recipe description |
| `url` | String | Direct link to recipe on Chefkoch.de |
| `rating` | Number | Average rating (0-5 stars) |
| `ratingCount` | Number | Number of user ratings |
| `difficulty` | Number | Difficulty level (1=easy, 2=medium, 3=hard) |
| `prepTime` | Number | Preparation time in minutes |
| `cookTime` | Number | Cooking time in minutes |
| `totalTime` | Number | Total time (prep + cook + rest) |
| `servings` | Number | Number of servings |
| `calories` | Number | Calories per serving |
| `protein` | Number | Protein in grams per serving |
| `carbs` | Number | Carbohydrates in grams per serving |
| `fat` | Number | Fat in grams per serving |
| `ingredients` | Array | List of ingredients with amounts and units |
| `instructions` | String | Complete cooking instructions in German |
| `tags` | Array | Recipe categories (e.g., \["Vegetarisch", "Schnell", "Italien"]) |
| `imageUrl` | String | High-quality recipe image URL (960x720px) |
| `viewCount` | Number | Recipe popularity (total views) |
| `author` | String | Recipe author username |
| `scrapedAt` | String | Timestamp when data was scraped |

#### Example Output - German Recipe Data

```json
{
  "recipeId": "1299041235031624",
  "title": "Rigatoni al forno",
  "subtitle": "mit Käse überbackene Rigatoni in Sauce mit Hackfleisch und Schinken",
  "url": "https://www.chefkoch.de/rezepte/1299041235031624/rigatoni-al-forno.html",
  "rating": 4.65,
  "ratingCount": 2119,
  "difficulty": 2,
  "prepTime": 20,
  "cookTime": 50,
  "totalTime": 70,
  "servings": 4,
  "calories": 739,
  "protein": 39.24,
  "carbs": 44.01,
  "fat": 45.28,
  "ingredients": [
    {
      "name": "Olivenöl",
      "amount": 1,
      "unit": "EL",
      "usageInfo": ""
    },
    {
      "name": "Rinderhackfleisch",
      "amount": 150,
      "unit": "g",
      "usageInfo": ""
    },
    {
      "name": "Rigatoni",
      "amount": 400,
      "unit": "g",
      "usageInfo": ""
    }
  ],
  "instructions": "Für die Sauce das Olivenöl in einem Topf erhitzen. Das Hackfleisch hineingeben und unter Rühren so lange braten...",
  "tags": ["Pasta", "Italien", "Auflauf", "Hauptspeise"],
  "imageUrl": "https://img.chefkoch-cdn.de/rezepte/1299041235031624/bilder/971609/crop-960x720/rigatoni-al-forno.jpg",
  "viewCount": 1641703,
  "author": "Cpt_Big_Tony",
  "scrapedAt": "2025-10-27T11:44:31.436Z"
}
```

### Features - Why use this Chefkoch scraper?

✅ **Fast HTTP scraping** - Uses Chefkoch's official API (no browser needed)
✅ **Complete nutrition data** - Get calories, protein, carbs, fat for diet tracking
✅ **Flat JSON structure** - Easy integration with databases, spreadsheets, automation tools
✅ **High-quality images** - 960x720px recipe photos included
✅ **User ratings included** - Find most popular German recipes
✅ **No proxies required** - Direct API access, no rate limits
✅ **German language support** - Search in German, get German recipes
✅ **Reliable & maintained** - Built on Apify platform with TypeScript

### Popular German Recipe Searches

#### 🥗 Dietary Preferences

- **`vegetarisch`** - Vegetarian German recipes
- **`vegan`** - Vegan German recipes
- **`low carb`** - Low carb German recipes
- **`glutenfrei`** - Gluten-free German recipes
- **`kalorienarm`** - Low-calorie German recipes
- **`ketogen`** - Keto German recipes

#### 🍝 Cuisine Types

- **`italienisch`** - Italian recipes (pasta, pizza, risotto)
- **`asiatisch`** - Asian recipes (Thai, Chinese, Japanese)
- **`mexikanisch`** - Mexican recipes (tacos, burritos)
- **`griechisch`** - Greek recipes
- **`türkisch`** - Turkish recipes
- **`amerikanisch`** - American recipes

#### ⚡ Quick & Easy Recipes

- **`schnell`** - Quick German recipes (under 30 min)
- **`einfach`** - Easy German recipes for beginners
- **`schnell und einfach`** - Quick and easy German recipes
- **`wenig zutaten`** - Recipes with few ingredients

#### 🍽️ Meal Types

- **`frühstück`** - Breakfast recipes
- **`hauptspeise`** - Main course recipes
- **`vorspeise`** - Appetizer recipes
- **`dessert`** - Dessert recipes
- **`kuchen`** - Cake recipes
- **`suppe`** - Soup recipes
- **`salat`** - Salad recipes

#### 🔥 Popular German Dishes

- **`schnitzel`** - Schnitzel recipes
- **`spätzle`** - Spätzle recipes
- **`sauerbraten`** - Sauerbraten recipes
- **`gulasch`** - Goulash recipes
- **`kartoffelsalat`** - Potato salad recipes

### Pricing

This actor uses pay-per-event pricing - you only pay for recipes successfully scraped.

See current pricing in the Apify Console when starting a run.

No proxy costs - uses public Chefkoch API.

### Integration Examples

#### 📊 Google Sheets - Recipe Database

1. Run Chefkoch scraper with search query
2. Export dataset as CSV from Apify
3. Import into Google Sheets for meal planning

#### 🤖 n8n / Zapier / Make - Automation

1. Add Apify integration node to workflow
2. Trigger Chefkoch scraper with search query
3. Map recipe data to your apps (Airtable, Notion, Slack)
4. Automate recipe collection and updates

#### 🐍 Python - Recipe Analysis

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')

## Scrape vegetarian recipes
run = client.actor('YOUR_ACTOR_ID').call(run_input={
    'searchQuery': 'vegetarisch',
    'maxRecipes': 100,
    'includeNutrition': True
})

## Get all recipes
recipes = client.dataset(run['defaultDatasetId']).list_items().items

## Analyze nutrition data
total_calories = sum(r['calories'] for r in recipes if r['calories'])
avg_calories = total_calories / len(recipes)
print(f"Scraped {len(recipes)} recipes")
print(f"Average calories: {avg_calories:.0f} kcal")
```

#### 📱 JavaScript / Node.js - Recipe App

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

// Scrape quick and easy recipes
const run = await client.actor('YOUR_ACTOR_ID').call({
  searchQuery: 'schnell und einfach',
  maxRecipes: 50,
  includeNutrition: true
});

// Get dataset items
const { items } = await client.dataset(run.defaultDatasetId).listItems();

// Filter by cooking time
const quickRecipes = items.filter(r => r.totalTime <= 30);
console.log(`Found ${quickRecipes.length} recipes under 30 minutes`);
```

#### 📈 Recipe Data Analysis

```python
import pandas as pd
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')

## Scrape pasta recipes
run = client.actor('YOUR_ACTOR_ID').call(run_input={
    'searchQuery': 'pasta',
    'maxRecipes': 500
})

## Convert to pandas DataFrame
recipes = client.dataset(run['defaultDatasetId']).list_items().items
df = pd.DataFrame(recipes)

## Analyze trends
print(f"Average rating: {df['rating'].mean():.2f}")
print(f"Most popular tags: {df['tags'].explode().value_counts().head(10)}")
print(f"Average cooking time: {df['totalTime'].mean():.0f} minutes")
```

### FAQ - Chefkoch Recipe Scraper

**Q: How do I scrape German recipes in English?**
A: Chefkoch.de is a German platform. Searches work best in German, but many recipes include international dishes with English/Italian names (e.g., "Spaghetti Carbonara", "Pizza Margherita").

**Q: Can I scrape recipes by category?**
A: Yes! Use category names as search queries: "Auflauf" (casserole), "Suppe" (soup), "Salat" (salad), "Kuchen" (cake), "Vorspeise" (appetizer).

**Q: How often can I run the scraper?**
A: No rate limits. Schedule daily or hourly via Apify Scheduler for automated recipe collection.

**Q: What if a recipe has no nutrition data?**
A: Nutrition fields (`calories`, `protein`, `carbs`, `fat`) will be `null`. About 80% of Chefkoch recipes have complete nutrition data.

**Q: Can I get recipes with specific ingredients?**
A: Yes! Search by ingredient: "mit pilzen" (with mushrooms), "mit hähnchen" (with chicken), "ohne milch" (without milk).

**Q: How accurate is the nutrition data?**
A: Nutrition data comes directly from Chefkoch's database, calculated per serving based on ingredients.

**Q: Can I filter by dietary requirements?**
A: Yes! Use search terms: "vegan", "vegetarisch", "glutenfrei" (gluten-free), "laktosefrei" (lactose-free), "low carb", "ketogen".

**Q: Does this scraper respect Chefkoch's terms of service?**
A: Yes, this scraper uses Chefkoch's official public API for data access.

**Q: Can I export recipes to my cooking app?**
A: Yes! The flat JSON format integrates easily with any cooking app, meal planner, or recipe database.

**Q: How do I get the most popular recipes?**
A: Sort results by `ratingCount` or `viewCount`. Use search queries like "beliebte rezepte" (popular recipes).

### Technical Details

- **Scraping Method**: HTTP REST API (axios)
- **Language**: TypeScript / Node.js
- **Platform**: Apify Actor
- **Rate Limiting**: 1 second between requests
- **Browser Required**: No (HTTP API only)
- **Proxies Required**: No (public API)
- **Data Format**: JSON
- **Image Quality**: 960x720px high-resolution
- **Encoding**: UTF-8 (German characters supported)

### Chefkoch.de Statistics

- **Total recipes**: 300,000+ German recipes
- **Users**: 15+ million registered users
- **Monthly visitors**: 25+ million
- **Recipe categories**: 100+ categories and tags
- **Languages**: German (primary)
- **Founded**: 1998 (Germany's oldest recipe platform)

### Keywords & SEO

German recipe scraper, Chefkoch scraper, Chefkoch API, extract German recipes, recipe data extraction, nutrition data scraper, German cooking recipes, meal planning data, recipe ingredients scraper, cooking instructions scraper, diet recipe data, vegetarian recipe scraper, vegan recipe scraper, German food data, recipe automation, cooking app data, meal prep recipes, German cuisine data, food blogger tools, recipe aggregator

### Support & Documentation

- **Actor URL**: [Chefkoch Scraper on Apify](https://console.apify.com/actors/bJ1y3cP5v1exZGZ41)
- **Issues**: Report bugs via Apify Console
- **Updates**: Check actor builds for latest version
- **Community**: Apify Discord & Forum

***

### 🔗 Explore More of Our Actors

#### 🍳 German Content & Lifestyle

| Actor | Description |
|-------|-------------|
| [Gutefrage Scraper](https://apify.com/webdatalabs/gutefrage-scraper) | Scrape Q\&A content from Gutefrage.net for market research |
| [Recalls Safety Aggregator](https://apify.com/webdatalabs/recalls-safety-aggregator) | Aggregate product recalls and safety alerts |

#### 📰 Content & Publishing

| Actor | Description |
|-------|-------------|
| [Notion Marketplace Scraper](https://apify.com/webdatalabs/notion-marketplace-scraper) | Scrape Notion templates and marketplace listings |
| [Ghost Newsletter Scraper](https://apify.com/webdatalabs/ghost-newsletter-scraper) | Extract Ghost newsletter content and subscriber data |
| [Farcaster Hub Scraper](https://apify.com/webdatalabs/farcaster-hub-scraper) | Scrape Farcaster decentralized social network data |
| [Google Play Reviews Scraper](https://apify.com/webdatalabs/google-play-reviews-scraper) | Extract app reviews from Google Play Store |

***

### License

MIT License - Free to use for commercial and personal projects.

***

**Ready to scrape German recipes?** [Try the Chefkoch Recipe Scraper now →](https://console.apify.com/actors/bJ1y3cP5v1exZGZ41)

***

### 📬 Custom Solutions & Enterprise

Need a custom data feed, modified output format, or enterprise integration?

**Contact:** Furkanc58@gmail.com

I offer:

- Daily/weekly data feeds (Snowflake, S3, BigQuery, Google Sheets)
- Custom scrapers for platforms not yet covered
- White-label solutions for agencies
- Priority support and SLAs

*Response within 24-48 hours.*

### Legal Disclaimer

This actor is a general-purpose tool for analyzing publicly accessible web data. The user bears sole responsibility for ensuring their specific use complies with:

- Applicable laws (GDPR/DSGVO, copyright law)
- The target website's Terms of Service
- Apify's Terms of Service

The provider (webdatalabs) expressly disclaims liability for any unauthorized or unlawful use. By using this actor, the user agrees to indemnify the provider against any third-party claims arising from their use of the data.

***

*This tool is not affiliated with Chefkoch. All trademarks belong to their respective owners.*

# Actor input Schema

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

What recipes to search for (e.g., 'vegetarisch', 'pasta carbonara', 'schnell und einfach')

## `maxRecipes` (type: `integer`):

How many recipes to scrape (max 10,000)

## `includeNutrition` (type: `boolean`):

Include calories, protein, carbs, and fat content

## Actor input object example

```json
{
  "searchQuery": "pasta",
  "maxRecipes": 5,
  "includeNutrition": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchQuery": "kuchen",
    "maxRecipes": 5,
    "includeNutrition": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("webdatalabs/chefkoch-scraper").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 = {
    "searchQuery": "kuchen",
    "maxRecipes": 5,
    "includeNutrition": True,
}

# Run the Actor and wait for it to finish
run = client.actor("webdatalabs/chefkoch-scraper").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 '{
  "searchQuery": "kuchen",
  "maxRecipes": 5,
  "includeNutrition": true
}' |
apify call webdatalabs/chefkoch-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Chefkoch.de Recipe Scraper",
        "description": "Scrape recipes from Chefkoch.de - Germany's #1 recipe website with 300,000+ German recipes. Get ingredients, cooking instructions, nutrition facts, ratings, and images in structured JSON format.",
        "version": "1.0",
        "x-build-id": "IV5pYAxlw2Bbq9OTb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/webdatalabs~chefkoch-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-webdatalabs-chefkoch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/webdatalabs~chefkoch-scraper/runs": {
            "post": {
                "operationId": "runs-sync-webdatalabs-chefkoch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/webdatalabs~chefkoch-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-webdatalabs-chefkoch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "What recipes to search for (e.g., 'vegetarisch', 'pasta carbonara', 'schnell und einfach')",
                        "default": "kuchen"
                    },
                    "maxRecipes": {
                        "title": "Maximum Recipes",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "How many recipes to scrape (max 10,000)",
                        "default": 5
                    },
                    "includeNutrition": {
                        "title": "Include Nutrition Data",
                        "type": "boolean",
                        "description": "Include calories, protein, carbs, and fat content",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
