iFood Scraper — Anti-Block: Menus, Prices & Reviews avatar

iFood Scraper — Anti-Block: Menus, Prices & Reviews

Pricing

from $25.00 / 1,000 restaurant scrapeds

Go to Apify Store
iFood Scraper — Anti-Block: Menus, Prices & Reviews

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

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

173

Total users

33

Monthly active users

10 days ago

Last modified

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

ParameterTypeDescription
restaurantUrlsarrayList of iFood restaurant URLs to enrich
includeMenubooleanExtract available menu item data (default: true)
includeReviewsbooleanExtract customer reviews (default: false)
menuModestringlimited (default) applies the local cap; all removes only that cap
maxMenuItemsintegerLocal item cap in limited mode (1-500, default: 50); ignored in all
downloadImagesbooleanSave 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)

ParameterTypeDefaultDescription
citystringsao-paulo-spCity slug (e.g., rio-de-janeiro-rj)
addressstringAv Paulista 1000Delivery address for location context
querystring""Search term (e.g., pizza, sushi)
maxRestaurantsinteger5Max restaurants to extract (1-200)
includeMenubooleantrueExtract available menu item data
includeReviewsbooleanfalseExtract customer reviews
menuModestringlimitedlimited applies the local cap; all removes only that cap
maxMenuItemsinteger50Local item cap in limited mode (1-500); ignored in all
downloadImagesbooleanfalseSave images to the Key-Value Store; beta supports this only with menuMode: "limited"
proxyConfigurationobjectOptional 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"
}
  • menuMode: "limited" returns at most maxMenuItems per restaurant.
  • menuMode: "all" ignores maxMenuItems and removes only the Actor's local item cap. It does not guarantee a complete external iFood menu.
  • A direct catalog response with no local truncation is labeled complete-relative-to-source-response: complete only relative to the response observed during that run.
  • catalog-search is a term-search fallback and is always labeled partial-fallback, even if its pagination is exhausted.
  • Beta safety gate: menuMode: "all" cannot be combined with downloadImages: true; the Actor rejects that input before scraping. Use limited for image downloads or all with downloadImages: false. imageDownloadUrl remains present only for successful downloads.

Use these output fields when evaluating coverage:

FieldMeaning
menuModeRequested limited or all mode
menuSourcecatalog, catalog-search, or null
menuSearchTermsComma-separated terms attempted by the fallback, otherwise null
menuCompletenessStatusnot-extracted, partial-limit-applied, partial-fallback, or complete-relative-to-source-response
menuItemsDiscovered / menuItemsReturnedUnique items observed before the local cap / items returned in menu
menuTruncated / menuLimitAppliedWhether the local cap truncated results / the applied cap
pagesFetchedSuccessful 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
stopReasonWhy 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:

MetricCost
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âmetroTipoDescrição
restaurantUrlsarrayLista de URLs do iFood para enriquecer
includeMenubooleanExtrair os itens de cardápio disponíveis (padrão: true)
includeReviewsbooleanExtrair avaliações (padrão: false)
menuModestringlimited (padrão) aplica o cap local; all remove somente esse cap
maxMenuItemsintegerCap local em limited (1-500, padrão: 50); ignorado em all
downloadImagesbooleanSalvar 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âmetroTipoPadrãoDescrição
citystringsao-paulo-spSlug da cidade (ex: rio-de-janeiro-rj)
addressstringAv Paulista 1000Endereço de entrega para contexto
querystring""Termo de busca (ex: pizza, sushi)
maxRestaurantsinteger5Máximo de restaurantes (1-200)
includeMenubooleantrueExtrair os itens de cardápio disponíveis
includeReviewsbooleanfalseExtrair avaliações
menuModestringlimitedlimited aplica o cap local; all remove somente esse cap
maxMenuItemsinteger50Cap local em limited (1-500); ignorado em all
downloadImagesbooleanfalseSalvar imagens no Key-Value Store; na beta, somente com menuMode: "limited"
proxyConfigurationobjectFallback 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áximo maxMenuItems por restaurante.
  • menuMode: "all" ignora maxMenuItems e remove somente o cap local do Actor. Isso não garante o cardápio externo completo do iFood.
  • Uma resposta direta de catalog sem truncamento local recebe complete-relative-to-source-response: completa somente em relação à resposta observada naquela execução.
  • catalog-search é um fallback por termos e recebe sempre partial-fallback, mesmo quando sua paginação se esgota.
  • Gate de segurança da beta: menuMode: "all" não pode ser combinado com downloadImages: true; o Actor rejeita essa entrada antes do scraping. Use limited para baixar imagens ou all com downloadImages: false. imageDownloadUrl continua 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.


Combine with other actors from the Viral Analyzer suite:

📝 Changelog

  • v2.3.9 (2026-08-12) — Added optional source-provided ean on menu items; added menuMode (limited/all), explicit menu coverage metadata, and the beta safety gate that rejects all with 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.