Chefkoch.de Recipe Scraper avatar
Chefkoch.de Recipe Scraper

Pricing

Pay per usage

Go to Apify Store
Chefkoch.de Recipe Scraper

Chefkoch.de Recipe Scraper

Extract delicious recipes from Chefkoch.de, Germany's largest cooking community. Instantly scrape ingredients, preparation steps, images, and user ratings. Perfect for food apps, culinary datasets, and nutritional analysis. Get structured recipe data in JSON format today.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Chefkoch Recipe Scraper

Extract comprehensive recipe data from Chefkoch.de using their official v2 API. Collect detailed ingredients, instructions, cooking times, and user ratings at blazing speed. Perfect for food research, recipe apps, and culinary data analysis.

NEW: API-Based — 10x faster than HTML scraping with 99%+ reliability!


Features

  • API-Based Extraction — Uses Chefkoch's official v2 API for maximum speed and reliability
  • 10x Faster — Pure JSON responses without HTML parsing overhead (10-15 seconds for 10 recipes vs 40+ seconds with HTML parsing)
  • Production Ready — Fully stealthy with realistic headers, sessions, and rate limiting
  • Full Details — Collect ingredients, step-by-step instructions, and metadata
  • Smart Pagination — Efficiently fetches up to 50 recipes per API request
  • Zero Blocks — Proper API headers and user-agent rotation prevent detection
  • High Success Rate — 99%+ reliability with proper proxy configuration
  • Optimized Concurrency — Safely handles 5-10 parallel API calls
  • Clean Data — Structured JSON output from official API

Use Cases

Culinary Research

Analyze popular recipes and dietary trends. Understand ingredient combinations and common cooking techniques across thousands of listings.

Food & Recipe Apps

Build and maintain a high-quality database of German recipes for your application. Automate the updates of your culinary content.

Market Intelligence

Track the popularity of specific food brands or dietary claims. Identify gaps in the market based on user engagement and ratings.


Input Parameters

ParameterTypeRequiredDefaultDescription
keywordStringNoRecipe keyword (e.g., 'Pfannkuchen', 'Pasta')
startUrlsArrayNoChefkoch URLs in format [{"url": "..."}]
results_wantedIntegerNo100Maximum recipes to collect (0 = unlimited)
max_pagesIntegerNo20Max search pages (each page = 50 recipes)
proxyConfigurationObjectNoProxy settings (residential recommended)

Output Data

Each item in the dataset contains:

FieldTypeDescription
nameStringTitle of the recipe
descriptionStringBrief summary of the recipe
ingredientsArrayList of ingredients with quantities
instructionsArrayStep-by-step preparation guide
cookTimeStringTime required for cooking
prepTimeStringTime required for preparation
totalTimeStringTotal time from start to finish
servingsStringNumber of servings provided
imageStringMain photo of the recipe
authorStringName of the recipe creator
ratingNumberAverage user rating
ratingCountNumberTotal number of user ratings
reviewCountNumberTotal number of comments/reviews
urlStringDirect link to the source recipe
scrapedAtStringTimestamp of collection

Usage Examples

Extract 50 pancake recipes:

{
"keyword": "pfannkuchen",
"results_wanted": 50
}

Scraping Specific URLs

Target specific categories or search result pages:

{
"startUrls": [
"https://www.chefkoch.de/rs/s0/pasta/Rezepte.html"
],
"results_wanted": 100
}

Sample Output

{
"id": "1211981226999757",
"name": "Pfannkuchen",
"description": "ohne Zucker - schmeckt allen Kindern gut",
"author": "DagJan",
"rating": 4.72,
"ratingCount": 210,
"difficulty": 1,
"servings": 2,
"image": "https://img.chefkoch-cdn.de/rezepte/1211981226999757/bilder/1466558/crop-960x720/pfannkuchen.jpg",
"url": "https://www.chefkoch.de/rezepte/1211981226999757/Pfannkuchen.html",
"source": "chefkoch.de",
"scrapedAt": "2026-02-05T07:20:03.872Z",
"prepTime": "PT5M",
"cookTime": "PT1M",
"restTime": null,
"totalTime": "PT6M",
"ingredients": [
"1 Ei(er)",
"1 Prise(n) Salz",
"140 ml Milch",
"80 g Mehl",
"Butter"
],
"instructions": [
"Das Ei über einer Rührschüssel aufschlagen. Salz und Milch dazugeben und mit einer Gabel verquirlen. Das Mehl esslöffelweise mit einem Schneebesen unterrühren, damit keine Klumpen entstehen.",
"In einer Pfanne ein Stück Butter oder Butterschmalz erhitzen. Nun den Teig in der Pfanne portionsweise ausbacken.",
"Den fertigen Pfannkuchen beliebig füllen und servieren.",
"Tipp: Wir mögen Zimt, hausgemachte Erdbeermarmelade, Vanillesoße oder Eis. Oder auch die deftige Variante mit Käse und Salami."
],
"datePublished": "2008-11-18T20:53:28+05:00",
"keywords": []
}

Note: Times are in ISO 8601 duration format (e.g., PT5M = 5 minutes, PT1H30M = 1 hour 30 minutes)


Integrations

Connect your data with:

  • Google Sheets — Export directly for analysis
  • Airtable — Build your own recipe database
  • Webhooks — Send data to your backend in real-time
  • Make / Zapier — Create automated culinary workflows

