Validate coverage & pricing: quotes
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:
- You can call the Create Delivery API directly, without first requesting a delivery quote
- 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
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.
- Get started by making API calls
- If you're writing an app in Node.js (using JavaScript or TypeScript), get started using our Node.js SDK
- If you'd like to try our APIs interactively, get started using our Postman collection
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=...",
...
}