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

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.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with DoorDash
DoorDash logo DoorDash Cloud Browser

14 tools Read and write

Search to doorstep

What can you automate in DoorDash? Use an AI agent, a workflow or a script.

  • 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

No open consumer API

Does DoorDash have an MCP server or an API? For approved users only.

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.

  • 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.
DoorDash's command-line tool, its corporate MCP and Cotlet compared
What you need dd-cliDoorDash MCPCotlet
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 · DoorDash CLI (dd-cli) on GitHub · DoorDash Developer: Drive FAQs · TechCrunch: DoorDash CLI launch, 16 Jul 2026

Set up once

How does Cotlet connect to DoorDash? One account, two ways to connect.

  1. 1Sign in to DoorDash

    Use your own account in its Cotlet Cloud Browser.

  2. 2Choose MCP or REST

    Connect your agent or create a Cotlet API key.

  3. 3Run 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. Who can see your session

Any MCP client

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. 1

    Enable DoorDash for agents. Sign up, log in to DoorDash in its Cloud Browser, then press Enable for agents.

  2. 2

    Paste the Cotlet address. Add https://cotlet.dev/mcp/v1 as an MCP server or connector in your agent.

  3. 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
Scripts and HTTP

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

DoorDash workflows you configure
ToolConnect throughExample workflow
n8nHTTP RequestRead saved addresses, store search and menus to prepare meal options without adding items or ordering.
MakeHTTP > Make a requestRead orders and receipts into your private spending report, retaining returned totals.
Python or Node.jsREST APIRead 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 lists operations and inputs. The REST API guide explains authentication, errors and approvals.

10 read, 4 write

DoorDash API endpoints and MCP tools

Carts and the real total6

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

  • add_to_cart Add an item with its choices to the cart of a store. Starts a cart if the store has none. write

    Returns the cart with the new item and its subtotal. A cart reaches no one and spends nothing, and remove_from_cart undoes it, so it runs without asking you. A missing required choice fails the call and lists what is missing. Nothing is ordered until submit_order.

    MCP calldoordash_write → add_to_cart

    REST endpointPOST https://cotlet.dev/api/v1/doordash/stores/{store_id}/carts

    Parameters

    Parameters: add_to_cart
    NameTypeDescription
    store_id string required string A store_id from search_stores.
    item_id string required string An item_id from get_store_menu.
    quantity integer integer How many. Defaults to 1.
    choice_ids array array choice_id values from get_item. All required choices must be given.
    note string string A special instruction for the store.

    Example input

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

    Example response

    {
      "cart_id": "cart_7781",
      "store": "Basil Thai Kitchen",
      "items": [
        {
          "item_id": "it_3021",
          "name": "Pad Thai",
          "quantity": 2,
          "choices": [
            "Chicken",
            "Hot"
          ]
        }
      ],
      "subtotal": 29
    }
  • get_cart Read your open carts, or one cart with its items. read

    Returns each cart's store, items with their choices, quantities and the subtotal. A cart is per store, so two stores mean two carts. The subtotal does not include fees, tax or tip: use preview_order for the amount you would pay.

    MCP calldoordash_read → get_cart

    REST endpointGET https://cotlet.dev/api/v1/doordash/cart

    Parameters

    Parameters: get_cart
    NameTypeDescription
    cart_id string string One cart. Leave out to list all open carts.

    Example response

    {
      "carts": [
        {
          "cart_id": "cart_7781",
          "store": "Basil Thai Kitchen",
          "items": [
            {
              "item_id": "it_3021",
              "name": "Pad Thai",
              "quantity": 2,
              "choices": [
                "Chicken",
                "Hot"
              ]
            }
          ],
          "subtotal": 29
        }
      ]
    }
  • remove_from_cart Remove one item from a cart, or delete the whole cart. write

    Returns the cart as it is after the change, or deleted. It touches only the cart, reaches no one and costs nothing, so it runs without asking you. Never use it on a cart you want to keep: a deleted cart has to be built again.

    MCP calldoordash_write → remove_from_cart

    REST endpointDELETE https://cotlet.dev/api/v1/doordash/carts/{cart_id}

    Parameters

    Parameters: remove_from_cart
    NameTypeDescription
    cart_id string required string A cart_id from get_cart.
    item_id string string The item to remove. Leave out to delete the whole cart.

    Example input

    {
      "cart_id": "cart_8c41d2"
    }

    Example response

    {
      "cart_id": "cart_7781",
      "status": "deleted"
    }
  • reorder Put the items of a past order into a new cart, without ordering. write

    Returns a new cart with the items of that order, at today's prices. Items the store no longer sells are listed as unavailable. It only fills a cart, so it reaches no one and runs without asking you; call preview_order and then submit_order to buy.

    MCP calldoordash_write → reorder

    REST endpointPOST https://cotlet.dev/api/v1/doordash/orders/{order_id}/reorder/reorder

    Parameters

    Parameters: reorder
    NameTypeDescription
    order_id string required string An order_id from list_orders.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "cart_id": "cart_7790",
      "store": "Basil Thai Kitchen",
      "items": [
        {
          "item_id": "it_3021",
          "name": "Pad Thai",
          "quantity": 2
        }
      ],
      "unavailable": [],
      "subtotal": 30
    }
  • list_payment_methods List the payment methods saved on your DoorDash account, without card numbers. read

    Returns each saved method with its type, brand, last four digits and whether it is the default. Full card numbers are never returned. It cannot add or change a method; to pay with another one, add it in DoorDash first.

    MCP calldoordash_read → list_payment_methods

    REST endpointGET https://cotlet.dev/api/v1/doordash/payment-methods

    Parameters

    No parameters.

    Example response

    {
      "payment_methods": [
        {
          "payment_method_id": "pm_201",
          "type": "card",
          "brand": "Visa",
          "last4": "4242",
          "default": true
        }
      ]
    }
  • preview_order Show the full price of a cart before anything is bought: fees, tax, tip and the total. read

    Returns the lines DoorDash shows at checkout: subtotal, delivery fee, service fee, tax, tip, any discount or credit, and the total, plus the delivery time. Nothing is charged and the order is not placed. Fees change with the store, address, time and your DashPass status, so preview again right before submit_order.

    MCP calldoordash_read → preview_order

    REST endpointGET https://cotlet.dev/api/v1/doordash/carts/{cart_id}/orders/preview

    Parameters

    Parameters: preview_order
    NameTypeDescription
    cart_id string required string A cart_id from get_cart or add_to_cart.
    fulfillment string string delivery or pickup. Defaults to delivery.
    delivery_speed string string standard or priority. Defaults to standard.
    tip number number Tip in dollars.
    promo_code string string A promo code to try on this cart.

    Example input

    {
      "cart_id": "cart_8c41d2"
    }

    Example response

    {
      "cart_id": "cart_7781",
      "fulfillment": "delivery",
      "delivery_speed": "standard",
      "lines": {
        "subtotal": 29,
        "delivery_fee": 2.99,
        "service_fee": 4.35,
        "tax": 2.61,
        "tip": 5,
        "discount": 0
      },
      "total": 43.95,
      "eta_minutes": 34
    }

