Doordash Https: API

The Https: API from Doordash — 2 operation(s) for https:.

Operations 2

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST https://api.doordash.com/drive/v1/checkout Create a checkout order session · Create Order Session #
Ask an LLM
“How do I start a hosted checkout by creating an order session?”
“What do I need to pass to get an order session id for the checkout webview?”
Tell an agent
Create an order session for store {external_store_id} delivering {cart} to {delivery_address}.
Start a checkout session in {currency} for {consumer} at store {external_store_id}.
GET https://order.online/embed/v1/checkout/ Load the checkout page for an order session · Get Checkout Page #
Ask an LLM
“Which URL renders the checkout HTML for an order session?”
“Can I open the checkout page inside a webview?”
Tell an agent
Open the checkout page for order session {order_session_id}.
Load the checkout webview HTML for session {order_session_id}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/doordash-https-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

doordash-https-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 'DoorDash Checkout API Interface Https: API'
  x-logo:
    url: https://doordash-static.s3-us-west-2.amazonaws.com/media/drive/drive-logo.png
    backgroundColor: '#FFFFFF'
    altText: Doordash Drive
    href: https://www.doordash.com/drive/portal/discover
  version: 0.1.6
  contact:
    name: Drive API Support
    email: drive-api-support@doordash.com
  description: 'Last updated: Apr 20, 2021

    ### Release Notes


    #### v0.1.8 (effective Apr 20, 2021)

    - Clean up Introduction section

    - Create Order Session

    - Update Extra.tax_excluded_price to now allow negative values

    - Update Option.tax_excluded_price to now allow negative values

    - Add field_errors.code field

    - Remove unused scheduled_delivery_time field

    - Get Checkout Page

    - Remove content body for 400 bad request (incorrect content)


    #### v0.1.7 (effective Mar 10, 2021)

    - Added first_name and last_name on…'
tags:
- name: 'Https:'
paths:
  https://api.doordash.com/drive/v1/checkout:
    post:
      summary: Create Order Session
      description: Create the order session by passing in order details to receive a order_session_id, which is used to open the Checkout Page webview.
      operationId: CreateCheckoutPost
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              required:
              - consumer
              - cart
              - currency
              - delivery_address
              - external_store_id
              type: object
              properties:
                cart:
                  $ref: '#/components/schemas/Cart'
                currency:
                  type: string
                  enum:
                  - USD
                  - AUD
                  - CAD
                  - JPY
                  description: Type of currency of the payment.
                  example: USD
                consumer:
                  $ref: '#/components/schemas/Consumer'
                delivery_address:
                  $ref: '#/components/schemas/DeliveryAddress'
                external_order_id:
                  type: string
                  description: Merchant's unique identifier for the order.
                  example: aer5-ufc9-7865-45ng8-iuywq
                external_store_id:
                  type: string
                  description: Merchant's unique identifier for a store that this delivery is for.
                  example: '148767394'
                dropoff_preference:
                  $ref: '#/components/schemas/DropoffPreference'
        required: true
        description: Request body for checkout endpoint
      responses:
        '200':
          description: Checkout token returned with the given parameters
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderSessionIdResponse'
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldErrorResponse'
        5XX:
          description: '- 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. `scheduled_delivery_time`), the format must be UTC.

            '
      deprecated: false
      security:
      - Drive API Key Authentication: []
      tags:
      - 'Https:'
  https://order.online/embed/v1/checkout/:
    get:
      summary: Get Checkout Page
      description: Get .html page to open in webview
      operationId: GetCheckoutPage
      parameters:
      - name: order_session_id
        in: query
        description: UUID of the order session that was created via the Create Checkout call.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        '200':
          description: HTML of webview
          headers: {}
          content:
            application/html:
              schema:
                $ref: '#/components/schemas/CheckoutPageResponse'
        '400':
          description: Bad request
          headers: {}
        5XX:
          description: '- 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.

            '
      deprecated: false
      security:
      - Drive API Key Authentication: []
      tags:
      - 'Https:'
