Bon Appétit + Epicurious Recipe Scraper avatar

Bon Appétit + Epicurious Recipe Scraper

Pricing

Pay per event

Go to Apify Store
Bon Appétit + Epicurious Recipe Scraper

Bon Appétit + Epicurious Recipe Scraper

Scrape complete recipe data from Bon Appétit and Epicurious — two premium Condé Nast editorial brands. Extracts ingredients, instructions, nutrition, ratings, and Epicurious's unique 'would-make-again' review signal via sitemap enumeration (~65K recipes total).

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape complete recipe data from Bon Appétit and Epicurious — two premium Condé Nast editorial recipe brands on the same platform. Both sites publish schema.org/Recipe JSON-LD with full structured data, making this one of the most reliable recipe data sources available.

What you get

Each scraped recipe includes:

  • Full recipe data: name, author, description, category, cuisine
  • Timing: prep time, cook time, total time (ISO 8601)
  • Ingredients: complete ingredient list (pipe-separated)
  • Instructions: step-by-step cooking instructions (pipe-separated)
  • Nutrition: calories, protein, fat, carbohydrates, sodium, fiber, and more
  • Ratings: aggregate rating (e.g. 4.5) and rating count
  • Epicurious exclusive: "would-make-again %" review signal
  • Media: recipe image URLs
  • Metadata: keywords, tags, publish date, source site

Why Bon Appétit + Epicurious?

These are two of the most-trusted US editorial recipe brands, both owned by Condé Nast and running on the same CMS. The Epicurious "would-make-again percentage" is a unique recommender-grade quality signal not found in generic recipe scrapers — it tells you what fraction of actual cooks would repeat a recipe, which is invaluable for recommender systems, recipe app curation, and food trend analysis.

Corpus size

  • Bon Appétit: ~30,000 recipes (sitemap-enumerable)
  • Epicurious: ~35,000 recipes (sitemap-enumerable)
  • Total: ~65,000 recipes

Input

FieldTypeDescription
maxItemsintegerMaximum recipes to scrape. 0 = unlimited. Default: 10.
startUrlsarrayOptional specific recipe URLs to scrape directly
sourcesarrayWhich sites: bonappetit, epicurious, or both

Example: scrape 100 recipes from both sites

{
"maxItems": 100,
"sources": ["bonappetit", "epicurious"]
}

Example: scrape specific recipes

{
"maxItems": 5,
"startUrls": [
{ "url": "https://www.bonappetit.com/recipe/bas-best-chocolate-chip-cookies" },
{ "url": "https://www.epicurious.com/recipes/food/views/chicken-salad" }
]
}

Example: Epicurious only

{
"maxItems": 500,
"sources": ["epicurious"]
}

Output

Each record matches the schema.org/Recipe vocabulary:

{
"source_site": "bonappetit",
"slug": "bas-best-chocolate-chip-cookies",
"url": "https://www.bonappetit.com/recipe/bas-best-chocolate-chip-cookies",
"name": "BA's Best Chocolate Chip Cookies",
"author": "Chris Morocco",
"description": "Crispy edges, chewy centers, and puddles of chocolate in every bite.",
"recipe_category": "Cookies",
"recipe_cuisine": null,
"prep_time": "PT20M",
"cook_time": "PT12M",
"total_time": "PT32M",
"recipe_yield": "About 24 cookies",
"recipe_ingredient": "2 1/4 cups all-purpose flour | 1 tsp baking soda | ...",
"recipe_instructions": "Preheat oven to 375 degrees F. | Mix dry ingredients... | ...",
"nutrition": "{\"calories\":\"190 calories\",\"fatContent\":\"9g\"}",
"aggregate_rating": "4.5",
"rating_count": "1437",
"would_make_again_pct": null,
"keywords": "chocolate chip cookies, baking, dessert",
"tags": "Dessert | Baking",
"image_urls": "https://assets.bonappetit.com/photos/.../chocolate-chip-cookie.jpg",
"date_published": "2019-04-25T06:00:00.000-04:00",
"scraped_at": "2026-05-27T13:41:04.010Z"
}

The would_make_again_pct field is populated for Epicurious recipes only, where the platform shows the percentage of reviewers who would make the recipe again.

Rate limits and performance

Both sites return clean 200 responses from datacenter IPs. The scraper uses 10 concurrent requests with automatic rate-limit handling. Full corpus crawl (~65K recipes) typically completes in several hours on a single run.