iFood Restaurant Scraper
Pricing
$25.00 / 1,000 results
iFood Restaurant Scraper
Extract the store profile, full menu with prices, and customer reviews for any iFood Brazil restaurant, from its URL. Clean, structured JSON, one row per record.
Pricing
$25.00 / 1,000 results
Rating
5.0
(2)
Developer
Yasmany Grijalba Casanova
Maintained by CommunityActor stats
9
Bookmarked
264
Total users
23
Monthly active users
2 days ago
Last modified
Categories
Share
Extract restaurant profiles, menus with prices, and customer reviews from iFood, the largest food delivery platform in Latin America.
ℹ️ Residential Proxy Required This Actor requires a residential proxy for reliable data extraction. You have two options:
- Apify Residential Proxy, available on Apify paid plans. See apify.com/pricing.
- Your own residential proxy, provided via the
customProxyUrlinput field (works on any Apify plan, including Free).Runs without a residential proxy will stop immediately with a clear message, so you are not charged for unnecessary compute time.
Quick Start
Every run works from a restaurant's store_id, and nothing else. It is the last segment of the restaurant's iFood URL:
https://www.ifood.com.br/delivery/sao-paulo-sp/pizza-hut-paraiso/f1b60ced-d490-499f-976b-6d3d717d927e└──────────── store_id ────────────┘
Extract a restaurant menu
{"mode": "menu","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e"}
Get restaurant details
{"mode": "store_info","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e"}
Get customer reviews
{"mode": "reviews","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","maxReviews": 100}
Tip: to get the delivery fee and delivery time to a specific address, add
latitudeandlongitude. See Delivery pricing.
Features
| Feature | Description |
|---|---|
| Complete Menu Data | Full menus with list prices, promotional prices, descriptions and images |
| Detailed Store Profiles | Address, CNPJ, ratings, delivery terms and opening hours by day |
| Customer Reviews | Reviews with ratings, comments and order dates, up to 1000 per run |
| Chain and Pix | The chain a restaurant belongs to, and whether it accepts Pix |
| Real-Time Data | Prices, availability and hours read live at the moment of the run |
| Structured JSON Output | Clean, validated data ready for analysis |
Use Cases
- Price monitoring: track menu prices and promotions over time
- Competitor analysis: compare ratings, delivery times, fees and offerings
- Market research: analyze pricing and assortment by restaurant or chain
- Reputation monitoring: follow customer reviews and sentiment
- Menu intelligence: measure category depth, item counts and discount depth
Input Parameters
Two inputs run the Actor. The rest apply to one mode each, and the input form groups them that way.
| Parameter | Applies to | Description |
|---|---|---|
mode | all | store_info, menu or reviews |
store_id | all | Required. Restaurant UUID, the last segment of its iFood URL |
maxReviews | reviews | Reviews to fetch, 1-1000. Default: 100 |
latitude | store_info | Delivery address, to price delivery to it. See below |
longitude | store_info | The other half of that address |
useApifyProxy | all | Enable Apify Proxy. Default: true |
proxyGroups | all | Proxy group for Apify Proxy. Default: ["RESIDENTIAL"] |
proxyCountry | all | Proxy country code. Default: BR |
customProxyUrl | all | Your own residential proxy; overrides the three settings above |
maxRetries | all | Retry attempts for failed requests (1-10). Default: 3 |
timeout | all | Request timeout in seconds. Default: 30 |
Delivery pricing
store_info answers "what does this restaurant charge to deliver here?" only if
you say where here is. Add latitude and longitude and five fields fill in
for that address:
| With an address | Without |
|---|---|
distance 1.5 | null |
delivery_fee 8.99 | null |
type_delivery_fee FIXED | null |
delivery_time 30 | null |
has_order_tracking true | null |
Measured on the same restaurant, same minute. The other 31 fields of
store_info are identical either way, and menu and reviews ignore the
coordinates entirely, so leave them out unless you want delivery terms.
Output Examples
The dataset holds one item per record: one per menu item, one per review, one per restaurant profile. Every row repeats the run context (mode and scraped_at) plus the store_id, so an exported CSV or Excel file stands on its own.
A run that reaches iFood but finds nothing writes a single row with status: "NO_RESULTS" and a message saying why, so a run is never silently empty. When data cannot be retrieved at all, the run fails with a message instead.
Store Info
Truncated here where the real record is long.
{"mode": "store_info","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","name": "Pizza Hut - Paraíso","description": "PIMENTA VERDE ALIMENTOS LTDA.","cnpj": "09.060.964/0131-88","main_category": "Pizza","cuisine_categories": ["Comida Italiana"],"chain_name": "Pizza Hut","street_name": "AV BRIGADEIRO LUIS ANTONIO","street_number": "2893","district": "JARDIM PAULISTA","city": "SAO PAULO","state": "SP","zip_code": "01401000","latitude": "-23.571795","longitude": "-46.652905","user_rating": 4.7,"user_rating_count": 266,"price_range": "CHEAPEST","opening_hours_text": "Mon 10:00-22:30; Tue 15:00-22:30; Wed 10:00-23:59; ...","opening_hours": [{ "day_of_week": "MONDAY", "opens_at": "10:00", "closes_at": "22:30" }],"available": true,"has_delivery": true,"has_takeout": true,"delivery_fee": 6.99,"delivery_time": 21,"preparation_time": 14,"minimum_order_value": 30,"accepts_pix": true}
Menu
One row per item, carrying its section. This one is on promotion.
{"mode": "menu","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","category_code": "f297e196-e5cb-4ed3-8817-71ccbb0a2d71","category_name": "Sobremesas","id": "99acbd4a-729e-4d05-b911-1e21f42c1909","code": "99acbd4a-729e-4d05-b911-1e21f42c1909","description": "Slider Nutella","details": "Mini disco de 8,5cm de massa pan coberta com Nutella","logo_url": "https://static-images.ifood.com.br/image/upload/...","unit_price": 15.9,"promotional_price": 10.34,"availability": "AVAILABLE","external_code": "91559","need_choices": false,"product_tags": [{ "group": "PORTION_SIZE", "tags": ["NOT_APPLICABLE"] }]}
Read
promotional_pricebefore comparing prices. About one item in five is discounted at any time, and the discount reaches 40%.unit_priceis always the list price.
Reviews
{"mode": "reviews","store_id": "f1b60ced-d490-499f-976b-6d3d717d927e","total_reviews_available": 273,"total_ratings": 11135,"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}
Data Fields
Every row also carries mode and scraped_at.
Null is not zero. A number is null when iFood states no value and 0 only when it really says zero, which keeps free delivery apart from an unpublished fee, and an unrated restaurant apart from one rated zero stars.
Integrations
Use the API tab on the Actor page to get ready-to-use code examples in Python, JavaScript, and cURL. The examples are auto-generated with the correct parameters for immediate integration.
Coverage
This Actor covers restaurants on iFood, anywhere in Brazil: profiles, menus and reviews for a restaurant you name.
iFood's grocery and pharmacy storefronts are not part of this Actor. Their catalogs are far larger, change on a different schedule and are served through a separate part of the platform, so they are offered as a managed data feed instead. For supermarket or pharmacy assortment and pricing, see datamarket.cnovatech.com.br or write to contato@cnovatech.com.br.
FAQ
Support
Check the FAQ above first. For anything else, use the Issues tab on the Actor page and we will get back to you.