# DoorDash API

> DoorDash returns restaurant listings, menus, and delivery estimates, available as a workflow and API.

DoorDash’s Search restaurants method returns restaurant matches for a required delivery address and optional cuisine or dish query. Get restaurant menu returns a matching restaurant’s menu and delivery details for a required location and restaurant name or link.

- Page: https://fous.com/tools/doordash
- Handle: `@doordash`
- Category: [Food](https://fous.com/tools/category/food)
- Source website: https://doordash.com
- Last verified: Sep 29, 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 nearest matching DoorDash restaurant that delivers to a place, with its menu, prices, ratings, delivery fee and estimated time. Fees may reflect a first-order offer; availability and times change.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `location` | string | yes | `"Brooklyn, NY"` | Delivery city and state, street address, or ZIP code, e.g. Brooklyn, NY or 11249. |
| `restaurant` | string | yes | `"Joe's Pizza"` | Restaurant name or DoorDash store link, e.g. Joe’s Pizza or https://www.doordash.com/store/joes-pizza-brooklyn-29415/. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "restaurant",
    "location"
  ],
  "properties": {
    "location": {
      "type": "string",
      "description": "Delivery city and state, street address, or ZIP code, e.g. Brooklyn, NY or 11249.",
      "examples": [
        "Brooklyn, NY",
        "11249"
      ]
    },
    "restaurant": {
      "type": "string",
      "description": "Restaurant name or DoorDash store link, e.g. Joe’s Pizza or https://www.doordash.com/store/joes-pizza-brooklyn-29415/.",
      "examples": [
        "Joe's Pizza",
        "https://www.doordash.com/store/joes-pizza-brooklyn-29415/"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "location": "Brooklyn, NY",
      "restaurant": "Joe's Pizza"
    },
    {
      "location": "11249",
      "restaurant": "https://www.doordash.com/store/joes-pizza-brooklyn-29415/"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `address` | string or null | `"216 Bedford Ave, Brooklyn, NY 11249, USA"` | Restaurant street address. |
| `store_id` | string | `"29415"` | DoorDash store identifier. |
| `menu_items` | array |  | Menu items in DoorDash section and item order. |
| `menu_items[].price` | number or null | `26` | Item price in the listed currency. |
| `menu_items[].popular` | boolean | `true` | Whether the item appears in Most Ordered or has a popularity badge. |
| `menu_items[].currency` | string | `"USD"` | Item price currency code. |
| `menu_items[].item_link` | string | `"https://www.doordash.com/store/29415/"` | DoorDash page showing the item. |
| `menu_items[].item_name` | string | `"Plain Cheese Pie"` | Menu item name. |
| `menu_items[].photo_link` | string or null | `"https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws` | Item photo link, when available. |
| `menu_items[].description` | string or null | `"Joe's Plain Cheese Pizza."` | Item description, when available. |
| `menu_items[].menu_section` | string | `"Most Ordered"` | Menu section as displayed by DoorDash. |
| `store_link` | string | `"https://www.doordash.com/store/29415/"` | DoorDash store page link. |
| `star_rating` | number or null | `4.6` | Average customer star rating. |
| `delivery_fee` | number or null | `0` | Displayed delivery fee; may be a first-order promotional fee. |
| `restaurant_name` | string | `"Joe's Pizza"` | Name of the selected restaurant. |
| `number_of_ratings` | integer or null | `8821` | Number of customer ratings. |
| `delivery_fee_currency` | string | `"USD"` | Delivery fee currency code. |
| `estimated_delivery_time` | string or null | `"59 min"` | Displayed delivery time for the delivery location. |

**Example input**

```json
{
  "location": "Brooklyn, NY",
  "restaurant": "Joe's Pizza"
}
```

**Example output**

```json
{
  "address": "216 Bedford Ave, Brooklyn, NY 11249, USA",
  "store_id": "29415",
  "menu_items": [
    {
      "price": 26,
      "popular": true,
      "currency": "USD",
      "item_link": "https://www.doordash.com/store/29415/",
      "item_name": "Plain Cheese Pie",
      "photo_link": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/photos/0021ab16-5167-435a-bd64-c0ab2fd2ae94-retina-large-jpeg",
      "description": "Joe's Plain Cheese Pizza.",
      "menu_section": "Most Ordered"
    },
    {
      "price": 30,
      "popular": true,
      "currency": "USD",
      "item_link": "https://www.doordash.com/store/29415/",
      "item_name": "Pepperoni Pie",
      "photo_link": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/photos/61117cec-5605-4dd9-bbad-badfccf2ff6a-retina-large-jpeg",
      "description": "Joe's pepperoni pie.",
      "menu_section": "Most Ordered"
    },
    {
      "price": 28,
      "popular": true,
      "currency": "USD",
      "item_link": "https://www.doordash.com/store/29415/",
      "item_name": "Plain Cheese Pie with Half Toppings",
      "photo_link": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/photos/b1c24af9-c311-4b52-82f7-41ba26cf2d7b-retina-large-jpeg",
      "description": "Joe's plain cheese pie, half of it covered with a topping.",
      "menu_section": "Most Ordered"
    }
  ],
  "store_link": "https://www.doordash.com/store/29415/",
  "star_rating": 4.6,
  "delivery_fee": 0,
  "restaurant_name": "Joe's Pizza",
  "number_of_ratings": 8821,
  "delivery_fee_currency": "USD",
  "estimated_delivery_time": "59 min"
}
```

### 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 DoorDash restaurants delivering to a street address or ZIP code, in search order. Fees and times reflect guest offers and can change at checkout; the numeric fee is null when DoorDash shows no amount. An address DoorDash cannot recognize may not produce results.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | no | `"sushi"` | Cuisine or dish to search for, for example sushi. Leave blank for nearby restaurants. |
| `address` | string | yes | `"350 5th Ave, New York, NY"` | Delivery street address or ZIP code, for example 350 5th Ave, New York, NY or 10118. |
| `max_results` | integer | no | `20` | Maximum number of 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 sushi. Leave blank for nearby restaurants.",
      "examples": [
        "sushi",
        "pizza",
        "zzxxq-no-match-993800123"
      ]
    },
    "address": {
      "type": "string",
      "description": "Delivery street address or ZIP code, for example 350 5th Ave, New York, NY or 10118.",
      "examples": [
        "350 5th Ave, New York, NY",
        "10118",
        "1 Market St, San Francisco, CA"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of restaurants to return, for example 20.",
      "examples": [
        20,
        8,
        12
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "sushi",
      "address": "350 5th Ave, New York, NY",
      "max_results": 20
    },
    {
      "query": "pizza",
      "address": "10118",
      "max_results": 8
    },
    {
      "address": "1 Market St, San Francisco, CA",
      "max_results": 12
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `restaurants` | array |  |  |
| `restaurants[].name` | string | `"Happy Tuna"` |  |
| `restaurants[].cuisine` | string or null | `"Japanese, Casual Dining"` |  |
| `restaurants[].open_now` | boolean or null | `true` |  |
| `restaurants[].store_id` | string | `"35237121"` |  |
| `restaurants[].star_rating` | number or null | `4.7` |  |
| `restaurants[].delivery_fee` | number or null | `0` |  |
| `restaurants[].distance_miles` | number or null | `1.1` |  |
| `restaurants[].restaurant_link` | string | `"https://www.doordash.com/store/35237121/?cursor=eyJzZWFyY2hfaXRlbV9jYXJvdXNlbF9jdXJzb3IiOnsicXVlcnkiOiJzdXNoaSIsIml0ZW1` |  |
| `restaurants[].number_of_ratings` | integer or null | `1019` |  |
| `restaurants[].delivery_fee_as_shown` | string or null | `"$0 delivery fee"` |  |
| `restaurants[].delivery_fee_currency` | string | `"USD"` |  |
| `restaurants[].estimated_delivery_time` | string or null | `"26 min"` |  |
| `restaurants[].free_delivery_with_dashpass` | boolean or null | `true` |  |

**Example input**

```json
{
  "query": "sushi",
  "address": "350 5th Ave, New York, NY",
  "max_results": 20
}
```

**Example output**

```json
{
  "restaurants": [
    {
      "name": "Happy Tuna",
      "cuisine": "Japanese, Casual Dining",
      "open_now": true,
      "store_id": "35237121",
      "star_rating": 4.7,
      "delivery_fee": 0,
      "distance_miles": 1.1,
      "restaurant_link": "https://www.doordash.com/store/35237121/?cursor=eyJzZWFyY2hfaXRlbV9jYXJvdXNlbF9jdXJzb3IiOnsicXVlcnkiOiJzdXNoaSIsIml0ZW1faWRzIjpbMjg5OTYwNzg5MjUsMjg5OTYwNzg5NjcsMjg5OTYwNzg5MjZdLCJzZWFyY2hfdGVybSI6InN1…",
      "number_of_ratings": 1019,
      "delivery_fee_as_shown": "$0 delivery fee",
      "delivery_fee_currency": "USD",
      "estimated_delivery_time": "26 min",
      "free_delivery_with_dashpass": true
    },
    {
      "name": "Momoya",
      "cuisine": "Japanese, Asian Fusion",
      "open_now": true,
      "store_id": "35237839",
      "star_rating": 4.5,
      "delivery_fee": 0,
      "distance_miles": 2.2,
      "restaurant_link": "https://www.doordash.com/store/35237839/?cursor=eyJzZWFyY2hfaXRlbV9jYXJvdXNlbF9jdXJzb3IiOnsicXVlcnkiOiJzdXNoaSIsIml0ZW1faWRzIjpbMzE2MTUyNTE4MTksMzE2MTUyNTE4NDQsMzE2MTUyNTE4NDZdLCJzZWFyY2hfdGVybSI6InN1…",
      "number_of_ratings": 409,
      "delivery_fee_as_shown": "$0 delivery fee",
      "delivery_fee_currency": "USD",
      "estimated_delivery_time": "40 min",
      "free_delivery_with_dashpass": true
    },
    {
      "name": "Sushi Seki",
      "cuisine": "Dinner, Japanese",
      "open_now": true,
      "store_id": "221788",
      "star_rating": 4.7,
      "delivery_fee": 0,
      "distance_miles": 1.1,
      "restaurant_link": "https://www.doordash.com/store/221788/?cursor=eyJzZWFyY2hfaXRlbV9jYXJvdXNlbF9jdXJzb3IiOnsicXVlcnkiOiJzdXNoaSIsIml0ZW1faWRzIjpbMzU2MDY4MDI5LDM1NjA2ODAyNCwzNTYwNjgwMjhdLCJzZWFyY2hfdGVybSI6InN1c2hpIiwidm…",
      "number_of_ratings": 2450,
      "delivery_fee_as_shown": "$0 delivery fee",
      "delivery_fee_currency": "USD",
      "estimated_delivery_time": "24 min",
      "free_delivery_with_dashpass": true
    }
  ]
}
```

## 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": "@doordash",
  "visibility": "public",
  "operation": "get_restaurant_menu",
  "version": 1,
  "input": {
    "location": "Brooklyn, NY",
    "restaurant": "Joe'\''s Pizza"
  },
  "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\": \"@doordash\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_restaurant_menu\",\n  \"version\": 1,\n  \"input\": {\n    \"location\": \"Brooklyn, NY\",\n    \"restaurant\": \"Joe's Pizza\"\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": "@doordash",
  "visibility": "public",
  "operation": "get_restaurant_menu",
  "version": 1,
  "input": {
    "location": "Brooklyn, NY",
    "restaurant": "Joe's Pizza"
  },
  "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/doordash`
- 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-doordash https://api.fous.com/mcp/tools/doordash --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 delivering to a customer’s address
- Compare restaurant ratings and delivery fees
- Review menu items and listed prices
- Identify popular items at a restaurant
- Check displayed delivery times for a location

## 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 DoorDash 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 DoorDash account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from doordash.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 29, 2026.

### Which restaurants deliver to a specific address?

Search restaurants returns restaurant options for a required street address or ZIP code, with an optional cuisine or dish query.

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

Get restaurant menu returns menu items and listed prices for a restaurant and delivery location.

### What delivery fee and time are shown?

Search restaurants returns displayed fees and estimated times for restaurant results. Get restaurant menu returns these details for a selected restaurant.

## Related

- [Uber Eats API](https://fous.com/tools/uber-eats.md): Uber Eats shows restaurants and delivery options, with menus, prices, ratings, and delivery details; fees may reflect guest promotions and rating counts may be rounded.
- [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.
- [Chipotle API](https://fous.com/tools/chipotle.md): Chipotle restaurant menus, prices, and nutrition information.
- [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.
- [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.
- [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.
- [All Food tools](https://fous.com/tools/category/food)
