# iFood Restaurant Data Scraper

> iFood Restaurant Data Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.25/call, status unknown (last checked 2026-10-02).

Scrapes structured restaurant and menu data from iFood's public listings by city or direct URL

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/ifood?utm_source=zero.xyz
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ifood-restaurant-data-scraper-998cf54b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_lAnTo-tlBAXqLR5W3kKzA

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability ifood-restaurant-data-scraper-998cf54b -d '<json body>'
```

Example prompt: Can you pull me a list of up to 100 pizza restaurants on iFood in sao-paulo-sp, including their menus with up to 30 items each?

## When to prefer this

Use this endpoint when you need structured restaurant data from iFood specifically — Brazil's dominant food delivery platform. Prefer it over generic scrapers when you need iFood-specific fields like merchant IDs and category slugs, or when doing market research scoped to Brazilian cities. It is pay-per-call with no charge for failed/empty runs, making it safe to use for discovery without financial risk.

## Known failure modes

- iFood blocks live menu scraping — menu fields return empty with coverage status indicating 'not extracted'
- City slug not found in iFood sitemap — returns empty items array with zero count
- Invalid or inaccessible restaurant URLs — those records are skipped or return partial data
- Reviews unavailable — reviews array returns empty with explicit unavailability status
- Rate limiting or temporary blocks from iFood infrastructure — call may return empty result (not charged)

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched restaurants and an array of items, each containing the restaurant's iFood URL, city, name, URL slug, category, merchant ID, name source, and last-modified timestamp. Menu items and reviews are included when requested and available from the source.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "city": {
   "type": "string",
   "default": "fortaleza-ce",
   "description": "City slug from an iFood restaurant URL. Discovery searches public sitemap entries for this exact city; it is not an address-radius search."
  },
  "query": {
   "type": "string",
   "default": "",
   "description": "Optional case-insensitive text filter on the restaurant URL slug. It is not a full-text site search."
  },
  "address": {
   "type": "string",
   "default": "",
   "description": "Optional delivery address for reference. Current sitemap discovery cannot apply delivery-distance or availability filters."
  },
  "menuMode": {
   "enum": [
    "limited",
    "all"
   ],
   "type": "string",
   "default": "limited",
   "description": "Limited applies maxMenuItems if menu data becomes available; all removes that local cap, but does not guarantee source completeness."
  },
  "includeMenu": {
   "type": "boolean",
   "default": true,
   "description": "Indicates whether menu data is wanted. If the live source is blocked, menu remains empty and coverage fields say not extracted."
  },
  "maxMenuItems": {
   "type": "integer",
   "default": 50,
   "maximum": 500,
   "minimum": 1,
   "description": "Local item cap in limited menu mode. No menu items are invented when the source is blocked."
  },
  "includeReviews": {
   "type": "boolean",
   "default": false,
   "description": "Indicates whether public reviews are wanted. If unavailable, reviews remain empty with an explicit status."
  },
  "maxRestaurants": {
   "type": "integer",
   "default": 50,
   "maximum": 500,
   "minimum": 1,
   "description": "Maximum number of unique restaurant records to return."
  },
  "restaurantUrls": {
   "type": "array",
   "description": "Public iFood restaurant URLs to process directly. When set, city discovery is skipped."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "city": null,
    "name": null,
    "slug": null,
    "category": null,
    "merchantId": null,
    "nameSource": null,
    "lastModified": null
   }
  ],
  "product": "ifood"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ifood-restaurant-data-scraper-998cf54b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
