
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.
5.0 (1)
Pricing
$16.90 / 1,000 results
2
6
6
Last modified
3 days ago
iFood Brazil Restaurant Data Extractor
Extract comprehensive restaurant data from iFood Brazil, including menus, prices, ratings, and operational information.
What This Actor Does
This actor provides structured access to iFood Brazil's restaurant data through 4 powerful modes:
- Segments: Discover available food service categories in any location
- Stores: List up to 100 restaurants per request with ratings and delivery info
- Store Info: Get complete restaurant details (address, hours, ratings)
- Menu: Extract full menus with items, prices, and customizable options
Important: Currently supports restaurants only. Other segments have different data structures.
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
- Data Analytics: Build datasets for food service market intelligence
- Location Analysis: Understand restaurant density and coverage by area
Quick Start
1. Get Restaurants in a Location
{"mode": "stores","latitude": "-23.5608786","longitude": "-46.6570743","alias": "HOME_FOOD_DELIVERY"}
Returns: Up to 100 restaurants with 22 data fields including name, ratings, distance, delivery fees, and availability.
2. Get Complete Menu
{"mode": "menu","latitude": "-23.5608786","longitude": "-46.6570743","store_id": "restaurant-id-from-stores"}
Returns: Full menu structure with categories, items, prices, descriptions, and customizable options.
Operation Modes
Segments Mode
Discover available service segments for a location.
Input:
{"mode": "segments","latitude": "-23.5608786","longitude": "-46.6570743"}
Output: List of segments with aliases. Use HOME_FOOD_DELIVERY
for restaurants.
Stores Mode
List restaurants in a specific location.
Input:
{"mode": "stores","latitude": "-23.5608786","longitude": "-46.6570743","alias": "HOME_FOOD_DELIVERY"}
Output: Up to 100 restaurants with:
- Basic info: name, category, ID
- Location: distance, region
- Service: delivery fee, estimated time
- Quality: user rating, availability
- Metadata: images, URLs, flags
Data Fields (22):
name
, segment
, store_type
, store_id
, store_slug
, url
, available
, distance
, user_rating
, fee
, time_min_minutes
, time_max_minutes
, latitude
, longitude
, region
, alias
, currency
, image_url
, is_ifood_delivery
, is_new
, is_super_restaurant
, delivery_mode
Store Info Mode
Get detailed information for a specific restaurant.
Input:
{"mode": "store_info","latitude": "-23.5608786","longitude": "-46.6570743","store_id": "restaurant-id-here"}
Output: Complete restaurant profile with:
- Identity: name, category, type
- Address: full street address, city, state, ZIP
- Location: precise coordinates
- Operations: delivery fees, times, minimum order
- Performance: ratings, review count
- Pricing: price range category
Data Fields (25):
store_id
, name
, main_category
, store_type
, logo
, country
, state
, city
, district
, latitude
, longitude
, street_name
, street_number
, zip_code
, price_range
, delivery_fee
, type_delivery_fee
, takeout_time
, delivery_time
, minimum_order_value
, preparation_time
, distance
, available
, user_rating
, user_rating_count
Menu Mode
Extract complete restaurant menu with all items and prices.
Input:
{"mode": "menu","latitude": "-23.5608786","longitude": "-46.6570743","store_id": "restaurant-id-here"}
Output: Structured menu data with:
- Categories: organized menu sections
- Items: complete product information
- Pricing: current prices, original prices, discounts
- Options: customizable choices (sizes, extras, etc)
- Tags: dietary info, portion sizes, etc
Menu Structure:
- Categories with items
- Each item includes: name, description, images, prices
- Customization options when available
- Product tags and metadata
Configuration
Required Parameters
latitude
: Location latitude (string)longitude
: Location longitude (string)mode
: Operation mode (segments, stores, store_info, menu)
Mode-Specific Parameters
- stores:
alias
(default: "HOME_FOOD_DELIVERY") - store_info:
store_id
(from stores mode) - menu:
store_id
(from stores mode)
Optional Parameters
request_waiting
: Delay between requests in seconds (default: 3, min: 3, max: 10)
Best Practices
- Rate Limiting: Use
request_waiting >= 3
to avoid blocks - Workflow: segments → stores → store_info/menu
- Caching: Store results to minimize API calls
- Error Handling: Check for empty results and handle gracefully
- Coordinates: Use precise coordinates for better results
Output Format
All data is returned as validated JSON with consistent structure. Examples below show real API responses.
Segments Output
{"data": [{"name": "INICIO","segment_type": "HOME","alias": "HOME_MULTICATEGORY_V10","latitude": "-23.5608786","longitude": "-46.6570743"},{"name": "RESTAURANTES","segment_type": "RESTAURANT","alias": "HOME_FOOD_DELIVERY","latitude": "-23.5608786","longitude": "-46.6570743"},{"name": "MERCADOS","segment_type": "GROCERIES","alias": "HOME_MERCADO_BR","latitude": "-23.5608786","longitude": "-46.6570743"}]}
Stores Output (Full Example)
{"data": [{"name": "EX-TOURO - BURGER JARDINS","segment": "LANCHES","store_type": "DELIVERY","store_id": "8008a304-b01d-4142-aff2-c57020b25e19","store_slug": "ex-touro---burger-jardins-jardim-paulista&super_categories_in=RESTAURANT","url": "merchant?alias=HOME_FOOD_DELIVERY&channel=IFOOD&deliveryMethodCode=DEFAULT&identifier=8008a304-b01d-4142-aff2-c57020b25e19&latitude=-23.5608786&longitude=-46.6570743&name=Ex-touro%20-%20Burger%20Jardins&remove_reserved_positions=false&should_return_merchant_applied_campaigns=true&size=100&slug=sao-paulo-sp%2Fex-touro---burger-jardins-jardim-paulista&super_categories_in=RESTAURANT","available": "S","distance": 0.26,"user_rating": 4.8,"fee": 0,"time_min_minutes": 20,"time_max_minutes": 30,"latitude": "-23.5608786","longitude": "-46.6570743","region": "sao-paulo-sp","alias": "HOME_FOOD_DELIVERY","currency": "BRL","image_url": ":resolution/logosgde/6684d74f-b2cb-431a-92c4-e6544adbcbf2_EXTOU_RDINS.png","is_ifood_delivery": false,"is_new": false,"is_super_restaurant": false,"delivery_mode": "DEFAULT"}]}
Store Info Output (Full Example)
{"data": {"store_id": "8008a304-b01d-4142-aff2-c57020b25e19","available": "S","delivery_fee": 0.0,"type_delivery_fee": "FIXED","delivery_time": 20,"distance": 0.26,"minimum_order_value": 30,"name": "EX-TOURO - BURGER JARDINS","preparation_time": 5,"price_range": "CHEAPEST","takeout_time": 0,"user_rating": 4.8,"logo": "https://static-images.ifood.com.br/image/upload/t_thumbnail/logosgde/6684d74f-b2cb-431a-92c4-e6544adbcbf2_EXTOU_RDINS.png","country": "BR","city": "SAO PAULO","district": "JARDIM PAULISTA","latitude": "-23.562357","longitude": "-46.659076","state": "SP","street_name": "ALAMEDA JAU","street_number": "1150","zip_code": "01420002","user_rating_count": 2627,"store_type": "RESTAURANT","main_category": "LANCHES"}}
Menu Output (Real Example - Simplified)
{"data": {"store_id": "8008a304-b01d-4142-aff2-c57020b25e19","latitude": "-23.5608786","longitude": "-46.6570743","categories": [{"code": "e8fdcf0c-0233-4ce1-ad1b-70ec84218455","name": "TOP + BEM AVALIADOS DO IFOOD !","items_count": 8,"items": [{"id": "466e545f-c951-402c-9191-32b1d6cbcec9","code": "466e545f-c951-402c-9191-32b1d6cbcec9","description": "2 BURGUERS + BATATA FRITA P","details": "COMBO: NA COMPRA DE 2 BURGERS + 1 BATATA, GANHE R$8,00 DE DESCONTO.","logo_url": "https://static.ifood-static.com.br/image/upload/t_medium/pratos/238e2621-fe02-45df-bd7e-3561676f5a69/202310021611_0V5W_i.jpg","unit_price": 0.0,"unit_min_price": 85.9,"unit_original_price": 117.0,"need_choices": true,"choices": [{"code": "2C5BA4","name": "ESCOLHA O 1O BURGER","min": 1,"max": 1,"garnish_items": [{"id": "f5295724-89b4-4e38-ab20-05c0e6aa8e7b","code": "f5295724-89b4-4e38-ab20-05c0e6aa8e7b","description": "1O X-TOURO","details": "BLEND EX-TOURO 180GR NO PAO BRIOCHE PRIME, QUEIJO MUCARELA E MOLHO AIOLI.","unit_price": 34.5},{"id": "775b8384-0451-4902-a924-530ffde3f352","code": "775b8384-0451-4902-a924-530ffde3f352","description": "1O EX-TOURO","details": "BLEND EX-TOURO 180GR NO PAO DE BRIOCHE PRIME, QUEIJO MUCARELA, MAIONESE DE BACON, ALFACE E TOMATE.","unit_price": 38.0}]}],"product_tags": [{"group": "PORTION_SIZE","tags": ["SERVES_2"]}]}]}]}}
Complete Workflow
Example showing how to extract complete restaurant data including menu:
from apify_client import ApifyClientclient = ApifyClient("your_apify_token")actor_id = "yasmany.casanova/ifood-scraper"# Step 1: Get available segmentsseg_run = client.actor(actor_id).call(run_input={"mode": "segments","latitude": "-23.5608786","longitude": "-46.6570743"})segments = client.dataset(seg_run["defaultDatasetId"]).list_items().items[0]['data']print(f"Found {len(segments)} segments")# Step 2: Get restaurants (use HOME_FOOD_DELIVERY for restaurants)stores_run = client.actor(actor_id).call(run_input={"mode": "stores","latitude": "-23.5608786","longitude": "-46.6570743","alias": "HOME_FOOD_DELIVERY","request_waiting": 3})restaurants = client.dataset(stores_run["defaultDatasetId"]).list_items().items[0]['data']print(f"Found {len(restaurants)} restaurants")# Step 3: Get detailed info for first restaurantfirst_restaurant = restaurants[0]store_id = first_restaurant['store_id']info_run = client.actor(actor_id).call(run_input={"mode": "store_info","latitude": "-23.5608786","longitude": "-46.6570743","store_id": store_id,"request_waiting": 3})info = client.dataset(info_run["defaultDatasetId"]).list_items().items[0]['data']print(f"Restaurant: {info['name']}")print(f"Address: {info['street_name']}, {info['street_number']}")print(f"Rating: {info['user_rating']} ({info['user_rating_count']} reviews)")# Step 4: Get complete menumenu_run = client.actor(actor_id).call(run_input={"mode": "menu","latitude": "-23.5608786","longitude": "-46.6570743","store_id": store_id,"request_waiting": 3})menu = client.dataset(menu_run["defaultDatasetId"]).list_items().items[0]['data']categories = menu['categories']print(f"Menu has {len(categories)} categories")for category in categories:print(f"- {category['name']}: {category['items_count']} items")for item in category['items'][:3]: # Show first 3 itemsprint(f" - {item['description']}: R$ {item['unit_min_price'] or item['unit_price']}")
Limitations
- One request per actor run
- Up to 100 restaurants per stores request
- Pagination managed by client
- Real-time data dependent on iFood API availability
Pricing
Charged per restaurant result. Each mode counts as:
- Segments: 1 result per segment
- Stores: 1 result per restaurant
- Store Info: 1 result per restaurant
- Menu: 1 result per restaurant (includes full menu)
Technical Details
- Language: Python 3.12
- Validation: Pydantic models
- HTTP Client: httpx (async)
- Logging: Structured logs with loguru
- Error Handling: Comprehensive exception management
Support
For issues or questions:
- Check input parameters match the examples
- Verify coordinates are valid Brazilian locations
- Ensure
request_waiting >= 3
seconds - Review actor logs for detailed error messages
Data Quality
All extracted data is:
- Validated using Pydantic models
- Structured in consistent JSON format
- Cleaned and normalized
- Real-time from iFood API
Version
Current version: 1.0
Updated: October 2025