doordash Orders API

Receive, confirm, update, and manage orders placed through the DoorDash marketplace.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

doordash-orders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: DoorDash Drive Classic Addresses Orders 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: Orders
  description: Receive, confirm, update, and manage orders placed through the DoorDash marketplace.
paths:
  /orders/{order_id}:
    patch:
      operationId: updateOrder
      summary: DoorDash Update an Order
      description: Updates the status of an order, cancels items, adjusts item or option quantities, or substitutes items. A separate token may be required for patch_order_events operations.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/OrderId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderUpdate'
            examples:
              UpdateOrderRequestExample:
                summary: Default updateOrder request
                x-microcks-default: true
                value:
                  status: confirmed
                  cancelled_items:
                  - item_id: {}
                    reason: {}
                  substitutions:
                  - original_item_id: {}
                    substitute_item_id: {}
                    substitute_item_name: {}
                    substitute_item_price: {}
      responses:
        '200':
          description: Order updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
              examples:
                UpdateOrder200Example:
                  summary: Default updateOrder 200 response
                  x-microcks-default: true
                  value:
                    id: D-12345
                    external_reference_id: D-12345
                    status: pending
                    store_id: D-12345
                    subtotal: 42
                    tax: 42
                    delivery_fee: 42
                    tip: 42
                    items:
                    - id: {}
                      name: {}
                      quantity: {}
                      price: {}
                      special_instructions: {}
                      options: {}
                    customer:
                      first_name: Acme Pickup Store
                      last_name: Acme Pickup Store
                      phone_number: '+15555551234'
                    delivery_address: 901 Market St, San Francisco, CA 94105
                    special_instructions: Leave at the front desk.
                    created_at: '2026-06-02T14:30:00Z'
                    estimated_pickup_time: '2026-06-02T14:30:00Z'
        '400':
          description: Invalid update parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateOrder400Example:
                  summary: Default updateOrder 400 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateOrder401Example:
                  summary: Default updateOrder 401 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UpdateOrder404Example:
                  summary: Default updateOrder 404 response
                  x-microcks-default: true
                  value:
                    message: example
                    code: ABC123
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    OrderId:
      name: order_id
      in: path
      required: true
      description: The unique DoorDash order identifier.
      schema:
        type: string
  schemas:
    Order:
      type: object
      properties:
        id:
          type: string
          description: The unique DoorDash order identifier.
          example: D-12345
        external_reference_id:
          type: string
          description: An external reference ID for the order.
          example: D-12345
        status:
          type: string
          description: The current status of the order.
          enum:
          - pending
          - confirmed
          - being_prepared
          - ready_for_pickup
          - picked_up
          - delivered
          - cancelled
          example: pending
        store_id:
          type: string
          description: The merchant-supplied store identifier.
          example: D-12345
        subtotal:
          type: integer
          description: The order subtotal in cents.
          example: 42
        tax:
          type: integer
          description: The tax amount in cents.
          example: 42
        delivery_fee:
          type: integer
          description: The delivery fee in cents.
          example: 42
        tip:
          type: integer
          description: The tip amount in cents.
          example: 42
        items:
          type: array
          description: The items in the order.
          items:
            $ref: '#/components/schemas/OrderItem'
        customer:
          $ref: '#/components/schemas/Customer'
        delivery_address:
          type: string
          description: The delivery address for the order.
          example: 901 Market St, San Francisco, CA 94105
        special_instructions:
          type: string
          description: Special instructions from the customer.
          example: Leave at the front desk.
        created_at:
          type: string
          format: date-time
          description: When the order was created.
          example: '2026-06-02T14:30:00Z'
        estimated_pickup_time:
          type: string
          format: date-time
          description: The estimated time the Dasher will arrive to pick up the order.
          example: '2026-06-02T14:30:00Z'
    OrderItem:
      type: object
      properties:
        id:
          type: string
          description: The unique item identifier within the order.
          example: D-12345
        name:
          type: string
          description: The name of the item.
          example: Acme Pickup Store
        quantity:
          type: integer
          description: The quantity ordered.
          minimum: 1
          example: 1
        price:
          type: integer
          description: The item price in cents.
          example: 42
        special_instructions:
          type: string
          description: Special instructions for this item.
          example: Leave at the front desk.
        options:
          type: array
          description: Selected options for the item.
          items:
            $ref: '#/components/schemas/OrderItemOption'
    OrderItemOption:
      type: object
      properties:
        id:
          type: string
          description: The unique option identifier.
          example: D-12345
        name:
          type: string
          description: The option name.
          example: Acme Pickup Store
        quantity:
          type: integer
          description: The quantity of this option.
          example: 42
        price:
          type: integer
          description: The option price in cents.
          example: 42
    Customer:
      type: object
      properties:
        first_name:
          type: string
          description: The customer's first name.
          example: Acme Pickup Store
        last_name:
          type: string
          description: The customer's last name.
          example: Acme Pickup Store
        phone_number:
          type: string
          description: The customer's phone number.
          example: '+15555551234'
    CancelledItem:
      type: object
      properties:
        item_id:
          type: string
          description: The ID of the item to cancel.
          example: D-12345
        reason:
          type: string
          description: The reason for cancellation.
          example: example
    OrderUpdate:
      type: object
      properties:
        status:
          type: string
          description: The updated order status.
          enum:
          - confirmed
          - being_prepared
          - ready_for_pickup
          - cancelled
          example: confirmed
        cancelled_items:
          type: array
          description: Items to cancel from the order.
          items:
            $ref: '#/components/schemas/CancelledItem'
        substitutions:
          type: array
          description: Item substitutions for the order.
          items:
            $ref: '#/components/schemas/Substitution'
    Substitution:
      type: object
      properties:
        original_item_id:
          type: string
          description: The ID of the original item to substitute.
          example: D-12345
        substitute_item_id:
          type: string
          description: The ID of the substitute item.
          example: D-12345
        substitute_item_name:
          type: string
          description: The name of the substitute item.
          example: Acme Pickup Store
        substitute_item_price:
          type: integer
          description: The price of the substitute item in cents.
          example: 42
    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
  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/