iFood Restaurant Scraper - Menus, Reviews & CNPJ
Pricing
from $4.00 / 1,000 restaurants
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
Maintained by CommunityActor 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?
| Objetivo | Dados úteis |
|---|---|
| Encontrar restaurantes para oferecer produtos e serviços | Nome, CNPJ, bairro, cidade, categoria, porte e situação cadastral |
| Comparar preços de pratos na região | Pratos encontrados, preços, promoções e estatísticas |
| Pesquisar marcas e cozinhas compartilhadas | Coincidências de endereço ou CNPJ na amostra coletada |
| Comparar ofertas de delivery | Notas, quantidade de avaliações, taxa e prazo de entrega, pedido mínimo e horários |
| Acompanhar feedback dos clientes | Resumo 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
- Clique em Try for free e use o exemplo abaixo.
- Para o primeiro teste, mantenha a cobertura da cidade inteira e os adicionais desligados.
- Defina Max cost per run como US$0,05 ou mais e inicie a execução.
- 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
| Evento | Preço por restaurante | Quando é cobrado |
|---|---|---|
| Restaurante | US$0,004 | Um registro é salvo, com os dados disponíveis e o enriquecimento cadastral solicitado |
| Busca de cardápio | + US$0,004 | includeMenu está ligado e o registro salvo contém pratos |
| Avaliações | + US$0,003 | includeReviews 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 goal | Useful fields |
|---|---|
| Build B2B restaurant lists | Name, CNPJ, neighborhood, city, category, company size and registration status |
| Compare local menu prices | Available dishes, current prices, promotions, median price and dish count |
| Research shared kitchens and brands | Restaurants in the collected sample sharing an address or CNPJ |
| Compare delivery offers | Rating, review count, delivery fee and time, minimum order and opening hours |
| Track customer feedback | Recent 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
- Click Try for free and use the input below.
- Keep whole-city coverage and the optional add-ons off for your first run.
- Set Max cost per run to at least US$0.05 and start the Actor.
- 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?
| Event | Price | Charged when |
|---|---|---|
Restaurant (restaurant) | US$0.004 per restaurant | One restaurant record is saved, whether or not all optional source fields are available |
Menu (menu) | + US$0.004 per restaurant | Menu search is enabled and the saved record contains dishes |
Reviews (reviews) | + US$0.003 per restaurant | Reviews are enabled and the saved record contains a review summary; written comments may be empty |
Actor start (apify-actor-start) | US$0.00005 per run | The 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 records | Base records only | With menu and reviews on every record |
|---|---|---|
| 10 | US$0.04005 | US$0.11005 |
| 100 | US$0.40005 | US$1.10005 |
| 1,000 | US$4.00005 | US$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
maxRestaurantsand 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: 0removes 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 group | Examples |
|---|---|
| Restaurant | id, name, url, category, rating, ratingCount, logoUrl |
| Location and delivery | address, district, city, state, zipCode, coordinates, deliveryFee, delivery time |
| Business registry | cnpj, company.status, company.isActive, opening date, size, MEI/Simples, CNAE |
| Operating signals | Opening hours, minimum order, iFood delivery, weekly open hours, shared-address/CNPJ matches |
| Optional menu search | menuItems, price range, median price, promotions and dish count |
| Optional reviews | reviewSummary, 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
| Field | What it does |
|---|---|
places | Cities ("Curitiba, PR"), CEPs ("01310-100") or street addresses. Add the state to disambiguate city names. |
searchTerms | Dishes, cuisines or restaurant names. Different terms can find different restaurants. |
restaurantUrls | iFood restaurant URLs to fetch directly. They can be combined with searches. |
maxRestaurants | Maximum unique restaurant candidates; default 10. Zero removes this input limit, subject to the run budget. |
coverWholeCity | Search a grid inside the city's official boundary rather than one central point. Off by default. |
onlyInsideCity | Exclude restaurants whose address is in a neighboring municipality. On by default when a city is resolved. Excluded restaurants are not billed. |
gridSpacingKm / maxGridPoints | Grid spacing (default 3 km) and point cap (default 100). More points take longer. |
maxResultsPerSearch | Search results to inspect per point and term; default 300, in pages of 100. |
locations | Advanced exact coordinates as { "name", "latitude", "longitude" }. |
includeDetails | Fetch available CNPJ, address and hours. On by default. Needed for registry enrichment and some direct-URL menu searches. |
includeRegistry | Public company registry enrichment. On by default when details are enabled. |
includeMenu | Search for each restaurant's available menu dishes and prices. Off by default. |
includeMatchedItems | Include dishes already matched by the discovery search, without a separate menu-search charge. |
includeReviews | Fetch a review summary and available written reviews. Off by default. |
maxReviewsPerRestaurant / maxReviewPages | Comment limit (default 20) and pages to inspect (default 2, up to 30 ratings per page). |
includeRegistryPhone | Optional registry business phone; off by default and never returned for sole traders. |
maxRequestsPerMinute | Overall pacing, default 100. Searches and reviews have additional adaptive delays. |
proxyConfiguration | Optional. 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.
Menu coverage and review limitations
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.