VOOZH about

URL: https://apify.com/corent1robert/uber-eats-menu-scraper

โ‡ฑ Uber Eats Menu Scraper ยท Items, Prices & Categories ยท Apify


๐Ÿ‘ Uber Eats Menu Scraper ยท Items, Prices & Categories avatar

Uber Eats Menu Scraper ยท Items, Prices & Categories

Pricing

from $3.00 / 1,000 menu item extracteds

Go to Apify Store

Uber Eats Menu Scraper ยท Items, Prices & Categories

Export every Uber Eats menu item with section, price, and description โ€” one row per dish for pricing benchmarks. Search by city, territory, or paste store URLs. No login or API key

Pricing

from $3.00 / 1,000 menu item extracteds

Rating

0.0

(0)

Developer

๐Ÿ‘ Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

22 days ago

Last modified

Share

Uber Eats Menu Scraper

Built for pricing teams, F&B brands, dark kitchens, and market researchers โ€” export every Uber Eats dish with section, price, and description in one flat spreadsheet.

No login. No API key. No Uber Eats account.

Item names, prices, menu sections, and store context ship on every row. Search by city, territory, or paste store URLs โ€” same discovery as the Pro Scraper, but each dataset row is a menu item, not a CRM lead.


Who is this for?

You areโ€ฆTypical goalSuggested setup
Pricing / revenue opsBenchmark competitor menu prices in a cityCity or URLs
F&B brand / supplierMap categories and price bands across a marketTerritory + cuisine filter
Dark kitchen / franchiseCompare menus across locations of the same brandURLs โ€” bulk paste store links
Consultant / agencyDeliverable: full menu export for a client marketCity + raise maxResults
Market researchPrice distribution and category mix by geoTerritory with maxResults cap
Data / opsScheduled refresh on a known restaurant listURLs mode

By default you get itemName, section, price, currency, storeName, and city โ€” one row per dish (outputMode: flat). Descriptions and store ratings are included when Uber Eats publishes them on the store page.

Use deduplicateItems: true (default) when the same burger appears in โ€œFeaturedโ€ and โ€œBurgersโ€. Turn it off only if you need every section occurrence for audit trails. Use outputMode: nested when you want one JSON object per restaurant with an items[] array (API workflows).


What you get out of it

BenefitWhy it matters
Spreadsheet-ready pricingFlat export โ€” filter by sectionTop, pivot on itemName, compare price across storeName
Same discovery as ProCity, territory, and URL modes โ€” no second tool to list restaurants
Honest menu depthFull item list from public store pages โ€” not just min/max price bands
Geo context on every rowcity, country, storeId โ€” join runs or dedupe across exports
Transparent runsLogs show progress %, ETA, and a downloadable RUN_LOG

How much does it cost to scrape Uber Eats menus?

Pricing is pay-per-event (plus light HTTP compute โ€” no proxy required for menus):

EventPriceWhen charged
apify-actor-start$0Every run (no run fee)
uber-eats-menu-item$0.003Each menu row (flat mode)
uber-eats-store-with-menu$0.03One row per store (nested mode)
uber-eats-store-no-menu$0.005Store page returned no usable menu
apify-default-dataset-item$0Guard โ€” avoids double-charging
ScenarioListed PPE (items only)Typical total
Try: 3 stores, ~300 items~$0.90~$0.95โ€“1.05 with compute
15 stores, ~1 400 items (City Annecy)~$4.20~$4.50โ€“5.50
1 000 menu items~$3.00~$3.50โ€“4.50
10 000 menu items~$30.00~$32โ€“40

HTTP-only runs keep compute low. There is no residential proxy on this Actor โ€” menus are read from public store HTML.

Console setup (Monetization): set apify-actor-start and apify-default-dataset-item to $0; add uber-eats-menu-item ($0.003), uber-eats-store-with-menu ($0.03), uber-eats-store-no-menu ($0.005).


Is scraping Uber Eats free?

Apify charges for Actor runs (PPE + compute). A 3-store Try (~300 menu rows) is usually about $1 all-in (items + light compute). There is no separate Uber Eats API fee โ€” this Actor uses public store pages only.


Is it legal to scrape Uber Eats?

This Actor only reads public restaurant and menu pages that Uber Eats shows to consumers. You are responsible for using the data in line with GDPR, local marketing laws, and Uber Eats' terms. Do not use scraped data for unlawful competitive practices or misrepresentation.


Quick start

  1. Open Input โ†’ leave Search mode on City (default)
  2. Enter a city name (e.g. Annecy) โ€” country is inferred automatically
  3. Max restaurants defaults to 15; clear Cuisine filter to include all restaurants in the city
  4. Leave Include descriptions on; keep Deduplicate items on for cleaner spreadsheets
  5. Click Run โ†’ open Dataset โ†’ export CSV, JSON, or Excel

