# Edka Urls Scraper (`getdataforme/edka-urls-scraper`) Actor

Extract detailed recipe data from Edeka.de URLs, including ingredients, instructions, nutrition, and ratings. Perfect for food enthusiasts, researchers, and businesses automating high-accuracy, fast data collection with structured JSON output on Apify.

- **URL**: https://apify.com/getdataforme/edka-urls-scraper.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** Automation, E-commerce, Lead generation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.05 / actor start

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Edka Urls Scraper

### Introduction

The Edka Urls Scraper is a powerful Apify Actor designed to extract detailed recipe information from Edeka.de URLs. It efficiently scrapes structured data such as ingredients, instructions, nutritional facts, and ratings, enabling users to gather comprehensive recipe datasets for various applications. This tool is ideal for food enthusiasts, researchers, and businesses looking to automate recipe data collection with high accuracy and speed.

### Features

- **Comprehensive Data Extraction**: Scrapes key recipe details including title, description, ingredients, instructions, prep/cook times, nutritional info, and ratings.
- **High Reliability**: Built on CheerioCrawler for robust web scraping, handling dynamic content and ensuring data integrity.
- **Flexible Input**: Accepts multiple start URLs, allowing batch processing of recipe pages.
- **Structured Output**: Delivers clean JSON data, easily integrable into databases, APIs, or analysis tools.
- **Performance Optimized**: Processes URLs quickly with minimal resource usage, supporting large-scale extractions.
- **Error-Resilient**: Includes built-in handling for common scraping challenges like timeouts or missing elements.
- **Apify Integration**: Seamlessly runs on Apify's platform with monitoring, scheduling, and export options.

### Input Parameters

| Parameter | Type   | Required | Description | Example |
|-----------|--------|----------|-------------|---------|
| startUrls | array  | Yes      | An array of URLs to start scraping from. Each URL should point to an Edeka recipe page. | `[{"url": "https://www.edeka.de/rezeptwelt/rezepte/low-carb-bananenbrot/"}]` |

### Example Usage

#### Input JSON

```json
{
  "startUrls": [
    {
      "url": "https://www.edeka.de/rezeptwelt/rezepte/low-carb-bananenbrot/"
    }
  ]
}
```

#### Output JSON

```json
[
  {
    "url": "https://www.edeka.de/rezeptwelt/rezepte/low-carb-bananenbrot/",
    "title": "Low-Carb-Bananenbrot",
    "description": "Kohlenhydratarm, ohne Zucker und glutenfrei – so kann ein gesundes Bananenbrot aussehen. Mit unserem kalorienarmen Bananenbrot-Rezept gelingt das Backwerk auf diese Weise, ohne an Geschmack einzubüßen.",
    "image": "/uploads/rezepte/rez-edeka-low-carb-bananenbrot-rezept-i-p-1-1.jpg",
    "prepTime": "PT20M",
    "cookTime": "PT40M",
    "totalTime": "PT60M",
    "recipeYield": "8 Portionen",
    "keywords": [
      "Glutenfrei",
      "Bananen",
      "Brot",
      "Vegetarisch",
      "Kokosöl",
      "Kuchen"
    ],
    "recipeCategory": "Backen",
    "rating": {
      "ratingValue": 5,
      "reviewCount": 10
    },
    "nutrition": {
      "calories": "321 kcal",
      "fatContent": "26 g",
      "carbohydrateContent": "15 g",
      "proteinContent": "10 g"
    },
    "ingredients": [
      "3 Bananen, reif",
      "1 Vanilleschote",
      "3 Eier",
      "50 g Kokosöl",
      "200 g Mandelmehl",
      "2 TL Backpulver",
      "1 TL Zimt",
      "1 Prise Muskatnuss",
      "1 Prise Salz",
      "50 g Walnüsse",
      " etwas Öl, zum Einfetten"
    ],
    "instructions": [
      {
        "text": "Den Backofen auf 180 Grad Umluft (200 Grad Ober- / Unterhitze) vorheizen."
      },
      {
        "text": "Bananen schälen und mit der Gabel zu Mus zerdrücken. Vanilleschote der Länge nach aufschneiden und das Mark auskratzen. Bananenmus, Vanillemark und Eier mit den Schneebesen eines Handrührgerätes schaumig schlagen. Kokosöl auf dem Herd oder in der Mikrowelle schmelzen und im dünnen Strahl unter die Bananen-Ei-Masse rühren."
      },
      {
        "text": "Mandelmehl, Backpulver, Zimt, Muskatnuss und Salz in einer Schüssel mischen und unter die flüssigen Zutaten rühren, bis ein geschmeidiger Teig entsteht. Walnüsse grob hacken."
      },
      {
        "text": "Den Teig in die gefettete Form füllen, mit Walnüssen toppen und für 35-45 Minuten auf mittlerer Schiene im Ofen backen. Stäbchenprobe machen. Sollte der Teig noch am Stäbchen kleben, weitere 5 Minuten backen."
      },
      {
        "text": "Bananenbrot aus dem Ofen nehmen und abkühlen lassen. In Scheiben schneiden."
      }
    ],
    "difficulty": "",
    "tags": [],
    "utensils": "Kastenform",
    "breadcrumbs": [
      "Zur Startseite",
      "Rezeptwelt",
      "Rezepte",
      "Low-Carb-Bananenbrot"
    ]
  }
]
```

