# AllRecipes Review Scraper 🍳 (`easyapi/allrecipes-review-scraper`)

Scrape reviews from AllRecipes.com recipes. Extract detailed review data including ratings, comments, user info, and timestamps. Perfect for recipe analysis, sentiment tracking, and user feedback collection.

- **URL**: https://beta-securitybyobscurity.apify.com/easyapi/allrecipes-review-scraper.md
- **Developed by:** [EasyApi](https://beta-securitybyobscurity.apify.com/easyapi) (community)
- **Categories:** Travel, Integrations, Other
- **Stats:** 5 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

# README

## AllRecipes Review Scraper 🍳

Extract detailed recipe reviews from AllRecipes.com with ease! This powerful scraper collects comprehensive review data for any recipe URL on AllRecipes.com.

### 🎯 Use Cases

- Analyze recipe ratings and user feedback
- Track recipe popularity and trends
- Collect user sentiments and cooking experiences
- Research recipe modifications and improvements
- Monitor customer satisfaction for specific recipes

### ✨ Features

- **Detailed Review Data**: Captures complete review information including:
  - Review text and star ratings
  - User information
  - Timestamps
  - Helpful votes count
  - Made it status
- **Flexible Configuration**: Set custom limits for number of reviews
- **Clean Output**: Structured JSON data ready for analysis
- **Efficient Processing**: Uses advanced browser automation
- **Rate Limiting**: Built-in delays to respect website limits

### 📊 Output Format

Each review is saved as a JSON object containing:

- Recipe URL
- Review ID and details
- User information
- Rating data
- Timestamps
- Engagement metrics

### 💡 Input Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| recipeUrls | Array | List of AllRecipes.com recipe URLs to scrape |
| maxItems | Integer | Maximum number of reviews to collect per recipe (optional) |

### 🚀 Getting Started

1. Enter one or more AllRecipes.com recipe URLs
2. Set the maximum number of reviews to collect (optional)
3. Run the actor and get structured review data

### 📝 Notes

- Respects website's robots.txt and implements polite scraping
- Processing time depends on the number of reviews and recipes
- Some reviews might be filtered by the website's moderation system

#### Input Example

A full explanation of an input example in JSON.

```json
{
    "recipeUrls": [
        "https://www.allrecipes.com/recipe/14522/pizza-on-the-grill-i/"
    ],
    "maxItems": 50
}
```

#### Output sample

The results will be wrapped into a dataset which you can always find in the **Storage** tab. Here's an excerpt from the data you'd get if you apply the input parameters above:

And here is the same data but in JSON. You can choose in which format to download your data: JSON, JSONL, Excel spreadsheet, HTML table, CSV, or XML.

```json
[
    {
        "recipeUrl": "https://www.allrecipes.com/recipe/14522/pizza-on-the-grill-i/",
        "data": {
            "id": 26567436,
            "docId": 6737818,
            "userId": "ee95f40b7162885e7f2cdae96e601262debafba2",
            "created": "2020-07-03T23:06:12.450Z",
            "review": "I’ve been wanting to make grilled pizza for a few months now and I was not disappointed with the pizza, that is. The crust had a very nice flavor and I’m very finicky with crusts. I’m also a horrible cook, but even I made this!! The sauce I got from another recipe was a whole other story.",
            "starRating": 5,
            "madeIt": 0,
            "photos": [
                {
                    "url": "https://images.media-allrecipes.com/userphotos/8298018.jpg",
                    "mimeType": "jpg",
                    "width": 3024,
                    "height": 3024
                }
            ],
            "helpfulCount": 0,
            "displayName": "songnverse"
        },
        "scrapedAt": "2025-02-10T03:18:58.010Z"
    },
    ...
]
```

### Related Actors

- 🍳 [AllRecipes Search Scraper](https://apify.com/easyapi/allrecipes-search-scraper) - Scrape recipe search results with detailed recipe information and ratings.
- 🍳 [AllRecipes Detail Scraper](https://apify.com/easyapi/allrecipes-detail-scraper) - Extract comprehensive recipe details including ingredients, instructions and nutritional facts.
- 🍽️ [Grubhub Restaurant Reviews Scraper](https://apify.com/easyapi/grubhub-restaurant-reviews-scraper) - Extract customer reviews and ratings from Grubhub restaurant pages.
- 🍽️ [Zomato Restaurant Reviews Scraper](https://apify.com/easyapi/zomato-restaurant-reviews-scraper) - Scrape restaurant reviews with ratings and user information.
- 🛍️ [Flipkart Review Scraper](https://apify.com/easyapi/flipkart-review-scraper) - Extract detailed product reviews and ratings from Flipkart.
- 🛍️ [Meesho Reviews Scraper](https://apify.com/easyapi/meesho-reviews-scraper) - Collect product reviews with ratings and author information.
- 🛍️ [Noon.com Reviews Scraper](https://apify.com/easyapi/noon-com-reviews-scraper) - Extract customer feedback and ratings from product listings.
- 🏨 [Hotels.com Review Scraper](https://apify.com/easyapi/hotels-com-review-scraper) - Scrape detailed hotel reviews and management responses.
- 🏨 [Hostelworld Reviews Scraper](https://apify.com/easyapi/hostelworld-reviews-scraper) - Extract hostel reviews with comprehensive ratings.
- 🎬 [IMDB Reviews Scraper](https://apify.com/easyapi/imdb-reviews-scraper) - Extract user reviews and ratings from IMDB titles.
- 📚 [Goodreads Review Scraper](https://apify.com/easyapi/goodreads-review-scraper) - Collect book reviews with user information and ratings.
- 🛍️ [Etsy Reviews Scraper](https://apify.com/easyapi/etsy-reviews-scraper) - Extract product reviews with ratings and reviewer information.
- 🛍️ [Lidl Reviews Scraper](https://apify.com/easyapi/lidl-reviews-scraper) - Scrape product reviews from Lidl's online store.
- 🎮 [Steam Reviews Scraper](https://apify.com/easyapi/steam-reviews-scraper) - Extract game reviews with helpfulness ratings and play time data.
- 📱 [App Store Reviews Scraper](https://apify.com/easyapi/app-store-reviews-scraper) - Collect user reviews from iOS app store listings.
- 🛍️ [Houzz Product Reviews Scraper](https://apify.com/easyapi/houzz-product-reviews-scraper) - Extract detailed product reviews from Houzz marketplace.

# Actor input Schema

## `recipeUrls` (type: `array`):

List of AllRecipes.com recipe URLs to scrape

## `maxItems` (type: `integer`):

Maximum number of reviews to collect per recipe

## Actor input object example

```json
{
  "recipeUrls": [
    "https://www.allrecipes.com/recipe/14522/pizza-on-the-grill-i/"
  ],
  "maxItems": 50
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("easyapi/allrecipes-review-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("easyapi/allrecipes-review-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call easyapi/allrecipes-review-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=easyapi/allrecipes-review-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AllRecipes Review Scraper 🍳",
        "description": "Scrape reviews from AllRecipes.com recipes. Extract detailed review data including ratings, comments, user info, and timestamps. Perfect for recipe analysis, sentiment tracking, and user feedback collection.",
        "version": "0.0",
        "x-build-id": "icZVWdIxfNW3X6Wh5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/easyapi~allrecipes-review-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-easyapi-allrecipes-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/easyapi~allrecipes-review-scraper/runs": {
            "post": {
                "operationId": "runs-sync-easyapi-allrecipes-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/easyapi~allrecipes-review-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-easyapi-allrecipes-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "recipeUrls"
                ],
                "properties": {
                    "recipeUrls": {
                        "title": "Recipe URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "List of AllRecipes.com recipe URLs to scrape",
                        "default": [
                            "https://www.allrecipes.com/recipe/14522/pizza-on-the-grill-i/"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Reviews",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of reviews to collect per recipe",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
