[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# DoorDash API and MCP server: Let your AI agent order from DoorDash.

> DoorDash has no public API for ordering as a consumer (checked 27 Oct 2026). Its Drive and Marketplace APIs are for merchants and delivery partners. DoorDash has its own agent routes, but both need approval. Cotlet runs 14 DoorDash tools hosted, over MCP for agents and REST for scripts.

Connect DoorDash saved addresses, meal options and order records to your own workflow. Use an AI agent through MCP or REST from automation tools and scripts.

[MCP setup](https://cotlet.dev/integrations/doordash-api-mcp-server.md#connect)
[REST API guide](https://cotlet.dev/integrations/doordash-api-mcp-server.md#rest-api)

- Free 7-day trial, no card
- Unofficial, not affiliated with DoorDash
- Page: https://cotlet.dev/integrations/doordash-api-mcp-server

## What can you automate in DoorDash?

- Search stores and read menus
- Compare totals with fees
- Order under a budget, after your OK
- Reorder a past order
- Track an order
- Pull receipts and food spend

## Does DoorDash have an MCP server or an API?

- DoorDash MCP is a private beta for corporate ordering: agent platforms and internal tools for employees. DoorDash says it is not currently available to be integrated into consumer-facing products.
- dd-cli, DoorDash's command-line tool, orders from a terminal or coding agent. It is waitlist-only, for macOS (Apple Silicon) and Linux (x86_64).
- Zapier and n8n have no DoorDash ordering app. The Drive API is for businesses that send deliveries, and production access needs a review by DoorDash.

| What you need | dd-cli | DoorDash MCP | Cotlet |
|---|---|---|---|
| Search stores and build a cart | After approval | Corporate only | Yes |
| Preview the total with fees | After approval | Corporate only | Yes |
| Place the order | After approval | Corporate only | Yes, after your OK |
| Use from a chat app, n8n or a script | Terminal and coding agents | Not for consumer products | Yes |
| Open to anyone today | Waitlist | Private beta | Free 7-day trial |
| Allowed by DoorDash's terms | Yes, official | Yes, official | Uses the web app |

Checked 27 Oct 2026. Sources: [DoorDash Developer: About DoorDash MCP](https://developer.doordash.com/en-US/docs/mcp/overview/about_mcp/), [DoorDash CLI (dd-cli) on GitHub](https://github.com/doordash-oss/doordash-cli), [DoorDash Developer: Drive FAQs](https://developer.doordash.com/en-US/docs/drive/overview/faqs/), [TechCrunch: DoorDash CLI launch, 16 Jul 2026](https://techcrunch.com/2026/07/16/yes-you-can-now-order-doordash-from-the-command-line/)

## How does Cotlet connect to DoorDash?

1. **Sign in to DoorDash.** Use your own account in its Cotlet Cloud Browser.
2. **Choose MCP or REST.** Connect your agent or create a Cotlet API key.
3. **Run your workflow.** Ask your agent or send an HTTP request.

We never keep your DoorDash password, and no order is placed or charged until you approve it.

## Connect DoorDash to your agent or workflow

Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.

1. **Enable DoorDash for agents.** Sign up, log in to DoorDash in its Cloud Browser, then press Enable for agents.
2. **Paste the Cotlet address.** Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.
3. **Approve the connection.** Chat apps ask you to sign in to Cotlet. Editors, n8n and scripts use an API key from the console.

One shared address, `https://cotlet.dev/mcp/v1`, also carries DoorDash next to your other apps. If you enable DoorDash after connecting, refresh the connector so the new tools show up.

Claude:

```
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet-doordash \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

ChatGPT:

```
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
```

Cursor:

```
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet-doordash": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
```

Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet-doordash]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
```

n8n:

```
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: doordash_read
```

Make, Zapier:

```
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: doordash_write
```

## How to use the DoorDash REST API

### Create your Cotlet API key

Create a Cotlet API key with access to DoorDash and its read operations. Store it as `COTLET_API_KEY` in your environment or automation platform's credential store.

Sign in to DoorDash in its Cotlet Cloud Browser and enable the app for agents. Use your consumer account with saved addresses; these reads do not submit an order or charge a card.

### Make your first DoorDash API request

REST:

```
curl https://cotlet.dev/api/v1/doordash/addresses \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

### Read saved address IDs before menus

A successful REST call puts the tool output in `result`. This illustrative response excerpt omits call IDs, messages and credit details.

Illustrative response excerpt:

```
{
  "status": "success",
  "app": "doordash",
  "tool": "list_addresses",
  "result": {
    "addresses": [
      {
        "address_id": "addr_1042",
        "label": "Home",
        "street": "221 Example Street, Springfield",
        "default": true
      }
    ]
  }
}
```

Read `result.addresses` and use a returned `address_id` for store search. Address listing has no pagination inputs and does not add an address.

Store search and order listing accept limits without a cursor or a documented numeric maximum. Do not invent a pagination loop or promise an exhaustive order export.

Keep prices and totals in their returned account context. Read workflows do not submit orders, change delivery addresses or charge a payment method.

### DoorDash workflows for agents and automations

| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Read saved addresses, store search and menus to prepare meal options without adding items or ordering. |
| Make | HTTP > Make a request | Read orders and receipts into your private spending report, retaining returned totals. |
| Python or Node.js | REST API | Read order status into a personal delivery digest without changing an order. |

Send `Authorization: Bearer <your Cotlet API key>` in request headers. You configure the schedule, destination and record comparisons.

Cotlet reads DoorDash; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.

Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.

The [API and MCP reference](https://cotlet.dev/integrations/doordash-api-mcp-server.md#tools) lists operations and inputs. The [REST API guide](https://cotlet.dev/docs/api.md) explains authentication, errors and approvals.

## DoorDash API endpoints and MCP tools

### Find food and read menus

Read only. Cuisine, rating and delivery time are what the app shows; fees are not final until preview_order.

- **Search stores** (`search_stores`, read): Find restaurants and stores that deliver to an address, by search term or cuisine.
- **Get store menu** (`get_store_menu`, read): Read the menu or catalog of one store, with item names, prices and categories.
- **Get item** (`get_item`, read): Read one menu item with its required and optional choices.
- **List addresses** (`list_addresses`, read): List the delivery addresses saved on your DoorDash account.

### Carts and the real total

A cart belongs to one store. Carts spend nothing and reach no one, so they run without asking.

- **Add item to cart** (`add_to_cart`, write): Add an item with its choices to the cart of a store. Starts a cart if the store has none.
- **Get cart** (`get_cart`, read): Read your open carts, or one cart with its items.
- **Remove from cart** (`remove_from_cart`, write): Remove one item from a cart, or delete the whole cart.
- **Reorder a past order** (`reorder`, write): Put the items of a past order into a new cart, without ordering.
- **List payment methods** (`list_payment_methods`, read): List the payment methods saved on your DoorDash account, without card numbers.
- **Preview order total** (`preview_order`, read): Show the full price of a cart before anything is bought: fees, tax, tip and the total.

### Place and follow orders

Only submit_order spends money, and it waits for your OK. No tool cancels an order or changes a card.

- **Submit order** (`submit_order`, write, asks first): Place the order for a cart and charge your saved payment method.
- **List orders** (`list_orders`, read): List your past and open DoorDash orders, newest first.
- **Get order status** (`get_order_status`, read): Read where an open order is and when it should arrive.
- **Get order receipt** (`get_order_receipt`, read): Read the itemized receipt of a past order.

Inputs, REST path and example response of every tool: https://cotlet.dev/integrations/doordash-api-mcp-server#tools

## Who can see my DoorDash session, and how do I revoke it?

- **What we store.** Your logged-in DoorDash profile, encrypted with AES-256-GCM, in Finland. Not the password.
- **What your agent gets.** The 14 DoorDash tools. Never the cookie or a card number.
- **What the session sees.** Your account: addresses, saved cards, past orders, receipts.
- **What no tool touches.** Adding or changing cards, DashPass, password, two-factor and deleting the account.
- **If DoorDash asks to verify.** A new sign-in can ask for a code by SMS or email. You type it in, we never do.
- **How to cut access.** Disable for agents, reset the browser, or sign out of all devices in DoorDash.

Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory ([live results](https://cotlet.dev/security.md)). There is no SOC 2 report or third-party pentest yet.

## Is it against DoorDash's terms? Account safety

> You will not deep-link to the Website or Software, or access the Website or Software manually or with any robot, spider, web crawler, extraction software, automated process and/or device to scrape, copy or monitor any portion of the Website or Software, or any content on the Website or Software, unless the Company has given you permission to do so in writing.
>
> [DoorDash Consumer Terms and Conditions, Australia, clause (l)](https://help.doordash.com/en-us/consumers/article/consumer-terms-and-conditions-au-english)

The same sentence stands in DoorDash's online-ordering consumer terms, and the Dasher deactivation policy lists scraping under abusing the platform. DoorDash's US consumer terms did not load for us on 27 Oct 2026, so we cannot quote them. Cotlet acts in your own account through the web app, but DoorDash could read that as an automated process. We found no public case of a customer account closed for using an AI agent (checked 27 Oct 2026).

How we keep your account looking like you:

- Your own DoorDash account, logged in by you
- One Cloud Browser with its own IP and cookies, so no new-device check every call
- Orders wait for your OK, so no burst of unattended purchases
- No tool changes cards, addresses or the account
- If DoorDash objects, we pause the DoorDash tools for everyone within 24 h

> Keep it to what you would do by hand: a few orders a week, never a stream of carts across dozens of stores.

## What happens when DoorDash changes?

- **12 h** between tests of the DoorDash reads and carts
- **$0** for a call to a DoorDash tool paused for repair

When DoorDash moves a button or renames a field, the fix happens on our side and your prompts keep working. [status.cotlet.dev](https://status.cotlet.dev) watches the site, console and API every 3 minutes.

## Approvals, undo and mistakes

1. **Builds the cart.** Searches, reads the options and adds items. No money moves.
2. **Shows the real total.** Subtotal, delivery and service fee, tax, tip and the total.
3. **Waits for your OK.** The order shows up in your Cotlet console first, with the total.
4. **Reports the order.** Order id, store, amount charged and arrival time.

| Action | Undo |
|---|---|
| Add an item to a cart | remove_from_cart, one call |
| Reorder a past order | It only fills a cart; delete the cart |
| Preview the total | Nothing to undo, nothing is charged |
| Submit an order | No Cotlet tool. Change or cancel it in DoorDash; DoorDash decides |

1 of 14 tools asks first: submit_order, the only one that spends money. It carries the total you saw and fails if the total is now higher. Carts reach nobody, so they run at once. Switching the wait off is your choice, per tool.

> Cotlet has no tool to cancel an order. Check the cart in the approval screen, not after.

MCP call:

```
{
  "name": "add_to_cart",
  "arguments": {
    "store_id": "st_88123",
    "item_id": "it_3021",
    "quantity": 2,
    "choice_ids": [
      "ch_1",
      "ch_8"
    ]
  }
}
```

REST:

```
curl -X POST https://cotlet.dev/api/v1/doordash/stores/st_88123/carts \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_id":"it_3021","quantity":2,"choice_ids":["ch_1","ch_8"]}'
```

Tool output:

```
{
  "cart_id": "cart_7781",
  "store": "Basil Thai Kitchen",
  "items": [
    {
      "item_id": "it_3021",
      "name": "Pad Thai",
      "quantity": 2,
      "choices": [
        "Chicken",
        "Hot"
      ]
    }
  ],
  "subtotal": 29
}
```

Scripts and cron jobs reach the same tools over REST at `/api/v1/doordash`, with the same key and price. A failed call costs nothing. The tools table lists the REST path of each tool.

## How much does the DoorDash MCP server cost?

**About $14 a month** for about 8 orders a month, 2,480 credits. DoorDash charges you for the food, fees and DashPass as before.

| Job | Calls | Credits |
|---|---|---|
| Order dinner after a fee check | 7 × 4 | 280 |
| Compare three stores first | 13 × 2 | 260 |
| Reorder the usual | 4 × 4 | 160 |
| Track an order | 2 × 8 | 160 |
| Weekly receipts and spend | 3 × 4 | 120 |
| Cloud Browser, 30 days |  | 1,500 |
| Total |  | 2,480 |

- Free 7-day trial, no card
- 10 credits per successful call, MCP or REST
- 50 credits a day for the Cloud Browser
- Works with or without DashPass

The month is our example: 4 new orders, 2 of them compared across three stores first, and 4 reorders. DoorDash publishes no orders-per-customer figure, so the volume is our assumption. Dollars at the $29 pack rate.

## DoorDash MCP server on GitHub, Zapier or hosted: which to use

| Option | What it does | Where it stops |
|---|---|---|
| [doordash-oss/doordash-cli](https://github.com/doordash-oss/doordash-cli) | DoorDash's own command-line tool: search, menus, carts, previews, checkout, history. 324 stars, last commit 23 Sep 2026. | Waitlist-only, macOS Apple Silicon and Linux x86_64, a local binary you run yourself. |
| [CydVilla/peckish](https://github.com/CydVilla/peckish) | MCP server, terminal chat and local web app on top of dd-cli. Compares totals with fees and asks before every order. MIT, last commit 25 Sep 2026. | Needs approved dd-cli access, runs on your computer, no stars yet. |
| [markswendsen-code/mcp-doordash](https://github.com/markswendsen-code/mcp-doordash) | Community MCP server that drives the DoorDash website with a script. MIT, 9 stars. | Last commit 21 Apr 2026. A script on the site, so it breaks when the page changes. |
| [Bright Data DoorDash MCP](https://brightdata.com/ai/mcp-server/doordash) | Paid scraping for public DoorDash data: menus, prices, reviews. | Reads public data only. It does not log in or order. |
| DoorDash MCP | DoorDash's own server with an OAuth sign-in, for corporate ordering platforms. | Private beta, not open to consumer products. |

If you are on the dd-cli waitlist and live in a terminal, the official tool is the safest route. Cotlet is for the rest: a chat app, n8n or a script, hosted, without waiting for approval. A script on the website is quick to write and breaks when DoorDash changes the page.

## Who runs Cotlet

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), working since 2019, founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Write to contact@cotlet.dev with questions about the DoorDash tools.

## DoorDash API and MCP: questions

### Can I use the DoorDash API without an AI agent?

Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.

### How do I get access?

Create a free account at https://cotlet.dev, open DoorDash under Integrations in the console and log in to DoorDash in its Cloud Browser. The trial starts with your first app, no card asked.

### Can the agent place an order without my approval?

Only if you switch the approval off. submit_order charges your saved payment method, so by default every call waits for your OK in the Cotlet console, with the cart and the total in front of you. Building a cart and previewing the total never wait, because they spend nothing.

### Will the total match what DoorDash shows at checkout?

preview_order returns the lines DoorDash shows at checkout: subtotal, delivery fee, service fee, tax, tip and total. DoorDash says fees vary by store and market, and that DashPass lowers the delivery and service fees on eligible orders (DoorDash Help: What fees do I pay on Caviar and DoorDash?). submit_order takes an expected_total and fails if the total went up.

### Is DoorDash's own CLI or MCP server an alternative?

For some people, yes. DoorDash's dd-cli lets a developer order from a terminal or coding agent and needs approval from DoorDash. DoorDash MCP is a private beta for corporate ordering and is not open to consumer products (DoorDash Developer docs, checked 27 Oct 2026). Cotlet works on your own consumer account and in any MCP client, without that approval.

### Does DoorDash have webhooks for consumers?

We found no webhooks for consumer accounts. Nothing tells an agent when your order changes, so ask get_order_status when you want to know.

### Does it work in the US only?

Cotlet works in your own DoorDash account. DoorDash's own dd-cli beta is for developers in the US and Canada (TechCrunch, 16 Jul 2026), and DoorDash's DashPass order minimums differ between the US and Canada.

### Can the agent see my card number?

No. list_payment_methods returns the brand and the last four digits. Orders use a method already saved in DoorDash.

### Is the MCP server different from the REST API?

Only the door is different. Both expose the same 14 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.

### Is Cotlet affiliated with DoorDash?

No. Cotlet is independent and not affiliated with DoorDash, Inc.

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet.dev is built by Bart Krawczyk and Jake Slugocki, the founders of Take Group sp. z o.o., ul. Wincentego Janasa 4, 40-855 Katowice, Poland. KRS 0000871398, NIP 6342984273, VAT EU: PL6342984273. [About us](https://cotlet.dev/about.md)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.
