Uber Eats Scraper - Menus, Prices, Reviews avatar

Uber Eats Scraper - Menus, Prices, Reviews

Pricing

$2.00 / 1,000 results

Go to Apify Store
Uber Eats Scraper - Menus, Prices, Reviews

Uber Eats Scraper - Menus, Prices, Reviews

Scrape Uber Eats restaurants worldwide โ€” full menus with prices in cents, reviews, hours, ratings, and chain IDs in a single HTTP request. 10 countries supported. $2 per 1,000 results, no per-run fee.

Pricing

$2.00 / 1,000 results

Rating

0.0

(0)

Developer

Sourabh Kumar

Sourabh Kumar

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

3

Monthly active users

20 days ago

Last modified

Share

Overview

Ubereats Scraper extracts Uber Eats restaurants with full menus, prices, hours, reviews, and chain rollups. One HTTP request per store, no headless browser, no login. A single fetch returns the same data competing scrapers stitch together from 3 to 5 endpoints.

Pay only for what you keep: $2.00 per 1,000 results. No per-run fee, no monthly minimum.

Country-aware across the US, UK, Canada, Australia, Japan, France, Germany, Mexico, and Brazil.


What data can you extract?

๐Ÿช Title + UUID๐Ÿ”— parentChain rollup๐Ÿ“ž Phone number๐Ÿ“ Geocoded address
๐Ÿฝ๏ธ Cuisine + dietary tags๐Ÿ’ต Menu items (cents)๐Ÿ“‹ Section structure๐Ÿ–ผ๏ธ Hero image (all widths)
โญ Rating + countโฐ Hours (in minutes)๐Ÿšด Delivery + service fees๐Ÿ“ Reviews + dedup keys
๐ŸŸข isOpen / isOrderable๐Ÿ›๏ธ Dining modes๐Ÿ“Š Menu analytics rollup๐ŸŒ Currency + locale

Two scraping modes: store and discover

The mode field is optional. By default it's set to auto, which inspects each URL and routes it to the right mode. You only need to set mode explicitly if you want to force a specific path (for example, to skip auto-detection or run mixed inputs through one mode).

mode valueBehaviorUse when
auto (default, used when mode is not provided)Picks store or discover per URL shapeMost runs. Skip the mode field entirely.
storeForces store mode for every URL in the runAll inputs are restaurant URLs and you want the full menu + reviews per record.
discoverForces discover mode for every URLInputs are listings, /near-me, or cuisine keywords.

Auto-detection rules: a URL matching https://www.ubereats.com/store/<slug>/<uuid> routes to store. A /near-me URL, a /feed listing URL, or a cuisine keyword like pizza, sushi, chinese routes to discover.

Store mode: URL points to a single restaurant

Returns one record with the full menu (all sections + items), reviews summary, analytics rollup, hours, contact, address, and chain ID. Up to 11 most-recent and 3 featured reviews per store, each with a contentUUID for deduplication.

Triggers: any URL matching https://www.ubereats.com/store/<slug>/<uuid>.

Example input:

{
"urls": ["https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ"],
"mode": "store",
"country": "US",
"includeReviews": true
}

Discover mode: listing URL or cuisine keyword

Returns one record per restaurant in the listing (up to maxResults), with identity, rating, ETA, delivery fee, cuisine list, and address. Menus and reviews are not fetched in discover mode. Switch to store mode (or pass the store URL directly) for those.

Triggers: /near-me URLs, /feed listing URLs, or cuisine keywords like pizza, sushi, chinese.

Example input (cuisine keyword):

{
"urls": ["pizza"],
"mode": "discover",
"country": "US",
"address": "San Francisco, CA",
"maxResults": 50
}

Example input (listing URL):

{
"urls": ["https://www.ubereats.com/near-me"],
"mode": "discover",
"country": "US",
"maxResults": 30
}

Global & multi-language support

The actor handles 9 country markets. Cuisine keywords route through the matching country prefix; the residential proxy attaches the country IP at fetch time.

RegionCountry codeSample cuisine keywordsDiscover-mode listings
๐Ÿ‡บ๐Ÿ‡ธ United StatesUSpizza, mexican, sushi, bbqโœ…
๐Ÿ‡ฌ๐Ÿ‡ง United KingdomGBpizza, indian, kebab, fish-and-chipsโœ…
๐Ÿ‡จ๐Ÿ‡ฆ CanadaCApizza, poutine, sushiโœ…
๐Ÿ‡ฆ๐Ÿ‡บ AustraliaAUpizza, thai, indianโœ…
๐Ÿ‡ฏ๐Ÿ‡ต JapanJPsushi, ramen, pizzaโœ…
๐Ÿ‡ซ๐Ÿ‡ท FranceFRpizza, sushi, burgerโœ…
๐Ÿ‡ฉ๐Ÿ‡ช GermanyDEpizza, burger, sushi, italian, asianโœ…
๐Ÿ‡ฒ๐Ÿ‡ฝ MexicoMXpizza, sushi, burger, japaneseโœ…
๐Ÿ‡ง๐Ÿ‡ท BrazilBRโ€” (use store URLs directly)store URLs only

