iFood Restaurant Scraper - Menus, Reviews & CNPJ avatar

iFood Restaurant Scraper - Menus, Reviews & CNPJ

Pricing

from $4.00 / 1,000 restaurants

Go to Apify Store
iFood Restaurant Scraper - Menus, Reviews & CNPJ

iFood Restaurant Scraper - Menus, Reviews & CNPJ

Encontre restaurantes do iFood por cidade, CEP ou endereço. Colete CNPJ e dados cadastrais, notas, entrega e horários, com cardápios e avaliações opcionais. Exporte para Excel, CSV ou JSON. iFood scraper independente, sem vínculo com o iFood.

Pricing

from $4.00 / 1,000 restaurants

Rating

0.0

(0)

Developer

roomy_tweet

roomy_tweet

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share

Português | English documentation

Encontre restaurantes do iFood com CNPJ, cardápios e avaliações

Monte listas de restaurantes para prospecção B2B e pesquisa de mercado a partir de uma cidade, CEP, endereço ou URL do iFood. Receba um registro por restaurante com os dados disponíveis de CNPJ, cadastro público da empresa, endereço, notas, entrega e horários. Ative a busca de pratos e preços e as avaliações como adicionais.

A partir de US$4 por 1.000 restaurantes. Exporte para Excel, CSV ou JSON, agende novas coletas ou conecte pela API do Apify. Não é necessário ter conta no iFood; os testes realizados funcionaram sem proxy.

Ferramenta independente, sem vínculo, patrocínio ou endosso do iFood. A marca é usada apenas para identificar a origem dos dados.

O que você pode fazer com os dados?

ObjetivoDados úteis
Encontrar restaurantes para oferecer produtos e serviçosNome, CNPJ, bairro, cidade, categoria, porte e situação cadastral
Comparar preços de pratos na regiãoPratos encontrados, preços, promoções e estatísticas
Pesquisar marcas e cozinhas compartilhadasCoincidências de endereço ou CNPJ na amostra coletada
Comparar ofertas de deliveryNotas, quantidade de avaliações, taxa e prazo de entrega, pedido mínimo e horários
Acompanhar feedback dos clientesResumo das notas recentes, comentários e respostas disponíveis

Endereço compartilhado é um sinal para pesquisa; sozinho, não comprova que o estabelecimento seja uma dark kitchen.

Comece com 10 restaurantes

  1. Clique em Try for free e use o exemplo abaixo.
  2. Para o primeiro teste, mantenha a cobertura da cidade inteira e os adicionais desligados.
  3. Defina Max cost per run como US$0,05 ou mais e inicie a execução.
  4. Abra a tabela Overview e exporte os resultados.
{
"places": ["Av. Paulista, 1000, São Paulo"],
"searchTerms": ["pizza"],
"maxRestaurants": 10,
"coverWholeCity": false,
"includeDetails": true,
"includeRegistry": true,
"includeMenu": false,
"includeReviews": false
}

Dez registros básicos custam US$0,04005, incluindo um início com a memória configurada. O valor de US$0,05 é o teto mínimo selecionável, não uma cobrança mínima. O teste usa os créditos disponíveis na sua conta Apify; não é um serviço gratuito ilimitado. Se houver menos resultados, serão cobrados menos eventos de restaurante.

Preços e controle de orçamento

EventoPreço por restauranteQuando é cobrado
RestauranteUS$0,004Um registro é salvo, com os dados disponíveis e o enriquecimento cadastral solicitado
Busca de cardápio+ US$0,004includeMenu está ligado e o registro salvo contém pratos
Avaliações+ US$0,003includeReviews está ligado e o registro salvo contém resumo de avaliações; pode não haver comentários escritos

Há também US$0,00005 por início, na faixa de memória configurada de até 1 GB. Os adicionais são cobrados por restaurante, não por prato ou comentário. Não existe cobrança automática adicional por item do dataset. Os custos de execução na plataforma estão incluídos nos eventos; serviços externos opcionais podem ter custos próprios e interações com o armazenamento após a execução seguem os preços da plataforma.

