iFood Restaurant Scraper avatar

iFood Restaurant Scraper

Pricing

$25.00 / 1,000 results

Go to Apify Store
iFood Restaurant Scraper

iFood Restaurant Scraper

Find restaurants in a nationwide index of 98,000+ iFood Brazil establishments, with address, opening hours and the public company registry, then extract live store profiles, complete menus with prices and customer reviews. Structured output, one row per record.

Pricing

$25.00 / 1,000 results

Rating

5.0

(3)

Developer

Yasmany Grijalba Casanova

Yasmany Grijalba Casanova

Maintained by Community

Actor stats

9

Bookmarked

293

Total users

26

Monthly active users

a day ago

Last modified

Share

Restaurant data from iFood Brazil, the largest food delivery platform in Latin America. Find restaurants in a nationwide index of 98,000+ establishments, enriched with the public company registry, then extract live store profiles, complete menus with prices, and customer reviews. Structured output, one row per record, ready for JSON, CSV, Excel and API integration.

Apify Actor Residential Proxy Brazil


Overview

One Actor, four operation modes. search finds restaurants and returns their store_id; the three live modes read a restaurant from iFood at the moment of the run.

ModeReturnsSourceProxy
searchRestaurants matching name, city, state, category or rating filters: store_id, address, opening hours, rating, CNPJ and the company registryRestaurant index, refreshed periodicallyNone
store_infoThe restaurant profile: address and coordinates, CNPJ, categories, chain, ratings, opening hours, delivery terms, PixiFood, liveResidential
menuEvery menu item with list and promotional prices, description, image and availabilityiFood, liveResidential
reviewsCustomer reviews with ratings, comments, order dates and review datesiFood, liveResidential

Residential proxy. The three live modes require a residential proxy: Apify Residential Proxy, available on paid plans, or your own through the customProxyUrl input, which works on any plan including Free. A run without one stops immediately with an explanatory message, before any extraction cost. search uses no proxy and runs on every plan.


Quick Start

The live modes take one input, the restaurant's store_id. The search mode returns it for every restaurant it finds. It is also 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 ────────────┘

Find restaurants

{
"mode": "search",
"city": "São Paulo",
"state": "SP",
"segment": "Pizza",
"maxResults": 100
}

Every filter is optional and they combine: part of the name, city, state, iFood category, minimum rating, and three presence filters (CNPJ known, profile captured, company registry present). Each row carries the store_id the other modes take and total_matches, for paging with offset. See Search.

Extract a menu

{
"mode": "menu",
"store_id": "f1b60ced-d490-499f-976b-6d3d717d927e"
}

Get restaurant details

{
"mode": "store_info",
"store_id": "f1b60ced-d490-499f-976b-6d3d717d927e",
"latitude": "-23.5608786",
"longitude": "-46.6570743"
}

The coordinates are optional and only store_info reads them: they add the delivery fee, delivery time and distance to that address. Without them the other 31 fields of the profile are identical and those five are null. See Delivery pricing.

Get customer reviews

{
"mode": "reviews",
"store_id": "f1b60ced-d490-499f-976b-6d3d717d927e",
"maxReviews": 100
}

Features

FeatureDescription
Restaurant Search98,000+ restaurants across all 27 Brazilian states, searchable by name, city, state, category and rating, with no proxy
Company RegistryLegal name, registry status, size, legal nature, main activity (CNAE), opening date and share capital from Brazil's public company register, joined by CNPJ
Store ProfilesAddress with coordinates, CNPJ, categories, chain, ratings, opening hours by day, delivery terms and Pix acceptance
Complete MenusEvery item with list price, promotional price, description, image and availability
Customer ReviewsRatings, comments, order dates and review dates, up to 1,000 per run
Live DataPrices, promotions, availability, delivery terms and reviews read at the moment of the run
Structured OutputOne row per record, a dataset view per mode, direct export to JSON, CSV and Excel
Predictable RunsExplicit NO_RESULTS rows, explicit failures, and a clear stop when no proxy is available

Use Cases

  • Market mapping: list the restaurants of a category in a city or state, with ratings, address and CNPJ where known
  • Account qualification: confirm a restaurant's legal entity, registry status, size, legal nature and opening date before onboarding
  • Price monitoring: track menu prices and promotions over time
  • Competitor analysis: compare ratings, delivery fees, delivery times and assortment
  • Menu intelligence: measure category depth, item counts and discount depth by restaurant or chain
  • Reputation monitoring: follow customer reviews and sentiment

