Recipe Scraper - Recipe URL to Structured JSON, $3/1K avatar

Recipe Scraper - Recipe URL to Structured JSON, $3/1K

Pricing

from $3.00 / 1,000 recipe extracteds

Go to Apify Store
Recipe Scraper - Recipe URL to Structured JSON, $3/1K

Recipe Scraper - Recipe URL to Structured JSON, $3/1K

Paste recipe page URLs, get clean JSON: ingredients (qty, unit, item), steps, prep/cook/total minutes, servings, nutrition, image, rating. Reads schema.org Recipe data, honours robots.txt.

Pricing

from $3.00 / 1,000 recipe extracteds

Rating

0.0

(0)

Developer

Penny Data

Penny Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

Recipe URL Extractor: recipe page URL to structured JSON

Paste the URLs of recipe pages and get one clean, flat record per recipe: title, image, author, prep/cook/total minutes, servings, ingredients (raw text plus parsed quantity, unit and item), steps, nutrition, rating, cuisine, category and keywords. The data is read from the schema.org Recipe JSON-LD that recipe sites publish for search engines. Plain HTTP, no browser, no login, no proxies.

What you can do

  • Build a recipe database, meal-planner or grocery-list feature from URLs you already have.
  • Normalise recipes from many different sites into one schema.
  • Schedule it or call it from the Apify API, Make, Zapier or n8n.
  • Cap spend with maxRecipes.

Example input

{
"startUrls": [
"https://cookieandkate.com/best-lentil-soup-recipe/",
"https://www.loveandlemons.com/pesto-recipe/",
"https://www.bbcgoodfood.com/recipes/classic-lasagne-0"
],
"maxRecipes": 50,
"includeNutrition": true
}

Both plain strings and { "url": "..." } objects are accepted in startUrls.

Example output

{
"url": "https://www.bbcgoodfood.com/recipes/classic-lasagne-0",
"title": "Classic lasagne",
"image": "https://...jpg",
"prepTimeMin": 60, "cookTimeMin": 60, "totalTimeMin": 120,
"servings": 6, "yieldText": "6",
"ingredients": [{ "raw": "750g lean beef mince", "qty": 750, "unit": "g", "item": "lean beef mince" }],
"steps": ["Heat the oil in a large pan ..."],
"nutrition": { "calories": "..." },
"rating": 4.6, "ratingCount": 1200,
"cuisine": [], "category": [], "keywords": [],
"error": null, "retrievedAt": "2026-10-22T12:00:00.000Z"
}

Ingredient parsing (qty, unit, item) is best effort; raw always holds the original text. Fields a page does not publish are null or empty.

Input

FieldMeaning
startUrlsRecipe page URLs. One record per Recipe found on a page.
maxRecipesStop after this many recipes (default 50).
includeNutritionAdd the nutrition object when the page has it (default true).

Errors and limits

A URL that fails, is disallowed by robots.txt, or has no schema.org Recipe data produces one row with an error message and is not charged. Some sites block automated requests (HTTP 403); the actor does not try to get around that. It reads one page per URL and does not crawl category pages or sitemaps.

Pricing

Pay per event: $0.003 per recipe extracted ($3 per 1,000) plus $0.00005 per run start. Error rows are free.

Terms

You are responsible for the terms of the sites you submit and for how you use the data. The actor only fetches URLs you supply, honours each site's robots.txt, and returns structured facts (ingredients, times, steps) rather than republishing articles. Recipe text and images remain the property of their publishers. This actor is not affiliated with any recipe site.

Built with AI assistance (Claude).