DoorDash Drive Redelivery API
Re-attempt a Drive delivery that could not be completed, creating a redelivery against the original external_delivery_id.
Re-attempt a Drive delivery that could not be completed, creating a redelivery against the original external_delivery_id.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/doordash-drive-redelivery-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.0.0
info:
title: Drive Redelivery API Specification
x-logo:
url: >-
https://doordash-static.s3-us-west-2.amazonaws.com/media/drive/drive-logo.png
backgroundColor: '#FFFFFF'
altText: Doordash Drive
href: https://developer.doordash.com/
version: 0.0.1
description: |
Last updated: December 8, 2022
### Release Notes
### 0.0.1 (internal release)
- initial version
- added create redelivery api
servers:
- url: https://openapi.doordash.com
variables: {}
paths:
/drive/v2/deliveries/{external_delivery_id}/redelivery:
post:
summary: Create a redelivery of a Drive order
tags:
- drive-redelivery
description: >-
Attempt to redeliver an existing completed or cancelled order. Must
include a new delivery id to assign to the redelivery. Other delivery
properties are optional. If they are not supplied, they will be
inherited from the existing delivery.
operationId: CreateRedelivery
parameters:
- $ref: '#/components/parameters/ExternalDeliveryIdPath'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRedeliveryInput'
required: true
responses:
'200':
description: Ok
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryResponse'
'400':
description: Request Validation Failed
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/validation_field_error'
'403':
description: Operation not authorized
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/authorization_error'
'404':
description: Unknown delivery ID
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/unknown_delivery_error'
'409':
description: Duplicate delivery ID
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/DuplicateDeliveryIdError'
'422':
description: Redelivery is not allowed
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/RedeliveryNotAllowedError'
'500':
description: Internal service failure, please try again later
content:
application/json:
schema:
$ref: '#/components/schemas/server_fault'
deprecated: false
components:
schemas:
RedeliveryNotAllowedError: &ref_1
x-error: true
required:
- code
- message
- reason
properties:
code:
type: string
enum:
- redelivery_not_allowed
message:
type: string
example: Redelivery is not possible
reason:
type: string
enum:
- delivery_not_valid_for_redelivery
- redelivery_creation_in_progress
- delivery_not_completed_or_cancelled
- redelivery_window_closed
- distance_too_long
- pickup_address_not_in_coverage
- delivery_address_not_in_coverage
- outside_of_delivery_time
components:
parameters:
ExternalDeliveryIdPath:
name: external_delivery_id
in: path
description: Unique (per developer) ID of the delivery.
required: true
style: simple
explode: false
schema:
type: string
pattern: /[a-zA-Z0-9-._~]+/
description: Unique ID generated by the caller for the delivery.
example: D-1763
schemas:
DeliveryEmptyBase:
title: DeliveryEmptyBase
description: Placeholder to get codegen to do what's needed.
type: object
ExternalDeliveryId:
type: string
pattern: /[a-zA-Z0-9-._~]+/
description: Unique ID generated by the caller for the delivery.
example: D-1763
Locale:
type: string
description: >-
The language DoorDash should use when sending updates about this
delivery. Supported locales : `en-US`, `fr-CA`, `es-US`.
example: en-US, fr-CA, es-US
OrderFulfillmentMethod:
type: string
description: >-
Type of fulfillment required for Delivery ("shop_stage", "shop_deliver",
"shop_handoff" for DSS/DSD/DSH delivery; "parcel" for parcel delivery.
"catering" is deprecated.)
enum:
- standard
- catering
- shop_stage
- shop_deliver
- parcel
- large_order
- shop_handoff
OriginFacilityId:
type: string
description: Merchant warehouse id for the midmile
example: MERCHANTA-CA-1
DeliveryBase:
title: DeliveryBase
description: Delivery status and details.
required:
- external_delivery_id
type: object
properties:
external_delivery_id:
$ref: '#/components/schemas/ExternalDeliveryId'
locale:
$ref: '#/components/schemas/Locale'
order_fulfillment_method:
$ref: '#/components/schemas/OrderFulfillmentMethod'
origin_facility_id:
$ref: '#/components/schemas/OriginFacilityId'
PickupAddress:
type: string
description: >-
Comma-separated full address, in the order appropriate for your locale.
Overridden by store properties if pickup_external_store_id and
pickup_external_business_id are used.
example: 901 Market Street 6th Floor San Francisco, CA 94103
PickupAddressName:
type: string
description: >-
Optional name of the place, overrides name of store when provided. Shown
to Dashers to help find the location and to Customer as the store name
in SMS and tracking page.
example: Wells Fargo SF Downtown
PickupPhoneNumber:
title: Pickup Phone number
type: string
description: >-
The phone number for the Dasher to call if there are any issues with the
pick up. Should include the country code and must match the country of
the store for which the delivery is created. Overridden by store
properties if pickup_external_store_id and pickup_external_business_id
are used. Must adhere to E.164 international phone number standard.
example: '+16505555555'
PickupInstructions:
type: string
description: Instructions for the Dasher to follow when picking up the order.
example: Go to the bar for pick up.
ReferenceTag:
type: string
description: >-
A reference that can help Dasher identify the correct delivery item for
pick up/drop-off.
example: Order number 61
ExternalBusinessId:
type: string
pattern: /^[A-Za-z0-9_-]{3,64}$/
description: >-
The string identifier used to create your business. Used in combination
with pickup_external_store_id to select the pick up location. If you
provide an pickup_external_business_id, you must also provide an
pickup_external_store_id.
example: ase-243-dzs
ExternalStoreId:
type: string
description: >-
The string identifier used to create your store. If you provide an
pickup_external_store_id, you must also provide an
pickup_external_business_id. If you provide an pickup_external_store_id,
the address of the store will override the pickup_address in the
request. Some examples would look like this: "ase-243-dzs", "09",
"#00012"
example: ase-243-dzs
PickupVerificationMetadata:
title: PickupVerificationMetadata
description: >-
Optional pickup verification metadata. Use this to enable order level
pickup verification
type: object
required:
- verification_type
- verification_code
properties:
verification_type:
type: string
description: Enum to set type of verification.
example: SCAN_BARCODE
enum:
- SCAN_BARCODE
- SCAN_QRCODE
- NO_SCAN
verification_code:
type: string
description: Code to verify upon pickup
example: '12345'
verification_format:
type: string
description: Enum to set any specific format to use for verification
example: CODE_39
enum:
- QR_CODE
- DATA
- ATRIX
- AZTEC
- CODE_128
- CODE_39
- CODE_93
- CODABAR
- EAN_13
- EAN_8
- ITF
- UPC_A
- PDF417
PickupAddressComponents_US:
type: object
title: United States
description: Pick-up Address broken down by components for US
properties:
street_address:
type: string
nullable: true
description: >-
The street address of the pick-up location. If you have multiple
lines, concatenate them with a comma
example: 901 Market Street
sub_premise:
type: string
nullable: true
description: Used to denote the unit number, suite number or apartment number
example: Apt. 121
city:
type: string
nullable: true
description: City for the address
example: San Francisco
state:
type: string
nullable: true
description: >-
State for the address. 2 letter state codes for US addresses. For
instance, “CA” for California
example: CA
zip_code:
type: string
nullable: true
description: Zip code for the address. 5 digit zip code for US addresses.
example: 94103
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. “US” for
United States of America. “PR” for Puerto Rico
example: US
PickupAddressComponents_CA:
type: object
title: Canada
description: Pick-up Address broken down by components for CA
properties:
street_address:
type: string
nullable: true
description: >-
The street address of the pick-up location. If you have multiple
lines, concatenate them with a comma
example: 358 Industry Drive
sub_premise:
type: string
nullable: true
description: Used to denote the unit number, suite number or apartment number
example: Apt. 121
city:
type: string
nullable: true
description: City for the address
example: Toronto
province:
type: string
nullable: true
description: >-
Province for the address. 2 letter province codes for Canadian
addresses. For instance, “ON” for Ontario
example: 'ON'
postal_code:
type: string
nullable: true
description: Postal code for the address
example: M4C-1V7
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not
a valid ISO ALPHA 2 code, you would receive a validation error. “CA”
for Canada
example: CA
PickupAddressComponents_AU:
type: object
title: Australia
description: Pick-up Address broken down by components for AU
properties:
street_address:
type: string
nullable: true
description: >-
The street number and address of the pick-up location. If you have
multiple lines, concatenate them with a comma. Do not include the
unit number or slashes in the street address. Please pass them in
the sub_premise field. For example, if the address is 21/17 Jones
St, pass 17 Jones St
example: 17 Jones St
sub_premise:
type: string
nullable: true
description: >-
Used to denote the unit number, flat number, suite number, or
apartment number
example: Apt. 121
locality:
type: string
nullable: true
description: Delivery suburb / town for the address
example: North Sydney
territory:
type: string
nullable: true
description: >-
State code for the address. Use the state abbreviation. For instance
NSW for New South Wales, VIC for Victoria, etc.
example: NSW
postal_code:
type: string
nullable: true
description: Postal code for the address
example: 2060
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not
a valid ISO ALPHA 2 code, you would receive a validation error. “AU”
for Australia
example: AU
PickupAddressComponents_NZ:
type: object
title: New Zealand
description: Pick-up Address broken down by components for NZ
properties:
street_address:
type: string
nullable: true
description: >-
The street address of the pick-up location. If you have multiple
lines, concatenate them with a comma
example: 236 Majoribanks Street
sub_premise:
type: string
nullable: true
description: >-
Used to denote the unit number, flat number, suite number, or
apartment number
example: Apt. 121
sub_locality:
type: string
nullable: true
description: Delivery suburb / town for the address
example: Mount Victoria
locality:
type: string
nullable: true
description: Locality for the address
example: Wellington
postal_code:
type: string
nullable: true
description: Postal code for the address
example: 6011
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not
a valid ISO ALPHA 2 code, you would receive a validation error. “NZ”
for New Zealand
example: NZ
DeliveryPickupDetails:
title: DeliveryPickupDetails
description: Delivery pickup details.
type: object
properties:
pickup_address:
$ref: '#/components/schemas/PickupAddress'
pickup_business_name:
$ref: '#/components/schemas/PickupAddressName'
pickup_phone_number:
$ref: '#/components/schemas/PickupPhoneNumber'
pickup_instructions:
$ref: '#/components/schemas/PickupInstructions'
pickup_reference_tag:
$ref: '#/components/schemas/ReferenceTag'
pickup_external_business_id:
$ref: '#/components/schemas/ExternalBusinessId'
pickup_external_store_id:
$ref: '#/components/schemas/ExternalStoreId'
pickup_verification_metadata:
$ref: '#/components/schemas/PickupVerificationMetadata'
pickup_address_components:
title: PickupAddressComponents
description: >-
The Pickup address broken down into independent components. Please
reach out to Doordash to enable this feature for your business.
oneOf:
- $ref: '#/components/schemas/PickupAddressComponents_US'
- $ref: '#/components/schemas/PickupAddressComponents_CA'
- $ref: '#/components/schemas/PickupAddressComponents_AU'
- $ref: '#/components/schemas/PickupAddressComponents_NZ'
DropoffAddress:
type: string
description: Comma-separated full address, in the order appropriate for your locale.
example: 901 Market Street 6th Floor San Francisco, CA 94103
DropoffAddressName:
type: string
description: Optional name of the place, to help Dashers find the location.
example: The Avery Condominium
DropoffLocation:
title: Location
type: object
description: >-
[Pre-release field: submit a ticket in the Developer Portal or reach out
to your DoorDash contact if you would like to provide precise location
information.] The precise location, as latitude and longitude, of the
drop-off. If your request includes both location and address, location
will be used for Dasher navigation only; address will be used for fee
and serviceability checks.
required:
- lat
- lng
properties:
lat:
type: number
format: double
description: Latitude of the location
example: 123.1312343
lng:
type: number
format: double
description: Longitude of the location
example: -37.2144343
DropoffPhoneNumber:
title: Drop-off Phone number
type: string
description: >-
The phone number for the Dasher to call if there are any issues with the
delivery. Should include the country code. Must adhere to E.164
international phone number standard
example: '+16505555555'
DropoffInstructions:
type: string
pattern: /^[A-Za-z0-9_-]{3,64}$/
description: Instructions for the Dasher to follow when picking up the order.
example: Enter gate code 1234 on the callbox.
GivenName:
type: string
pattern: '[^~`@#\$%\^&\*\+=\?;\[{\]\}]'
description: Given/first name of the contact.
example: John
FamilyName:
type: string
pattern: '[^~`@#\$%\^&\*\+=\?;\[{\]\}]'
description: Family/last name of the contact.
example: Doe
SendNotifications:
type: boolean
description: >-
Whether the contact will receive notifications from DoorDash for this
delivery. The default is true.
example: true
DropoffEmailAddress:
type: string
description: Email address of the dropoff contact.
example: john.doe@example.com
DropoffOptions:
type: object
description: Additional options for drop off
properties:
signature:
type: string
description: >-
Flag to specify if the delivery requires signature verification
during drop off. Not updatable.
enum:
- required
- preferred
- none
id_verification:
type: string
description: >-
Flag to specify if ID verification is required at drop-off. If order
contains alcohol, this field needs to be set to "required". Not
updatable.
enum:
- required
- preferred
- none
proof_of_delivery:
type: string
description: >-
Flag to specify if the delivery requires proof of delivery during
drop off. When "pin_code" is set as "proof_of_delivery", the
"dropoff_pin_code_verification_metadata" must include relevant pin
code data. Pin Code can be enabled only for orders that are
non-contactless and not unattended deliveries. Please reach out to
Doordash to enable this feature for your business. Not updatable.
("photo_preferred" is deprecated.)
enum:
- photo_required
- photo_preferred
- pin_code
- none
catering_setup:
type: string
description: >-
Flag to specify if the delivery needs catering setup, only
applicable to large order fulfillment delivery. Not updatable.
enum:
- required
- none
DropoffAddressComponents_US:
type: object
title: United States
description: Drop-off Address broken down by components for US
properties:
street_address:
type: string
nullable: true
description: >-
The street address of the drop-off location. If you have multiple
lines, concatenate them with a comma
example: 901 Market Street
sub_premise:
type: string
nullable: true
description: Used to denote the unit number, suite number or apartment number
example: Apt. 121
city:
type: string
nullable: true
description: City for the address
example: San Francisco
state:
type: string
nullable: true
description: >-
State for the address. 2 letter state codes for US addresses. For
instance, “CA” for California
example: CA
zip_code:
type: string
nullable: true
description: Zip code for the address. 5 digit zip code for US addresses.
example: 94103
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not
a valid ISO ALPHA 2 code, you would receive a validation error. “US”
for United States of America. “PR” for Puerto Rico
example: US
DropoffAddressComponents_CA:
type: object
title: Canada
description: Drop-off Address broken down by components for CA
properties:
street_address:
type: string
nullable: true
description: >-
The street address of the drop-off location. If you have multiple
lines, concatenate them with a comma
example: 358 Industry Drive
sub_premise:
type: string
nullable: true
description: Used to denote the unit number, suite number or apartment number
example: Apt. 121
city:
type: string
nullable: true
description: City for the address
example: Toronto
province:
type: string
nullable: true
description: >-
Province for the address. 2 letter province codes for Canadian
addresses. For instance, “ON” for Ontario
example: 'ON'
postal_code:
type: string
nullable: true
description: Postal code for the address
example: M4C-1V7
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not
a valid ISO ALPHA 2 code, you would receive a validation error. “CA”
for Canada
example: CA
DropoffAddressComponents_AU:
type: object
title: Australia
description: Drop-off Address broken down by components for AU
properties:
street_address:
type: string
nullable: true
description: >-
The street number and address of the drop-off location. If you have
multiple lines, concatenate them with a comma. Do not include the
unit number or slashes in the street address. Please pass them in
the sub_premise field. For example, if the address is 21/17 Jones
St, pass 17 Jones St
example: 17 Jones St
sub_premise:
type: string
nullable: true
description: >-
Used to denote the unit number, flat number, suite number, or
apartment number
example: Apt. 121
locality:
type: string
nullable: true
description: Delivery suburb / town for the address
example: North Sydney
territory:
type: string
nullable: true
description: >-
State code for the address. Use the state abbreviation. For instance
NSW for New South Wales, VIC for Victoria, etc.
example: NSW
postal_code:
type: string
nullable: true
description: Postal code for the address
example: 2060
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not
a valid ISO ALPHA 2 code, you would receive a validation error. “AU”
for Australia
example: AU
DropoffAddressComponents_NZ:
type: object
title: New Zealand
description: Drop-off Address broken down by components for NZ
properties:
street_address:
type: string
nullable: true
description: >-
The street address of the drop-off location. If you have multiple
lines, concatenate them with a comma
example: 236 Majoribanks Street
sub_premise:
type: string
nullable: true
description: >-
Used to denote the unit number, flat number, suite number, or
apartment number
example: Apt. 121
sub_locality:
type: string
nullable: true
description: Delivery suburb / town for the address
example: Mount Victoria
locality:
type: string
nullable: true
description: Locality for the address
example: Wellington
postal_code:
type: string
nullable: true
description: Postal code for the address
example: 6011
country:
type: string
nullable: true
description: >-
Country needs to be passed as an ISO 3166 Alpha 2 code. If it is not
a valid ISO ALPHA 2 code, you would receive a validation error. “NZ”
for New Zealand
example: NZ
PinCodeType:
type: string
description: >-
An enum that specifies the pin code value type. The values that can be
specified are 'customer_phone_number' (pin code for dropoff verification
is the customer phone number's last 4 digits),
'merchant_provided_number' (pin code for dropoff verification is the
merchant provided 4 digit number), 'random_number' (pin code for dropoff
verification is the random 4 digit number generated by DD). The default
is 'customer_phone_number' if pin_code is enabled in the
proof_of_delivery.
enum:
- random_number
- customer_phone_number
- merchant_provided_number
example: customer_phone_number
PinCodeValue:
type: string
pattern: /^\d{4}$/
description: >-
The string identifier that implies the pin code to use during dropoff or
return verification. This value should be sent only when the PinCodeType
is 'merchant_provided_number'.
example: '1234'
DropoffPinCodeVerificationMetadata:
title: DropoffPinCodeVerificationMetadata
type: object
description: >-
An object that specifies the dropoff pin code verification related
details for this order. When "pin_code" is set in
"dropoff_options.proof_of_delivery", the object must include relevant
pin code data. Conversely, if "pin_code" is not set as
"proof_of_delivery", the object should exclude any pin code data. Pin
Code can be enabled only for orders that are non-contactless and not
unattended deliveries. Please reach out to Doordash to enable this
feature for your business.
properties:
pin_code_type:
$ref: '#/components/schemas/PinCodeType'
pin_code_value:
$ref: '#/components/schemas/PinCodeValue'
ReturnPinCodeType:
type: string
description: >-
An enum that specifies the pin code value type. The values that can be
specified are 'merchant_provided_number' (pin code for return
verification is the merchant provided 4 digit number), 'random_number'
(pin code for return verification is the random 4 digit number generated
by DD).
enum:
- random_number
- merchant_provided_number
example: merchant_provided_number
ReturnPinCodeVerificationMetadata:
title: ReturnPinCodeVerificationMetadata
type: object
description: >-
This field stores metadata related to PIN code verification during the
return to pickup process. It ensures that a return can only be completed
once the PIN code is validated.
properties:
pin_code_type:
$ref: '#/components/schemas/ReturnPinCodeType'
pin_code_value:
$ref: '#/components/schemas/PinCodeValue'
DeliveryDropoffDetails:
title: DeliveryDropoffDetails
description: Delivery drop off details.
type: object
properties:
dropoff_address:
$ref: '#/components/schemas/DropoffAddress'
dropoff_business_name:
$ref: '#/components/schemas/DropoffAddressName'
dropoff_location:
$ref: '#/components/schemas/DropoffLocation'
dropoff_phone_number:
$ref: '#/components/schemas/DropoffPhoneNumber'
dropoff_instructions:
$ref: '#/components/schemas/DropoffInstructions'
dropoff_contact_given_name:
$ref: '#/components/schemas/GivenName'
dropoff_contact_family_name:
$ref: '#/components/schemas/FamilyName'
dropoff_contact_send_notifications:
$ref: '#/components/schemas/SendNotifications'
dropoff_email_address:
$ref: '#/components/schemas/DropoffEmailAddress'
dropoff_options:
$ref: '#/components/schemas/DropoffOptions'
dropoff_address_components:
title: DropoffAddressComponents
description: The Dropoff address broken down into independent components.
oneOf:
- $ref: '#/components/schemas/DropoffAddressComponents_US'
- $ref: '#/components/schemas/DropoffAddressComponents_CA'
- $ref: '#/components/schemas/DropoffAddressComponents_AU'
- $ref: '#/components/schemas/DropoffAddressComponents_NZ'
dropoff_pin_code_verification_metadata:
title: DropoffPinCodeVerificationMetadata
description: >-
The Dropoff Pin Code verification related data. Please reach out to
Doordash to enable this feature for your business.
$ref: '#/components/schemas/DropoffPinCodeVerificationMetadata'
return_pin_code_verification_metadata:
title: ReturnPinCodeVerificationMetadata
description: >-
The return Pin Code verification related data for return process.
Please reach out to Doordash to enable this feature for your
business.
$ref: '#/components/schemas/ReturnPinCodeVerificationMetadata'
Contactless:
type: boolean
description: >-
Whether the delivery should be contactless, which prompts a Dasher to
take a picture of the delivery at drop-off.
example: false
ActionIfUndeliverable:
type: string
description: >-
What the Dasher should do if the delivery is undeliverable. If left
blank, the order will be treated as contactless. See [Create return to
pickup
deliveries](https://developer.doordash.com/en-US/docs/drive/how_to/return_to_pickup/)
for more information.
enum:
- return_to_pickup
- dispose
Tip:
minimum: 0
type: integer
description: >-
The tip amount. Use cents or the equivalent lowest currency denomination
(e.g. $5.99 = 599).
format: int32
example: 599
Alcohol:
type: boolean
description: Flag to specify if the delivery contains alcohol.
# --- truncated at 32 KB (80 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/doordash/refs/heads/main/openapi/_original/doordash-drive-redelivery-openapi.yml