iFood API

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.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a iFood endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
I
/ifood/v1

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.

3 endpoints

stores

3 cr

Stores that deliver to a location in Brazil, in iFood's own feed order for one tab (restauran…

required
latitude, longitude
optional
type, cursor

store

3 cr

One iFood store.

required
store_id
optional
latitude, longitude, category_id, page, limit

search

2 cr

Search products and dishes by name across the stores delivering to a location, or inside one…

required
query, latitude, longitude
optional
store_id, page, limit

Every parameter, every allowed value →

iFood API

3 of 3 endpoints, ready to run

View docs ↗

Milk prices across the stores near Av. Paulista

2 credits3 required · 0 optional
POST/ifood/v1/search
idle
// 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.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 585 engines.

02
Call
POST /ifood/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

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.

01stores?latitude=-23.5613&longitude=-46.6565&type=groceries
GET/ifood/v1/stores?latitude=-23.5613&longitude=-46.6565&type=groceries

Supermarkets with delivery fee, delivery time, rating and distance for that address, 36 per page with next_cursor.

02store?store_id=<store_id>
GET/ifood/v1/store?store_id=<store_id>

Store details (CNPJ, address, hours, rating count) and every aisle with its first products.

03store?store_id=<store_id>&category_id=<category_id>&page=1
GET/ifood/v1/store?store_id=<store_id>&category_id=<category_id>&page=1

One aisle in full, 100 products per page with price, struck-through price, discount and EAN.

04search?query=leite&latitude=-23.5613&longitude=-46.6565
GET/ifood/v1/search?query=leite&latitude=-23.5613&longitude=-46.6565

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.

request
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}'
response envelope
{
  "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.

FieldWhat it holds
delivery_fee_listedThe 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 / maxThe delivery-time range in minutes shown for that address at the moment of the call (49 and 64).
price, original_price, discount_pctprice 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_priceA 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_fromThe 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_truncatedA 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_queryiFood'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_nameThe 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.

Tabs

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.

Price accuracy

Catalogue price and struck-through price matched iFood's own search result for the same product on 6 of 6 products in 3 stores.

Catalogue size

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).

Search

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.

Paging

Store list pages 1-3 (36 each) shared no store; aisle pages 1-3 (100 each) shared no product.

Limits

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.

3

endpoints

2/3

credits per call

01

Track supermarket and pharmacy prices on iFood Mercado by store, aisle and EAN.

02

Map which restaurants and stores deliver to an address with fees and delivery times.

03

Monitor a restaurant chain's cardápio prices and discounts across its iFood stores.

04

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 →
$0.67–$1.50 / 1,000 credits
  • 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
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}'
python
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"])
FAQ

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.

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.

0/4000

No account needed · we reply from [email protected]

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.