Skip to main content

Validate coverage & pricing: quotes

API: Drive

If you’re building for restaurants, see the How to Build for Restaurants Guide.

You can use one of two workflows when creating deliveries using DoorDash Drive:

  1. You can call the Create Delivery API directly, without first requesting a delivery quote
  2. You can call the Delivery Quote API and Accept Delivery Quote API

We recommend using the second workflow because it allows you to confirm that a delivery is servicable and get back a price that you can show to the customer as part of a checkout process. See Getting a Quote in the How to Build for Restaurants guide for more details.

The quote workflow

graph TD A[Customer has a cart and is ready to check out] -->|'I want delivery'| B(<a href='#2-get-a-quote'>Get a delivery quote and confirm availability</a>) B --> C{Delivery price & <br /> time estimate} C -->|Unacceptable or unavailable| D[Switch to another<br />fulfillment method] C -->|Acceptable| E(<a href='#3-accept-a-quote'>Accept quote</a> and<br />complete checkout) E -->H(Send customer receipt and tracking link) E -->F(Notify merchant of new order) E -->G(DoorDash dispatches Dasher) F -->|Order is ready| I(Dasher picks up order) G -->I I -->J[Order is delivered]

1. Prerequisites

If you're new to Drive and haven't yet created your first delivery, you should start with one of our tutorials. The tutorials will walk you through getting the credentials you need to call the APIs and making some basic API calls.

2. Get a quote

Before you create a delivery, you can request a quote using the Delivery Quote API. When you request a quote, you provide the pickup and dropoff addresses and DoorDash will confirm that the addresses are in a serviceable area, calculate the delivery fee, and estimate the times for the order to be picked up and dropped off. You'll receive a response with the time estimates, the fees, and other delivery details:

POST /drive/v2/quotes

{
... (other delivery details)
"delivery_status": "quote",
"pickup_time_estimated": "2018-08-22T17:20:28Z",
"dropoff_time_estimated": "2018-08-22T17:20:28Z",
"currency": "USD",
"fee": 1900,
...
}

3. Accept a quote

If the fee and time ranges are acceptable, you accept the quote using the Accept Delivery Quote API. You must accept a quote within 5 minutes of requesting it.

You can edit the tip field as part of accepting a quote. Just pass it in the body of the request:

POST /drive/v2/quotes/{external_delivery_id}/accept

{
"tip": "600"
}

You'll receive a response with an updated delivery status and a tracking URL, among other data:

{
... (other delivery details)
"delivery_status": "created",
"tracking_url": "https://doordash.com/tracking?id=...",
...
}