Recipe Extractor: Ingredients, Steps & Nutrition from Any URL avatar

Recipe Extractor: Ingredients, Steps & Nutrition from Any URL

Pricing

from $1.70 / 1,000 recipe extracteds

Go to Apify Store
Recipe Extractor: Ingredients, Steps & Nutrition from Any URL

Recipe Extractor: Ingredients, Steps & Nutrition from Any URL

Extract structured recipes from any food blog or recipe site: name, ingredients, step-by-step instructions, prep/cook/total time, servings, nutrition, rating, cuisine, image and video. Paste recipe URLs or discover recipes from a sitemap, feed or category page. $2 per 1,000 recipes.

Pricing

from $1.70 / 1,000 recipe extracteds

Rating

0.0

(0)

Developer

Larkmoor Data

Larkmoor Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

Recipe Extractor: Ingredients, Steps & Nutrition from Any Recipe URL

Turn any recipe page into clean, structured data: recipe name, ingredient list, step-by-step instructions, prep / cook / total time, servings, calories and full nutrition, star rating and review count, cuisine, category, diet tags, author, main image and video link.

It works on almost every food blog and recipe website, because those sites publish their recipes in the standard schema.org Recipe format that search engines read (WP Recipe Maker, Tasty Recipes, Mediavine Create, Yoast and most custom sites). Paste recipe URLs, or point the actor at a site's sitemap, RSS feed or category page and let it find the recipes for you.

What does Recipe Extractor do?

  • Reads the recipe markup each page already publishes (JSON-LD first, microdata as a fallback).
  • Normalizes it into the same columns for every site: ingredients (list), instructions (list of steps, optionally with section names), times in minutes, servings as a number, nutrition in grams / mg.
  • Resolves linked data (authors and images stored elsewhere on the page) so you get names, not IDs.
  • Discovers recipes from sitemaps (including sitemap indexes), RSS/Atom feeds and category pages, recipe links first.
  • Respects each site's robots.txt and skips pages without a recipe — those are never charged.
  • Retries pages that block simple requests through a proxy (on the Apify platform).

Who is it for?

  • Recipe and meal-planning apps that import recipes users paste in.
  • AI and LLM developers building cooking assistants, RAG datasets or fine-tuning data.
  • Food bloggers and SEO agencies auditing recipe markup across a site (missing nutrition, times or ratings).
  • Grocery and food-tech companies mapping recipes to ingredients and shopping lists.
  • Researchers studying cuisines, nutrition or ingredient trends.

Input

FieldWhat it does
recipeUrlsrecipe pages, one per line
discoverFromsitemaps, feeds or category pages to find recipes on
maxRecipesPerSitecap per site / source (default 50)
maxRecipescap for the whole run
keepSectionskeep instruction section names ("For the dough")
includeRawSchemaadd the full original schema.org object
skipFailedhide pages without a recipe
respectRobotsTxton by default
useResidentialProxyretry blocked pages through residential proxy (proxy traffic billed by Apify)
{
"recipeUrls": ["https://minimalistbaker.com/easy-vegan-fried-rice/"],
"discoverFrom": ["https://pinchofyum.com/feed"],
"maxRecipesPerSite": 20
}

Output

{
"name": "Chicken with Cajun Sauce",
"siteName": "Pinch of Yum",
"author": "Lindsay Ostrom",
"totalTimeMinutes": 40,
"prepTimeMinutes": 10,
"cookTimeMinutes": 30,
"servings": 4,
"recipeYield": "4 servings",
"cuisine": "Cajun",
"category": "Dinner",
"ingredientCount": 12,
"ingredients": ["1 lb. chicken breasts", "1 tablespoon Cajun seasoning", "..."],
"stepCount": 6,
"instructions": ["Season the chicken...", "..."],
"calories": 288,
"proteinGrams": 27,
"ratingValue": 5,
"ratingCount": 19,
"image": "https://...jpg",
"videoUrl": "https://www.youtube.com/watch?v=...",
"url": "https://pinchofyum.com/chicken-with-cajun-cream-sauce",
"markup": "json-ld"
}

Other columns: description, datePublished, keywords, suitableForDiet, fatGrams, saturatedFatGrams, carbohydrateGrams, sugarGrams, fiberGrams, sodiumMg, nutritionServingSize, finalUrl. Pages without a recipe come back with an error explaining why (no markup, blocked, robots.txt) and are free.

Export as JSON, CSV, Excel or HTML, or read results through the Apify API.

How much does it cost?

  • $2.00 per 1,000 recipes extracted (pages without a recipe are free)
  • $0.001 per run start

Worked examples:

  1. Import 50 recipes users pasted into your app: 50 × $0.002 = $0.10.
  2. A food blog's whole archive from its sitemap, 1,200 recipes: about $2.40.
  3. A 10,000-recipe training dataset from 20 sites: about $20.

Bronze, Silver and Gold Apify plans pay less per recipe. Compute is small (256 MB, plain HTTP, no browser).

Tips

  • Whole site: most WordPress recipe blogs have /post-sitemap.xml or /wp-sitemap.xml; put that in discoverFrom and raise maxRecipesPerSite.
  • Fresh recipes only: use the site's RSS feed (/feed) — it lists the newest posts first.
  • Markup audit: run a site's sitemap with skipFailed off; rows with no recipe markup, or with empty calories / totalTimeMinutes, show which posts need their recipe card fixed for Google rich results.
  • Shopping lists: ingredients keeps each line as written ("2 cups flour, sifted"), ready for your own parser.

FAQ

Which sites work? Any site that publishes schema.org Recipe markup — the vast majority of recipe blogs and many big publishers. A few large publishers block datacenter IPs; those pages are reported as blocked and not charged. Turn on useResidentialProxy to retry them through Apify residential proxy (tested: Allrecipes works that way).

Is it legal? The actor reads publicly available pages you choose, follows robots.txt, and returns the structured data the sites themselves publish for search engines and recipe apps. Ingredient lists are facts; respect each site's copyright if you republish instructions or photos — store a link back to the source (url).

Does it need a browser? No. Recipe markup is in the page source, so plain HTTP requests are enough — fast and cheap.

Why are times in minutes? Sites publish ISO 8601 durations like PT1H15M; the actor converts them so you can sort and filter. If only prep and cook time are given, total time is their sum.

Can I get the exact original data? Turn on includeRawSchema to receive the complete schema.org object next to the normalized columns.

Integrations

Send recipes to Google Sheets, Airtable, Notion or your database with Apify integrations, run it from Make, Zapier or n8n, call it from Python or JavaScript with the Apify client, or let an AI agent use it through the Apify MCP server.

Changelog

  • 0.1 — first release: JSON-LD and microdata recipes, linked-data resolution, times in minutes, nutrition, ratings, video, sitemap/feed/category discovery, robots.txt, proxy retry, optional residential proxy.