Uber Eats Restaurant Scraper avatar

Uber Eats Restaurant Scraper

Pricing

from $19.90 / 1,000 results

Go to Apify Store
Uber Eats Restaurant Scraper

Uber Eats Restaurant Scraper

Scrape Uber Eats restaurant data at scale. Search restaurants by location, then pull store profiles with ratings and complete menus with prices. One row per record, ready for price monitoring and competitor analysis.

Pricing

from $19.90 / 1,000 results

Rating

0.0

(0)

Developer

Yasmany Grijalba Casanova

Yasmany Grijalba Casanova

Maintained by Community

Actor stats

2

Bookmarked

15

Total users

0

Monthly active users

17 days ago

Last modified

Share

Extract restaurants, menus, and store details from Uber Eats across the United States: with ratings, delivery fees, ETAs, menu prices, and more.

Apify Actor No Proxy Needed United States


Quick Start

Search restaurants near Miami

{
"mode": "stores",
"query": "Pizza",
"latitude": "25.7617",
"longitude": "-80.1918",
"max_results": 100
}

Each row of that run carries a store_id. Feed it to the other two modes.

Get restaurant details

{
"mode": "store_info",
"store_id": "c13edd5e-4ad7-4a86-80f3-a8fc6f114a17"
}

Extract the full menu

{
"mode": "menu",
"store_id": "c13edd5e-4ad7-4a86-80f3-a8fc6f114a17"
}

Use store_id, not the url, to chain a stores run into the other modes. The url in a search result uses a short identifier that these modes cannot resolve, while store_id from the same row always works. Pasting a restaurant's address bar from ubereats.com into store_url works too, because those URLs end in the UUID.

Tip: Use categories mode first to discover available food types in your target location before searching for stores.


Features

FeatureDescription
Search RestaurantsFind hundreds of restaurants by query and location with full pagination
Complete Menu DataFull menus with prices, descriptions, availability, and Uber Eats' Popular flag
Detailed Store ProfilesAddress, ratings, delivery info, operating hours, and phone
Real-Time DataFresh data directly from Uber Eats platform in structured JSON

Use Cases

  • Market Research: Analyze restaurant offerings and pricing across different US locations to understand market trends
  • Price Monitoring: Track menu prices and delivery fees over time to stay competitive or find the best deals
  • Competitor Analysis: Compare restaurants by ratings, delivery times, fees, and menu offerings
  • Lead Generation: Build targeted lists of restaurants in specific areas for sales and marketing outreach

Input Parameters

ParameterTypeDefaultDescription
modestringnoneRequired. Operation mode: store_info, menu, stores, or categories
store_urlstringnoneFull Uber Eats store URL. Required for store_info and menu modes
store_idstringnoneStore UUID (alternative to store_url). Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
querystringnoneSearch term (e.g., "Pizza", "Sushi"). Required for stores mode
latitudestring"25.7617"Location latitude. Required for stores and categories modes
longitudestring"-80.1918"Location longitude. Required for stores and categories modes
max_resultsinteger1000Maximum restaurants to extract in stores mode (up to 5000)
request_waitinginteger5Delay between requests in seconds (minimum: 3)
useApifyProxybooleanfalseEnable Apify Proxy. Off by default; see the note below
proxyGroupsarray["RESIDENTIAL"]Proxy group, used only when useApifyProxy is on
proxyCountrystring"US"Proxy country code, used only when useApifyProxy is on

No proxy needed, and turning one on will break the run. Uber Eats answers the Apify platform's own address directly, so the default settings work as they are and you pay for no proxy traffic. Requests routed through Apify's residential pool came back 403 on all four modes when measured, so useApifyProxy ships off. Turn it on only if you have a proxy Uber Eats accepts.

A run whose proxy cannot be configured now stops with a message instead of quietly continuing unproxied.


Output Examples

The dataset holds one item per record: one per menu item, one per restaurant found, one per store profile. Every row repeats the run context (mode and scraped_at) so an exported CSV or Excel file stands on its own.

Upgrading from v1.0: menu and stores used to write a single item with every record nested under data. Code reading items[0].data[...] gets nothing now and should iterate the dataset directly. Field names are unchanged, and store_info and categories are not affected.

A run that reaches Uber Eats but finds nothing writes one row with status: "NO_RESULTS" and a message saying why, so a run is never silently empty. When data cannot be retrieved at all, the run fails with a message instead of finishing green.

Stores Mode

One row per restaurant. latitude and longitude are the restaurant's own; the coordinates you searched with come back as search_latitude and search_longitude.