Input Parameters

One input selects the operation, mode. The three live modes also take a store_id. Every other parameter applies to one mode, and the input form groups them that way.

ParameterApplies toDescription
modeallsearch, store_info, menu or reviews
store_idstore_info, menu, reviewsRequired for those three. Restaurant UUID, from search or from the last segment of its iFood URL
searchTermsearchPart of the restaurant name; accents and case do not matter
citysearchCity name
statesearchTwo-letter state code, such as SP
segmentsearchiFood category, such as Pizza or Lanches
minRatingsearchMinimum rating, 0 to 5
onlyWithCnpjsearchOnly restaurants whose CNPJ is known. Default: false
onlyWithProfilesearchOnly restaurants with a captured profile. Default: false
onlyWithCompanysearchOnly restaurants with the company registry block. Default: false
maxResultssearchRows per run, 1 to 1,000. Default: 100
offsetsearchRows to skip, for paging. Default: 0
maxReviewsreviewsReviews to fetch, 1 to 1,000. Default: 100
latitudestore_infoDelivery address, to price delivery to it
longitudestore_infoThe other half of that address
useApifyProxylive modesEnable Apify Proxy. Default: true
proxyGroupslive modesProxy group for Apify Proxy. Default: ["RESIDENTIAL"]
proxyCountrylive modesProxy country code. Default: BR
customProxyUrllive modesYour own residential proxy; overrides the three settings above
maxRetrieslive modesRetry attempts for failed requests, 1 to 10. Default: 3
timeoutlive modesRequest timeout in seconds. Default: 30

search queries a restaurant index maintained by Cnova Tech and refreshed periodically. It holds one row per restaurant with the fields iFood shows on the public store page, plus the public company registry joined by CNPJ. Filters are case and accent insensitive: acai finds Açaí, sao paulo finds São Paulo. The categories are iFood's own, as shown in the app; the largest are Brasileira, Lanches, Pizza, Doces & Bolos, Açaí, Japonesa, Marmita, Padaria, Sorvetes, Salgados, Saudável, Italiana, Pastel, Carnes, Árabe, Chinesa, Hambúrguer and Cafeteria.

Coverage as of October 2026:

Restaurants98,000+ in 160+ cities and all 27 states, across 57 categories
With full profileabout 37,000: street address, coordinates, price range, minimum order, service flags, opening hours, rating count
With CNPJabout 37,000
With company registryabout 14,500: legal name, status, size, legal nature, main activity, opening date, share capital, Simples Nacional and MEI flags
With corporate contactabout 8,000 companies proper carry the registry phone and email

Results follow a stable order: restaurants with a captured profile first, then by rating count, so paging with offset is deterministic. Every row carries total_matches, the number of restaurants matching the filters in all, and captured_at, when that restaurant was last observed on iFood. Ratings, availability and menus change daily; once you hold a store_id, the live modes read the restaurant as it is now.

Delivery pricing

store_info prices delivery to an address only when you supply one. With latitude and longitude, five fields describe delivery to that point; without them they are null and the other 31 fields are identical.

FieldWith an addressWithout
distance1.5null
delivery_fee8.99null
type_delivery_feeFIXEDnull
delivery_time30null
has_order_trackingtruenull

menu and reviews ignore the coordinates entirely.


Data Sources and Governance

  • Public data only. The index and the live modes carry what iFood shows on a public store page, plus Brazil's public company register (Receita Federal), the same source onboarding and credit checks read nationwide.
  • Corporate contact only. The registry phone and email are published for companies proper. For a MEI or an individual entrepreneur (mei: true, or a legal_nature of the individual kind) the registry holds the owner's personal contact, and those two fields come back null.
  • Never published. Company partners, the registry's address, the iFood merchant phone number (on smaller restaurants, the owner's personal mobile) and iFood's internal payment codes.
  • Reviews carry the customer's first name only, as iFood displays it.
  • Null is not zero. A number is null when iFood states no value and 0 only when it says zero, which keeps free delivery apart from an unpublished fee and an unrated restaurant apart from one rated zero stars.

Output

The dataset holds one item per record: one per restaurant found, one per restaurant profile, one per menu item, one per review. Every row repeats the run context (mode and scraped_at) and carries the store_id, so an exported CSV or Excel file stands on its own. Each mode has its own dataset view with labelled columns.