For a single competitor, switch to URLs mode and paste one store link.


Search modes

City โ€” One or more cities (default)

Best for local price benchmarks. Items from each restaurant appear as that store is scraped.

{
"mode":"city",
"cityNames":["Annecy","Paris"],
"maxResults":15,
"categories":[],
"includeDescriptions":true,
"deduplicateItems":true,
"outputMode":"flat"
}

Prefix a country to disambiguate: fr:Annecy, us:New York.

Territory โ€” Country or region

Best for large market slices. Set a Max restaurants cap unless you need a full-country sweep.

{
"mode":"territory",
"country":"fr",
"region":"fr:ara",
"categories":["burger"],
"maxResults":500,
"outputMode":"flat"
}

Set maxResults: 0 for no restaurant ceiling (use a long Run timeout in Run options).

URLs โ€” Specific restaurants

Best for head-to-head competitor menus.

{
"mode":"urls",
"startUrls":[
{"url":"https://www.ubereats.com/fr/store/mcdonalds-epagny/b4043WTlR_iSrNu0-Y2DYQ"},
{"url":"https://www.ubereats.com/fr/store/burger-king-epagny/ZOjYdsqgQcqPQ5q40GJoXQ"}
],
"includeDescriptions":true,
"outputMode":"flat"
}

Input parameters

FieldDefaultDescription
modecitycity, territory, or urls
cityNames["Annecy"]Cities for City mode
country / regionโ€”Territory mode
startUrlsโ€”Store URLs for URL mode
maxResults15Max restaurants per city or territory (0 = no cap)
categories["fast-food"]Cuisine filter; empty array = all cuisines
includeDescriptionstrueItem description text
deduplicateItemstrueMerge duplicate items across sections
outputModeflatflat = one row per item; nested = one row per store
sectionFilterโ€”API-only: regex or string list to keep matching sections

Output fields (flat mode)

GroupFields
StorestoreName, storeUrl, storeId, storeSlug, city, country
Menusection, sectionTop, itemName, description, price, currency
Contextrating, reviewCount, itemIndex, scrapedAt
Errorserror (only on failed stores in edge cases)

CSV uses semicolon separators when exported locally for Excel-friendly import.


Typical coverage (reference runs)

Based on HTTP smoke runs on French store pages:

FieldCoverage
itemName~100% of extracted items
price / currency~100%
description~95% (chains sometimes omit on promos)
section / sectionTop~100%
Item imagesNot exported in v1 (planned v1.1)
Modifiers / sizes / add-onsNot in public JSON-LD โ€” not exported

maxResults limits restaurants, not menu rows. One McDonald's location can yield 150โ€“200+ items.


Pricing & research workflows

GoalFilter / columnsSuggested input
City price mapGroup by storeName, compare price on itemNameCity mode, categories: []
Category benchmarkFilter sectionTop = Burgers or MenusCity or URLs
Chain vs indieCompare storeName across URLsURLs mode, 5โ€“10 stores
Deduped master menudeduplicateItems: trueDefault
Refresh cadenceKey on storeId + itemName + priceURLs list from Pro Scraper export

Spreadsheet tip: pivot on sectionTop and storeName; use price as values. Filter currency when mixing US and EU stores.


How it works

  1. Discover restaurants (city / territory listing, or your URLs)
  2. Fetch each public store page (HTTP, browser-like headers)
  3. Parse menu from structured page data (hasMenu โ†’ sections โ†’ items)
  4. Normalize rows โ€” optional dedupe and section filter
  5. Export to Dataset (and local CSV on apify run)

Output example

One menu item from a City ยท Annecy ยท 3 restaurants run:

{
"storeUrl":"https://www.ubereats.com/fr/store/mcdonalds-epagny/b4043WTlR_iSrNu0-Y2DYQ",
"storeId":"b4043WTlR_iSrNu0-Y2DYQ",
"storeSlug":"mcdonalds-epagny",
"storeName":"McDonald'sยฎ (Epagny)",
"city":"EPAGNY",
"country":"FR",
"section":"NOUVEAUTร‰S",
"sectionTop":"NOUVEAUTร‰S",
"itemName":"BEEF MOZZA CHEDDAR",
"description":"Pain spรฉcial, fromage fondu, steak hachรฉ, prรฉparation panรฉe ร  base de mozzarella et de cheddar, tomate, salade, oignons, sauce.",
"price":14.7,
"currency":"EUR",
"rating":3.9,
"reviewCount":4000,
"itemIndex":12,
"scrapedAt":"2026-06-08T08:00:00.000Z"
}