The cuisine-keyword vocabulary is set by Uber Eats per country and not all keywords resolve in every market. The samples above are verified-working as of 2026-05-06; if you pass a keyword Uber Eats doesn't curate (e.g. kebab in DE, tacos in MX), the discover URL returns 404 and that keyword is skipped. Drop to a direct store URL when in doubt.

๐Ÿ‡ฎ๐Ÿ‡ณ India: Uber Eats sold its India operations to Zomato in 2020. The IN country code is intentionally not supported โ€” use Zomato or Swiggy scrapers instead.

๐Ÿ‡ง๐Ÿ‡ท Brazil: Uber Eats no longer serves the /near-me listing path on the Brazilian site (HTTP 410). Store URLs work; cuisine-keyword discovery does not.

Native scripts (Kanji, etc.) are returned unchanged in title, cuisineList, and menu fields. The actor never re-encodes them.


How to scrape Uber Eats: step by step

  1. Create a free Apify account. Takes 30 seconds, no card needed.
  2. Open Ubereats Scraper in the Apify Console.
  3. Paste store URLs, listing URLs, or cuisine keywords (one per line) and pick a country.
  4. Click Start. A single store usually finishes in 5 to 15 seconds; a /near-me discover run in 10 to 30 seconds.
  5. Export as JSON, CSV, or Excel, or fetch via API.

How much does Ubereats Scraper cost?

  • Per 1,000 results: $2.00
  • Free-plan yield: roughly 2,500 results/month on the $5 in monthly Apify credits.
  • Starter-plan yield: about 14,500 results/month on the $29 Starter plan.

No per-run fee. You pay only for records pushed to the dataset; failed URLs don't charge.


Input

{
"urls": [
"https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ",
"pizza"
],
"country": "US",
"address": "San Francisco, CA",
"mode": "auto",
"maxResults": 50,
"includeReviews": true
}
FieldTypeDefaultNotes
urlsstring[]["https://www.ubereats.com/near-me"] (prefill)Store URLs, listing URLs, or cuisine keywords. Mode auto-detects from URL shape.
countryenumUSOne of US, GB, CA, AU, IN, JP, FR, DE, MX, BR. Drives proxy country and cuisine-keyword URL prefix.
addressstringn/aCity, ZIP, or full address. Discover mode only; ignored for store URLs.
modeenumautoOverride auto-detection: auto, discover, or store.
maxResultsinteger500 = unlimited.
includeReviewsbooleantrueReviews are inline in the store payload, no extra HTTP cost.
proxyConfigurationproxyApify ResidentialCountry defaults to the country input.

Recipes

Single store, full menu + reviews

{
"urls": ["https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ"]
}

Pull every pizza place in a city

{
"urls": ["pizza"],
"country": "US",
"address": "San Francisco, CA",
"maxResults": 100
}

Multi-country sushi sweep

{
"urls": ["sushi"],
"country": "JP",
"maxResults": 50
}

Bulk compare 10 chain locations

{
"urls": [
"https://www.ubereats.com/store/.../<uuid-1>",
"https://www.ubereats.com/store/.../<uuid-2>",
"https://www.ubereats.com/store/.../<uuid-3>"
],
"includeReviews": false
}

Group results by parentChain.uuid to roll multi-location chains into one row.

Listing URL with graceful degradation

{
"urls": [
"https://www.ubereats.com/near-me",
"https://www.ubereats.com/store/this-does-not-exist/abc123"
],
"country": "US"
}

The dead URL lands in the run's KV store under OUTPUT_ERRORS; the listing URL still returns its records and the run exits SUCCEEDED.


Output

Real record from a recent store-mode run on jessies-breakfast:

