Themealdb Recipes Scraper avatar

Themealdb Recipes Scraper

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Themealdb Recipes Scraper

Themealdb Recipes Scraper

TheMealDB Recipes Scraper is a Python tool designed to extract detailed food recipes, ingredient lists, quantities, preparation instructions, meal categories, and regional cuisines from TheMealDB. It exports structured culinary datasets into clean CSV or JSON format.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

ZeroBreak

ZeroBreak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

TheMealDB Recipes Scraper — Search Recipes and Extract Ingredients

Overview

TheMealDB Recipes Scraper collects publicly available recipe information and saves meals as structured dataset records. Search by meal name, first letter, ingredient, cuisine area, category, or meal ID.

Collected information can include cooking instructions, ingredient names, measurements, meal categories, cuisine details, and thumbnail images. Export your dataset in JSON, CSV, or Excel format.

Features

  • Recipe name search: Find meals by name, such as chicken or pasta.
  • First-letter search: Discover recipes whose names begin with a specified letter.
  • Ingredient filtering: Find meals associated with ingredients such as chicken breast.
  • Cuisine filtering: Collect recipes by cuisine area, such as Canadian or Indian.
  • Category filtering: Narrow results to categories such as Seafood or Chicken.
  • Individual recipe lookup: Retrieve a specific meal using its ID.
  • Full recipe details: Load cooking instructions and ingredient measurements when enabled.
  • Duplicate removal: Keep each meal ID only once.
  • Configurable collection limits: Save up to 1,000 unique meal records per run.
  • Multiple export formats: Download data in JSON, CSV, or Excel.

Use Cases

  • Recipe catalogs: Build searchable collections of meals and cooking instructions.
  • Ingredient research: Find recipes that use particular ingredients.
  • Cuisine exploration: Organize recipes by country, cuisine area, or category.
  • Meal planning: Collect recipe names, ingredients, and measurements for planning meals.
  • Cooking applications: Prepare structured recipe datasets for application prototypes.
  • Food data analysis: Compare recipe categories, ingredients, and cuisine types.
  • Scheduled collection: Refresh recipe datasets periodically to capture current source information.

Input Parameters

ParameterTypeDefaultDescription
searchQueriesArray of strings["chicken"]Meal names to search for.
firstLettersArray of strings[]First letters used to find meals.
ingredientsArray of strings[]Main ingredients used to filter recipes. Spaces in ingredient names are converted to underscores.
areasArray of strings[]Cuisine areas to search.
categoriesArray of strings[]Meal categories to search.
mealIdsArray of strings[]Specific meal IDs to retrieve.
fullDetailsBooleantrueLoads complete recipe details for results that initially contain only a meal name and thumbnail.
maxItemsInteger100Maximum number of unique meal records to save. Allowed range: 1–1,000.
requestDelaySecsNumber0.3Delay between requests in seconds. Minimum: 0.3 seconds.
timeoutSecsInteger300Overall time limit in seconds for starting new requests.
requestTimeoutSecsInteger30Maximum wait for an individual request, in seconds.

Example Input

{
"searchQueries": ["chicken"],
"firstLetters": [],
"ingredients": [],
"areas": ["Canadian"],
"categories": [],
"mealIds": ["52772"],
"fullDetails": true,
"maxItems": 100,
"requestDelaySecs": 0.3,
"timeoutSecs": 300,
"requestTimeoutSecs": 30
}

This configuration searches for chicken recipes, collects Canadian cuisine results, retrieves meal ID 52772, and loads full recipe details when available.

What Data Does This Actor Extract?

Each saved meal becomes one dataset row. When a search or filter result contains only a meal name and thumbnail, enabling fullDetails allows the actor to retrieve additional information, including instructions and ingredients.

Extracted Data Fields