Place and follow orders4

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

  • submit_order Place the order for a cart and charge your saved payment method. writeasks first

    Places a real order and charges your payment method, so the call waits for your approval, with the cart and the total shown to you. It fails without charging when the total is higher than expected_total. DoorDash decides about changes and cancellations after the order is placed, and Cotlet has no tool to cancel it. Returns the order_id and the estimated arrival. By default you confirm each call; you can switch that off for this tool.

    MCP calldoordash_write → submit_order

    REST endpointPOST https://cotlet.dev/api/v1/doordash/carts/{cart_id}/order/submit

    Parameters

    Parameters: submit_order
    NameTypeDescription
    cart_id string required string A cart_id from get_cart.
    expected_total number required number The total from preview_order in dollars. The call fails if the total is now higher.
    address_id string string A saved address from list_addresses. Defaults to your default address.
    payment_method_id string string A saved method from list_payment_methods. Defaults to your default method.
    fulfillment string string delivery or pickup. Defaults to delivery.
    delivery_speed string string standard or priority. Defaults to standard.
    tip number number Tip in dollars.

    Example input

    {
      "cart_id": "cart_8c41d2",
      "expected_total": 1
    }

    Example response

    {
      "order_id": "ord_90121",
      "status": "placed",
      "store": "Basil Thai Kitchen",
      "total_charged": 43.95,
      "eta": "2026-10-27T19:12:00-05:00"
    }
  • list_orders List your past and open DoorDash orders, newest first. read

    Returns each order with its order_id, store, date, number of items, total and status. Use an order_id with get_order_status, get_order_receipt or reorder. It reads the history your account shows in the app.

    MCP calldoordash_read → list_orders

    REST endpointGET https://cotlet.dev/api/v1/doordash/orders

    Parameters

    Parameters: list_orders
    NameTypeDescription
    status string string open for orders still on their way, past for delivered or cancelled ones. Defaults to all.
    limit integer integer How many orders to return.

    Example response

    {
      "orders": [
        {
          "order_id": "ord_90114",
          "store": "Basil Thai Kitchen",
          "placed_at": "2026-10-24T18:42:00-05:00",
          "items": 4,
          "total": 52.4,
          "status": "delivered"
        },
        {
          "order_id": "ord_90102",
          "store": "Slice House Pizza",
          "placed_at": "2026-10-21T19:05:00-05:00",
          "items": 2,
          "total": 31.2,
          "status": "delivered"
        }
      ]
    }
  • get_order_status Read where an open order is and when it should arrive. read

    Returns the status DoorDash shows for the order, such as being prepared or on its way, and the estimated arrival time. A delivered order returns its delivery time. It does not message the Dasher or the store.

    MCP calldoordash_read → get_order_status

    REST endpointGET https://cotlet.dev/api/v1/doordash/orders/{order_id}/status

    Parameters

    Parameters: get_order_status
    NameTypeDescription
    order_id string required string An order_id from list_orders or submit_order.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_id": "ord_90121",
      "status": "on_the_way",
      "eta": "2026-10-27T19:12:00-05:00",
      "store": "Basil Thai Kitchen"
    }
  • get_order_receipt Read the itemized receipt of a past order. read

    Returns the items, fees, tax, tip, discounts and the total charged, the same lines the receipt in the app shows. It does not download a PDF. Open orders have no final receipt until they are delivered.

    MCP calldoordash_read → get_order_receipt

    REST endpointGET https://cotlet.dev/api/v1/doordash/orders/{order_id}/receipt

    Parameters

    Parameters: get_order_receipt
    NameTypeDescription
    order_id string required string An order_id from list_orders.

    Example input

    {
      "order_id": "order_8c41d2"
    }

    Example response

    {
      "order_id": "ord_90114",
      "store": "Basil Thai Kitchen",
      "items": [
        {
          "name": "Pad Thai",
          "quantity": 2,
          "price": 29
        },
        {
          "name": "Spring Rolls",
          "quantity": 2,
          "price": 12
        }
      ],
      "lines": {
        "subtotal": 41,
        "delivery_fee": 2.99,
        "service_fee": 6.15,
        "tax": 3.26,
        "tip": 5
      },
      "total_charged": 58.4
    }
