iFood stores, menus and supermarket prices, address by address
iFood shows a different set of stores, fees and delivery times for every address, so this API takes the latitude and longitude of a Brazilian address.
3 active endpoints, on 2 and 3 credit tiers.
- POST/ifood/v1/stores
- POST/ifood/v1/store
- POST/ifood/v1/search
What iFood endpoints does ReefAPI ship?
3 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
iFood API
3 of 3 endpoints, ready to run
Milk prices across the stores near Av. Paulista
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the iFood API works
iFood is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 585 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From an address to a supermarket aisle's prices
List the supermarkets that deliver to the address, open one, then read an aisle in full or compare a product across stores.
Supermarkets with delivery fee, delivery time, rating and distance for that address, 36 per page with next_cursor.
Store details (CNPJ, address, hours, rating count) and every aisle with its first products.
One aisle in full, 100 products per page with price, struck-through price, discount and EAN.
The same product across the stores nearby with each store's price and fee.
A per-address supermarket price feed across iFood Mercado and the stores on iFood.
curl -X POST https://api.reefapi.com/ifood/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"leite","latitude":-23.5613,"longitude":-46.6565}'{
"ok": true,
"data": { … },
"meta": {
"api": "ifood",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What an iFood field actually contains
Fields that read differently from how they look. Every row was measured against live responses on 2026-10-18.
| Field | What it holds |
|---|---|
| delivery_fee_listed | The delivery fee in reais that iFood lists for the address you sent (4.99 for a card iFood describes as "4 reais e 99 centavos"). Not a store-wide constant. |
| delivery_estimate_min / max | The delivery-time range in minutes shown for that address at the moment of the call (49 and 64). |
| price, original_price, discount_pct | price is the item's current price, the same figure iFood's search shows; original_price is the struck-through "de" price when the item is discounted (Leite Italac 8.54, original 11.86, discount 28%). |
| promotional_price | A conditional promotion iFood attaches to some restaurant items (Maminha ao Forno: price 51.90, promotional 41.90). iFood's search prices the same item at 51.90, so it is kept apart from price. |
| price_from | The lowest price of an item whose price depends on the options chosen ("a partir de"); build-your-own dishes have no fixed price (Monte seu Prato: from 17.90). |
| items_truncated | A supermarket's catalogue overview shows at most 16 products per aisle; true means the aisle holds more. Call store with that category_id for the full aisle (one beer aisle: 2,283 products in 23 pages). |
| name_matches_query | iFood's search falls back to related products when nothing matches (a nonsense word still returns a full page); this flag says whether the row contains every word you searched. |
| cnpj, legal_name | The store's company registration number and registered name as iFood publishes them on the store page. |
iFood orders the store list itself and pages it with its own cursor; three pages of 36 shared no store. Fees, times and store lists depend on the address you send, not on where the request comes from.
iFood coverage, measured
Every number below was read from live responses on 2026-10-18.
São Paulo (Av. Paulista): restaurants 36, groceries 36, pharmacy 36, drinks 35, pets 15, shopping 36 stores on the first page; Rio de Janeiro: restaurants, groceries and pharmacy 36 each.
Catalogue price and struck-through price matched iFood's own search result for the same product on 6 of 6 products in 3 stores.
Assaí Mooca 378 products on the overview; a supermarket's beer aisle 2,283 products in 23 pages of 100; restaurant menus in full (Manai Gastronomia 13 sections, 65 dishes).
12 of 12 searches in São Paulo and Rio de Janeiro returned a full page of 36 products with the store selling each; three pages of 'leite' shared no product.
Store list pages 1-3 (36 each) shared no store; aisle pages 1-3 (100 each) shared no product.
No account data (coupons, iFood Clube, order history); dish option groups are not itemised (needs_choices and price_from instead); review texts are not included.
What people build with iFood
The jobs this data is most often used for.
endpoints
credits per call
Track supermarket and pharmacy prices on iFood Mercado by store, aisle and EAN.
Map which restaurants and stores deliver to an address with fees and delivery times.
Monitor a restaurant chain's cardápio prices and discounts across its iFood stores.
Compare one product's price across every store delivering to the same address.
What iFood data costs
The cheapest call here is 2 credits, so $15/mo (Pro) buys 5,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 585 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/ifood/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"leite","latitude":-23.5613,"longitude":-46.6565}'import requests
r = requests.post(
"https://api.reefapi.com/ifood/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "leite",
"latitude": -23.5613,
"longitude": -46.6565
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up iFood.
Get a free key →Do I need an address?▾
Yes. stores and search require latitude and longitude of the delivery address in Brazil; iFood's store list, fees and delivery times depend on it. store works with a store_id alone.
Can I get iFood Mercado and supermarket prices?▾
Yes. stores with type=groceries lists the supermarkets and iFood Mercado stores delivering to the address; store returns each aisle, and store with a category_id returns that aisle in full, 100 products per page with price, struck-through price, discount and EAN.
Can I get a restaurant's cardápio?▾
Yes. store with the restaurant's store_id or its iFood URL returns every menu section with the dishes, description, price, struck-through price, 'a partir de' price, promotional price and availability.
How do I compare one product across stores?▾
search with query=leite and the address returns matching products from the stores nearby, each with the store's price, delivery fee, delivery time and rating. Add store_id to search inside one store.
Does it cover pharmacies?▾
Yes. type=pharmacy lists the pharmacies delivering to the address (36 per page in São Paulo) and store returns their catalogue with EAN codes.
Which cities work?▾
Any address iFood delivers to; São Paulo and Rio de Janeiro were measured on every tab. A few coordinates are answered with an error by iFood itself; coordinates of a street address nearby work.
Do I need an iFood account?▾
No. Everything is what a logged-out visitor sees; order history, coupons and iFood Clube benefits are not included.
How fresh is the data?▾
Every call reads iFood live; nothing is cached.
What is the iFood API?▾
iFood API is a ReefAPI endpoint group for restaurants, ifood mercado supermarkets and pharmacies delivering to a brazilian address, with fees and times; full menus and grocery catalogues with prices, discounts and ean. It returns live JSON through POST requests under /ifood/v1.
Is the iFood API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. iFood calls use the same shared credit balance as every other ReefAPI engine.
Do I need an iFood login or account?▾
No login to iFood is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the iFood data?▾
The page example is captured from a live stores call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the iFood API use?▾
iFood actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call iFood from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call ifood actions with the same key, credit pool and JSON envelope used by normal REST requests.
320 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling iFood, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 584 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-18.