components:
  schemas:
    Item:
      title: Item
      description: Item object
      required:
      - merchant_supplied_id
      - quantity
      - tax_excluded_price
      - extras
      type: object
      properties:
        merchant_supplied_id:
          type: string
          description: Merchant's id for the Item.
          example: DELUXE_AMERICAN
        quantity:
          type: integer
          format: int32
          example: 3
          description: Quantity of Item being ordered.
        tax_excluded_price:
          type: integer
          format: int64
          example: 899
          description: Tax-excluded price of the Item in cents. Must be 0 or greater.
        special_instructions:
          type: string
          example: Please add any sauces to the side.
          description: Any special instructions for this item, typically submitted by the consumer.
        extras:
          $ref: '#/components/schemas/Extras'
    FieldError:
      title: FieldError
      type: object
      description: Single field that is believed to have caused the error.
      required:
      - field
      properties:
        code:
          type:
          - string
          - 'null'
          description: error code that categorizes the issue causing the error
          example: invalid_monetary_field
        field:
          type: string
          description: Input field that has been believed to have caused the error.
          example: tax_excluded_price
        input_value:
          type:
          - string
          - 'null'
          description: Value of the input field that is causing the error.
          example: -10
        message:
          type:
          - string
          - 'null'
          description: Any additional messaging around this field causing the error.
          example: item.tax_excluded_price must be greater than or equal to 0. Make sure this field is non-negative.
    DropoffPreference:
      title: null
      description: Details on how Dasher should dropoff to the consumer; consumer preference for their delivery getting dropped off.
      type: object
      properties:
        option:
          description: Method of dropoff.
          type: string
          enum:
          - LEAVE_AT_DOOR
          - HAND_TO_CONSUMER
          example: LEAVE_AT_DOOR
        dasher_instructions:
          description: Any additional instructions for Dasher to follow when dropping off the delivery.
          type: string
          example: This is a gated community. Just head over to the gate entrance and on the left there should be a mail package area where you can drop off the order. Thanks!
    Items:
      title: An array of Item objects for an order.
      description: An array of Item objects for an order. There must be at least one item for a valid order.
      type: array
      items:
        $ref: '#/components/schemas/Item'
    Options:
      title: null
      description: An array of Option objects for an order. If there are no Options, set this field to an empty array.
      type: array
      items:
        $ref: '#/components/schemas/Option'
    Extras:
      title: An array of Extra objects for an order.
      description: An array of Extra objects for an order. If there are no Extras, set this field to an empty array.
      type: array
      items:
        $ref: '#/components/schemas/Extra'
    Option:
      title: null
      description: An array of Option objects of an Extra
      required:
      - merchant_supplied_id
      - quantity
      - tax_excluded_price
      type: object
      properties:
        merchant_supplied_id:
          type: string
          description: Merchant's id for the Item Extra Option.
          example: ADD_KETCHUP
        quantity:
          type: integer
          format: int32
          example: 1
          description: Quantity of Option being ordered.
        tax_excluded_price:
          type: integer
          format: int64
          example: 50
          description: Tax-excluded price of the Item Extra Option in cents.
        extras:
          $ref: '#/components/schemas/Extras'
    ValidationFieldErrorResponse:
      title: ValidationFieldErrorResponse
      type:
      - object
      - 'null'
      description: The response returned when validation for input field errors are encountered.
      readOnly: true
      properties:
        errors:
          $ref: '#/components/schemas/ErrorResponse'
    ErrorResponse:
      title: ErrorResponse
      description: Error response captured when attempting to process the request.
      type: object
      required:
      - code
      - summary
      - message
      - field_errors
      properties:
        code:
          type: string
          description: Error code/category of error encountered.
          example: INVALID_MONETARY_FIELD
        summary:
          type: string
          description: 1-line summary of error that occurred.
          example: Tax-excluded price must not be negative.
        message:
          type: string
          description: Any additional information e.g. suggestions on how to resolve error.
          example: Tax-excluded price must not be negative. Please ensure all prices are 0 or greater (in cents).
        field_errors:
          $ref: '#/components/schemas/FieldErrors'
    Cart:
      title: The consumer's cart containing their order.
      description: An object that represents the cart of order items and which menu type / category the order belongs to.
      required:
      - category_name
      - items
      type: object
      properties:
        category_name:
          type: string
          description: Category name / menu type e.g. ALLDAY, BREAKFAST, LUNCH, DINNER, etc.
          example: BREAKFAST
        items:
          $ref: '#/components/schemas/Items'
    OrderSessionIdResponse:
      title: Order Session ID
      type: object
      properties:
        order_session_id:
          type: string
          example: 24ac000c-3934-11eb-adc1-0242ac120002
          description: Order Session ID to open checkout in webview
    Extra:
      title: Item extra
      description: Item extra e.g. Choice of Sauce, Choice of toppings, etc. - merchant_supplied_id - quantity - tax_excluded_price - options
      type: object
      properties:
        merchant_supplied_id:
          type: string
          description: Merchant's id for the Item Extra.
          example: BREAKFAST_CONDIMENTS
        quantity:
          type: integer
          format: int32
          example: 0
          description: Quantity of Extra being ordered.
        tax_excluded_price:
          type: integer
          format: int64
          example: 0
          description: Tax-excluded price of the Item Extra in cents.
        options:
          $ref: '#/components/schemas/Options'
    FieldErrors:
      title: Field Errors
      description: List of field errors detected to have caused the error.
      type: array
      items:
        $ref: '#/components/schemas/FieldError'
    CheckoutPageResponse:
      title: Webview HTML
      description: HTML of checkout screen to be opened in CFA webview
      type: .html page
    DeliveryAddress:
      title: The address where the order needs to be dropped off.
      description: The address where the order needs to be dropped off.
      required:
      - street
      - city
      - state
      - zip_code
      - country
      type: object
      properties:
        street:
          type: string
          description: Street for the delivery address
          example: 901 Market Street
        unit:
          type:
          - string
          - 'null'
          description: Suite, Apartment or Unit number of the address.
          example: 'Suite #600'
        city:
          type: string
          description: City for the delivery address.
          example: San Francisco
        state:
          type: string
          description: State for the delivery address.
          example: California
        zip_code:
          type: string
          description: Zipcode for the address.
          example: '94105'
        country:
          type: string
          description: Country of the address.
          example: USA
    Consumer:
      title: Consumer
      description: Consumer information.
      required:
      - external_consumer_id
      - email
      - phone_number
      - address
      - first_name
      - last_name
      type: object
      properties:
        external_consumer_id:
          type: string
          description: Merchant's identifier for consumer.
          example: '12345678'
        email:
          type: string
          description: The email of the consumer.
          example: tonyxu22@doordash.com
        phone_number:
          type: string
          description: Phone number of the consumer.
          example: '+16505555555'
        address:
          type: string
          description: Formatted address string.
          example: 12345 Oakview Drive, San Francisco, CA 94108
        first_name:
          type: string
          description: 'Given/first name of the customer creating the delivery; cannot contain ~, `, @, #, $, %, ^, &, *, +, =, ?, ;, [, {, ], }'
          example: Jane
        last_name:
          type: string
          description: 'Family/last name of the customer creating the delivery; cannot contain ~, `, @, #, $, %, ^, &, *, +, =, ?, ;, [, {, ], }'
          example: Goodall
  securitySchemes:
    Drive_API_Key_Authentication:
      type: apiKey
      scheme: bearer
      in: header
      name: Authorization
      description: We will be using stateful token based API keys to authenticate clients, passed in the 'Authorization' header as 'Bearer {API_KEY}'.