FieldDescription
idMealUnique meal identifier.
strMealRecipe or meal name.
strMealAlternateAlternate meal name, when available.
strCategoryMeal category, such as Chicken.
strAreaCuisine area, such as India.
strCountryCountry label, when available.
strInstructionsCooking instructions.
strMealThumbRecipe thumbnail image location.
strTagsRecipe tags, when available.
strYoutubeRelated cooking video link, when available.
strIngredient1–strIngredient20Ingredient names. Empty ingredient slots may be null.
strMeasure1–strMeasure20Measurements corresponding to the ingredient fields.
modeCollection method associated with the record, such as search, letter, ingredient, area, category, or lookup.
scraped_atUTC timestamp indicating when the record was saved.

Some fields may be missing or null when the original meal record does not contain that information.

Example Output

{
"idMeal": "52795",
"strMeal": "Chicken Handi",
"strCategory": "Chicken",
"strArea": "India",
"strCountry": "India",
"strMealThumb": "RECIPE_THUMBNAIL_URL",
"strYoutube": "COOKING_VIDEO_URL",
"strIngredient1": "Chicken",
"strMeasure1": "1 kg",
"strInstructions": "Prepare the ingredients and cook according to the recipe instructions.",
"mode": "search",
"scraped_at": "2026-10-12T00:00:00+00:00"
}

The example demonstrates the dataset structure. Actual recipe details depend on the meal selected and the information available in the source.

Working with Your Dataset

After collection, you can:

  • Export recipes as JSON, CSV, or Excel files.
  • Sort meals by name, category, or cuisine area.
  • Search ingredient fields to identify recipes using particular ingredients.
  • Review cooking instructions and measurements.
  • Build recipe catalogs and meal-planning spreadsheets.
  • Compare ingredient combinations across different recipes.
  • Use meal IDs to organize records and avoid duplicate entries.

Important Notes

  • Multiple input lists can be used to collect different types of recipe results in one run.
  • fullDetails controls whether additional recipe details are retrieved for filtered results that initially contain limited information.
  • Duplicate meal IDs are retained only once.
  • The actor stops collecting when maxItems is reached.
  • Requests are processed sequentially with a delay between requests.
  • Temporary request failures may be retried.
  • A meal ID that does not return a recipe may produce an error record, while processing continues with remaining inputs.
  • If all input lists are empty, the run may finish without collecting any recipe records.
  • Recipe availability, ingredients, instructions, and images may change over time.

FAQ

Can I search recipes by ingredient?

Yes. Add one or more ingredient names to ingredients. The actor uses these values to find matching meals.

Can I search by cuisine or meal category?

Yes. Use areas to specify cuisine areas and categories to specify meal categories.

Can I retrieve a specific recipe?

Yes. Add the desired meal ID to mealIds.

Why are some recipe records missing instructions or ingredients?

Some initial search and filter results contain only basic information. Set fullDetails to true to retrieve additional details when available.

How many recipes can one run collect?

The default limit is 100 unique meals. You can increase maxItems to a maximum of 1,000.

Are duplicate recipes saved multiple times?

No. The actor keeps each meal ID only once.

Can I export recipes to Excel?

Yes. You can export the collected dataset in JSON, CSV, or Excel format.

How current is the collected information?

Recipe information is collected during the run. The scraped_at timestamp records when the actor saved the row, not when the recipe was originally published.

Disclaimer

This is an independent tool and is not affiliated with, endorsed by, sponsored by, or officially associated with TheMealDB or its owners. Users are responsible for ensuring that their collection, storage, redistribution, and use of recipe information comply with applicable laws and the source's terms.

Collecting information that is already public is generally legal. Scraping is not the same thing as hacking, and there is no single law that bans it. The limits are the usual ones: do not break into accounts, do not take private or confidential data, and be careful with personal data and copyrighted works. A site's terms can also restrict how you access it. Facts such as a public name, price, or rating are not the same thing as republishing someone's article or photo.

This actor collects information from public pages. It does not log in and it does not bypass access controls.

For a longer explanation, see Apify's article Is web scraping legal?.