iFood Scraper — Menus, Reviews, CNPJ & Address avatar

iFood Scraper — Menus, Reviews, CNPJ & Address

Pricing

from $15.00 / 1,000 restaurant scrapeds

Go to Apify Store
iFood Scraper — Menus, Reviews, CNPJ & Address

iFood Scraper — Menus, Reviews, CNPJ & Address

iFood restaurants from delivery URLs or city/address search. One row per store: name, rating, CNPJ, address, hours, menu items with prices when the catalog answers, and optional reviews. Brazil marketplace data for competitive research, dark-kitchen scouting, and store audits.

Pricing

from $15.00 / 1,000 restaurant scrapeds

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

42

Total users

18

Monthly active users

2 days ago

Last modified

Share

Turn iFood delivery URLs — or a city + address search — into one restaurant row: name, rating, CNPJ, street address, phone, hours, menu items with prices when the catalog answers, and optional customer reviews.

Brazil marketplace records. One billed row per restaurant.

How it works

How the iFood restaurant scraper works

Why Use This Scraper?

  • CNPJ on the row. Company tax id comes with the street address — useful for matching a store to a legal entity.
  • Hours and phone included. Weekday opening windows and the store phone, not just the card rating.
  • Delivery URLs or raw UUIDs. The same {city}/{slug}/{uuid} link you copy from ifood.com.br, or the merchant id alone.
  • One row per restaurant. No menu-item explosion, no join keys. Name, geo, and documents sit on the same record.
  • Menus and reviews on the same row. Turn on includeMenu and includeReviews and the dishes, prices and customer comments land next to the CNPJ and address. menuSource tells you whether a menu came back.
  • Find restaurants by city. Name a city and, if you like, a dish such as pizza; matching restaurants come first. No links needed.

Overview

Built for researchers, dark-kitchen operators, and agencies that need the public merchant card plus extra (address, CNPJ, hours), optional reviews, and menu items when the catalog answers. Paste delivery URLs or search by city + address. Each restaurant becomes at most one dataset row.

Supported Inputs

InputExampleReturns
Delivery URLhttps://www.ifood.com.br/delivery/curitiba-pr/ponto-da-pizza---boa-vista-santa-candida/f7cdb6c5-ea33-4967-af51-76fd85a83ea3That restaurant
Merchant UUIDf7cdb6c5-ea33-4967-af51-76fd85a83ea3Same restaurant, URL rebuilt from the slug

City search: city (curitiba-pr or Curitiba, PR), optionally with a dish or name in query and a street in address. Used only when restaurantUrls is empty.

Not supported: logged-in prices, or other delivery apps such as PedidosYa and Rappi.

Use Cases

You are a…Use it to…
Market researcherBuild a store list with CNPJ + neighborhood for a city you already sampled
Competitor analystTrack rating, min order, and hours on a fixed set of restaurants
Dark-kitchen operatorConfirm legal entity and address for nearby iFood stores
Agency / data teamEnrich a spreadsheet of iFood links before a client report

How It Works

  1. Resolve restaurants from delivery URLs / UUIDs, or from city + address + query search.
  2. Fetch the merchant card from iFood's public marketplace API (/v1/merchants/{uuid}?channel=IFOOD).
  3. Fetch the extra record (address, CNPJ, phone, hours) when includeExtra is on.
  4. Fetch the catalog when includeMenu is on. Empty catalogs land as menuSource: unavailable.
  5. Fetch evaluations when includeReviews is on.
  6. Merge into one restaurant row and push it. Base charge is per restaurant; extra / menu / reviews are billed only when those fields actually land.

Input Configuration

FieldTypeDescription
restaurantUrlsarrayRestaurant links or the id at the end of one. While filled, the city search is not used.
querystringDish or restaurant name (pizza); matching restaurants come first. City search only.
addressstringStreet in the city, used when the city alone finds nothing. City search only.
citystringcuritiba-pr or Curitiba, PR. City search only.
includeExtrabooleanStreet address, CNPJ, phone, hours. Charged only when at least one comes back. Default true.
includeReviewsbooleanCustomer reviews. Charged once per restaurant, not per review. Default false.
includeMenubooleanDishes with prices. Charged only when menu[] has at least one dish. Default true.
maxMenuItemsintegerMost dishes kept per restaurant while menuMode is limited. Default 50.
menuModestringlimited (up to maxMenuItems) or all. Default limited.
maxRestaurantsintegerRestaurants in total, each a charged row. Default 50.
maxConcurrencyintegerRestaurants read at once, 1–8. Default 4.

One restaurant

{
"restaurantUrls": [
"https://www.ifood.com.br/delivery/curitiba-pr/ponto-da-pizza---boa-vista-santa-candida/f7cdb6c5-ea33-4967-af51-76fd85a83ea3"
],
"maxRestaurants": 1
}

Several stores, card only

{
"restaurantUrls": [
"f7cdb6c5-ea33-4967-af51-76fd85a83ea3",
"bc5292a6-d4e4-4cd4-b108-0ed1ac110882"
],
"includeExtra": false,
"includeMenu": false,
"maxRestaurants": 2
}

Reviews + city search

{
"city": "curitiba-pr",
"query": "pizza",
"includeReviews": true,
"maxRestaurants": 10
}

Output Overview

The dataset holds one row per restaurant. Identity, rating, category, and availability come from the merchant card. Street address, CNPJ, phone, and weekday hours come from the extra record. Menu items and reviews sit on the same row when those flags are on. Fields iFood does not publish stay null or [].

Output Samples

Delivery URL → Ponto da Pizza - Boa Vista (Curitiba):

