iFood Scraper - Brazil Restaurants, Menus & Reviews avatar

iFood Scraper - Brazil Restaurants, Menus & Reviews

Pricing

from $2.20 / 1,000 results

Go to Apify Store
iFood Scraper - Brazil Restaurants, Menus & Reviews

iFood Scraper - Brazil Restaurants, Menus & Reviews

Extract public iFood restaurant and grocery-store details, menu prices and reviews in Brazil. Search by city, CEP, cuisine or merchant link. Pay per delivered row plus a run-start fee.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

65

Total users

36

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

iFood Scraper

Extract iFood restaurants, grocery stores, menus and reviews in Brazil as rows you can export.

  • Find merchants by city, CEP, coordinates, cuisine or chain.
  • Read merchant details, menu prices and customer reviews.
  • Link restaurant, menu item, product and review rows through merchant IDs.
  • Discover city, category and vertical values for your next input.
  • Pay $3.00 per 1,000 delivered rows on the Free plan, plus a start fee.

What does iFood Scraper do?

iFood Scraper collects public marketplace data from ifood.com.br. Use it for menu-price comparisons, merchant research or review analysis. It is unofficial and is not affiliated with iFood.

  • Listings: city, category, mercado, chain, nearMe, home and browse select merchants by location or interest.
  • Merchant data: merchant, menu, dish and reviews target a merchant or item.
  • Discovery: discoverCities, discoverCategories and discoverVerticals provide input values.
  • Multiple links: startUrls accepts several iFood URLs.
  • Optional rows: includeMenuItems, includeReviews, includeDishes and enrichMenus default to false. Each additional row is billed at the same rate and uses the same input's row allowance. Explicit menu, dish and reviews modes request those rows directly.

What data can you extract from iFood?

Each row has rowType, a stable id and scrapedAt. Child rows carry restaurantId; parent names, URLs and city are copied when available. Fields vary by source and mode.

Restaurant rows: restaurant

FieldDescriptionExample
merchantUuidMerchant identifierd468b0b0-a18f-4ecc-9631-6faf2aa8eeb0
nameMerchant nameExample Restaurant
citySlugCity and state slugsao-paulo-sp
mainCategoryMain cuisine or categoryPizza
evaluationAverageAverage rating4.6
deliveryFeeDisplayed delivery fee5.99
deliveryTimeMinMinimum delivery minutes30
urlMerchant pagehttps://www.ifood.com.br/delivery/...
phoneIfContact number, when available+1 555 0100
cnpjBusiness registration, when availableXX.XXX.XXX/XXXX-XX
FieldDescriptionExample
productIdMenu or catalog item IDexample-item-id
restaurantIdParent merchant IDexample-merchant-id
nameItem nameMargherita pizza
priceListed price39.90
categoryMenu categoryPizzas

Dish rows: product

FieldDescriptionExample
productIdDish identifierexample-dish-id
restaurantIdParent merchant IDexample-merchant-id
nameDish nameVegetarian burger
priceListed price29.90

Review rows: review

FieldDescriptionExample
restaurantIdReviewed merchantexample-merchant-id
ratingReview score5
commentReview textExample review text
createdAtReview date, when available2026-10-01T12:00:00Z

City rows: city

FieldDescriptionExample
citySlugCity input valuesao-paulo-sp
ufBrazilian state codeSP

Category rows: category

FieldDescriptionExample
categorySlugCategory input valuepizza
nameCategory labelPizza

Vertical rows: vertical

FieldDescriptionExample
categorySlugVertical input valuemercado
nameVertical labelmercado

How to scrape iFood

  1. Open iFood Scraper in Apify Console.
  2. Fill a target field such as citySlug or merchantUrl.
  3. Set maxResults to 3 for a small first run.
  4. Click Start and wait for completion.
  5. Download the dataset or read it through the API.

Empty input starts an example run for pizza in São Paulo, limited to 3 rows. Normal pricing applies; this is not a free sample. With mode: "auto", filling a target selects its mode. Priority is startUrls, merchant URL or UUID, pageId, chainName, category or search term, then location. Select an explicit mode for menus, dishes or reviews.

