doordash Deliveries API

Create, retrieve, update, cancel, and estimate deliveries using the classic API endpoints.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

doordash-deliveries-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: DoorDash Drive Classic Addresses Deliveries API
  description: The DoorDash Drive Classic API is the legacy version of the Drive API, designed for large enterprises and middleware providers who require extensive configuration and customizability for their delivery integrations. It provides endpoints for managing businesses, stores, and deliveries through DoorDash's logistics platform. While still supported, DoorDash recommends new integrations use the newer Drive API (v2) instead.
  version: '1.0'
  contact:
    name: DoorDash Developer Support
    url: https://developer.doordash.com/en-US/
  termsOfService: https://www.doordash.com/terms/
servers:
- url: https://openapi.doordash.com/drive/v1
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Deliveries
  description: Create, retrieve, update, cancel, and estimate deliveries using the classic API endpoints.
paths:
  /estimates:
    post:
      operationId: createDeliveryEstimate
      summary: DoorDash Create a Delivery Estimate
      description: Requests time and fee estimates for a delivery. Can also be used to check if an area is serviced by DoorDash. Time values must be provided in UTC ISO-8601 format.
      tags:
      - Deliveries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EstimateRequest'
            examples:
              CreateDeliveryEstimateRequestExample:
                summary: Default createDeliveryEstimate request
                x-microcks-default: true
                value:
                  pickup_address: 901 Market St, San Francisco, CA 94105
                  dropoff_address: 901 Market St, San Francisco, CA 94105
                  pickup_time: '2026-06-02T14:30:00Z'
                  order_value: 42
      responses:
        '200':
          description: Delivery estimate created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Estimate'
              examples:
                CreateDeliveryEstimate200Example:
                  summary: Default createDeliveryEstimate 200 response
                  x-microcks-default: true
                  value:
                    fee: 42
                    currency: USD
                    pickup_time: '2026-06-02T14:30:00Z'
                    dropoff_time: '2026-06-02T14:30:00Z'
                    delivery_duration: 42
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CreateDeliveryEstimate400Example:
                  summary: Default createDeliveryEstimate 400 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CreateDeliveryEstimate401Example:
                  summary: Default createDeliveryEstimate 401 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /deliveries:
    post:
      operationId: createDelivery
      summary: DoorDash Create a Delivery
      description: Creates a new delivery request. DoorDash will assign a Dasher to fulfill the delivery. Time values must be provided in UTC format. The API recommends up to 3 retries with exponential backoff.
      tags:
      - Deliveries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassicDeliveryRequest'
            examples:
              CreateDeliveryRequestExample:
                summary: Default createDelivery request
                x-microcks-default: true
                value:
                  external_delivery_id: D-12345
                  pickup_address: 901 Market St, San Francisco, CA 94105
                  pickup_business_name: Acme Pickup Store
                  pickup_phone_number: '+15555551234'
                  pickup_instructions: Leave at the front desk.
                  dropoff_address: 901 Market St, San Francisco, CA 94105
                  dropoff_business_name: Acme Pickup Store
                  dropoff_phone_number: '+15555551234'
                  dropoff_instructions: Leave at the front desk.
                  dropoff_contact_given_name: Acme Pickup Store
                  dropoff_contact_family_name: Acme Pickup Store
                  order_value: 42
                  tip: 42
                  pickup_time: '2026-06-02T14:30:00Z'
                  dropoff_time: '2026-06-02T14:30:00Z'
                  contains_alcohol: true
                  external_business_id: D-12345
                  external_store_id: D-12345
      responses:
        '200':
          description: Delivery created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassicDelivery'
              examples:
                CreateDelivery200Example:
                  summary: Default createDelivery 200 response
                  x-microcks-default: true
                  value:
                    external_delivery_id: D-12345
                    delivery_status: created
                    fee: 42
                    currency: USD
                    tip: 42
                    pickup_address: 901 Market St, San Francisco, CA 94105
                    dropoff_address: 901 Market St, San Francisco, CA 94105
                    pickup_time_estimated: '2026-06-02T14:30:00Z'
                    pickup_time_actual: '2026-06-02T14:30:00Z'
                    dropoff_time_estimated: '2026-06-02T14:30:00Z'
                    dropoff_time_actual: '2026-06-02T14:30:00Z'
                    dasher_id: 42
                    dasher_name: Acme Pickup Store
                    tracking_url: https://example.com/path/abc123
                    created_at: '2026-06-02T14:30:00Z'
                    updated_at: '2026-06-02T14:30:00Z'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CreateDelivery400Example:
                  summary: Default createDelivery 400 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CreateDelivery401Example:
                  summary: Default createDelivery 401 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /deliveries/{external_delivery_id}:
    get:
      operationId: getDelivery
      summary: DoorDash Get Delivery Details
      description: Retrieves the current details and status of a delivery using the external delivery ID provided during creation.
      tags:
      - Deliveries
      parameters:
      - $ref: '#/components/parameters/ExternalDeliveryId'
      responses:
        '200':
          description: Delivery details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassicDelivery'
              examples:
                GetDelivery200Example:
                  summary: Default getDelivery 200 response
                  x-microcks-default: true
                  value:
                    external_delivery_id: D-12345
                    delivery_status: created
                    fee: 42
                    currency: USD
                    tip: 42
                    pickup_address: 901 Market St, San Francisco, CA 94105
                    dropoff_address: 901 Market St, San Francisco, CA 94105
                    pickup_time_estimated: '2026-06-02T14:30:00Z'
                    pickup_time_actual: '2026-06-02T14:30:00Z'
                    dropoff_time_estimated: '2026-06-02T14:30:00Z'
                    dropoff_time_actual: '2026-06-02T14:30:00Z'
                    dasher_id: 42
                    dasher_name: Acme Pickup Store
                    tracking_url: https://example.com/path/abc123
                    created_at: '2026-06-02T14:30:00Z'
                    updated_at: '2026-06-02T14:30:00Z'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetDelivery401Example:
                  summary: Default getDelivery 401 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                GetDelivery404Example:
                  summary: Default getDelivery 404 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: updateDelivery
      summary: DoorDash Update a Delivery
      description: Updates specified attributes of an existing delivery. Updates may be restricted based on the current delivery status.
      tags:
      - Deliveries
      parameters:
      - $ref: '#/components/parameters/ExternalDeliveryId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassicDeliveryUpdateRequest'
            examples:
              UpdateDeliveryRequestExample:
                summary: Default updateDelivery request
                x-microcks-default: true
                value:
                  tip: 42
                  dropoff_instructions: Leave at the front desk.
                  dropoff_phone_number: '+15555551234'
      responses:
        '200':
          description: Delivery updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassicDelivery'
              examples:
                UpdateDelivery200Example:
                  summary: Default updateDelivery 200 response
                  x-microcks-default: true
                  value:
                    external_delivery_id: D-12345
                    delivery_status: created
                    fee: 42
                    currency: USD
                    tip: 42
                    pickup_address: 901 Market St, San Francisco, CA 94105
                    dropoff_address: 901 Market St, San Francisco, CA 94105
                    pickup_time_estimated: '2026-06-02T14:30:00Z'
                    pickup_time_actual: '2026-06-02T14:30:00Z'
                    dropoff_time_estimated: '2026-06-02T14:30:00Z'
                    dropoff_time_actual: '2026-06-02T14:30:00Z'
                    dasher_id: 42
                    dasher_name: Acme Pickup Store
                    tracking_url: https://example.com/path/abc123
                    created_at: '2026-06-02T14:30:00Z'
                    updated_at: '2026-06-02T14:30:00Z'
        '400':
          description: Invalid update parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateDelivery400Example:
                  summary: Default updateDelivery 400 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateDelivery401Example:
                  summary: Default updateDelivery 401 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateDelivery404Example:
                  summary: Default updateDelivery 404 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /deliveries/{external_delivery_id}/cancel:
    put:
      operationId: cancelDelivery
      summary: DoorDash Cancel a Delivery
      description: Cancels an active delivery. Cancellation restrictions apply based on the current delivery status.
      tags:
      - Deliveries
      parameters:
      - $ref: '#/components/parameters/ExternalDeliveryId'
      responses:
        '200':
          description: Delivery cancelled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassicDelivery'
              examples:
                CancelDelivery200Example:
                  summary: Default cancelDelivery 200 response
                  x-microcks-default: true
                  value:
                    external_delivery_id: D-12345
                    delivery_status: created
                    fee: 42
                    currency: USD
                    tip: 42
                    pickup_address: 901 Market St, San Francisco, CA 94105
                    dropoff_address: 901 Market St, San Francisco, CA 94105
                    pickup_time_estimated: '2026-06-02T14:30:00Z'
                    pickup_time_actual: '2026-06-02T14:30:00Z'
                    dropoff_time_estimated: '2026-06-02T14:30:00Z'
                    dropoff_time_actual: '2026-06-02T14:30:00Z'
                    dasher_id: 42
                    dasher_name: Acme Pickup Store
                    tracking_url: https://example.com/path/abc123
                    created_at: '2026-06-02T14:30:00Z'
                    updated_at: '2026-06-02T14:30:00Z'
        '400':
          description: Delivery cannot be cancelled in current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CancelDelivery400Example:
                  summary: Default cancelDelivery 400 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CancelDelivery401Example:
                  summary: Default cancelDelivery 401 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
        '404':
          description: Delivery not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CancelDelivery404Example:
                  summary: Default cancelDelivery 404 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
                    field_errors:
                    - field: example
                      error: example
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /checkout_audit_signal:
    post:
      operationId: sendCheckoutAuditSignal
      summary: DoorDash Send Checkout Audit Signal
      description: Sends a checkout audit signal to DoorDash for tracking and analytics purposes related to the delivery checkout flow.
      tags:
      - Deliveries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckoutAuditSignal'
            examples:
              SendCheckoutAuditSignalRequestExample:
                summary: Default sendCheckoutAuditSignal request
                x-microcks-default: true
                value:
                  external_delivery_id: D-12345
                  event_type: example
      responses:
        '200':
          description: Checkout audit signal accepted
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
              examples:
                SendCheckoutAuditSignal400Example:
                  summary: Default sendCheckoutAuditSignal 400 response
                  x-microcks-default: true
                  value:
                    field_errors:
                    - field: example
                      error: example
                    message: example
                    code: ABC123
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
              examples:
                SendCheckoutAuditSignal401Example:
                  summary: Default sendCheckoutAuditSignal 401 response
                  x-microcks-default: true
                  value:
                    field_errors:
                    - field: example
                      error: example
                    message: example
                    code: ABC123
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Error_2:
      type: object
      properties:
        field_errors:
          type: array
          description: A list of field-level validation errors.
          items:
            type: object
            properties:
              field:
                type: string
                description: The name of the field with the error.
              error:
                type: string
                description: The error message for the field.
        message:
          type: string
          description: A human-readable error message.
          example: example
        code:
          type: string
          description: A machine-readable error code.
          example: ABC123
    ClassicDeliveryRequest:
      type: object
      required:
      - external_delivery_id
      - pickup_address
      - dropoff_address
      properties:
        external_delivery_id:
          type: string
          description: A unique identifier for this delivery.
          example: D-12345
        pickup_address:
          type: string
          description: The full street address for the pickup location.
          example: 901 Market St, San Francisco, CA 94105
        pickup_business_name:
          type: string
          description: The business name at the pickup location.
          example: Acme Pickup Store
        pickup_phone_number:
          type: string
          description: The phone number at the pickup location.
          example: '+15555551234'
        pickup_instructions:
          type: string
          description: Special instructions for the Dasher at pickup.
          example: Leave at the front desk.
        dropoff_address:
          type: string
          description: The full street address for the dropoff location.
          example: 901 Market St, San Francisco, CA 94105
        dropoff_business_name:
          type: string
          description: The business name at the dropoff location.
          example: Acme Pickup Store
        dropoff_phone_number:
          type: string
          description: The phone number at the dropoff location.
          example: '+15555551234'
        dropoff_instructions:
          type: string
          description: Special instructions for the Dasher at dropoff.
          example: Leave at the front desk.
        dropoff_contact_given_name:
          type: string
          description: The first name of the dropoff contact.
          example: Acme Pickup Store
        dropoff_contact_family_name:
          type: string
          description: The last name of the dropoff contact.
          example: Acme Pickup Store
        order_value:
          type: integer
          description: The total value of the order in cents.
          example: 42
        tip:
          type: integer
          description: The tip amount in cents.
          example: 42
        pickup_time:
          type: string
          format: date-time
          description: The requested pickup time in UTC.
          example: '2026-06-02T14:30:00Z'
        dropoff_time:
          type: string
          format: date-time
          description: The requested dropoff time in UTC.
          example: '2026-06-02T14:30:00Z'
        contains_alcohol:
          type: boolean
          description: Whether the order contains alcohol.
          example: true
        external_business_id:
          type: string
          description: The external business ID to associate with this delivery.
          example: D-12345
        external_store_id:
          type: string
          description: The external store ID to associate with this delivery.
          example: D-12345
    ClassicDelivery:
      type: object
      properties:
        external_delivery_id:
          type: string
          description: The unique external delivery ID.
          example: D-12345
        delivery_status:
          type: string
          description: The current status of the delivery.
          enum:
          - created
          - confirmed
          - enroute_to_pickup
          - arrived_at_pickup
          - picked_up
          - enroute_to_dropoff
          - arrived_at_dropoff
          - delivered
          - cancelled
          - returned
          example: created
        fee:
          type: integer
          description: The delivery fee in cents.
          example: 42
        currency:
          type: string
          description: The currency code.
          example: USD
        tip:
          type: integer
          description: The tip amount in cents.
          example: 42
        pickup_address:
          type: string
          description: The pickup address.
          example: 901 Market St, San Francisco, CA 94105
        dropoff_address:
          type: string
          description: The dropoff address.
          example: 901 Market St, San Francisco, CA 94105
        pickup_time_estimated:
          type: string
          format: date-time
          description: The estimated pickup time.
          example: '2026-06-02T14:30:00Z'
        pickup_time_actual:
          type: string
          format: date-time
          description: The actual pickup time.
          example: '2026-06-02T14:30:00Z'
        dropoff_time_estimated:
          type: string
          format: date-time
          description: The estimated dropoff time.
          example: '2026-06-02T14:30:00Z'
        dropoff_time_actual:
          type: string
          format: date-time
          description: The actual dropoff time.
          example: '2026-06-02T14:30:00Z'
        dasher_id:
          type: integer
          description: The assigned Dasher's ID.
          example: 42
        dasher_name:
          type: string
          description: The assigned Dasher's first name.
          example: Acme Pickup Store
        tracking_url:
          type: string
          format: uri
          description: A URL for tracking the delivery.
          example: https://example.com/path/abc123
        created_at:
          type: string
          format: date-time
          description: When the delivery was created.
          example: '2026-06-02T14:30:00Z'
        updated_at:
          type: string
          format: date-time
          description: When the delivery was last updated.
          example: '2026-06-02T14:30:00Z'
    Estimate:
      type: object
      properties:
        fee:
          type: integer
          description: The estimated delivery fee in cents.
          example: 42
        currency:
          type: string
          description: The currency code for the fee amount.
          example: USD
        pickup_time:
          type: string
          format: date-time
          description: The estimated pickup time.
          example: '2026-06-02T14:30:00Z'
        dropoff_time:
          type: string
          format: date-time
          description: The estimated dropoff time.
          example: '2026-06-02T14:30:00Z'
        delivery_duration:
          type: integer
          description: The estimated delivery duration in seconds.
          example: 42
    ClassicDeliveryUpdateRequest:
      type: object
      properties:
        tip:
          type: integer
          description: Updated tip amount in cents.
          example: 42
        dropoff_instructions:
          type: string
          description: Updated dropoff instructions.
          example: Leave at the front desk.
        dropoff_phone_number:
          type: string
          description: Updated dropoff phone number.
          example: '+15555551234'
    EstimateRequest:
      type: object
      required:
      - pickup_address
      - dropoff_address
      properties:
        pickup_address:
          type: string
          description: The full street address for the pickup location.
          example: 901 Market St, San Francisco, CA 94105
        dropoff_address:
          type: string
          description: The full street address for the dropoff location.
          example: 901 Market St, San Francisco, CA 94105
        pickup_time:
          type: string
          format: date-time
          description: The requested pickup time in UTC ISO-8601 format.
          example: '2026-06-02T14:30:00Z'
        order_value:
          type: integer
          description: The total value of the order in cents.
          example: 42
    CheckoutAuditSignal:
      type: object
      properties:
        external_delivery_id:
          type: string
          description: The external delivery ID associated with this checkout event.
          example: D-12345
        event_type:
          type: string
          description: The type of checkout audit event.
          example: example
    Error:
      type: object
      properties:
        message:
          type: string
          description: A human-readable error message.
          example: example
        code:
          type: string
          description: A machine-readable error code.
          example: ABC123
        field_errors:
          type: array
          description: A list of field-level validation errors.
          items:
            type: object
            properties:
              field:
                type: string
                description: The field with the error.
              error:
                type: string
                description: The error message.
  parameters:
    ExternalDeliveryId:
      name: external_delivery_id
      in: path
      required: true
      description: The unique external delivery ID provided when creating the delivery.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token signed with your DoorDash developer credentials.
externalDocs:
  description: DoorDash Drive Classic API Documentation
  url: https://developer.doordash.com/en-US/docs/drive_classic/overview/about_drive_classic/