A run that reaches its source and finds nothing writes a single row with status: "NO_RESULTS" and a message saying why. A run that cannot retrieve data fails with a message. A dataset is never silently empty.

If a run reaches the maximum cost you set for it, the platform keeps the records that fit and the Actor's status message states how many were stored out of how many were found. For search it also gives the offset to continue from, so the rest of the page can be fetched in a second run.

One row per restaurant found. This one carries a captured profile and the company registry block, so every field is filled. The description and the opening hours are shortened here, and the contact values are illustrative.

{
"mode": "search",
"scraped_at": "2026-10-20T03:52:43+00:00",
"total_matches": 1,
"store_id": "a10ea022-8d24-4465-b444-9dd91a8052bc",
"name": "Outback - Moema",
"segment": "Lanches",
"chain_name": "Outback",
"description": "Sejam bem-vindos ao Outback Steakhouse. ...",
"street_name": "ALAMEDA DOS JURUPIS",
"street_number": "1414",
"district": "INDIANOPOLIS",
"city": "São Paulo",
"state": "SP",
"zip_code": "04088004",
"latitude": -23.610105,
"longitude": -46.665215,
"price_range": "EXPENSIVE",
"minimum_order_value": 30,
"has_delivery": true,
"has_takeout": true,
"has_scheduling": false,
"uses_ifood_logistics": true,
"business_model": "Full Service",
"opening_hours_text": "Mon 10:45-23:00; Tue 10:45-23:00; ...; Sun 10:45-23:00",
"opening_hours": [
{ "day_of_week": "MONDAY", "opens_at": "10:45", "closes_at": "23:00" },
{ "day_of_week": "FRIDAY", "opens_at": "10:45", "closes_at": "23:45" }
],
"user_rating": 4.8,
"user_rating_count": 918,
"available_at_capture": true,
"is_super_restaurant": false,
"logo": "https://static.ifood-static.com.br/image/upload/t_medium/logosgde/a10ea022-8d24-4465-b444-9dd91a8052bc/202008102053_Khho_i.png",
"url": "https://www.ifood.com.br/delivery/sao-paulo-sp/outback---moema-indianopolis/a10ea022-8d24-4465-b444-9dd91a8052bc",
"profile_captured": true,
"captured_at": "2026-10-13T18:45:02+00:00",
"cnpj": "17.261.661/0007-69",
"company_captured": true,
"company_name": "OUTBACK STEAKHOUSE RESTAURANTES BRASIL S.A.",
"trade_name": "OUTBACK STEAKHOUSE",
"company_status": "ATIVA",
"company_opened_at": "2013-12-18",
"company_type": "FILIAL",
"company_size": "DEMAIS",
"legal_nature": "205-4 - Sociedade Anônima Fechada",
"main_activity_code": "56.11-2-01",
"main_activity": "Restaurantes e similares",
"share_capital": 8887392.24,
"simples_nacional": false,
"mei": false,
"company_phone": "(11) 0000-0000",
"company_email": "contato@example.com.br",
"company_updated_at": "2026-10-13T14:09:40+00:00"
}

A restaurant without a captured profile carries name, segment, chain_name, city, state, user_rating, logo, url and captured_at, with profile_captured: false and the rest null.

Store Info

Shortened 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
}

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"] }]
}

unit_price is always the list price. About one item in five is discounted at any time, with discounts reaching 40%, so read promotional_price before comparing prices.

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.


Integrations

The API tab on the Actor page provides ready-to-use code in Python, JavaScript and cURL, generated with the correct parameters. The Actor also works with Apify's scheduler, webhooks and integrations (Google Sheets, Make, Zapier, n8n, LangChain and others) like any other Actor.


Coverage

This Actor covers restaurants on iFood, anywhere in Brazil: an index to find them, then profiles, menus and reviews for the restaurant you name. iFood's grocery and pharmacy storefronts are outside its scope.


About Cnova Tech

This Actor is built and maintained by Cnova Tech, which builds scrapers, datasets and APIs for public data from marketplaces, e-commerce and delivery platforms. Teams that need the restaurant market as a continuously refreshed product, by city, neighborhood and postal code, under contract and with support, can ask about Data Food Service at cnovatech.com.br or contato@cnovatech.com.br.


FAQ


Support

Check the FAQ first. For anything else, use the Issues tab on the Actor page and we will get back to you.