# Uber Eats API

> Uber Eats provides restaurant listings, menus, prices, ratings, and delivery details as a workflow and API.

Uber Eats Search restaurants finds listings by cuisine or dish for a required delivery address; the query is optional. Get restaurant menu returns items, prices, ratings, and delivery details for a required restaurant and city or address.

- Page: https://fous.com/tools/uber-eats
- Handle: `@uber-eats`
- Category: [Food](https://fous.com/tools/category/food)
- Source website: https://ubereats.com
- Last verified: Sep 30, 2026

## Methods

### Get restaurant menu

Operation `get_restaurant_menu`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get the delivery menu, prices, rating, and delivery details for the nearest matching Uber Eats restaurant at a city or address. For a city, a central listed address is used; delivery fees may reflect guest promotions, and rating counts may be rounded.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `location` | string | yes | `"Austin, TX"` | City or delivery address, for example Austin, TX or 1100 S Lamar Blvd, Austin, TX. |
| `restaurant` | string | yes | `"Shake Shack"` | Restaurant name or Uber Eats store link, for example Shake Shack. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "restaurant",
    "location"
  ],
  "properties": {
    "location": {
      "type": "string",
      "description": "City or delivery address, for example Austin, TX or 1100 S Lamar Blvd, Austin, TX.",
      "examples": [
        "Austin, TX",
        "1100 S Lamar Blvd, Austin, TX"
      ]
    },
    "restaurant": {
      "type": "string",
      "description": "Restaurant name or Uber Eats store link, for example Shake Shack.",
      "examples": [
        "Shake Shack",
        "Domino's",
        "https://www.ubereats.com/store/shake-shack-south-lamar/a9UuLsy9Sj--pzhsJQhEBQ"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "location": "Austin, TX",
      "restaurant": "Shake Shack"
    },
    {
      "location": "1100 S Lamar Blvd, Austin, TX",
      "restaurant": "Domino's"
    },
    {
      "location": "1100 S Lamar Blvd, Austin, TX",
      "restaurant": "https://www.ubereats.com/store/shake-shack-south-lamar/a9UuLsy9Sj--pzhsJQhEBQ"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `address` | string or null | `"1100 South Lamar Blvd, Austin, TX 78704"` |  |
| `store_id` | string or null | `"6bd52e2e-ccbd-4a3f-bea7-386c25084405"` |  |
| `menu_items` | array |  |  |
| `menu_items[].price` | number | `19.47` |  |
| `menu_items[].item_name` | string | `"The Shackburger Meal"` |  |
| `menu_items[].photo_link` | string or null | `"https://tb-static.uber.com/prod/image-proc/processed_images/980d69553a39bea296a836c57e6a5d03/6c3cd142fc812204b1336bf9f7` |  |
| `menu_items[].description` | string or null | `"The ShackBurger Meal includes a single ShackBurger, made with 100% Angus Beef, our signature crispy crinkle cut fries a` |  |
| `menu_items[].menu_section` | string | `"Featured items"` |  |
| `menu_items[].currency_code` | string | `"USD"` |  |
| `store_link` | string | `"https://www.ubereats.com/store/shake-shack-south-lamar/a9UuLsy9Sj--pzhsJQhEBQ"` |  |
| `star_rating` | number or null | `4.6` |  |
| `delivery_fee` | number or null | `0` |  |
| `restaurant_name` | string or null | `"Shake Shack (South Lamar)"` |  |
| `number_of_ratings` | integer or null | `15000` | Displayed count; a rounded count such as 15,000+ is returned as 15000. |
| `estimated_delivery_time` | string or null | `"17–31 Min"` |  |
| `delivery_fee_currency_code` | string | `"USD"` |  |

**Example input**

```json
{
  "location": "Austin, TX",
  "restaurant": "Shake Shack"
}
```

**Example output**

```json
{
  "address": "1100 South Lamar Blvd, Austin, TX 78704",
  "store_id": "6bd52e2e-ccbd-4a3f-bea7-386c25084405",
  "menu_items": [
    {
      "price": 19.47,
      "item_name": "The Shackburger Meal",
      "photo_link": "https://tb-static.uber.com/prod/image-proc/processed_images/980d69553a39bea296a836c57e6a5d03/6c3cd142fc812204b1336bf9f7b1f071.jpeg",
      "description": "The ShackBurger Meal includes a single ShackBurger, made with 100% Angus Beef, our signature crispy crinkle cut fries and a large Coke product. (Contains: Milk, Egg, Wheat, Soy, Sesame) *Approximate w…",
      "menu_section": "Featured items",
      "currency_code": "USD"
    },
    {
      "price": 9.39,
      "item_name": "ShackBurger",
      "photo_link": "https://tb-static.uber.com/prod/image-proc/processed_images/f037033bf3f85a7c4ee9b93b27b1b2d9/6c3cd142fc812204b1336bf9f7b1f071.jpeg",
      "description": "Angus beef cheeseburger with lettuce, tomato, and ShackSauce on a toasted potato bun (Contains: Milk, Egg, Wheat, Soy, Sesame)",
      "menu_section": "Featured items",
      "currency_code": "USD"
    },
    {
      "price": 9.99,
      "item_name": "Chicken Shack",
      "photo_link": "https://tb-static.uber.com/prod/image-proc/processed_images/761f31ed1a8b3059cbe97ebe1e9adac1/6c3cd142fc812204b1336bf9f7b1f071.jpeg",
      "description": "Antibiotic-free, hand-breaded, white-meat chicken breast over lettuce, pickles, and buttermilk herb mayo on a toasted potato bun (Contains: Milk, Egg, Wheat, Sesame)",
      "menu_section": "Featured items",
      "currency_code": "USD"
    }
  ],
  "store_link": "https://www.ubereats.com/store/shake-shack-south-lamar/a9UuLsy9Sj--pzhsJQhEBQ",
  "star_rating": 4.6,
  "delivery_fee": 0,
  "restaurant_name": "Shake Shack (South Lamar)",
  "number_of_ratings": 15000,
  "estimated_delivery_time": "17–31 Min",
  "delivery_fee_currency_code": "USD"
}
```

### Search restaurants

Operation `search_restaurants`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find restaurants delivering to an address in Uber Eats guest browsing order. Fees can be conditional for new users; displayed rating counts may be rounded.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | no | `"ramen"` | Cuisine or dish to search for, for example ramen. Leave blank for all restaurants. |
| `address` | string | yes | `"1 Market St, San Francisco"` | Delivery street address or postcode, for example 1 Market St, San Francisco. |
| `max_results` | integer | no | `3` | Maximum restaurants to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "query": {
      "type": "string",
      "default": "",
      "description": "Cuisine or dish to search for, for example ramen. Leave blank for all restaurants.",
      "examples": [
        "ramen",
        "zzzxxyyzzznofood"
      ]
    },
    "address": {
      "type": "string",
      "description": "Delivery street address or postcode, for example 1 Market St, San Francisco.",
      "examples": [
        "1 Market St, San Francisco",
        "10001"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum restaurants to return, for example 20.",
      "x-fous-developer": true,
      "examples": [
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "ramen",
      "address": "1 Market St, San Francisco",
      "max_results": 3
    },
    {
      "address": "10001",
      "max_results": 3
    },
    {
      "query": "zzzxxyyzzznofood",
      "address": "1 Market St, San Francisco",
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `restaurants` | array |  |  |
| `restaurants[].name` | string | `"HINODEYA Ramen & Bar"` |  |
| `restaurants[].cuisine` | string or null | `"Ramen, Japanese, Comfort Food"` |  |
| `restaurants[].store_id` | string | `"eacc45b2-daf3-4c6e-96bd-5588654e60b4"` |  |
| `restaurants[].photo_link` | string or null | `"https://tb-static.uber.com/prod/image-proc/processed_images/aaebdac941b30bfb4ffd037c26be2228/811141f8f192e16f7ae3ad5ab7` |  |
| `restaurants[].store_link` | string | `"https://www.ubereats.com/store/hinodeya-ramen-%26-bar/6sxFstrzTG6WvVWIZU5gtA"` |  |
| `restaurants[].price_range` | string or null | `"$"` |  |
| `restaurants[].star_rating` | number or null | `4.8` |  |
| `restaurants[].delivery_fee` | number or null | `0` |  |
| `restaurants[].currency_code` | string or null | `"USD"` |  |
| `restaurants[].number_of_ratings` | integer or null | `3000` |  |
| `restaurants[].delivery_fee_as_shown` | string or null | `"$0 delivery fee (new users)"` |  |
| `restaurants[].estimated_delivery_time` | string or null | `"13 min"` |  |

**Example input**

```json
{
  "query": "ramen",
  "address": "1 Market St, San Francisco",
  "max_results": 3
}
```

**Example output**

```json
{
  "restaurants": [
    {
      "name": "HINODEYA Ramen & Bar",
      "cuisine": "Ramen, Japanese, Comfort Food",
      "store_id": "eacc45b2-daf3-4c6e-96bd-5588654e60b4",
      "photo_link": "https://tb-static.uber.com/prod/image-proc/processed_images/aaebdac941b30bfb4ffd037c26be2228/811141f8f192e16f7ae3ad5ab7d1de57.jpeg",
      "store_link": "https://www.ubereats.com/store/hinodeya-ramen-%26-bar/6sxFstrzTG6WvVWIZU5gtA",
      "price_range": "$",
      "star_rating": 4.8,
      "delivery_fee": 0,
      "currency_code": "USD",
      "number_of_ratings": 3000,
      "delivery_fee_as_shown": "$0 delivery fee (new users)",
      "estimated_delivery_time": "13 min"
    },
    {
      "name": "Ramen Hiroshi",
      "cuisine": "Ramen, Japanese, Soup",
      "store_id": "6912b5ab-b7cd-596f-84cd-44e2ca37506a",
      "photo_link": "https://tb-static.uber.com/prod/image-proc/processed_images/03d2f6779ce3531b7bf583a99232fea9/ffd640b0f9bc72838f2ebbee501a5d4b.jpeg",
      "store_link": "https://www.ubereats.com/store/ramen-hiroshi-san-francisco/aRK1q7fNWW-EzUTiyjdQag",
      "price_range": "$",
      "star_rating": 4.6,
      "delivery_fee": 0,
      "currency_code": "USD",
      "number_of_ratings": 150,
      "delivery_fee_as_shown": "$0 delivery fee (new users)",
      "estimated_delivery_time": "17 min"
    },
    {
      "name": "Sapporo Sushi and Ramen Izakaya",
      "cuisine": "Asian, Ramen",
      "store_id": "40a3d2a4-b6df-5ecf-a343-db3b12bcaad9",
      "photo_link": "https://tb-static.uber.com/prod/image-proc/processed_images/b616ddc2a7d10556429e73e1302cf349/97ef7458dde62fa918635bc21265d9f5.jpeg",
      "store_link": "https://www.ubereats.com/store/sapporo-sushi-and-ramen-izakaya-nob-hill/QKPSpLbfXs-jQ9s7Eryq2Q",
      "price_range": null,
      "star_rating": 4.3,
      "delivery_fee": 0,
      "currency_code": "USD",
      "number_of_ratings": 1500,
      "delivery_fee_as_shown": "$0 delivery fee (new users)",
      "estimated_delivery_time": "46 min"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@uber-eats",
  "visibility": "public",
  "operation": "get_restaurant_menu",
  "version": 1,
  "input": {
    "location": "Austin, TX",
    "restaurant": "Shake Shack"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@uber-eats\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_restaurant_menu\",\n  \"version\": 1,\n  \"input\": {\n    \"location\": \"Austin, TX\",\n    \"restaurant\": \"Shake Shack\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@uber-eats",
  "visibility": "public",
  "operation": "get_restaurant_menu",
  "version": 1,
  "input": {
    "location": "Austin, TX",
    "restaurant": "Shake Shack"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/uber-eats`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_restaurant_menu`: Get restaurant menu. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_restaurants`: Search restaurants. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-uber-eats https://api.fous.com/mcp/tools/uber-eats --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Find restaurants serving a particular cuisine or dish
- Compare restaurant ratings and delivery fees by address
- Review menu items and prices for a restaurant
- Compare estimated delivery times across restaurant options

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Uber Eats tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Uber Eats account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from ubereats.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 30, 2026.

### Which restaurants deliver to a particular address?

Search restaurants returns restaurant listings for a required delivery address, with an optional cuisine or dish query.

### What items and prices does a restaurant offer?

Get restaurant menu returns menu items and prices for a required restaurant and city or address.

### What are a restaurant’s delivery fee and rating?

Search restaurants returns listing fees and ratings; Get restaurant menu returns these details for a matching restaurant.

## Related

- [DoorDash API](https://fous.com/tools/doordash.md): DoorDash lists nearby restaurants and menus, prices, ratings, delivery fees, and estimated times; offers, availability, fees, and times can change.
- [McDonald's API](https://fous.com/tools/mcdonalds.md): McDonald’s provides menu-item food information for US, UK and Canadian items, plus nearby US restaurants and listed hours today, which may miss unexpected closures.
- [OpenTable API](https://fous.com/tools/opentable.md): OpenTable returns bookable tables within two hours or near requested times, plus public restaurant profiles; availability changes, and some profile details may be missing.
- [Starbucks API](https://fous.com/tools/starbucks.md): Starbucks provides menu drinks and food with nutrition, ingredients, allergens, and photos, plus nearby cafés ranked by distance with current open status, local hours, and amenities.
- [Tripadvisor API](https://fous.com/tools/tripadvisor.md): Tripadvisor provides traveler-ranked first-page city listings of attractions, restaurants and hotels, plus latest reviews; hotel prices and booking sites depend on supplied stay dates and availability.
- [Chipotle API](https://fous.com/tools/chipotle.md): Chipotle restaurant menus, prices, and nutrition information.
- [Michelin Guide API](https://fous.com/tools/michelin-guide.md): Restaurant selections, distinctions and reviews from the Michelin Guide.
- [Yelp API](https://fous.com/tools/yelp.md): Yelp returns local business matches, public profiles, ratings and up to 60 publicly shown reviews; matches are unsponsored and Yelp-ordered, but later results may lack contact or location details.
- [All Food tools](https://fous.com/tools/category/food)
