Uber Eats Scraper avatar

Uber Eats Scraper

Pricing

from $4.00 / 1,000 restaurant scrapeds

Go to Apify Store
Uber Eats Scraper

Uber Eats Scraper

Scrape Uber Eats restaurants and full menus by location or store URL. HTTP-only, no login, MCP-ready.

Pricing

from $4.00 / 1,000 restaurant scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Scrape Uber Eats restaurants and full menus by location or store URL — fast, HTTP-only (no browser), no login, and MCP-ready for AI agents. Search any city or address to get restaurant cards (name, rating, ETA, delivery fee, cuisine, store URL), or paste store URLs to extract complete menus with item prices, descriptions, sections, and images.

What it does

  • Search by location — give a free-text address or city (geocoded automatically) or exact lat,lng, and get the live list of nearby restaurants with ratings, review counts, ETAs, delivery fees, and store URLs.
  • Full menus — paste Uber Eats store URLs, or turn on enrichMenus, to pull complete menus: sections, item names, prices, descriptions, images, and availability.
  • Any market — works for any Uber Eats city/region; switch proxy country and localeCode to match.

When to use it

  • Food-delivery market research and competitive analysis — track competitor menus, prices, and coverage city-by-city.
  • Pricing intelligence — monitor item prices and delivery fees across restaurants over time.
  • Lead lists for restaurant-tech / POS / delivery SaaS — names, ratings, and store URLs by area.
  • AI agents — a clean tool call: one location or URL in, structured JSON out.

Not for placing orders, scraping individual customer data, or order tracking — this returns public restaurant and menu listings only.

Output

Search mode returns one record per restaurant. Store-URL mode (and enrichMenus) adds the full menu.

FieldDescription
nameRestaurant name
ratingAverage star rating (e.g. 4.7)
reviewCountNumber of ratings
priceBucketPrice tier ($, $$, $$$) — enriched only
etaTextEstimated delivery/pickup time (e.g. "12 min")
deliveryFeeTextDelivery fee as shown
cuisinesCuisine tags — enriched only
phone, address, cityContact + location — enriched only
storeUrlCanonical Uber Eats store URL
imageUrl / heroImageUrlRestaurant image
storeUuidStable Uber Eats store ID
menuItemCountNumber of menu items returned
menuArray of { name, price, priceCents, description, section, imageUrl, isAvailable }
cityName, searchLocation, scrapedAtRun context (ISO 8601 timestamp)

Example menu item

{
"name": "Spicy Tuna Roll",
"description": "Tuna, spicy mayo, cucumber, sesame.",
"price": 12.95,
"priceCents": 1295,
"section": "Signature Rolls",
"isAvailable": true
}

Pricing — Pay Per Event

EventPrice
Actor start$0.00005
Restaurant scraped (per card)$0.004
Menu scraped (per full store menu)$0.008

A 50-restaurant search costs about $0.20. Enriching 20 of them with full menus adds about $0.16. Pay-per-usage (compute + proxy) is also available for very large jobs.

Input

FieldTypeNotes
locationstringAddress or city, e.g. New York, NY (geocoded). Default.
locationLatLngstringlat,lng — overrides geocoding.
startUrlsarrayUber Eats store URLs for direct menu mode.
searchQuerystringKeyword search (cuisine/dish/brand), e.g. sushi.
enrichMenusbooleanFetch full menu per restaurant (default false).
maxRestaurantsintegerCap restaurants (default 50).
maxMenusToScrapeintegerCap enriched menus (default 20).
diningModeenumDELIVERY or PICKUP.
proxyConfigurationobjectDefaults to Apify Residential US.
{
"location": "New York, NY",
"maxRestaurants": 50
}

Full menus from store URLs

{
"startUrls": [
"https://www.ubereats.com/store/your-restaurant/STORE_ID"
]
}

Search + enrich top menus

{
"location": "Chicago, IL",
"searchQuery": "pizza",
"enrichMenus": true,
"maxMenusToScrape": 10
}

Using via API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~uber-eats-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "location": "Austin, TX", "maxRestaurants": 30 }'

Using with AI agents (MCP)

This actor is exposed through the Apify MCP server as khadinakbar/uber-eats-scraper. Point your MCP client at https://mcp.apify.com and call it with a location or startUrls. It returns flat, agent-friendly JSON.

How it works

The actor talks directly to Uber Eats' own JSON endpoints (getFeedV1 for the location feed, getStoreV1 for menus) over plain HTTP — no headless browser, so runs are fast and cheap. Free-text addresses are geocoded with OpenStreetMap Nominatim. Apify Residential proxies are used by default because Uber Eats blocks most datacenter IPs.

FAQ

Do I need cookies or a login? No. The actor is cookieless.

Which countries work? Any Uber Eats market. Set proxyConfiguration country and localeCode to match (e.g. en-GB).

Why residential proxies? Uber Eats blocks datacenter IPs aggressively. Residential is the reliable default.

What if a location has no restaurants? The run finishes cleanly with a warning (no charge for empty results beyond start).

Can I get item-level modifiers/options? Item names, prices, descriptions, sections, and availability are returned. Deep modifier trees may vary by store.

This actor collects only publicly available data from Uber Eats listing and store pages. Use it in compliance with Uber Eats' Terms of Service and all applicable laws (including data-protection regulations). You are responsible for how you use the scraped data. This tool is not affiliated with, endorsed by, or sponsored by Uber Technologies, Inc. "Uber Eats" is a trademark of its respective owner.