delivery_fee is null unless the restaurant shows a fee badge, which was 1 of 60 restaurants measured. Null means Uber Eats published no fee for that listing, not free delivery. delivery_fee_text carries the badge as written, because the fee is often conditional: "$0 Delivery Fee on $10+" is not the same offer as "$0 Delivery Fee".

{
"mode": "stores",
"scraped_at": "2026-09-09T03:59:26.023621+00:00",
"query": "pizza",
"search_latitude": "25.7617",
"search_longitude": "-80.1918",
"store_id": "efcba862-6a16-48d3-8078-dd48b36f9bd1",
"name": "Dimelo Pizzeria",
"slug": "dimelo-pizzeria",
"rating": 4.7,
"review_count": "150+",
"eta_min": 43,
"eta_max": 63,
"delivery_fee": 0,
"delivery_fee_text": "$0 Delivery Fee on $10+",
"image_url": "https://tb-static.uber.com/prod/image-proc/processed_images/f011b236ceb047f92f1f1b0432f56c0b/3ac2b39ad528f8c8c5dc77c59abb683d.jpeg",
"is_orderable": true,
"latitude": 25.8913,
"longitude": -80.3555,
"url": "https://www.ubereats.com/store/dimelo-pizzeria/78uoYmoWSNOAeN1Is2-b0Q"
}

Store Info Mode

A single row. hours and location are nested objects, trimmed here.

{
"mode": "store_info",
"scraped_at": "2026-09-09T03:46:36.639254+00:00",
"name": "MCDONALDS (PALMETTO BAY)",
"store_id": "c13edd5e-4ad7-4a86-80f3-a8fc6f114a17",
"slug": "mcdonalds-palmetto-bays",
"rating": {
"ratingValue": 4.5,
"reviewCount": "7000+"
},
"location": {
"address": "18295 S Dixie Hwy, PERRINE, FL 33157",
"streetAddress": "18295 S DIXIE HWY",
"city": "PERRINE",
"country": "US",
"postalCode": "33157",
"region": "FL",
"latitude": 25.6008566,
"longitude": -80.352438,
"geo": {
"city": "palmetto-bay-fl",
"country": "us",
"neighborhood": "perrine-palmetto-bay-fl",
"region": "fl"
},
"locationType": "DEFAULT"
},
"hours": [
{
"dayRange": "Sunday",
"sectionHours": [
{
"startTime": 240,
"endTime": 659,
"sectionTitle": "Breakfast"
}
]
}
],
"phone": "+13052387129"
}

One row per item. This one is flagged Popular by Uber Eats.

{
"mode": "menu",
"scraped_at": "2026-09-09T03:53:23.240178+00:00",
"name": "Medium French Fries",
"description": "",
"product_id": "dd1daf3c-e93e-5030-965d-fe67e67077c9",
"category": "FEATURED ITEMS",
"store_id": "c13edd5e-4ad7-4a86-80f3-a8fc6f114a17",
"available": "Y",
"has_customizations": "Y",
"price_to": 4.29,
"price_from": null,
"discount": null,
"endorsement": "Y",
"image": "https://tb-static.uber.com/prod/image-proc/processed_images/c821c5db2718d95dd1fd68002987ec27/c67fc65e9b4e16a553eb7574fba090f1.jpeg",
"created_at": "2026-09-08",
"hour": "23:53:23"
}

price_from and discount are null unless the item is on promotion, and promotions are rare: zero of 1,320 items measured across two stores carried one. A price_to of 0 is a genuinely free item, such as a condiment packet, not a missing price.

Categories Mode

A single row carrying the category list.

{
"mode": "categories",
"scraped_at": "2026-09-09T03:46:49.066376+00:00",
"latitude": "25.7617",
"longitude": "-80.1918",
"total": 19,
"categories": [
{
"title": "Pizza",
"titleTerm": "Pizza",
"type": "restaurant_category"
},
{
"title": "Sushi",
"titleTerm": "Sushi",
"type": "restaurant_category"
},
{
"title": "Tacos",
"titleTerm": "Tacos",
"type": "restaurant_category"
}
]
}

City Coordinates

CityLatitudeLongitude
Miami, FL25.7617-80.1918
New York, NY40.7128-74.0060
Los Angeles, CA34.0522-118.2437
Chicago, IL41.8781-87.6298
Houston, TX29.7604-95.3698
San Francisco, CA37.7749-122.4194

Get coordinates: Open Google Maps, right-click any US location, and copy the coordinates. First number = latitude, second = longitude.


FAQ


Support

  1. Check the FAQ above for common solutions
  2. Test with default values using the Miami coordinates example
  3. Contact support through Apify for additional assistance