Uber Eats APIubereats.com ↗
Search Uber Eats restaurants, browse location-based feeds, and retrieve menu item details including price, customizations, and nutritional info via a simple REST API.
What is the Uber Eats API?
This API exposes 3 endpoints covering Uber Eats restaurant discovery and menu data. Use search_restaurants to query restaurants by cuisine keyword and delivery address, get_restaurant_feed to retrieve location-based restaurant carousels and filters, or get_menu_item_details to pull per-item pricing, customization options, and nutritional information for a specific store's menu item.
curl -X GET 'https://api.parse.bot/scraper/d099b7ec-930c-4761-ac7e-40b4573de246/search_restaurants?query=Pizza&address=New+York%2C+NY' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ubereats-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Uber Eats SDK — search restaurants, browse feeds, get menu item details."""
from parse_apis.uber_eats_api import UberEats, MenuItemNotFound
client = UberEats()
# Search for pizza restaurants near a specific address
results = client.searchresults.search(query="Pizza", address="New York, NY")
print(f"Search returned {len(results.feed_items)} feed items")
for mode in results.dining_modes:
print(f" Mode: {mode.mode} - {mode.title} (available: {mode.is_available})")
# Browse the restaurant feed for a location
feed = client.restaurantfeeds.get(address="New York, NY")
print(f"\nFeed: {len(feed.feed_items)} items, fallback={feed.is_fallback_feed}")
for item in feed.feed_items[:3]:
print(f" {item.type}: {item.uuid}")
# Get details for a specific menu item (UUIDs from store catalog)
try:
item = client.menuitems.get(
item_uuid="36e8c1db-3968-560c-be1d-ad772f614fac",
store_uuid="9b93975a-bfd9-42e3-ab16-54bc6f5fba41",
section_uuid="de91b715-9dda-506d-8220-1c4d436ead09",
subsection_uuid="f6ecca8e-7b42-4f97-9e86-d8f2bab59141",
address="New York, NY",
)
print(f"\nMenu item: {item.title}, price={item.price}, sold_out={item.is_sold_out}")
except MenuItemNotFound as exc:
print(f"Item not found: {exc}")
print("\nexercised: searchresults.search / restaurantfeeds.get / menuitems.get")
Search for restaurants by query and address. Returns a list of restaurants matching the search criteria along with filters, dining modes, and pagination metadata. The query matches restaurant names and cuisine types. Results are geo-scoped to the resolved delivery address.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword for restaurants or cuisine types (e.g., 'Pizza', 'Sushi', 'Chinese', 'McDonald's') |
| address | string | Delivery address to search near. Can be a city/state or full street address. |
{
"type": "object",
"fields": {
"meta": "object with pagination offset and hasMore flag",
"favorites": "object containing user favorites state",
"feedItems": "array of restaurant results with store details, ratings, images, and delivery info",
"diningModes": "array of available dining modes (DELIVERY, PICKUP)",
"sortAndFilters": "array of available filter options (offers, delivery fee, delivery time)"
}
}About the Uber Eats API
Restaurant Search and Discovery
The search_restaurants endpoint accepts a query string (e.g., 'Pizza', 'Sushi') and an optional address parameter. Results come back as feedItems, each containing store details, ratings, images, and delivery info. The response also includes diningModes (DELIVERY, PICKUP), sortAndFilters for offer and delivery-fee filters, and a meta object with offset and hasMore for paginating through results.
Location-Based Restaurant Feed
The get_restaurant_feed endpoint takes a required address and returns the same feedItems, diningModes, and sortAndFilters structure, but scoped to a browsable feed rather than a keyword search. It additionally returns isFallbackFeed, a boolean that signals whether the results are approximate due to limited coverage at the given address. This is useful for detecting whether a location is well-served by Uber Eats.
Menu Item Details
The get_menu_item_details endpoint requires both item_uuid and store_uuid — UUIDs obtainable from store catalog data. Optionally providing section_uuid and subsection_uuid improves result accuracy when items appear in multiple sections. The response includes price (in cents as an integer), title, imageUrl, isSoldOut, itemDescription, nutritionalInfo, and a customizationsList array that enumerates modifier groups such as size, toppings, and add-ons.
The Uber Eats API is a managed, monitored endpoint for ubereats.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ubereats.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ubereats.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a restaurant comparison tool using ratings, delivery fees, and estimated delivery times from
search_restaurants. - Populate a location-aware food discovery app using
get_restaurant_feedcarousels tied to a user's delivery address. - Monitor menu item availability and sold-out status across stores using
isSoldOutfromget_menu_item_details. - Extract customization options and modifier pricing for menu digitization or third-party ordering integrations.
- Aggregate nutritional information from
nutritionalInfofields across multiple restaurant menu items. - Detect Uber Eats coverage at a given address using the
isFallbackFeedflag in the restaurant feed response. - Filter restaurant results by dining mode (DELIVERY vs. PICKUP) and delivery fee thresholds using
sortAndFilters.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Uber Eats have an official developer API?+
What does `get_restaurant_feed` return beyond a list of restaurants?+
feedItems which include both individual restaurants and carousel groupings (e.g., featured or curated collections), alongside diningModes (DELIVERY, PICKUP), sortAndFilters for narrowing results, and isFallbackFeed — a boolean indicating whether results are approximate because Uber Eats has limited coverage at the requested address.How should I obtain `item_uuid` and `store_uuid` for `get_menu_item_details`?+
store_uuid identifies the restaurant, and item_uuid identifies a specific menu entry within that store. Providing the optional section_uuid and subsection_uuid parameters reduces ambiguity when the same item appears in multiple menu sections.Does the API return full restaurant menus or individual store pages?+
search_restaurants and get_restaurant_feed, plus single-item detail lookup via get_menu_item_details. Full menu catalogs — listing all sections and every item for a given store — are not a dedicated endpoint. You can fork this API on Parse and revise it to add a full store-menu endpoint.Does the API cover Uber Eats data outside the United States?+
isFallbackFeed behavior will vary by region, and coverage depends on what Uber Eats serves at the given address. Real-time availability for specific international markets is not guaranteed.