City

Use citySlug, such as sao-paulo-sp, for merchant listings.

Category

Use categorySlug or searchTerm. Add a location; otherwise São Paulo is used.

Mercado

Select mercado for grocery-store listings, optionally with a city.

Chain

Use chainName and a location to search for a brand.

Near me

Use nearMe with cep, address, or both latitude and longitude.

Home

Select home for a location's home feed; the fallback is São Paulo.

Browse

Use browse with a known iFood pageId and optional location.

Merchant

Provide merchantUrl or merchantUuid. A URL supplies its city; a bare UUID falls back to São Paulo unless you supply citySlug.

Select menu with a merchant URL or UUID to receive menu rows, not a nested menu inside one restaurant row.

Dish

Select dish with a merchant and its itemId or dishUuid.

Reviews

Select reviews with a merchant. Use reviewPage and reviewPageSize for paging.

Discover cities

Select discoverCities for city slugs, including predefined city entries.

Discover categories

Select discoverCategories. Categories may fall back to a predefined list.

Discover verticals

Select discoverVerticals for predefined vertical values; these are not live merchant counts.

Start URLs

Fill startUrls with iFood links. Each URL has its own maxResults allowance.

What to fill in

FieldWhat to enterDefault
modeMode above, or automatic selectionauto
citySlugCity-state slugEmpty; form prefills sao-paulo-sp
searchTermSearch words, preferably PortugueseEmpty; form prefills pizza
categorySlugCuisine or verticalEmpty
chainNameChain nameEmpty
cepEight-digit Brazilian postal codeEmpty
addressBrazilian location textEmpty
latitude, longitudeDelivery coordinates togetherEmpty
merchantUrliFood merchant linkEmpty
merchantUuid, merchantSlugMerchant ID and optional slugEmpty
itemId, dishUuidItem ID for dish modeEmpty
pageIdKnown browse-page identifierEmpty
startUrlsList of iFood URLsEmpty
maxResultsRows per input, from 1 to 50070; form prefills 3
includeMenuItemsMenu rows with merchant datafalse
includeReviewsReviews with merchant datafalse
includeDishesDish rows from searchfalse
enrichMenusMenu rows from listed merchantsfalse
enrichDetailsAdditional merchant contact and delivery fieldsfalse
maxEnrichMaximum merchants to enrich, 0–505
loadMoreRoundsExtra search pages, 0–200
reviewPageFirst review page, 1–501
reviewPageSizeReview page size, 1–5030
sortByOptional sort value understood by iFoodEmpty
mainCategoryFilterText contained in the merchant categoryEmpty
includeVerticalsVertical keywords to retainEmpty
cursorContinuation object, if available; normally omitEmpty
proxyCountryKeep the Brazil settingbr

Examples below request at most 3 rows per input. Replace YOUR_ITEM_ID and YOUR_PAGE_ID with actual iFood identifiers.

Automatic selection

{"searchTerm":"pizza","maxResults":3}

City

{"mode":"city","citySlug":"sao-paulo-sp","maxResults":3}

Category

{"mode":"category","citySlug":"curitiba-pr","categorySlug":"japonesa","maxResults":3}

Mercado

{"mode":"mercado","citySlug":"porto-alegre-rs","maxResults":3}

Chain

{"mode":"chain","chainName":"Burger King","citySlug":"sao-paulo-sp","maxResults":3}

Near me

{"mode":"nearMe","cep":"01310-100","maxResults":3}

Home

{"mode":"home","citySlug":"sao-paulo-sp","maxResults":3}

Browse

{"mode":"browse","pageId":"YOUR_PAGE_ID","citySlug":"sao-paulo-sp","maxResults":3}

Merchant

{"mode":"merchant","merchantUuid":"d468b0b0-a18f-4ecc-9631-6faf2aa8eeb0","maxResults":3}

Menu