Limitations

  • Modifiers, sizes, and add-ons are not exposed in public menu JSON โ€” not exported in v1.
  • Item images are only partially present in page HTML โ€” full image pass planned for v1.1.
  • Large territory runs without maxResults can take hours and produce hundreds of thousands of menu rows โ€” set caps and timeout accordingly.
  • Uber Eats may show promotional sections (e.g. โ€œbuy one get oneโ€) โ€” items can appear in multiple sections unless dedupe is on.

Also available

  • Uber Eats Pro Scraper โ€” CRM-ready restaurant leads: phones, emails, company IDs, SIRET, territory search. Use Pro to list restaurants, then paste url values into this Actor's URLs mode for full menus.
  • Uber Eats Reviews Scraper โ€” monitor store ratings and latest public customer comments for the same store URLs (reputation snapshot, not full review history).

Local development

npminstall
npm run build:schema
npm run build
npmtest
mkdir-p storage/key_value_stores/default
cp input.json storage/key_value_stores/default/INPUT.json
apify run

apify run validates storage/key_value_stores/default/INPUT.json against the input schema โ€” include every field you need, or use apify run --input-file=./input.json.

Local runs write output.csv (UTF-8 BOM, semicolon-separated) next to the project root.


Support

Contact corentin@outreacher.fr for custom Uber Eats pipelines, menu monitoring, or hub Actor integrations.

You might also like

Uber Eats Scraper

natanielsantos/uber-eats-scraper

This no-code tool allows you to scrape data from Uber Eats restaurants, like name, categories, location, menu items, and more.

๐Ÿ‘ User avatar

Nataniel Santos

218

Uber Eats Menu Scraper

piotrv1001/uber-eats-menu-scraper

The Uber Eats Listings Scraper extracts restaurant and store data from Uber Eats โ€” full menus with prices and item IDs, ratings, reviews, addresses, geo coordinates, phone numbers, opening hours, and delivery methods. Supports sitemap, category, and direct-URL discovery across 25+ Uber Eats markets.

Uber Eats Scraper โ€” Menus, Item Prices & Ratings | API

bovi/ubereats-menu

Scrape any **Uber Eats** restaurant menu into FLAT rows โ€” one row per item with **price at the top level**, plus store rating, cuisine, address & phone on every row. No nested digging, no browser. Reliable residential-proxy access. Priced per menu โ€” well below per-menu incumbents.

๐Ÿ‘ User avatar

Vitalii Bondarev

2

Uber Eats Email Scraper

scrapapi/uber-eats-email-scraper

Uber Eats Scraper | With Menu & Numbers | $3 / 1k

fatihtahta/uber-eats-menu-scraper

Scrape restaurants and groceries from Uber Eats including phone numbers, menu, location, cuisines, and more. export-ready for price and menu tracking, market research, competitor analysis, and lead generation. $3 per 1000 listings.

Uber Eats Restaurant Scraper โ€” Emails, Phones, SIRET by City

corent1robert/uber-eats-pro-scraper

Turn Uber Eats into CRM-ready restaurant leads โ€” phones, company IDs, addresses, and emails when Uber Eats publishes them. Search by city, territory, or paste store URLs. Built for food suppliers, outbound sales teams, and market research. No login or API key. 31 countries.

๐Ÿ‘ User avatar

Corentin Robert

9

Uber Eats Menu Compare โ€” Competitive Intelligence

jsonjoestar/ubereats-menu-compare

Compare menus, prices, and coverage across multiple Uber Eats restaurants. Fuzzy item matching, price ranking, unique items detection, winner analysis. The only competitive intelligence tool for Uber Eats.

Uber Eats Menu Scraper

sian.agency/uber-eats-menu-scraper

๐Ÿด ONLY Uber Eats scraper with analytics! Extract menus + automatic price/image coverage analysis. Competitive intelligence in seconds. Start free! ๐Ÿ“Š

๐Ÿ‘ User avatar

SIรN Oรœ

179

5.0

๐Ÿด Uber Eats Scraper [PPR]

scraper-engine/uber-eats-scraper

๐Ÿด Uber Eats Scraper [PPR] pulls restaurant and menu data from Uber Eats with precision. ๐Ÿš€ Great for lead gen, market research, and competitive analysis. โšก Fast, reliable, and SEO-ready dataโ€”automate insights today!

๐Ÿ‘ User avatar

Scraper Engine

2

๐Ÿด Uber Eats Scraper

api-empire/uber-eats-scrape

๐Ÿด Uber Eats Scraper extracts restaurant menus, pricing & offers from Uber Eats. ๐Ÿš€ Automate data collection for market research, lead gen & competitive analysisโ€”fast, reliable & built for performance. ๐Ÿ“ˆ