DoorDash API: Search restaurants
Finds DoorDash restaurants delivering to a street address or ZIP code, optionally for a cuisine or dish, in DoorDash's search order. Fees and times reflect guest offers; the numeric fee is null when DoorDash shows no amount.
Unofficial. Not affiliated with or endorsed by DoorDash.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Query optional
query Cuisine or dish to search for, for example sushi. Leave blank for nearby restaurants.
sushi
Default
.- Address, required
address Delivery street address or ZIP code, for example 350 5th Ave, New York, NY or 10118.
350 5th Ave, New York, NY
- Max Results optional
max_results Maximum number of restaurants to return, for example 20.
20
Whole number from 1 to 50. Default
20.
Input as JSON
{ "query": "sushi", "address": "350 5th Ave, New York, NY", "max_results": 20}Output
{ "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=eyJzZWFyY2hfaXRlbV9jYXJvdXNlbF9jdXJzb3IiOnsicXVlcnkiOiJzdXNoaSIsIml0ZW1faWRzIjpbMjg5OTYwNzg5MjUsMjg5OTYwNzg5NjcsMjg5OTYwNzg5MjZdLCJzZWFyY2hfdGVybSI6InN1c2hpIiwidmVydGljYWxfaWQiOi05OTksInZlcnRpY2FsX25hbWUiOiJhbGwiLCJxdWVyeV9pbnRlbnQiOiJGT09EX0RJU0gifSwi…" , "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=eyJzZWFyY2hfaXRlbV9jYXJvdXNlbF9jdXJzb3IiOnsicXVlcnkiOiJzdXNoaSIsIml0ZW1faWRzIjpbMzE2MTUyNTE4MTksMzE2MTUyNTE4NDQsMzE2MTUyNTE4NDZdLCJzZWFyY2hfdGVybSI6InN1c2hpIiwidmVydGljYWxfaWQiOi05OTksInZlcnRpY2FsX25hbWUiOiJhbGwiLCJxdWVyeV9pbnRlbnQiOiJGT09EX0RJU0gifSwi…" , "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=eyJzZWFyY2hfaXRlbV9jYXJvdXNlbF9jdXJzb3IiOnsicXVlcnkiOiJzdXNoaSIsIml0ZW1faWRzIjpbMzU2MDY4MDI5LDM1NjA2ODAyNCwzNTYwNjgwMjhdLCJzZWFyY2hfdGVybSI6InN1c2hpIiwidmVydGljYWxfaWQiOi05OTksInZlcnRpY2FsX25hbWUiOiJhbGwiLCJxdWVyeV9pbnRlbnQiOiJGT09EX0RJU0gifSwic3RvcmVfcH…" , "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 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"doordash.com/search_restaurants","input":{"query":"sushi","address":"350 5th Ave, New York, NY","max_results":20}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "doordash.com/search_restaurants" , "input": { "query": "sushi", "address": "350 5th Ave, New York, NY", "max_results": 20 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "doordash.com/search_restaurants" , "input": { "query": "sushi", "address": "350 5th Ave, New York, NY", "max_results": 20 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run doordash.com/search_restaurants# with {"query":"sushi","address":"350 5th Ave, New York, NY","max_results":20}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "address" ], "properties": { "query": { "type": "string", "default": "", "description": "Cuisine or dish to search for, for example sushi. Leave blank for nearby restaurants." }, "address": { "type": "string", "minLength": 1, "description": "Delivery street address or ZIP code, for example 350 5th Ave, New York, NY or 10118." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum number of restaurants to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "restaurants" ], "properties": { "restaurants": { "type": "array", "items": { "type": "object", "required": [ "name", "cuisine", "star_rating", "number_of_ratings", "delivery_fee", "delivery_fee_currency", "delivery_fee_as_shown", "estimated_delivery_time", "distance_miles", "free_delivery_with_dashpass", "open_now", "restaurant_link", "store_id" ], "properties": { "name": { "type": "string" }, "cuisine": { "type": [ "string", "null" ] }, "open_now": { "type": [ "boolean", "null" ] }, "store_id": { "type": "string", "x-fous-developer": true }, "star_rating": { "type": [ "number", "null" ] }, "delivery_fee": { "type": [ "number", "null" ] }, "distance_miles": { "type": [ "number", "null" ] }, "restaurant_link": { "type": "string" }, "number_of_ratings": { "type": [ "integer", "null" ] }, "delivery_fee_as_shown": { "type": [ "string", "null" ] }, "delivery_fee_currency": { "type": "string" }, "estimated_delivery_time": { "type": [ "string", "null" ] }, "free_delivery_with_dashpass": { "type": [ "boolean", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
doordash.com/search_restaurants- Returns
- name, cuisine, rating, number of ratings, delivery fee, delivery time, distance, DashPass, open now, link, store id
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method doordash.com/search_restaurants with the inputs above.
Ask your agent
- Find sushi places that deliver to 1600 Amphitheatre Pkwy, Mountain View, CA, with their ratings and delivery fees
- What restaurants on DoorDash can deliver to ZIP 60614 right now? Show me the top 10.
- I'm at 742 Evergreen Terrace, Springfield, OR — list pad thai spots that deliver here, including delivery time and whether they're DashPass
- Pull up to 30 pizza restaurants delivering to 02139 with distance, fee, and open status
- Check DoorDash for vegan food delivering to 2100 Pennsylvania Ave NW, Washington, DC and give me the store links
See more
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.
ubereats.com/search_restaurantsGets the delivery menu, prices, rating and delivery details of 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.
ubereats.com/get_restaurant_menuLists Michelin Guide restaurants in a city or region, in Guide order, optionally filtered by distinction and cuisine, with each restaurant's address, description and photo. Results may include the surrounding area as labeled by the Guide.
guide.michelin.com/search_restaurantsFinds McDonald's restaurants within 50 miles of a US city, address or ZIP code, nearest first. Each result includes today's hours, services and directions. Open-now status follows the listed hours.
mcdonalds.com/search_restaurantsSearches a named Instacart store's guest-visible grocery products for a US ZIP code. Prices are in USD and can differ from in-store prices; stock estimates can change.
instacart.com/search_productsFinds OpenTable restaurants with bookable slots within two hours of the selected time in a city or neighborhood, in OpenTable search order, optionally for one cuisine. Examines up to 300 listings; availability may change.
opentable.com/search_available_tablesFinds Serious Eats recipes and cooking guides for a dish or technique, in site search order. Results can also include related articles; times appear only when the site shows them.
seriouseats.com/search_recipesLists Tripadvisor's ranked restaurants in a city from the first results page, optionally filtered by cuisine and price category. Sponsored listings are left out; up to 30 restaurants with rating, review count, cuisines, price range and address.
tripadvisor.com/list_top_restaurants