{"mode":"menu","merchantUuid":"d468b0b0-a18f-4ecc-9631-6faf2aa8eeb0","maxResults":3}

Dish

{"mode":"dish","merchantUuid":"d468b0b0-a18f-4ecc-9631-6faf2aa8eeb0","itemId":"YOUR_ITEM_ID","maxResults":1}

Reviews

{"mode":"reviews","merchantUuid":"d468b0b0-a18f-4ecc-9631-6faf2aa8eeb0","reviewPageSize":3,"maxResults":3}

Discover cities

{"mode":"discoverCities","maxResults":3}

Discover categories

{"mode":"discoverCategories","citySlug":"sao-paulo-sp","maxResults":3}

Discover verticals

{"mode":"discoverVerticals","maxResults":3}

Start URLs

{
"mode":"startUrls",
"startUrls":["https://www.ifood.com.br/delivery/sao-paulo-sp/212-burger-pinheiros-pinheiros/d468b0b0-a18f-4ecc-9631-6faf2aa8eeb0"],
"maxResults":3
}

maxItems and limit are aliases for maxResults. Close misspellings of field names can be corrected; other unknown fields are ignored with a note. Every run writes its input-resolution report to INPUT_REPORT in the default key-value store. Resolution errors use INVALID_INPUT: <field> — <how to fix>; other validation errors also identify the problem. Validation happens before row delivery, so no rows are charged for invalid input; the start fee can still apply.

Output example

Illustrative restaurant row; values are examples, not a current listing.

{
"rowType": "restaurant",
"id": "example-merchant-id",
"merchantUuid": "example-merchant-id",
"name": "Example Restaurant",
"citySlug": "sao-paulo-sp",
"country": "br",
"mainCategory": "Pizza",
"evaluationAverage": 4.6,
"deliveryFee": 5.99,
"scrapedAt": "2026-10-01T12:00:00Z"
}

Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table.

Why use this iFood scraper?

  • Row-based billing: the result charge applies to delivered rows, not attempted pages.
  • Useful partial output: rows already written remain available after a stop. Available partial results can be delivered when collection ends early; abrupt cancellation does not guarantee undelivered data.
  • Traceable input: INPUT_REPORT explains mode selection and corrections; RUN_SUMMARY records the outcome.
  • No invented source values: unavailable prices, contact details and ratings stay absent or empty.
  • Several inputs: collect multiple merchant links with startUrls.
  • No proxy setup: you do not need to set up proxies.

How much does it cost to scrape iFood?

Pay-per-event pricing includes platform usage. The start event costs $0.005 per GB of memory, with a minimum of one event. At the default 512 MB, one start costs $0.005.

Apify planStart at 512 MBPrice per rowPrice per 1,000 rows
Free$0.005$0.003$3.00
Starter$0.005$0.003$3.00
Scale$0.005$0.0026$2.60
Business$0.005$0.0022$2.20
Platinum$0.005$0.002$2.00
Diamond$0.005$0.0016$1.60

maxResults applies to each start URL, or the single target in other modes. The default is 70; larger requests are collected in parts of at most 70 rows. All row types share that input's allowance. The schema permits up to 500 rows per input; availability may produce fewer.

Free-plan users are limited to 10 runs of this Actor and 200 rows per run. The whole run is also bounded by Maximum cost per run (maxTotalChargeUsd in the API).

Example: one input delivering 3 rows on the Free plan at 512 MB costs 3 × $0.003 + $0.005 = $0.014 for one start. Optional menu or review rows count within those 3 rows, not as free additions.

What happens when the run timeout is too short

When automatic resumption is triggered, the run pauses with ABORTED and a message such as “Queued on the collection backend; this run will resume automatically when results are ready (about N s).” This pause is not a failed collection.

When ready, the same run resumes, delivers rows to the same dataset and finishes as SUCCEEDED if successful. Delivery can report “Resumed: delivering N rows.” Already-delivered rows are skipped rather than delivered or charged twice. No action is needed for this automatic pause.