Com teto de US$0,05 e os dois adicionais ligados, a coleta admite até quatro restaurantes, reservando o custo possível dos adicionais antes de começar. Dados adicionais indisponíveis não geram o respectivo evento, e pode sobrar saldo. maxRestaurants: 0 remove o limite de quantidade da entrada, mas mantém o limite de orçamento da execução paga. A aba Pricing prevalece se os preços mudarem.

O que é importante saber antes de usar?

  • O cardápio é reconstruído pela busca pública e pode estar incompleto. Não há garantia de cobertura de todos os pratos ou restaurantes da cidade.
  • CNPJ e dados cadastrais dependem da disponibilidade das fontes. Campos podem estar vazios ou desatualizados.
  • Dados de entrega dependem do local pesquisado. Coincidências de endereço e CNPJ comparam a amostra admitida pela execução.
  • Os campos de autoria das avaliações são omitidos e palavras do nome do autor são mascaradas nos textos; isso não garante a remoção de toda informação pessoal do texto livre.
  • Se uma execução for interrompida, os registros já salvos continuam disponíveis; o restaurante em andamento pode ser omitido.

Para dúvidas ou problemas, abra um chamado na aba Issues, com o link da execução e o resultado esperado. Consulte abaixo a documentação completa em inglês para todos os campos de entrada, saída, fontes e limitações.


Find iFood restaurants. Turn CNPJs into useful business data.

Build a restaurant prospecting list or research a local delivery market from a city, CEP, address or iFood restaurant URL. Get CNPJ, public company registry data, ratings, delivery information and opening hours in one record per restaurant, with optional menu prices and written reviews.

From US$4 per 1,000 restaurant records. Export to JSON, CSV or Excel, schedule repeat runs, or connect through the Apify API and integrations. No iFood account is required; tested runs used lightweight HTTP requests without proxies.

Independent tool, not affiliated with, endorsed by or sponsored by iFood. “iFood” is used only to identify the source of the data.

What can you do with this iFood scraper?

Your goalUseful fields
Build B2B restaurant listsName, CNPJ, neighborhood, city, category, company size and registration status
Compare local menu pricesAvailable dishes, current prices, promotions, median price and dish count
Research shared kitchens and brandsRestaurants in the collected sample sharing an address or CNPJ
Compare delivery offersRating, review count, delivery fee and time, minimum order and opening hours
Track customer feedbackRecent rating sample, available written comments and restaurant replies

Shared-address matches are research signals: they do not prove that a business is a dark kitchen. Registry data describes the registered company and can differ from the restaurant's trading identity.

Try 10 restaurants first

  1. Click Try for free and use the input below.
  2. Keep whole-city coverage and the optional add-ons off for your first run.
  3. Set Max cost per run to at least US$0.05 and start the Actor.
  4. Open the Overview dataset table, then export JSON, CSV or Excel.
{
"places": ["Av. Paulista, 1000, São Paulo"],
"searchTerms": ["pizza"],
"maxRestaurants": 10,
"coverWholeCity": false,
"includeDetails": true,
"includeRegistry": true,
"includeMenu": false,
"includeReviews": false
}

Ten base records cost US$0.04005, including one start at the configured memory limit. The US$0.05 setting is the minimum selectable budget ceiling, not a minimum charge. Trials use your available Apify credits; this is not an unlimited free service. If fewer restaurants are found, fewer restaurant events are billed.

To research dishes and feedback, turn on includeMenu and includeReviews. With a US$0.05 budget, the Actor conservatively admits up to 4 restaurants with both add-ons, reserving their possible charges before collecting them.

Pricing: what do you pay for?

