Recipe Scraper
Pricing
from $3.00 / 1,000 results
Recipe Scraper
Extracts structured recipes — ingredients, steps, times, nutrition, and ratings — from 725+ recipe sites.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Mina
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Turn any recipe page into structured data — ingredients, numbered steps, prep and cook times, nutrition, ratings, and yield — from 725 recipe sites and thousands more that publish standard recipe markup.
What does Recipe Scraper do?
Give it recipe URLs and it returns clean, machine-readable recipes: the ingredient list, the instructions as separate steps, total, prep and cook times in minutes, servings, nutrition facts, the star rating and how many people rated it, plus the cuisine, course, and author.
725 sites are supported directly, and most others work too, because the Actor also reads the standard recipe information that food sites publish. You are not limited to a fixed list.
Why use Recipe Scraper?
- Recipe apps and meal planners — build a database without hand-entering anything.
- Nutrition analysis — pull calories and macros across hundreds of recipes at once.
- Shopping list tools — the ingredient list arrives already separated, line by line.
- Content research — compare how sites treat the same dish, or track ratings over time.
- AI training data — structured ingredients and steps are far more useful than raw HTML.
Running it on Apify adds scheduling, an API, integrations (Sheets, Slack, Zapier, S3), residential proxy rotation, and run monitoring.
How to use Recipe Scraper
- Paste recipe links into Recipe URLs, one per line.
- Click Start.
That is the whole setup. Results appear in the Output tab as they are scraped, and download as JSON, CSV, Excel, or XML.
Input
| Field | Description |
|---|---|
recipe_urls | Links to recipe pages, one per line. |
max_recipes | Stops after this many URLs. |
allow_unsupported_sites | Try any site, not only the 725 supported ones. On by default. |
max_concurrency | How many pages to fetch at once. Lower it if a site rate-limits you. |
proxy_country | Comma-separated country codes for the residential proxy rotation. |
Output
{"url": "https://www.allrecipes.com/recipe/20144/banana-banana-bread/","title": "Banana Banana Bread","author": "Shelley Albeluhn","site_name": "Allrecipes","description": "An incredibly moist loaf with very ripe bananas.","image": "https://www.allrecipes.com/thmb/lead.jpg","yields": "1 loaf","total_time_minutes": 75,"prep_time_minutes": 15,"cook_time_minutes": 60,"ingredients": ["2 cups all-purpose flour","1 teaspoon baking soda","3 ripe bananas, mashed"],"instruction_steps": ["Heat the oven to 175 degrees C.","Combine the dry ingredients.","Fold in the bananas and bake for an hour."],"nutrients": { "calories": "231 kcal", "proteinContent": "4 g" },"rating": 4.7,"rating_count": 17388,"category": "Breakfast","cuisine": "American","has_dedicated_scraper": true}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data fields
| Field | Description |
|---|---|
title, description, author, image | The recipe and who wrote it. |
ingredients | One line per ingredient, as written. |
ingredient_groups | Ingredients split by section — "For the sauce", "For the topping" — where the site groups them. |
instructions, instruction_steps | The method as one block, and as separate numbered steps. |
total_time_minutes, prep_time_minutes, cook_time_minutes | Times as plain numbers, not text. |
yields | Servings or quantity. |
nutrients | Calories and macros, as the site publishes them. |
rating, rating_count | Star rating and how many people rated it. |
category, cuisine, cooking_method, dietary_restrictions, keywords | Classification. |
has_dedicated_scraper | Whether this site is one of the 725 supported directly. |
error | Present only when a page could not be read, with the reason. |
How much does it cost to scrape recipes?
Cost tracks the number of recipe links you give it, so Max recipes is the main lever on what a run costs.
Tips
- Check
has_dedicated_scraper. Directly supported sites tend to fill in more fields, especially nutrition and grouped ingredients. - Lower the concurrency to 1 or 2 if a single site starts refusing requests.
- Rows are never dropped. A URL that fails still gets written, with an
errorsaying why — so a large run never loses track of which inputs worked.
FAQ and support
Which sites are supported? 725 directly, plus most others — the Actor also reads the standard recipe information that food sites publish.
Why did a site return "no recipe data"? A few sites do not publish their recipe in a readable form, and some links simply are not recipe pages. Those come back as an error row rather than failing the whole run.
Why are some fields empty? Not every site publishes prep time, nutrition, or a rating. When a site does not declare it, the field comes back empty rather than guessed.
Why did a recipe come back with ingredients but no method? A few sites — Simply Recipes among them — publish their ingredient list but not their instructions. Those recipes still come through, with the steps empty, and the run log names each one so you can spot them.
Is scraping recipes legal? Ingredient lists are generally facts rather than creative work, but the surrounding text, photos, and the recipe as written are usually copyrighted. Extracting for personal use, analysis, or research is common; republishing is a different matter. You are responsible for how you use the output, including each site's terms. Consult a lawyer if you are unsure.
Found a bug or want a field that is missing? Open an issue on the Actor's Issues tab.