{
"url": "https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ",
"uuid": "50054718-d481-4027-aa84-acc4b62b3749",
"title": "Jessie's Breakfast",
"parentChain": {
"uuid": "087ad4be-ff14-4f64-abbb-6afcc2e2a7e8",
"name": "mi yucatan"
},
"phoneNumber": "+14152854455",
"address": {
"raw": "2845 Mission St, San Francisco, CA 94110",
"city": "san-francisco-ca",
"region": "ca",
"country": "us",
"neighborhood": "inner-mission-san-francisco-ca",
"postalCode": null,
"lat": 37.7515222,
"lng": -122.418227
},
"cuisineList": ["Mexican", "Latin American", "New Mexican", "Breakfast and Brunch"],
"currencyCode": "USD",
"isOpen": true,
"isOrderable": true,
"supportedDiningModes": ["DELIVERY", "PICKUP"],
"hours": [
{ "dayOfWeek": "Monday", "openMinute": 300, "closeMinute": 1140 },
{ "dayOfWeek": "Tuesday", "openMinute": 300, "closeMinute": 1140 }
],
"rating": 4.524852569502948,
"ratingCount": 700,
"ratingCountText": "700+",
"etaText": "170โ€“170 Min",
"fareBadge": "Higher Delivery Fee",
"heroImage": {
"url": "https://tb-static.uber.com/prod/image-proc/processed_images/626bdb5364060c8af14e6842adfcf3a4/e39556ef1e4c4565bc6c7dbd8b90869c.jpeg",
"widths": []
},
"logoImage": "https://tb-static.uber.com/prod/image-proc/processed_images/c5ca80f0759d63e9b8d3387af3783b50/e00617ce8176680d1c4c1a6fb65963e2.png",
"menu": [
{
"sectionUuid": "b6b256e0-3d55-4e91-9bfd-dd9f678925f0",
"sectionName": "Bagels",
"items": [
{
"itemUuid": "127c612c-8442-465b-8cdc-ce5642602c34",
"title": "HUEVOS ALA MEXICANA",
"description": "Dice,.tomatoes ,onions , spinach eggs.cheese served with potatoes.and toast",
"priceCents": 3199,
"priceText": "$31.99",
"imageUrl": "https://tb-static.uber.com/prod/image-proc/processed_images/2f81eb678acf0792b3c097f37a63f1a2/4218ca1d09174218364162cd0b1a8cc1.jpeg",
"isSoldOut": false,
"isAvailable": true,
"hasCustomizations": false,
"endorsement": null,
"popularityHints": []
}
]
}
],
"menuSectionCount": 1,
"menuItemCount": 91,
"analytics": {
"totalSections": 1,
"totalItems": 91,
"minPriceCents": 199,
"maxPriceCents": 3999,
"avgPriceCents": 1820,
"imageCoverage": 0.978,
"descriptionCoverage": 0.978,
"customizationCoverage": 0.033
},
"reviews": {
"summary": [
{
"contentUUID": "cc1d9020-1e92-47aa-bb0e-47b37fc7844a",
"createdAt": "2025-04-23T00:00:00",
"author": "SARAH ROSE C.",
"text": "Loved the croissant french toast it's always delicious",
"source": "UNKNOWN"
}
],
"featured": [
{
"contentUUID": "844f21fc-42fc-44b9-9a39-71a28890d54f",
"createdAt": "2024-05-29T00:00:00",
"author": "LORI B.",
"text": "was craving eggs for a few days now, and the steak was an amazing touch!"
}
]
},
"scrapedAt": "2026-05-06T10:34:03.055Z",
"scrapedFrom": "react_query_state"
}

Field availability by mode

Field groupStore modeDiscover mode
Identity (uuid, title, url, parentChain)โœ…โœ…
Address (full geocoded)โœ…โœ…
Contact (phoneNumber)โœ…n/a
Cuisine + dietary tagsโœ…โœ…
Hours (per-day, minutes-from-midnight)โœ…n/a
Rating + countโœ…โœ…
Delivery / service fees, ETA, badgesโœ…โœ…
Hero + logo imageโœ…โœ…
Full menu (sections + items + cents)โœ…n/a
Analytics rollupโœ…n/a
Reviews (summary + featured)โœ…n/a
scrapedFrom source tagโœ…โœ…

If you need menus or reviews from a discover-mode run, take the resulting store URLs and feed them back into a second run in store mode.


FAQ

How much does Ubereats Scraper cost?

Ubereats Scraper uses pay-per-result pricing. You pay $2.00 for 1,000 results. The Apify Free plan gives you $5 in usage credits a month, enough for around 2,500 results. If you run regularly, the $29/month Starter plan covers about 14,500 results.

No subscription lock-in. Pause whenever.

Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only touches publicly accessible Uber Eats pages, but how you use the output is on you.

Apify's full breakdown: Is web scraping legal?.

Can I integrate Ubereats Scraper with other tools?

Push results into Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Apify treats every actor as a webhook source, so anything that consumes webhooks or pulls from an API works.

Full list: Apify integrations.

Can I use Ubereats Scraper with the Apify API?

Yes. Every run is available via the Apify REST API:

curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~ubereats-scraper/runs?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://www.ubereats.com/store/jessies-breakfast/UAVHGNSBQCeqhKzEtis3SQ"],"country":"US"}'

Docs: Apify API reference.

Can I use Ubereats Scraper through an MCP Server?

Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call Ubereats Scraper. Setup: Apify MCP docs.


Your feedback

Bug, missing field, or odd behavior? Drop a note in the Issues tab. Reports go to a human and fixes usually ship the same week.