Tasty Recipe Scraper — Ingredients, Nutrition & Videos
Pricing
from $12.00 / 1,000 tasty recipe records
Tasty Recipe Scraper — Ingredients, Nutrition & Videos
Scrape Tasty recipes by URL into JSON: ingredients, steps, cook times, servings, nutrition, rating and video link. For recipe apps. USD 15 per 1,000.
Pricing
from $12.00 / 1,000 tasty recipe records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Tasty Recipe Scraper turns public Tasty recipe pages into clean JSON: ingredients, step-by-step instructions, prep and cook times, servings, nutrition, star rating, image and recipe video link. It costs USD 15 per 1,000 recipes on the FREE tier (USD 0.015 per recipe) plus a USD 0.005 start fee, so the one-recipe Console example costs USD 0.02.
It is built for recipe and meal-planning apps, nutrition and ingredient analysis, food-content catalogs, and AI agents that need structured recipe data from tasty.co URLs you already have.
What recipe data does Tasty Recipe Scraper return?
It returns one record per recipe URL. Data comes from the Recipe structured data Tasty embeds in each page, with visible page metadata as a fallback for title, description, image and video. Missing values stay null or empty; nothing is invented.
| Field | What it means |
|---|---|
url, slug, name | Recipe URL, URL slug and published title |
description, author | Recipe summary and credited person or team |
ingredients | Ingredient lines in order, with quantities and prep notes |
instructions | Cooking steps in order, as plain text |
prepTime, cookTime, totalTime | ISO 8601 durations, for example PT10M or PT1H5M |
servings | Yield, for example 4 servings or 12 cookies |
nutrition | Calories, carbohydrates, fat, fiber, protein and sugar as Tasty publishes them, or null |
rating | value, count, best and worst of the star rating |
imageUrl, videoUrl | Main image and recipe video (MP4) |
category, cuisines, keywords, tools | Meal type, cuisine, Tasty's keywords and equipment |
datePublished, dateModified | Source dates |
scrapedAt, warnings | Extraction time and any per-record notes |
The OUTPUT key-value record classifies the run (data, partial, empty, blocked or rejected) and lists URL counts, records, blocked, missing and failed pages, and warnings.
How do I scrape a Tasty recipe?
Paste one or more recipe URLs in the https://tasty.co/recipe/{slug} format into startUrls.
{"startUrls": [{ "url": "https://tasty.co/recipe/one-pot-garlic-parmesan-pasta" },{ "url": "https://tasty.co/recipe/the-best-chewy-chocolate-chip-cookies" }],"maxResults": 2,"includeNutrition": true,"maxConcurrency": 2}
You can pass 1–100 URLs per run; duplicates are removed and query strings dropped. maxResults (1–100, default 10) caps how many URLs are processed and charged. maxConcurrency (1–10, default 3) limits parallel requests. Set includeNutrition to false to return nutrition as null. Search, topic, compilation and non-Tasty URLs are rejected with a clear message.
Can I use it as a Tasty recipes API?
Yes. Call the Actor from the Apify API, a schedule or an AI agent with a list of Tasty recipe URLs and read the JSON records from its dataset. It works on recipe pages only, so collect the URLs first (for example from your own list, a sitemap or a search you ran elsewhere).
When should I use it, and when not?
Use it when you need:
- ingredients and steps from specific Tasty recipes in a consistent format;
- published nutrition values and ratings for a recipe database;
- recipe video links and images for a content catalog;
- structured recipes for an AI or meal-planning workflow.
Do not use it when you need:
- to discover recipes by keyword: use AllRecipes Search Scraper or Bon Appétit Recipes Scraper, which accept search terms;
- recipes from other sites: use NYT Cooking Recipe Scraper, Food Network Recipes Scraper or King Arthur Baking Recipe Scraper;
- calculated nutrition: values are copied from Tasty, never computed.
Use it from an AI assistant
Tasty Recipe Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/tasty-recipe-scraper, then ask, for example: "Get the ingredients, total time and calories for https://tasty.co/recipe/one-pot-garlic-parmesan-pasta and turn them into a shopping list."
Run it with the API
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/tasty-recipe-scraper').call({startUrls: [{ url: 'https://tasty.co/recipe/one-pot-garlic-parmesan-pasta' }],maxResults: 1,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python (apify-client 3.x):
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("muhammadafzal/tasty-recipe-scraper").call(run_input={"startUrls": [{"url": "https://tasty.co/recipe/the-best-chewy-chocolate-chip-cookies"}],"includeNutrition": True,})items = client.dataset(run.default_dataset_id).list_items().itemsprint(items)
What does the output look like?
One record from 2026-10-26, with long lists shortened:
{"url": "https://tasty.co/recipe/one-pot-garlic-parmesan-pasta","slug": "one-pot-garlic-parmesan-pasta","name": "One-Pot Garlic Parmesan Pasta Recipe by Tasty","description": "This delicious one-pot pasta dish is a godsend for busy evenings ...","author": "Tasty","imageUrl": "https://img.buzzfeed.com/thumbnailer-prod-us-east-1/f69a7f4192b94d8395757b365ac6d866/GarlicParmPasta.jpg?resize=1200:*","videoUrl": "https://vid.tasty.co/output/58958/mp4_640x640/1509380974","datePublished": "2017-10-30T16:28:45","dateModified": "2024-03-27T17:14:04","prepTime": "PT10M","cookTime": "PT22M","totalTime": "PT32M","servings": "4 servings","category": "Meal","cuisines": [],"keywords": ["tasty", "tasty_vegetarian"],"tools": ["Measuring Spoons"],"ingredients": ["2 tablespoons unsalted butter", "4 cloves garlic, minced", "2 cups chicken broth", "1 cup milk"],"instructions": ["Heat unsalted butter in a large skillet over medium high heat. Add garlic and cook, stirring frequently, until fragrant, about 1-2 minutes.","Add in the chicken broth, milk, and fettuccine. Season with salt and pepper."],"nutrition": {"calories": "341 calories","carbohydrateContent": "49 grams","fatContent": "11 grams","fiberContent": "1 gram","proteinContent": "13 grams","sugarContent": "6 grams"},"rating": { "value": 4.8, "count": 15987, "best": 5, "worst": 0 },"scrapedAt": "2026-10-26T12:23:38.285Z","warnings": []}
The full record had 9 ingredients and 6 steps. A second test recipe (chewy chocolate chip cookies) returned author Alvin Zhou, cuisine North American, 12 servings and a 4.7 rating from 49,625 votes.
How much does it cost? (pricing)
Pay per event. Apify platform usage is included in these prices.
| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| Tasty recipe record (one dataset item) | USD 0.015 | USD 0.015 | USD 0.015 | USD 0.012 | USD 0.012 |
| Actor start (per started GB of allocated memory) | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 | USD 0.005 |
The default memory is 256 MB, so a run has one start event. Worked totals on the FREE tier:
- Console example (1 recipe): 1 × USD 0.015 + USD 0.005 = USD 0.020
- Largest run (100 recipes): 100 × USD 0.015 + USD 0.005 = USD 1.505
Invalid, missing, blocked or unparseable pages create no recipe charge. The status message and OUTPUT.estimatedEventCostUsd use the live prices of your tier, and a run never fetches more recipes than your maximum total charge can pay for.
How fast is it, and what are the limits?
Each URL is one HTTP request (no browser) with a 30-second timeout, up to three attempts with backoff for server errors and rate limits, and a 5 MB page-size cap. With the default concurrency of 3, a batch of 100 URLs needs about 34 rounds of requests inside the 900-second default timeout. Valid recipes are kept when other URLs fail.
Tasty answers HTTP 406 with an empty page for recipe slugs that do not exist (checked 2026-10-27); the Actor counts those as missing, not blocked. A URL is reported as blocked only for a challenge page, an access-denied answer or repeated rate limiting.
FAQ
Can it search Tasty by keyword or category?
No. It accepts recipe URLs only. Search, topic and compilation pages are rejected.
Does it calculate nutrition?
No. It copies the nutrition values Tasty publishes. When a recipe has none, nutrition is null.
Are the recipe videos included?
Yes, as a link. videoUrl points to Tasty's MP4 file when the recipe has a video; the Actor does not download it.
What format are the cooking times in?
ISO 8601 durations as Tasty publishes them, for example PT32M for 32 minutes or PT1H5M for 1 hour 5 minutes.
What happens if a URL fails?
The run keeps every recipe that worked, marks the run partial, and lists each failed URL with a reason in OUTPUT. Failed URLs are not charged.
Can I republish Tasty recipes?
Recipe text, photos and videos belong to Tasty and its creators. Use the data for analysis or internal apps, and get permission before republishing.
Related Actors
- Bon Appétit Recipes Scraper: recipes by URL or keyword.
- AllRecipes Search Scraper: find recipes by search term.
- NYT Cooking Recipe Scraper: NYT Cooking recipes.
- Food Network Recipes Scraper: Food Network recipes.
- Sysco Products Scraper: foodservice ingredients and SUPC codes for costing.
- Seattle & King County Restaurant Inspections Scraper: restaurant health inspection data.
Legal and compliance
The Actor reads only public Tasty recipe pages. It does not log in or bypass paywalls, CAPTCHAs or other access controls, and it collects no account or personal data. Follow Tasty's terms and copyright rules.
Last verified: 2026-10-27