Ifood Restaurant Scraper avatar
Ifood Restaurant Scraper

Pricing

$16.90 / 1,000 results

Go to Apify Store
Ifood Restaurant Scraper

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

Yasmany Grijalba Casanova

Maintained by Community

Actor stats

4

Bookmarked

54

Total users

8

Monthly active users

6 days ago

Last modified

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

ParameterTypeDescription
modestringstores, store_info, menu, or reviews
latitudestringLocation latitude (e.g., "-23.5608786")
longitudestringLocation longitude (e.g., "-46.6570743")
store_idstringRestaurant ID (required for store_info, menu, and reviews modes)
maxReviewsintegerMaximum reviews to fetch (1-1000, default: 100, reviews mode only)

Optional - Proxy Settings

ParameterDefaultDescription
useApifyProxyfalseEnable Apify Proxy for better reliability
proxyGroups["RESIDENTIAL"]Proxy type (RESIDENTIAL recommended)
proxyCountry"BR"Country code (BR recommended for iFood)

Optional - Advanced

ParameterDefaultDescription
maxRetries3Retry attempts for failed requests
timeout30Request 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
}
}
{
"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)

FieldDescription
nameRestaurant name
segmentFood category (Pizza, Japanese, etc.)
store_idUnique restaurant identifier
availableOpen/closed status
distanceDistance in kilometers
user_ratingAverage rating (0-5)
feeDelivery fee in cents
time_min_minutesMinimum delivery time
time_max_minutesMaximum delivery time
is_ifood_deliveryiFood delivery vs restaurant delivery

Store Info Mode (25 fields)

FieldDescription
nameRestaurant name
main_categoryPrimary food category
city, state, districtLocation details
street_name, street_number, zip_codeFull address
latitude, longitudeCoordinates
user_rating, user_rating_countRatings and review count
delivery_fee, delivery_timeDelivery details
minimum_order_valueMinimum order amount
FieldDescription
categoriesMenu sections
itemsProducts in each category
unit_priceItem price
detailsItem description
choicesCustomization options (sizes, extras)
garnish_itemsIndividual options with prices

Reviews Mode

FieldDescription
total_reviews_availableTotal reviews for the restaurant
reviews_fetchedNumber of reviews returned
customer_nameCustomer's first name
ratingRating (1-5)
gradeGrade given
commentCustomer comment (if any)
comment_dateWhen the review was posted
order_dateWhen the order was placed
order_numberOrder reference number
statusReview status
moderatedWhether review was moderated

Code Example

from apify_client import ApifyClient
client = ApifyClient("your_apify_token")
# Get restaurants near a location
run = client.actor("YOUR_USERNAME/ifood-scraper").call(run_input={
"mode": "stores",
"latitude": "-23.5608786",
"longitude": "-46.6570743"
})
# Get results
items = client.dataset(run["defaultDatasetId"]).list_items().items
restaurants = 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

  1. Open Google Maps
  2. Right-click on any location in Brazil
  3. Click on the coordinates to copy them
  4. Use the first number as latitude and second as longitude

Example Coordinates

CityLatitudeLongitude
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:

  1. No results: Verify coordinates are in Brazil
  2. Invalid store_id: Use the exact UUID from stores mode
  3. Timeout errors: Try enabling proxy or increasing timeout
  4. Empty menu: Some restaurants may have incomplete data on iFood

For additional help, contact the developer through Apify.

Changelog

VersionChanges
2.1Added reviews mode for customer reviews extraction
2.0Improved reliability, automatic retries, streamlined API
1.0Initial release