Uber Eats Scraper - Restaurants, Menus, Prices & Phone Leads avatar

Uber Eats Scraper - Restaurants, Menus, Prices & Phone Leads

Pricing

from $5.00 / 1,000 restaurant scrapeds

Go to Apify Store
Uber Eats Scraper - Restaurants, Menus, Prices & Phone Leads

Uber Eats Scraper - Restaurants, Menus, Prices & Phone Leads

Scrape Uber Eats restaurants & stores by city or URL: names, cuisines, ratings, price tier, full menus with prices, hours, geo-coordinates, delivery ETA and contact phone numbers. Includes a monitoring mode for only-new / changed data. Export to JSON, CSV or Excel.

Pricing

from $5.00 / 1,000 restaurant scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Uber Eats Scraper — Restaurants, Menus, Prices & Phone Leads

Extract complete Uber Eats restaurant & store data — names, cuisines, ratings, review counts, price tier, full menus with prices, opening hours, exact geo-coordinates, and the field most scrapers leave empty: the restaurant's contact phone number. Search a whole city (or paste store URLs), filter to the venues you want, and turn every restaurant into a ready-to-contact lead.

No login, no cookies, no browser — fast direct-to-API extraction straight from Uber Eats' own internal endpoints.

Why this Uber Eats scraper?

Most Uber Eats scrapers either need a slow headless browser (or a paid Firecrawl key), return listing cards only, or skip the data that matters for sales and pricing intelligence. This actor hits Uber Eats' internal JSON API directly and ships the richest record in the category:

DataTypical scrapersThis actor
Restaurant contact phone❌ often null✅ direct (E.164)
Rating + review countpartial
Price tier ($–$$$$)partial
Full menu (sections, items, prices, photos)partial / extra cost
Full address + lat/lng
Opening hours (per day)
Cuisines, chain / independentpartial
Lead score (0–100)
Monitoring — only new / changed venues
No browser / no Firecrawl key✅ pure HTTP

Use cases

  • Lead generation — restaurants and ghost kitchens are active buyers: they need POS systems, delivery tech, food distributors & suppliers, packaging, marketing agencies, and reputation tools. Get the phone number, address, cuisine, rating and menu size for every venue in a city and prospect them directly. Filter with onlyWithPhone and sort by leadScore.
  • Menu & price intelligence — pull full menus with item-level prices to benchmark pricing, track menu changes, and analyse a market or a competitor.
  • Market research — map the food-delivery landscape of any city: how many venues per cuisine, price-tier mix, rating distribution, chain vs independent.
  • Competitor & price monitoring — schedule recurring runs with monitoring mode to watch a city for newly listed restaurants and price/rating/menu changes — only new data, every run.
  • Aggregation & apps — feed restaurant directories, food apps and dashboards with clean, structured JSON.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Uber Eats Scraper, enter a city (e.g. Austin, TX) or paste Uber Eats URLs, and click Start.
  3. Watch restaurants stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"city": "Austin, TX",
"cuisines": ["pizza", "sushi", "mexican"],
"maxStores": 100,
"includeStoreDetails": true,
"includeMenu": true,
"onlyWithPhone": true,
"minRating": 4
}
  • cityCity, ST (e.g. Austin, TX, Chicago, IL, Los Angeles, CA) or an Uber Eats city slug (austin-tx, new-york-city).
  • cities — additional cities to scrape in the same run.
  • cuisines — target specific cuisine categories (american, pizza, sushi, mexican, breakfast-and-brunch, dessert, vegan, …). Leave empty to auto-discover every cuisine listed for the city (max coverage).
  • startUrls — Uber Eats store pages (/store/<slug>/<id>), city pages (/city/austin-tx) or category pages (/category/austin-tx/american).
  • maxStores (default 60) — cap on restaurants output for the whole run (0 = no limit).
  • maxCuisineCategories (default 16) — how many cuisine pages to crawl per city for discovery (more = broader coverage).
  • includeStoreDetails (default true) — open each store for phone, geo, hours, rating, price tier and cuisines (the lead-gen wedge).
  • includeMenu (default true) — attach the full menu (sections → items with names, descriptions, prices, images).
  • includeReviews (default false) — attempt to attach review text (best-effort; the rating value and review count are always included).
  • minRating / priceBuckets / openOnly / onlyWithPhone — filters to target exactly the venues you want.
  • monitorMode (default false) — emit only NEW and CHANGED restaurants across runs (see below).

Output

One record per restaurant/store (type: "restaurant"), with the full menu nested:

{
"type": "restaurant",
"storeUuid": "21bbaea5-76fe-4a2f-829a-e7f43e5fa6b1",
"name": "Wow Poke (E. Cesar Chavez)",
"url": "https://www.ubereats.com/store/wow-poke-e-cesar-chavez/21bbaea5-76fe-4a2f-829a-e7f43e5fa6b1",
"phone": "+19292175198",
"rating": 4.8,
"reviewCount": 312,
"priceBucket": "$",
"priceTier": 1,
"currency": "USD",
"cuisines": ["Poke", "Hawaiian", "Healthy"],
"isChain": false,
"parentChainName": null,
"address": "1620 E Cesar Chavez St, Austin, TX 78702",
"city": "Austin",
"region": "TX",
"postalCode": "78702",
"country": "US",
"latitude": 30.2585,
"longitude": -97.7281,
"isOpen": true,
"isOrderable": true,
"supportedDiningModes": ["DELIVERY", "PICKUP"],
"workingHoursTagline": "Open until 9:30 PM",
"hours": [{ "day": "Monday - Sunday", "hours": ["11:00 AM–9:30 PM"] }],
"menuItemCount": 33,
"menu": [
{
"section": "House Poke Bowls",
"itemCount": 6,
"items": [
{ "name": "Spicy Tuna Bowl", "description": "Tuna, sriracha aioli, …", "price": 13.95, "priceText": "$13.95", "imageUrl": "https://…", "isSoldOut": false, "hasCustomizations": true }
]
}
],
"leadScore": 92,
"scrapedAt": "2026-06-16T22:40:00.000Z"
}

Prices are returned in the store's currency. When a venue is added or changes in monitoring mode, the record is tagged with changeType: "new" or "updated".

Monitoring mode — only new & changed restaurants

Turn on monitorMode to track a city without re-paying for rows you already have. The actor remembers every restaurant it has seen (in a named key-value store) and, on each run, emits only:

  • New restaurants that appeared since last time (changeType: "new"), and
  • restaurants whose rating, review count, price tier or menu size changed (changeType: "updated").

This pairs perfectly with Apify Schedules — the schedule triggers the run on your cadence (hourly/daily/weekly); monitoring mode controls what gets emitted and charged. Use a distinct monitorStoreName per city/feed to keep histories separate.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API — start runs, fetch datasets, manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python — official SDKs.
  • Schedules — run it daily/weekly to monitor a city for new restaurants and price changes; perfect for lead pipelines and price trackers.
  • Webhooks — trigger downstream actions (CRM import, Slack alert, sheet append) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/ubereats-scraper').call({
city: 'Austin, TX',
maxStores: 200,
onlyWithPhone: true,
includeMenu: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} Uber Eats restaurants & leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new restaurant leads straight into your CRM.
  • Slack — get notified when a monitored city gets new restaurants.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find the top-rated sushi restaurants in Austin on Uber Eats and list their phone numbers" and let it run this scraper.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete local-business & food lead-gen stack:

Tips

  • Max coverage: leave cuisines empty and raise maxCuisineCategories — the actor crawls the city page plus each cuisine category, surfacing several hundred unique restaurants per city.
  • Lead-gen runs: set onlyWithPhone: true and includeMenu: false for the fastest, cheapest contact list; sort by leadScore.
  • Price tracking: keep includeMenu: true and use monitoring mode on a daily schedule to capture menu/price changes.
  • Proxies: the default datacenter proxy works well. If you see blocks on very large runs, switch proxyConfiguration to RESIDENTIAL (US).
  • Cost control: turn off includeStoreDetails for a listing-only pass, or cap with maxStores.

FAQ

How do I scrape Uber Eats restaurants for a specific city? Put it in city as City, ST (e.g. Austin, TX) or an Uber Eats slug (austin-tx, new-york-city). Add cuisines to target categories, or leave it empty to auto-discover all of them.

Does it get phone numbers? Yes — Uber Eats publishes a contact phone on most store pages, returned in the phone field (E.164). Use onlyWithPhone to keep only venues that have one.

Can I get full menus with prices? Yes — keep includeMenu on and each record includes a menu array of sections → items with names, descriptions, prices and images.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

How do I monitor new restaurants automatically? Turn on monitorMode, then create a Schedule. Each run emits only new/changed venues; add a webhook or Zapier zap to push them into your CRM.

Is scraping Uber Eats legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and Uber Eats' terms.

A field is null — why? Some venues genuinely don't publish a phone, price tier, or coordinates. Fields are null only when the data doesn't exist, not because the scraper skipped them.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.