A run can pause this way at most 3 times. Keep the default 3600-second timeout to reduce interruptions. Other failures or manual aborts are not a promise of automatic recovery.

The synchronous endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and can return an empty dataset while a run is paused. For longer collection, start asynchronously and read the dataset after SUCCEEDED, or use an ACTOR.RUN.SUCCEEDED webhook.

Use with AI agents and the API

Apify MCP server

For Claude, ChatGPT, Cursor or VS Code with remote MCP support, add:

https://mcp.apify.com?tools=lentic_clockss/ifood-scraper

Sign in through Apify OAuth, or supply Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset IDs; read rows with get-dataset-items. Clients without remote support can use:

npx @apify/actors-mcp-server --tools lentic_clockss/ifood-scraper

Set APIFY_TOKEN for that client. Example prompt: “Find three pizza restaurants in São Paulo using iFood Scraper.”

Apify API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("lentic_clockss/ifood-scraper").call(
run_input={"searchTerm": "pizza", "citySlug": "sao-paulo-sp", "maxResults": 3}
)
if run["status"] == "SUCCEEDED":
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('lentic_clockss/ifood-scraper').call({
searchTerm: 'pizza', citySlug: 'sao-paulo-sp', maxResults: 3,
});
if (run.status === 'SUCCEEDED') {
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
}

SDK calls can return at an automatic pause; do not treat ABORTED as a final dataset. For asynchronous use, send input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~ifood-scraper/runs with an Authorization: Bearer <YOUR_APIFY_TOKEN> header. After success, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.

Integrations

Use the Integrations tab with Google Sheets, Make, Zapier, n8n, Slack, Airtable or webhooks. Use Apify Schedules for recurring runs.

Em português

O iFood Scraper reúne dados públicos de restaurantes e mercados no Brasil, incluindo cardápios, preços e avaliações. Para começar, preencha citySlug com a cidade desejada ou informe merchantUrl para consultar um estabelecimento. Use searchTerm para buscar uma culinária e comece com maxResults igual a 3. Para obter o cardápio, escolha mode como menu; para avaliações, escolha reviews. Cada restaurante, item de cardápio ou avaliação entregue conta como uma linha cobrada, além da taxa de início. Os resultados podem ser exportados para planilhas. A disponibilidade depende da localização e das informações publicadas pelo estabelecimento. Este Actor não é afiliado ao iFood.

FAQ

This Actor collects public data. You are responsible for complying with applicable terms and data-protection law. Public availability is not unrestricted permission; personal data needs a lawful basis for your intended use.

Why did my run end as ABORTED?

Check its status message. An automatic-resume message indicates the temporary pause described above. Manual aborts and other errors need separate investigation.

How many results can I get?

Up to maxResults per input, subject to available rows, the run's cost limit and Free-plan caps. A requested limit is not a guaranteed count.

Why are some fields empty?

iFood may omit them for that merchant or location. enrichDetails can request more merchant information but cannot guarantee every field.

Can I collect grocery products?

Use mercado for stores and menu for a selected store's catalog. Grocery catalog items are separate menuItem rows.

Does discovery prove a city or vertical has active merchants?

No. Discovery can include predefined entries. Run a small merchant search to check the location and category you need.

Is an empty-input example free?

No. It requests up to 3 rows and uses the same start and row prices as other runs.

Do I need to configure proxies?

No. You do not need to set up proxies.

Limitations

  • Brazil only; coverage depends on location and current iFood availability.
  • No guarantee of complete menus, all reviews, every city or every contact field.
  • Dish and browse modes need valid identifiers; example placeholders must be replaced.
  • Delivery fees, availability and prices can change with location and time.
  • Discovery lists are not a live census; some entries are predefined.
  • Attribute arrays, such as choices and tags, are limited to 50 entries.
  • No automatic translation of search words is configured; use Portuguese terms when possible.

More food delivery and grocery scrapers from the same publisher:

Browse all of our scrapers at apify.com/lentic_clockss.

Support

Report problems or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.