{
"uuid": "f7cdb6c5-ea33-4967-af51-76fd85a83ea3",
"shortId": 178028,
"name": "Ponto da Pizza - Boa Vista",
"slug": "curitiba-pr/ponto-da-pizza---boa-vista-santa-candida",
"url": "https://www.ifood.com.br/delivery/curitiba-pr/ponto-da-pizza---boa-vista-santa-candida/f7cdb6c5-ea33-4967-af51-76fd85a83ea3",
"city": "curitiba-pr",
"description": "Pizzaria Forno Esteira, Trabalhamos com Pizzas e Calzones.",
"category": "Pizza",
"priceRange": "EXPENSIVE",
"currency": "BRL",
"rating": 4.9,
"reviewsCount": 803,
"available": true,
"minimumOrderValue": 25,
"address": "Rua Fernando de Noronha, 735, SANTA CANDIDA, CURITIBA - PR, 82640350",
"street": "Rua Fernando de Noronha",
"streetNumber": "735",
"district": "SANTA CANDIDA",
"cityName": "CURITIBA",
"state": "PR",
"zipCode": "82640350",
"phone": "+55 41 32561523",
"cnpj": "17636410000126",
"openingHours": [
{ "dayOfWeek": "MONDAY", "start": "18:00:00", "durationMinutes": 315 }
],
"menu": [],
"menuItemCount": 0,
"menuSource": "unavailable",
"reviews": [
{
"customerName": "Diego",
"rating": 5,
"comment": "Adoro perfeito",
"commentedAt": "2026-09-28T22:16:30.940Z",
"visible": false
}
],
"reviewAverages": [
{ "title": "Embalagem", "grade": 4.9, "count": 803 }
]
}

Key Output Fields

Identity: uuid, shortId, name, slug, url, city, description, category, logoUrl, coverUrl

Commerce: priceRange, currency, rating, reviewsCount, available, minimumOrderValue, deliveryFee, deliveryFeeOriginal, deliveryTime, distance, features, paymentCodes

Legal / location: cnpj, address, street, streetNumber, streetCompl, district, cityName, state, zipCode, country, latitude, longitude

Contact / hours: phone, areaCode, openingHours[]

Menu: menu[], menuItemCount, menuSource, avgMenuPrice, cheapestPrice, mostExpensivePrice, cheapestItem, mostExpensiveItem

Reviews: reviews[], reviewAverages[], recentReviewsCount

FAQ

Do I need an iFood account? No. The actor reads public marketplace records.

Can I search a city for pizza? Yes: set city and query, and leave restaurantUrls empty. If no restaurant turns up, the run fails with 0 rows.

Where is the menu? includeMenu: true (default). When the catalog answers you get menu[] plus avgMenuPrice / cheapest / most expensive. When it is blocked, menuSource is unavailable and menu is [] — the restaurant row still bills.

Are reviews billed one-by-one? No. One restaurant-reviews event per restaurant when reviews[] is non-empty. Extra and menu work the same way — billed only when the data is on the row.

What if a URL is dead? That restaurant is skipped and not billed. A run with zero successful rows fails.

Is CNPJ always present? When includeExtra is true and iFood publishes documents for that merchant. Ghost kitchens sometimes omit it.

Support

Open an issue on the Apify Store listing or email contact@data-slayer.com.

Additional Services

Need a custom export, a scheduled city monitor, or a merge with another delivery marketplace? Email the same address with the store list and the fields you need.

Explore More Scrapers

🤖 For AI Agents & LLM Apps

Compact reference for agents calling this actor via the Apify MCP server or the Apify API (memo23/ifood-scraper).

Purpose: Public iFood restaurant records in Brazil. URL mode or city/address search. One row per store, with CNPJ/address/hours, optional menu, optional reviews.

Minimal input:

{
"restaurantUrls": [
"https://www.ifood.com.br/delivery/curitiba-pr/ponto-da-pizza---boa-vista-santa-candida/f7cdb6c5-ea33-4967-af51-76fd85a83ea3"
],
"includeReviews": true,
"maxRestaurants": 5
}

Output: one row per restaurant — uuid, name, url, city, category, rating, reviewsCount, cnpj, address, phone, openingHours[], menu[{id, name, details, section, price, originalPrice, imageUrl}], menuSource, avgMenuPrice, reviews[{customerName, rating, comment, commentedAt}], reviewAverages[], scrapedAt.

Behaviors an agent should know:

  • Always set maxRestaurants. Each written row is billed ($0.015). Extra ($0.005), menu ($0.010), and reviews ($0.005) fire only when those fields are non-empty.
  • restaurantUrls wins over city / address / query.
  • includeReviews defaults false. includeMenu defaults true.
  • menuSource is catalog, catalog-search, empty, or unavailable.
  • Failed URLs are skipped and not billed. Zero successful rows fail the run.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by iFood.com Agência de Restaurantes Online S.A. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available iFood marketplace records — no authenticated endpoints, paid features, or content behind the ifood.com.br login wall. Users are responsible for ensuring their use complies with ifood.com.br's Terms of Service, applicable data-protection law (LGPD, GDPR, CCPA, etc.), and any contractual obligations of their own organization.


SEO Keywords

ifood scraper, ifood restaurant scraper, ifood menu scraper, ifood reviews, ifood cnpj, ifood address, ifood delivery url, brazilian restaurant data, ifood marketplace, dark kitchen research, ifood store hours, ifood phone, food delivery intelligence, sao paulo restaurant data, ifood merchant uuid, restaurant competitive intelligence, brazil food delivery