### Use Cases

- **Market Research**: Analyze trending recipes and ingredients for food industry insights.
- **Competitive Intelligence**: Monitor competitors' recipe offerings and nutritional claims.
- **Price Monitoring**: Track ingredient costs indirectly through recipe data for budgeting.
- **Content Aggregation**: Build recipe databases for blogs, apps, or meal planning services.
- **Academic Research**: Study dietary trends, nutritional patterns, or culinary history.
- **Business Automation**: Automate data feeds for e-commerce sites or recipe recommendation engines.

### Installation and Usage

1. Search for "Edka Urls Scraper" in the Apify Store.
2. Click "Try for free" or "Run".
3. Configure input parameters (e.g., add start URLs).
4. Click "Start" to begin extraction.
5. Monitor progress in the log.
6. Export results in your preferred format (JSON, CSV, Excel).

### Output Format

The Actor outputs a JSON array of objects, each representing a scraped recipe. Key fields include:

- `url`: The source URL.
- `title`, `description`: Basic recipe info.
- `image`: Image path.
- `prepTime`, `cookTime`, `totalTime`: Durations in ISO 8601 format.
- `recipeYield`: Number of servings.
- `keywords`, `recipeCategory`: Categorization.
- `rating`: Object with value and count.
- `nutrition`: Object with calories, fats, carbs, protein.
- `ingredients`: Array of strings.
- `instructions`: Array of step objects with text.
- `difficulty`, `tags`, `utensils`, `breadcrumbs`: Additional metadata.

Data is extracted directly from Edeka pages, ensuring accuracy. Missing fields may appear as empty strings or arrays.

### Support

For custom/simplified outputs or bug reports, please contact:

- Email: support@getdataforme.com
- Subject line: "custom support"
- Contact form: https://getdataforme.com/contact/

We're here to help you get the most out of this Actor!

***

# Actor input Schema

## `startUrls` (type: `array`):

URLs to start with.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.edeka.de/rezeptwelt/rezepte/low-carb-bananenbrot/"
    }
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.edeka.de/rezeptwelt/rezepte/low-carb-bananenbrot/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/edka-urls-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.edeka.de/rezeptwelt/rezepte/low-carb-bananenbrot/" }] }

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/edka-urls-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.edeka.de/rezeptwelt/rezepte/low-carb-bananenbrot/"
    }
  ]
}' |
apify call getdataforme/edka-urls-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getdataforme/edka-urls-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ScJPbcrR4bm9kwstc/builds/YnkFVHMmcyUgaDrOU/openapi.json