EventPriceCharged when
Restaurant (restaurant)US$0.004 per restaurantOne restaurant record is saved, whether or not all optional source fields are available
Menu (menu)+ US$0.004 per restaurantMenu search is enabled and the saved record contains dishes
Reviews (reviews)+ US$0.003 per restaurantReviews are enabled and the saved record contains a review summary; written comments may be empty
Actor start (apify-actor-start)US$0.00005 per runThe run starts, at this Actor's maximum of 1 GB of memory

The restaurant price includes available details and requested company registry enrichment. Menu and review charges apply per restaurant, not per dish or individual review. There is no additional automatic dataset-item event. Platform execution costs are included in the event prices; optional user-configured external services can have their own costs. Apify may charge for storage interactions after a run under its platform pricing.

Saved recordsBase records onlyWith menu and reviews on every record
10US$0.04005US$0.11005
100US$0.40005US$1.10005
1,000US$4.00005US$11.00005

These examples use the currently configured event prices, one run and all requested add-ons returned. The Pricing tab is authoritative if pricing changes.

How the run budget works

  • The Actor reads the execution's actual event prices and previous charges, including the start event.
  • Before discovery, it limits the number of restaurants to what fits both maxRestaurants and the remaining budget, reserving every requested add-on.
  • After discovering restaurant details, it enriches, saves and bills one restaurant at a time and checks the remaining budget before the next one.
  • Missing menu or review data is not billed as an add-on. Because discovery reserves the maximum requested bundle, a run can finish below its budget with fewer rows than a base-only price calculation would suggest.
  • maxRestaurants: 0 removes the input count limit. It does not remove the paid run's budget limit.

If a run is interrupted, already saved records remain available. An in-progress restaurant may be omitted. A process crash between saving and billing is not an exactly-once delivery guarantee.

What data is returned?

One dataset row represents one restaurant. The Overview table puts name, category, rating, delivery fee, district, city, CNPJ and registration status together for easy scanning.

Data groupExamples
Restaurantid, name, url, category, rating, ratingCount, logoUrl
Location and deliveryaddress, district, city, state, zipCode, coordinates, deliveryFee, delivery time
Business registrycnpj, company.status, company.isActive, opening date, size, MEI/Simples, CNAE
Operating signalsOpening hours, minimum order, iFood delivery, weekly open hours, shared-address/CNPJ matches
Optional menu searchmenuItems, price range, median price, promotions and dish count
Optional reviewsreviewSummary, recent average and sample size, written comments and replies

For example, a shortened record from an earlier São Paulo test looked like this. It is an illustration of the output format, not a current price quote:

{
"name": "Pizzaria Piciocchi Pizza Mooca",
"category": "Pizza",
"rating": 4.8,
"cnpj": "50549043000107",
"city": "São Paulo",
"company": {
"status": "ATIVA",
"size": "MICRO EMPRESA",
"isMei": false
},
"menu": {
"menuItemCount": 41,
"priceMedian": 49.9
}
}

Source fields may be missing, null or empty. CNPJ and registry enrichment are not guaranteed for every restaurant. Delivery fees, delivery times and distances refer to the searched delivery location. Shared-address and shared-CNPJ counts compare the admitted restaurant sample; limited or interrupted runs do not represent the entire city or all records ultimately saved.

Input options