Export Formats

  • JSON — Ready for development and APIs
  • CSV — Ideal for spreadsheet enthusiasts
  • Excel — Professional business reporting

Frequently Asked Questions

Is there a limit to how many recipes I can scrape?

The only limit is the number of results available on the website. You can adjust the results_wanted parameter to fit your needs.

Can I extract nutritional information?

The scraper focuses on ingredients and instructions, which are the core components of every recipe listing.

Does it handle different types of Chefkoch pages?

Yes, it automatically detects search results, category pages, and direct recipe links.


Troubleshooting

No Results Scraped

Problem: Actor completes but returns 0 recipes.

Solutions:

  1. Check your keyword: Try a more common German recipe term (e.g., "kuchen", "suppe", "pasta")
  2. Verify URLs: Make sure startUrls contain valid Chefkoch.de URLs
  3. Test manually: Visit Chefkoch.de and search your keyword to verify results exist

API Errors (429/403)

Problem: API returns "429 Too Many Requests" or "403 Forbidden" errors.

Solutions:

  1. Enable proxies: Use Apify Proxy (Residential recommended for reliability)
  2. Reduce request volume: Lower results_wanted, max_pages, or concurrency
  3. Use Residential proxies: More reliable than datacenter for large-scale scraping
{
"keyword": "pasta",
"results_wanted": 50,
"max_pages": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Performance Issues

Problem: Requests timeout or scraping takes longer than expected.

Solutions:

  1. Check network: Verify your internet connection or proxy status
  2. Enable proxies: May improve connection reliability and speed
  3. Reduce batch size: Lower results_wanted to smaller chunks
  4. Use Residential proxies: Often provide better throughput

Missing Fields in Output

Problem: Some recipes don't have ingredients or instructions.

Solutions:

  1. Check source data: Some recipes may have incomplete information on Chefkoch
  2. Filter results: Use data processing to remove incomplete recipes

Validation Errors

Problem: Actor fails immediately with input validation errors.

Solutions:

  1. Check minDelayMs/maxDelayMs: Ensure minDelayMs ≤ maxDelayMs
  2. Verify keyword length: Must be 1-200 characters
  3. Check numeric ranges:
    • results_wanted: 0-10000
    • max_pages: 0-1000
  4. URL format: Use [{"url": "..."}] format for startUrls
{
"startUrls": [
{"url": "https://www.chefkoch.de/rs/s0/pasta/Rezepte.html"}
]
}

Advanced Examples

Large-Scale Recipe Collection

Collect 500 recipes with full details using residential proxies:

{
"keyword": "hauptspeise",
"results_wanted": 500,
"max_pages": 15,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Expected: ~8-10 minutes runtime, ~450-500 recipes

Specific Recipe Details

Extract complete information for specific recipes:

{
"startUrls": [
{"url": "https://www.chefkoch.de/rezepte/847831193524937/Omas-bester-Apfelkuchen.html"},
{"url": "https://www.chefkoch.de/rezepte/1211981226999757/Pfannkuchen.html"},
{"url": "https://www.chefkoch.de/rezepte/2948811458724877/Spaghetti-Carbonara.html"}
],
"results_wanted": 3
}

Expected: ~10 seconds runtime, 3 detailed recipes


Best Practices

Use specific keywords like "Vegane Lasagne" for more targeted results. Test small batches first to verify your search criteria.

2. Start Small

Always test with results_wanted: 5-10 to verify your configuration before scaling up.

3. Use Appropriate Proxies

  • No proxies: Good for testing (<10 recipes)
  • Datacenter proxies: Good for moderate scraping (10-100 recipes)
  • Residential proxies: Required for large-scale production (100+ recipes) for maximum reliability and speed.

4. Balance Speed vs Reliability

  • Fast scraping: High concurrency (8-10), datacenter proxies, may hit rate limits
  • Reliable scraping: Medium concurrency (5), residential proxies, stable results
  • Conservative scraping: Low concurrency (2-3), longer delays, minimal risk

5. Handle All Data

Use data processing or post-scraping filtering to handle incomplete recipes:

// Example: Filter recipes with complete data
const completeRecipes = data.filter(recipe =>
recipe.ingredients?.length > 0 &&
recipe.instructions?.length > 0
);

6. Monitor Your Runs

Check Actor logs regularly for:

  • Warning messages about rate limiting
  • Suggestions for configuration improvements
  • Error patterns that need attention

7. Respect Rate Limits

The Actor includes built-in rate limiting, but you should:

  • Avoid running multiple parallel Actor instances
  • Use reasonable maxRequestsPerMinute values (60-120)
  • Enable delays between requests

Development

Local Testing

$apify run

Deployment

$apify push

Project Structure

  • src/main.js: Actor entry point
  • .actor/: Configuration files (input_schema.json, actor.json)
  • storage/: Local storage for datasets and key-value stores

Changelog

Version 1.0.0 (Current)

  • Migrated to Chefkoch v2 API for 10x faster performance
  • Enhanced validation, error handling, and logging
  • Added advanced configuration options

Previous Versions

  • 0.x: HTML-based scraping (deprecated)

Support

For technical assistance or custom feature requests, please reach out via the Apify Console.


This tool is intended for research and personal use. Please respect Chefkoch's terms of service and use data responsibly.