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&zip_code=10001' \ -H 'X-API-Key: $PARSE_API_KEY'
Search Uber Eats for restaurants and dishes matching a keyword, scoped to a delivery location. Returns the site's search feed: a feedItems array of store results (store title, rating, ETA, image, action URL, map coordinates), plus available filters, dining modes, a result-count subtitle, and pagination meta (offset/hasMore, with no caller-controlled paging input; one call returns the first page of up to 80 items). The location comes from zip_code when supplied, otherwise from address. A ZIP is resolved to a point inside that ZIP using the site's own place suggestions; a ZIP the site offers no deliverable place for (for example a PO-box-only ZIP) returns a stale_input error, and a value that is not 5 digits returns a format error. When both zip_code and address are given the ZIP wins and the address only disambiguates the place lookup. A free-text address resolves to the first suggestion the site offers for it, so a city-level string can land on a landmark such as an airport; a street address or ZIP gives predictable scoping. A location with no matching restaurants returns an empty feedItems array as a success. Each call makes two to four requests (place resolution, then the search).
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword for restaurants, dishes, or cuisine types (e.g. 'Pizza'). |
| address | string | Delivery address to search near: a street address, landmark, or city/state string. Ignored for location when zip_code is set (then it only helps disambiguate the ZIP lookup). |
| zip_code | string | 5-digit US ZIP code to scope results to, leading zeros preserved. Takes precedence over address when both are given. |
{
"type": "object",
"fields": {
"meta": "object with pagination offset and hasMore flag",
"title": "string - the quoted search query as shown by the site",
"subtitle": "string or object - result count text (e.g. '420 results')",
"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 | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. 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.