Ifood Restaurant Scraper
Pricing
$16.90 / 1,000 results
Ifood Restaurant Scraper
Extracts restaurant data from iFood Brazil—including profiles, menus, prices, and ratings—with location-based search and clean, structured JSON output.
Pricing
$16.90 / 1,000 results
Rating
5.0
(2)
Developer

Yasmany Grijalba Casanova
Actor stats
4
Bookmarked
54
Total users
8
Monthly active users
6 days ago
Last modified
Categories
Share
Extract comprehensive restaurant data from iFood Brazil—the largest food delivery platform in Latin America.
Features
- 100+ Restaurants per Request: Get up to 100 restaurants in any Brazilian location
- Complete Menu Data: Full menus with prices, descriptions, and customization options
- Detailed Store Profiles: Address, ratings, delivery info, and operating hours
- Customer Reviews: Extract customer reviews with ratings, comments, and dates
- Real-Time Data: Fresh data directly from iFood's platform
- Structured JSON Output: Clean, validated data ready for analysis
Use Cases
- Market Research: Analyze restaurant offerings and pricing across locations
- Price Monitoring: Track menu prices and promotional offers
- Competitor Analysis: Compare restaurants by ratings, delivery times, and fees
- Business Intelligence: Build datasets for food service market insights
- Location Analysis: Understand restaurant density and coverage by area
- Reputation Management: Monitor customer reviews and feedback
- Voice of Customer (VoC): Analyze customer sentiment and feedback trends
How It Works
Step 1: Find Restaurants
Search for restaurants in any Brazilian location using coordinates:
{"mode": "stores","latitude": "-23.5608786","longitude": "-46.6570743"}
Returns: Up to 100 restaurants with name, ratings, delivery fees, distance, and availability.
Step 2: Get Restaurant Details
Use the store_id from Step 1 to get complete restaurant information:
{"mode": "store_info","latitude": "-23.5608786","longitude": "-46.6570743","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e"}
Returns: Full address, ratings, delivery times, minimum order value, and more.
Step 3: Get Complete Menu
Extract the full menu with all items and prices:
{"mode": "menu","latitude": "-23.5608786","longitude": "-46.6570743","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e"}
Returns: Categories, items, prices, descriptions, images, and customization options.
Step 4: Get Customer Reviews
Extract customer reviews and ratings:
{"mode": "reviews","latitude": "-23.5608786","longitude": "-46.6570743","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","maxReviews": 100}
Returns: Customer reviews with names, ratings, comments, and dates.
Input Parameters
Required
| Parameter | Type | Description |
|---|---|---|
mode | string | stores, store_info, menu, or reviews |
latitude | string | Location latitude (e.g., "-23.5608786") |
longitude | string | Location longitude (e.g., "-46.6570743") |
store_id | string | Restaurant ID (required for store_info, menu, and reviews modes) |
maxReviews | integer | Maximum reviews to fetch (1-1000, default: 100, reviews mode only) |
Optional - Proxy Settings
| Parameter | Default | Description |
|---|---|---|
useApifyProxy | false | Enable Apify Proxy for better reliability |
proxyGroups | ["RESIDENTIAL"] | Proxy type (RESIDENTIAL recommended) |
proxyCountry | "BR" | Country code (BR recommended for iFood) |
Optional - Advanced
| Parameter | Default | Description |
|---|---|---|
maxRetries | 3 | Retry attempts for failed requests |
timeout | 30 | Request timeout in seconds |
Output Examples
Stores Mode
{"mode": "stores","data": [{"name": "Pizza Hut - Paraíso","segment": "Pizza","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","available": "S","distance": 1.28,"user_rating": 4.7,"fee": 899,"time_min_minutes": 25,"time_max_minutes": 35,"is_ifood_delivery": true}],"metadata": {"items_count": 100,"scraped_at": "2026-01-21T14:00:00.000Z"}}
Store Info Mode
{"mode": "store_info","data": {"store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","name": "Pizza Hut - Paraíso","main_category": "Pizza","city": "São Paulo","district": "Jardim Paulista","state": "SP","street_name": "Av Brigadeiro Luis Antonio","street_number": "2893","zip_code": "01401000","user_rating": 4.7,"user_rating_count": 555,"delivery_fee": 8.99,"delivery_time": 33}}
Menu Mode
{"mode": "menu","data": {"store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","categories": [{"name": "Pizzas Tradicionais","items_count": 15,"items": [{"description": "Pizza Marguerita","details": "Molho de tomate, mussarela e manjericão","unit_price": 45.90,"logo_url": "https://static.ifood-static.com.br/...","choices": [{"name": "Escolha sua massa","garnish_items": [{"description": "Massa tradicional", "unit_price": 0.0},{"description": "Massa pan", "unit_price": 5.0}]}]}]}]}}
Reviews Mode
{"mode": "reviews","data": {"store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","total_reviews_available": 3808,"reviews_fetched": 100,"reviews": [{"customer_name": "Maximo","rating": 4.0,"grade": 4.0,"comment": "Comprei Grande, mas, tamanho menor, não é grande","comment_date": "2026-01-09T23:36:55.725000+00:00","order_date": "2026-01-09T22:41:29.799000+00:00","order_number": 3635,"status": "ACE","moderated": false},{"customer_name": "Mozart","rating": 5.0,"grade": 5.0,"comment": "Excelente pizza","comment_date": "2025-12-23T23:48:30.834000+00:00","order_date": "2025-12-23T22:39:09.072000+00:00","order_number": 1713,"status": "ACE","moderated": false}]}}
Data Fields
Stores Mode (22 fields)
| Field | Description |
|---|---|
name | Restaurant name |
segment | Food category (Pizza, Japanese, etc.) |
store_id | Unique restaurant identifier |
available | Open/closed status |
distance | Distance in kilometers |
user_rating | Average rating (0-5) |
fee | Delivery fee in cents |
time_min_minutes | Minimum delivery time |
time_max_minutes | Maximum delivery time |
is_ifood_delivery | iFood delivery vs restaurant delivery |
Store Info Mode (25 fields)
| Field | Description |
|---|---|
name | Restaurant name |
main_category | Primary food category |
city, state, district | Location details |
street_name, street_number, zip_code | Full address |
latitude, longitude | Coordinates |
user_rating, user_rating_count | Ratings and review count |
delivery_fee, delivery_time | Delivery details |
minimum_order_value | Minimum order amount |
Menu Mode
| Field | Description |
|---|---|
categories | Menu sections |
items | Products in each category |
unit_price | Item price |
details | Item description |
choices | Customization options (sizes, extras) |
garnish_items | Individual options with prices |
Reviews Mode
| Field | Description |
|---|---|
total_reviews_available | Total reviews for the restaurant |
reviews_fetched | Number of reviews returned |
customer_name | Customer's first name |
rating | Rating (1-5) |
grade | Grade given |
comment | Customer comment (if any) |
comment_date | When the review was posted |
order_date | When the order was placed |
order_number | Order reference number |
status | Review status |
moderated | Whether review was moderated |
Code Example
from apify_client import ApifyClientclient = ApifyClient("your_apify_token")# Get restaurants near a locationrun = client.actor("YOUR_USERNAME/ifood-scraper").call(run_input={"mode": "stores","latitude": "-23.5608786","longitude": "-46.6570743"})# Get resultsitems = client.dataset(run["defaultDatasetId"]).list_items().itemsrestaurants = items[0]["data"]print(f"Found {len(restaurants)} restaurants")for restaurant in restaurants[:5]:print(f"- {restaurant['name']} (Rating: {restaurant['user_rating']})")
How to Get Coordinates
- Open Google Maps
- Right-click on any location in Brazil
- Click on the coordinates to copy them
- Use the first number as
latitudeand second aslongitude
Example Coordinates
| City | Latitude | Longitude |
|---|---|---|
| São Paulo (Centro) | -23.5608786 | -46.6570743 |
| Rio de Janeiro | -22.9068467 | -43.1728965 |
| Belo Horizonte | -19.9166813 | -43.9344931 |
| Brasília | -15.7942287 | -47.8821658 |
| Curitiba | -25.4289541 | -49.2671340 |
Important Notes
- Brazil Only: iFood operates exclusively in Brazil
- One Request Per Run: Each run executes one operation
- Up to 100 Restaurants: Stores mode returns maximum 100 results
- Valid Store ID: Use UUIDs from stores mode for other operations
- Proxy Recommended: For high-volume usage, enable Apify Proxy
Pricing
This actor charges per result. See the pricing tab for current rates.
Costs depend on:
- Number of results returned
- Proxy usage (optional, billed separately by Apify)
Support
Having issues? Check these common solutions:
- No results: Verify coordinates are in Brazil
- Invalid store_id: Use the exact UUID from stores mode
- Timeout errors: Try enabling proxy or increasing timeout
- Empty menu: Some restaurants may have incomplete data on iFood
For additional help, contact the developer through Apify.
Changelog
| Version | Changes |
|---|---|
| 2.1 | Added reviews mode for customer reviews extraction |
| 2.0 | Improved reliability, automatic retries, streamlined API |
| 1.0 | Initial release |