Encrypted, revocable

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). There is no SOC 2 report or third-party pentest yet.

Account risk

Is it against DoorDash's terms? Account safety Its terms forbid robots and automated processes.

"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)

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.

Tested every 12 h

What happens when DoorDash changes? We repair the tool; your prompts stay the same.

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

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

1 tool asks first

Approvals, undo and mistakes Nothing is bought until you say so.

  1. 01 Builds the cart Searches, reads the options and adds items. No money moves.
  2. 02 Shows the real total Subtotal, delivery and service fee, tax, tip and the total.
  3. 03 Waits for your OK The order shows up in your Cotlet console first, with the total.
  4. 04 Reports the order Order id, store, amount charged and arrival time.
Which DoorDash actions can be undone
ActionUndo
Add an item to a cartremove_from_cart, one call
Reorder a past orderIt only fills a cart; delete the cart
Preview the totalNothing to undo, nothing is charged
Submit an orderNo 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.

Pay per call

How much does the DoorDash MCP server cost?

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

A month of DoorDash jobs for one person, in credits
JobCallsCredits
Order dinner after a fee check7 × 4280
Compare three stores first13 × 2260
Reorder the usual4 × 4160
Track an order2 × 8160
Weekly receipts and spend3 × 4120
Cloud Browser, 30 days1,500
Total2,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.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

DoorDash MCP server on GitHub, Zapier or hosted: which to use A few exist, none is hosted.

Other DoorDash agent tools, checked 27 Oct 2026
OptionWhat it doesWhere it stops
doordash-oss/doordash-cliDoorDash'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/peckishMCP 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-doordashCommunity 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 MCPPaid scraping for public DoorDash data: menus, prices, reviews.Reads public data only. It does not log in or order.
DoorDash MCPDoorDash'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.

EU company, since 2019

Who runs Cotlet A company you can look up.

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 agent access to DoorDash.

Free 7-day trial with 2,000 credits, no card needed.