FieldWhat it does
placesCities ("Curitiba, PR"), CEPs ("01310-100") or street addresses. Add the state to disambiguate city names.
searchTermsDishes, cuisines or restaurant names. Different terms can find different restaurants.
restaurantUrlsiFood restaurant URLs to fetch directly. They can be combined with searches.
maxRestaurantsMaximum unique restaurant candidates; default 10. Zero removes this input limit, subject to the run budget.
coverWholeCitySearch a grid inside the city's official boundary rather than one central point. Off by default.
onlyInsideCityExclude restaurants whose address is in a neighboring municipality. On by default when a city is resolved. Excluded restaurants are not billed.
gridSpacingKm / maxGridPointsGrid spacing (default 3 km) and point cap (default 100). More points take longer.
maxResultsPerSearchSearch results to inspect per point and term; default 300, in pages of 100.
locationsAdvanced exact coordinates as { "name", "latitude", "longitude" }.
includeDetailsFetch available CNPJ, address and hours. On by default. Needed for registry enrichment and some direct-URL menu searches.
includeRegistryPublic company registry enrichment. On by default when details are enabled.
includeMenuSearch for each restaurant's available menu dishes and prices. Off by default.
includeMatchedItemsInclude dishes already matched by the discovery search, without a separate menu-search charge.
includeReviewsFetch a review summary and available written reviews. Off by default.
maxReviewsPerRestaurant / maxReviewPagesComment limit (default 20) and pages to inspect (default 2, up to 30 ratings per page).
includeRegistryPhoneOptional registry business phone; off by default and never returned for sole traders.
maxRequestsPerMinuteOverall pacing, default 100. Searches and reviews have additional adaptive delays.
proxyConfigurationOptional. Existing tests worked without proxies; source availability can change.

For larger city research, enable coverWholeCity, use several relevant terms and choose a suitable restaurant cap and budget. Sampling points, search ranking, outside-city exclusions and source limits mean that whole-city mode does not guarantee every restaurant. Excluded candidates can consume part of the discovery cap, so fewer rows may be returned.

Is this the complete official iFood menu?

No completeness guarantee is made. The Actor reconstructs menu data from public search results, rather than the protected official catalog. Some dishes, options, delivery-specific offers and very large catalogs may be missing. No CAPTCHA is bypassed.

In an earlier 30-restaurant test, name searches returned a median of 52 dishes and recovered 99% of the dishes that other tested searches had found. That is agreement between searches, not 99% coverage of the official app menu. A previous 100-restaurant Rio run returned dishes for all 100, with a median of 46 dishes. These are historical samples, not service guarantees or benchmarks of this release's runtime.

Why can reviews have a summary but no comments?

Many iFood evaluations contain only a rating. reviewSummary can therefore be present while reviews is empty; the review event still applies when the summary is returned. recentAverage describes the ratings read by this run, and recentSampleSize gives the sample size. It is not necessarily the restaurant's all-time average. Per-criterion grades are returned only when the source reports different values.

Data sources and privacy

  • Restaurant and dish data comes from publicly accessible iFood marketplace responses. Availability, prices and ratings can change.
  • Company enrichment uses Receita Federal open data through Minha Receita and BrasilAPI. These community services can be unavailable or behind the live registry.
  • For MEI and empresário individual, the tool omits the registry legal name and phone. Partners/QSA and registry email addresses are not returned.
  • Review author fields, order numbers and survey IDs are omitted. Words of the author's name with three or more letters are masked in comments and replies. Free text can still contain other personal information; it is not a guarantee of complete anonymization.
  • Place resolution uses IBGE, AwesomeAPI CEP and Nominatim. Geocoding data © OpenStreetMap contributors, ODbL.
  • Use collected data in accordance with applicable laws, the LGPD and source terms. Registration status and shared-address signals require context; they are not a creditworthiness assessment.

FAQ and support

Does it require an iFood login or a proxy?

No iFood login is required. Prior local and Apify tests worked without proxies. iFood can change availability or impose rate limits, so results are not guaranteed for every IP or location.

Why did my run return fewer restaurants?

Check the budget, restaurant cap, search terms, delivery location and outside-city filter. Some source requests can fail or return no results. A successful run with zero results is not proof that the city has no restaurants; inspect the log before drawing conclusions.

Can I call it from Python, JavaScript or an automation workflow?

Yes. Use the API tab for generated examples, or connect through Apify integrations. Scheduled runs can support repeated research; compare timestamps and the same search location when interpreting changes.

How do I report a problem?

Open an issue in this Actor's Issues tab. Include the run URL, the search location and the expected behavior. Keep credentials and private data out of public reports.