Skip to main content

Get started

API: Drive (classic)

This doc covers the Drive (classic) API. If you're using the Drive API, see the tutorial for getting started with the Drive APIs.

Using this API, you can leverage our on-demand logistics platform to deliver your goods quickly and easily without the hassle of staffing your own delivery fleet.

What is Drive (classic)

Drive (classic) is the legacy version of the Drive API. It has more functionality including:

  • Webhooks
  • Business and store modeling
  • Invoicing support
  • Scheduled deliveries

The Drive (classic) API is ideal for large enterprises and Middleware Providers who need the most amount of configuration and customizability.

A typical flow:

  • Request a quote (optional). This will tell you the estimated pickup time and cost for your delivery.
  • Request a delivery.
  • Reschedule, modify, or cancel the delivery until a set time before pickup occurs or alternatively return the delivery back to the merchant after pickup.
  • The delivery is executed.

A delivery is created in a scheduled state with the event "delivery_created". The end state is either "delivered" or "cancelled". Notable events will change delivery state and/or Dasher state.

How to create a delivery

Before you get started be sure to create an access key and generate a JWT.

All Drive (classic) API calls are at https://openapi.doordash.com/drive/v1/{resource}.

To authenticate, provide the JWT as a Bearer token on the Authentication header of the request.

See the API reference for more details.

Important notes:

Please retry all 50x response status codes as the error could be transient. We recommend up to 3 retries with some exponential backoff delay between requests.

When providing a time to any of the below APIs (i.e. pickup_time or delivery_time), the format must be UTC.