iFood Scraper — Anti-Block: Menus, Prices & Reviews
Pricing
from $25.00 / 1,000 restaurant scrapeds
iFood Scraper — Anti-Block: Menus, Prices & Reviews
iFood scraper with URL enrichment. Extract restaurants, menus with prices, reviews and ratings. Pass URLs directly OR search by city. Start FREE.
Pricing
from $25.00 / 1,000 restaurant scrapeds
Rating
4.1
(5)
Developer
viralanalyzer
Maintained by CommunityActor stats
0
Bookmarked
173
Total users
33
Monthly active users
10 days ago
Last modified
Categories
Share
🍴 iFood Scraper — Restaurant Menus, Prices & Reviews
Extract public restaurant data, menu items with prices, delivery information, and review summaries from iFood, with explicit menu coverage metadata.
🇺🇸 English
What does it do?
Extracts public restaurant data from iFood. Get restaurant names, ratings, delivery information, menu items exposed by the available sources, and optional review summaries as structured JSON. Menu coverage fields distinguish local truncation, direct catalog responses, and partial search fallback results.
✨ Two Modes
🔗 URL Mode (NEW) — Enrich specific restaurants
Pass one or more valid iFood restaurant URLs to extract structured data without running city/address discovery. This mode is useful when you already know the restaurants to enrich.
https://www.ifood.com.br/delivery/sao-paulo-sp/bubblekill-patio-paulista-bela-vista/5024be82-d729-41b9-a64f-d44ba306f232
🏙️ Search Mode — Discover restaurants near an address
Set a city and delivery address to discover restaurant cards surfaced by iFood for that location. The Actor processes up to 200 selected restaurants; the actual number and available fields depend on the source response.
Features
- 🔗 URL Enrichment — Paste iFood URLs and extract data directly, no city/address needed
- 🍕 Restaurant Data — Name, rating, delivery fee, category, distance, open/closed status
- 📋 Menu Data & Coverage — Item names, prices, descriptions, optional EAN/GTIN, images when exposed, plus source and coverage metadata
- ⭐ Reviews — Ratings and comments when exposed by the optional reviews source
- 📊 Price Intelligence — Average, cheapest, and most expensive prices computed from returned menu items
- 🏙️ City/Address Search — Accepts Brazilian city slugs and delivery addresses; results depend on iFood coverage for the location
- 🔍 Search & Filter — Filter by cuisine type (pizza, sushi, hamburger, etc.)
- 🛡️ Proxy Fallback — Supports a configured Brazilian residential proxy when a direct search run is blocked
Input
Option A — URL Mode (recommended for specific restaurants)
| Parameter | Type | Description |
|---|---|---|
restaurantUrls | array | List of iFood restaurant URLs to enrich |
includeMenu | boolean | Extract available menu item data (default: true) |
includeReviews | boolean | Extract customer reviews (default: false) |
menuMode | string | limited (default) applies the local cap; all removes only that cap |
maxMenuItems | integer | Local item cap in limited mode (1-500, default: 50); ignored in all |
downloadImages | boolean | Save images to the Key-Value Store (default: false); beta supports this only with menuMode: "limited" |
Example input (URL Mode):
{"restaurantUrls": ["https://www.ifood.com.br/delivery/sao-paulo-sp/bubblekill-patio-paulista-bela-vista/5024be82-d729-41b9-a64f-d44ba306f232"],"includeMenu": true,"menuMode": "limited","maxMenuItems": 30}
Option B — Search Mode (discover restaurants near an address)
| Parameter | Type | Default | Description |
|---|---|---|---|
city | string | sao-paulo-sp | City slug (e.g., rio-de-janeiro-rj) |
address | string | Av Paulista 1000 | Delivery address for location context |
query | string | "" | Search term (e.g., pizza, sushi) |
maxRestaurants | integer | 5 | Max restaurants to extract (1-200) |
includeMenu | boolean | true | Extract available menu item data |
includeReviews | boolean | false | Extract customer reviews |
menuMode | string | limited | limited applies the local cap; all removes only that cap |
maxMenuItems | integer | 50 | Local item cap in limited mode (1-500); ignored in all |
downloadImages | boolean | false | Save images to the Key-Value Store; beta supports this only with menuMode: "limited" |
proxyConfiguration | object | — | Optional fallback for blocked search runs |
Example input (Search Mode):
{"city": "sao-paulo-sp","address": "Av Paulista 1000, Sao Paulo","query": "pizza","maxRestaurants": 20,"includeMenu": true,"menuMode": "all"}
Menu coverage contract
menuMode: "limited"returns at mostmaxMenuItemsper restaurant.menuMode: "all"ignoresmaxMenuItemsand removes only the Actor's local item cap. It does not guarantee a complete external iFood menu.- A direct
catalogresponse with no local truncation is labeledcomplete-relative-to-source-response: complete only relative to the response observed during that run. catalog-searchis a term-search fallback and is always labeledpartial-fallback, even if its pagination is exhausted.- Beta safety gate:
menuMode: "all"cannot be combined withdownloadImages: true; the Actor rejects that input before scraping. Uselimitedfor image downloads orallwithdownloadImages: false.imageDownloadUrlremains present only for successful downloads.
Use these output fields when evaluating coverage:
| Field | Meaning |
|---|---|
menuMode | Requested limited or all mode |
menuSource | catalog, catalog-search, or null |
menuSearchTerms | Comma-separated terms attempted by the fallback, otherwise null |
menuCompletenessStatus | not-extracted, partial-limit-applied, partial-fallback, or complete-relative-to-source-response |
menuItemsDiscovered / menuItemsReturned | Unique items observed before the local cap / items returned in menu |
menuTruncated / menuLimitApplied | Whether the local cap truncated results / the applied cap |
pagesFetched | Successful menu-source page responses: 1 for direct catalog, 0 when not requested/not captured; fallback includes successful empty/repeated pages but not failed 429 attempts |
stopReason | Why collection stopped, such as source exhaustion, local limit, repeated page, deadline, rate limit, or page guard |
Example City Slugs
These are input examples, not a guarantee of current delivery coverage. Results depend on the address and what iFood exposes during the run.
sao-paulo-sp · rio-de-janeiro-rj · belo-horizonte-mg · brasilia-df · curitiba-pr · porto-alegre-rs · salvador-ba · fortaleza-ce · recife-pe · campinas-sp · goiania-go · manaus-am · florianopolis-sc · vitoria-es · guarulhos-sp
Output Example
{"name": "Bubblekill Pátio Paulista","city": "sao-paulo-sp","url": "https://www.ifood.com.br/delivery/sao-paulo-sp/bubblekill-patio-paulista-bela-vista/5024be82-d729-41b9-a64f-d44ba306f232","category": "Casa de Sucos","distance": "0.9 km","rating": 4.8,"reviewsCount": 1540,"available": true,"deliveryFee": 4.99,"minimumOrderValue": 10,"currency": "BRL","menuRequested": true,"menuMode": "all","menuExtractionStatus": "captured","menuCompletenessStatus": "complete-relative-to-source-response","menuSource": "catalog","menuSearchTerms": null,"menuItemsDiscovered": 14,"menuItemsReturned": 14,"menuTruncated": false,"menuLimitApplied": null,"pagesFetched": 1,"stopReason": "source-response-exhausted","menuItemCount": 14,"avgMenuPrice": 23.42,"cheapestItem": "Base Leite","cheapestPrice": 18.99,"mostExpensiveItem": "Limonada Tutti Frutti","mostExpensivePrice": 43.98,"topMenuItems": "Base Água (R$19.99) | Base Chá de Hibisco (R$19.99) | Base Leite (R$18.99)","menu": [{"ean": "6952202282873","section": "Escolha sua Combinação","name": "Base Água","details": "Base de água - escolha o tamanho do copo","price": 19.99,"imageUrl": "https://static-images.ifood.com.br/image/upload/..."}],"scrapedAt": "2026-03-01T17:15:00.000Z"}
The example abbreviates the menu array for readability; the coverage counts describe the full result represented by the example.
The optional ean string is included only when the source catalog supplies it.
Pricing
This actor uses Pay Per Event (PPE) pricing:
| Metric | Cost |
|---|---|
restaurant-scraped | $0.025 per restaurant |
Example: 1,000 charged restaurant results generate $25.00 in PPE event charges. The $0.025-per-result rate covers PPE events only; Apify platform usage such as compute/memory, proxy traffic, and storage may be charged separately by Apify.
Use Cases
- Market Research — Analyze restaurant pricing, menu trends, and ratings by area
- Competitive Intelligence — Monitor competitor menus, delivery fees, and availability
- Price Monitoring — Track menu price changes over time across cities
- Location Intelligence — Map restaurant density and categories by neighborhood
- Food Delivery Analytics — Build datasets for food industry analysis
- Business Planning — Research the market before opening a restaurant or dark kitchen
FAQ
What is the difference between URL Mode and Search Mode? URL Mode enriches specific restaurant URLs without city/address discovery. Search Mode collects restaurant cards surfaced by iFood for a city/address context.
Do I need proxies?
For URL Mode, start without a proxy. For Search Mode, also start without one and add a Brazilian residential proxy only if a real run is blocked or returns no restaurants. Configure proxyConfiguration with apifyProxyGroups: ["RESIDENTIAL"] and apifyProxyCountry: "BR" for that fallback.
How should I choose the city?
Use the city slug from an iFood restaurant URL or a slug such as sao-paulo-sp. Search results depend on iFood's current coverage for the delivery address. URL Mode accepts any valid iFood restaurant URL matching the documented format.
How long does a typical run take?
Runtime depends on the number of restaurants, requested fields, menu mode, source availability, proxy/network conditions, and fallback pagination. all can take longer than limited.
Does menuMode: "all" guarantee every menu item?
No. It removes only the local maxMenuItems cap. Check menuCompletenessStatus, menuSource, counts, pagination, and stopReason; catalog-search is always partial.
Can I download images in all mode?
Not in this beta. The Actor rejects menuMode: "all" with downloadImages: true before scraping. Use limited for images or all without image downloads.
What data is NOT available in URL Mode?
Delivery fee, delivery time, and distance are location-dependent and can be null without a delivery context. Availability of other fields also depends on the public source responses observed during the run.
What data is NOT included? The Actor does not access private or logged-in data. When reviews are requested, output can include the public display name and comment exposed by iFood for a review.
Can I filter restaurants by cuisine?
Yes! In Search Mode, use the query parameter: "pizza", "sushi", "hambúrguer", etc.
🇧🇷 Português
O que faz?
Extrai dados públicos de restaurantes do iFood. Obtém nomes, notas, informações de entrega, itens de cardápio expostos pelas fontes disponíveis e resumos opcionais de avaliações em JSON estruturado. Os campos de cobertura diferenciam truncamento local, resposta direta do catálogo e fallback parcial por busca.
✨ Dois Modos
🔗 Modo URL (NOVO) — Enriqueça restaurantes específicos
Cole URLs do iFood e extraia os dados diretamente — sem precisar de endereço ou cidade. Ideal para enriquecer uma lista de restaurantes que você já conhece.
🏙️ Modo Busca — Descubra restaurantes perto de um endereço
Informe cidade e endereço de entrega para descobrir os cards de restaurantes exibidos pelo iFood para aquele contexto. O Actor processa até 200 restaurantes selecionados; a quantidade real e os campos disponíveis dependem da resposta da fonte.
Funcionalidades
- 🔗 Enriquecimento por URL — Cole URLs do iFood e extraia dados direto, sem cidade ou endereço
- 🍕 Dados do Restaurante — Nome, nota, taxa de entrega, categoria, distância, aberto/fechado
- 📋 Dados e Cobertura do Cardápio — Nome, preço, descrição, EAN/GTIN opcional e imagem quando expostos, mais metadados de fonte e cobertura
- ⭐ Avaliações — Notas e comentários quando expostos pela fonte opcional de avaliações
- 📊 Inteligência de Preço — Média, menor e maior preço calculados sobre os itens retornados
- 🏙️ Busca por Cidade/Endereço — Aceita slugs de cidades brasileiras; os resultados dependem da cobertura do iFood no endereço
- 🔍 Busca por Culinária — Filtre por tipo (pizza, sushi, hambúrguer, etc.)
Entrada
Opção A — Modo URL (recomendado para restaurantes específicos)
| Parâmetro | Tipo | Descrição |
|---|---|---|
restaurantUrls | array | Lista de URLs do iFood para enriquecer |
includeMenu | boolean | Extrair os itens de cardápio disponíveis (padrão: true) |
includeReviews | boolean | Extrair avaliações (padrão: false) |
menuMode | string | limited (padrão) aplica o cap local; all remove somente esse cap |
maxMenuItems | integer | Cap local em limited (1-500, padrão: 50); ignorado em all |
downloadImages | boolean | Salvar imagens no Key-Value Store (padrão: false); na beta, somente com menuMode: "limited" |
Exemplo de entrada (Modo URL):
{"restaurantUrls": ["https://www.ifood.com.br/delivery/sao-paulo-sp/bubblekill-patio-paulista-bela-vista/5024be82-d729-41b9-a64f-d44ba306f232"],"includeMenu": true,"menuMode": "limited","maxMenuItems": 30}
Opção B — Modo Busca (descobrir restaurantes perto de um endereço)
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
city | string | sao-paulo-sp | Slug da cidade (ex: rio-de-janeiro-rj) |
address | string | Av Paulista 1000 | Endereço de entrega para contexto |
query | string | "" | Termo de busca (ex: pizza, sushi) |
maxRestaurants | integer | 5 | Máximo de restaurantes (1-200) |
includeMenu | boolean | true | Extrair os itens de cardápio disponíveis |
includeReviews | boolean | false | Extrair avaliações |
menuMode | string | limited | limited aplica o cap local; all remove somente esse cap |
maxMenuItems | integer | 50 | Cap local em limited (1-500); ignorado em all |
downloadImages | boolean | false | Salvar imagens no Key-Value Store; na beta, somente com menuMode: "limited" |
proxyConfiguration | object | — | Fallback opcional para buscas bloqueadas |
Exemplo de entrada (Modo Busca):
{"city": "sao-paulo-sp","address": "Rua Tapes 247, Sao Paulo","query": "","maxRestaurants": 20,"includeMenu": true,"menuMode": "all"}
Contrato de cobertura do cardápio
menuMode: "limited"retorna no máximomaxMenuItemspor restaurante.menuMode: "all"ignoramaxMenuItemse remove somente o cap local do Actor. Isso não garante o cardápio externo completo do iFood.- Uma resposta direta de
catalogsem truncamento local recebecomplete-relative-to-source-response: completa somente em relação à resposta observada naquela execução. catalog-searché um fallback por termos e recebe semprepartial-fallback, mesmo quando sua paginação se esgota.- Gate de segurança da beta:
menuMode: "all"não pode ser combinado comdownloadImages: true; o Actor rejeita essa entrada antes do scraping. Uselimitedpara baixar imagens ouallcomdownloadImages: false.imageDownloadUrlcontinua aparecendo apenas em downloads bem-sucedidos.
Use menuSource, menuSearchTerms, menuCompletenessStatus, menuItemsDiscovered, menuItemsReturned, menuTruncated, menuLimitApplied, pagesFetched e stopReason para avaliar a cobertura. pagesFetched conta respostas bem-sucedidas da fonte: 1 no catálogo direto, 0 quando o menu não foi solicitado/não capturado; no fallback inclui página vazia ou repetida recebida com sucesso, mas não tentativa 429.
Exemplos de Slugs de Cidade
Estes são exemplos de entrada, não garantia de cobertura atual. O resultado depende do endereço e do que o iFood expõe durante a execução.
sao-paulo-sp · rio-de-janeiro-rj · belo-horizonte-mg · brasilia-df · curitiba-pr · porto-alegre-rs · salvador-ba · fortaleza-ce · recife-pe · campinas-sp · goiania-go · manaus-am · florianopolis-sc · vitoria-es · guarulhos-sp
Preço
- Pay per result: US$0.025 por restaurante cobrado
- 1.000 resultados cobrados = US$25.00 em eventos PPE
Os valores acima cobrem somente os eventos PPE. O uso da plataforma Apify, como compute/memória, tráfego de proxy e armazenamento, pode ser cobrado separadamente pela Apify.
Casos de Uso
- Pesquisa de Mercado — Analise preços, cardápios e avaliações por região
- Inteligência Competitiva — Monitore concorrentes, cardápios e taxas de entrega
- Monitoramento de Preços — Acompanhe mudanças de preço ao longo do tempo
- Planejamento de Negócios — Pesquise o mercado antes de abrir um restaurante ou dark kitchen
Perguntas Frequentes
Qual a diferença entre Modo URL e Modo Busca? O Modo URL enriquece URLs específicas sem descoberta por cidade/endereço. O Modo Busca coleta os cards de restaurantes exibidos pelo iFood para o contexto informado.
Preciso de proxy?
Nos dois modos, comece sem proxy. Use um proxy residencial brasileiro apenas se uma execução real for bloqueada ou retornar zero restaurantes. Configure proxyConfiguration com apifyProxyGroups: ["RESIDENTIAL"] e apifyProxyCountry: "BR" nesse fallback.
Como escolher a cidade?
Use o slug presente em uma URL do iFood ou um slug como sao-paulo-sp. O resultado da busca depende da cobertura atual do iFood no endereço. O Modo URL aceita qualquer URL válida no formato documentado.
menuMode: "all" garante todos os itens?
Não. Ele remove somente o cap local de maxMenuItems. Consulte menuCompletenessStatus, menuSource, contagens, paginação e stopReason; catalog-search é sempre parcial.
Posso baixar imagens no modo all?
Não nesta beta. O Actor rejeita menuMode: "all" com downloadImages: true antes do scraping. Use limited para imagens ou all sem download de imagens.
Alguns campos aparecem como null no Modo URL. Por quê?
Taxa de entrega, tempo de entrega e distância dependem de contexto de entrega e podem ser null. A disponibilidade dos outros campos também depende das respostas públicas observadas durante a execução.
Posso filtrar por culinária?
Sim! No Modo Busca, use o parâmetro query: "pizza", "sushi", "hambúrguer", etc.
🔗 Related Actors
Combine with other actors from the Viral Analyzer suite:
- Google Maps BR Scraper — Local business data with reviews and CEP enrichment
- Review Analyzer & Image Generator — AI-powered review analysis with shareable visual cards
- Competitor Intelligence Hub — Full competitive analysis: pricing, ads, reviews
- CNPJ Enricher — Enrich restaurant CNPJs with Receita Federal data
- Brand Visibility Tracker — Monitor restaurant brand mentions and sentiment
📝 Changelog
- v2.3.9 (2026-08-12) — Added optional source-provided
eanon menu items; addedmenuMode(limited/all), explicit menu coverage metadata, and the beta safety gate that rejectsallwith image downloads; corrected the documented public price - v2.2 (2026-03-01) — URL enrichment mode (new!), robust autocomplete for search mode, improved category extraction, Brazilian proxy support
- v1.0 (2025-06-19) — Initial release: restaurant listing, menu extraction, multi-city support, reviews, anti-detection
💡 Need AI analysis on top of this data — sentiment, trend detection and a dashboard, with no API keys to manage? ViralAnalyzer combines this Actor with other data sources and built-in AI. JSON + insights in one call.