DoorDash Storefront API

The white-label online-ordering surface DoorDash runs on a merchant's own site - addresses and geocoding, store and menu reads, cart and order sessions, payment methods, loyalty profiles, rewards and redemptions, and QR code generation.

Operations 29

GET /storefront/api/v1/addresses/autocomplete Get address suggestions for an input string #
GET /storefront/api/v1/addresses/details Get address details with an id #
GET /storefront/api/v1/addresses/reverse_geocode Get list of addresses with latitude and longitude #
POST /storefront/api/v1/addresses/create Get or create address details with a full qualified address string. #
GET /storefront/api/v1/businesses/{business_id}/stores Get stores by business #
GET /storefront/api/v1/business_groups/{business_group_id}/stores Get stores by business group #
GET /storefront/api/v1/businesses/{business_id}/stores/nearby_search Search nearby stores by business #
GET /storefront/api/v1/business_groups/{business_group_id}/stores/nearby_search Search nearby stores by business group #
GET /storefront/api/v1/stores/{store_id} Get store details #
POST /storefront/api/v1/stores/{store_id}/item Get store menu item. #
POST /storefront/api/v1/stores/{store_id}/v2/menu Get store menu v2. #
GET /storefront/api/v1/stores/{store_id}/menus Get store menus by store id #
GET /storefront/api/v1/stores/{store_id}/menus/all Get all active store menus by store id #
POST /storefront/api/v1/orders/order_session Create storefront order session from external cart. #
POST /storefront/api/v1/orders/order_session_to_cart Create cart from order session. #
POST /storefront/api/v1/orders/order_history Get order history of a consumer #
POST /storefront/api/v1/orders/order_status Get order status given a order id #
POST /storefront/api/v1/jwt Create JWT for the integration_id which could be business, business group or store id #
GET /storefront/api/v1/loyalty/get_balance Get loyalty account balance of the user #
POST /storefront/api/v1/loyalty/profile Get loyalty member profile of the user #
POST /storefront/api/v1/loyalty/revoke_session Revoke a user's session with the loyalty provider #
POST /storefront/api/v1/loyalty/delete_account Delete a user's account. #
POST /storefront/api/v1/loyalty/session Retrieve a user's session info with the loyalty provider #
POST /storefront/api/v1/loyalty/qr_code Get QR code for user loyalty account. #
POST /storefront/api/v1/loyalty/get_user_rewards Retrieve user loyalty rewards. #
POST /storefront/api/v1/loyalty/store/check_in Check a user in to earn loyalty points for visiting a store location. #
POST /storefront/api/v1/loyalty/store/redeem Redeem a customer's loyalty reward in store. #
GET /storefront/api/v1/app/get_minimum_version Get minimum application version required for the mobile apps to operate #
GET /storefront/api/v1/app/metadata Get app metadata for the mobile apps to operate #

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-storefront-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-storefront-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Storefront V1 API Specification
  version: 1.0.0
  contact:
    name: Storefront API Support
    email: storefront-api-support@doordash.com
servers:
  - url: https://openapi.doordash.com
    variables: {}
security:
  - BearerAuth: []
tags:
  - name: Business & Store
    description: Endpoints for retrieving business & store information
  - name: Search
    description: Endpoints for store searches
  - name: Address
    description: Endpoints for address related information
  - name: Loyalty
    description: Endpoints for loyalty related resources
  - name: JWT
    description: Endpoints for JWT resources
  - name: Order
    description: Endpoints for order resources
  - name: App
    description: Endpoints for mobile app related information
paths:
  /storefront/api/v1/addresses/autocomplete:
    get:
      tags:
        - Address
      summary: Get address suggestions for an input string
      description: >-
        Retrieve a list of address suggestions based on the user input and
        optional geographic bounds.
      operationId: GetAutocompleteSuggestionsForAddressInput
      parameters:
        - $ref: '#/components/parameters/IntegrationId'
        - $ref: '#/components/parameters/IntegrationType'
        - name: input
          in: query
          schema:
            type: string
          required: true
        - name: lat
          in: query
          description: latitude
          schema:
            $ref: '#/components/schemas/Latitude'
        - name: lon
          in: query
          description: longitude
          schema:
            $ref: '#/components/schemas/Longitude'
        - $ref: '#/components/parameters/CountryCode'
        - name: search_radius
          in: query
          description: >-
            Define the distance in meters within which to return results.
            Results outside of the defined area may still be displayed.
          schema:
            type: integer
            minimum: 1
            maximum: 100000
        - $ref: '#/components/parameters/Language'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutocompleteSuggestionsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/addresses/details:
    get:
      tags:
        - Address
      summary: Get address details with an id
      description: Request more details about an address given an id
      operationId: GetAddressDetailsById
      parameters:
        - $ref: '#/components/parameters/IntegrationId'
        - $ref: '#/components/parameters/IntegrationType'
        - name: source_place_id
          in: query
          schema:
            type: string
          required: true
        - $ref: '#/components/parameters/CountryCode'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressDetailsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/addresses/reverse_geocode:
    get:
      tags:
        - Address
      summary: Get list of addresses with latitude and longitude
      description: Find addresses closest to a location on the map
      operationId: GetAddressesByGeocode
      parameters:
        - $ref: '#/components/parameters/IntegrationId'
        - $ref: '#/components/parameters/IntegrationType'
        - $ref: '#/components/parameters/Latitude'
        - $ref: '#/components/parameters/Longitude'
        - $ref: '#/components/parameters/Language'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReverseGeocodeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/addresses/create:
    post:
      tags:
        - Address
      summary: Get or create address details with a full qualified address string.
      description: >-
        Get or create address details based on a formatted_address,  e.g. "1234
        Main St., Sacramento, CA 95814"
      operationId: GetOrCreateAddress
      requestBody:
        description: >-
          request body which should contain formatted address, integration id
          and type.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetOrCreateAddressRequest'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressDetailsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/businesses/{business_id}/stores:
    get:
      tags:
        - Business & Store
      summary: Get stores by business
      description: >-
        Retrieve a list of stores that are currently active on storefront and
        owned by a business. Search results will be sorted by store id.
      operationId: ListStoresByBusinessId
      parameters:
        - $ref: '#/components/parameters/BusinessId'
        - $ref: '#/components/parameters/PaginationToken'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/ShouldSendStoreDetails'
      responses:
        '200':
          description: Ok
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoresResponse'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/business_groups/{business_group_id}/stores:
    get:
      tags:
        - Business & Store
      summary: Get stores by business group
      description: >-
        Retrieve a list of stores that are currently active on storefront and
        owned by a business group. Search results will be sorted by store id.
      operationId: ListStoresByBusinessGroupId
      parameters:
        - $ref: '#/components/parameters/BusinessGroupId'
        - $ref: '#/components/parameters/PaginationToken'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/ShouldSendStoreDetails'
      responses:
        '200':
          description: Ok
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoresResponse'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessGroupResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/businesses/{business_id}/stores/nearby_search:
    get:
      tags:
        - Search
      summary: Search nearby stores by business
      description: >-
        Search for stores that are currently active on storefront and within a
        specified area given business id and location. Search results can be
        refined by providing additional keywords and the result will be sorted
        by distance.
      operationId: NearbyStoresByBusinessId
      parameters:
        - $ref: '#/components/parameters/BusinessId'
        - $ref: '#/components/parameters/Latitude'
        - $ref: '#/components/parameters/Longitude'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/OpenAt'
        - $ref: '#/components/parameters/IsPickup'
        - $ref: '#/components/parameters/SearchRadius'
        - $ref: '#/components/parameters/ShouldSendStoreDetails'
      responses:
        '200':
          description: Ok
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NearByStoresResponse'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/business_groups/{business_group_id}/stores/nearby_search:
    get:
      tags:
        - Search
      summary: Search nearby stores by business group
      description: >-
        Search for stores that are currently active on storefront and within a
        specified area given business group id and location. Search results can
        be refined by providing additional keywords and the result will be
        sorted by distance.
      operationId: NearbyStoresByBusinessGroupId
      parameters:
        - $ref: '#/components/parameters/BusinessGroupId'
        - $ref: '#/components/parameters/Latitude'
        - $ref: '#/components/parameters/Longitude'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/OpenAt'
        - $ref: '#/components/parameters/IsPickup'
        - $ref: '#/components/parameters/SearchRadius'
        - $ref: '#/components/parameters/ShouldSendStoreDetails'
      responses:
        '200':
          description: Ok
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NearByStoresResponse'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessGroupResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/stores/{store_id}:
    get:
      tags:
        - Business & Store
      summary: Get store details
      description: Request more details about a single store given store id
      operationId: GetStoreDetailsById
      parameters:
        - $ref: '#/components/parameters/StoreId'
      responses:
        '200':
          description: Ok
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreDetails'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/stores/{store_id}/item:
    post:
      tags:
        - Menu Item
      summary: Get store menu item.
      description: Get store menu item
      operationId: GetStoreMenuItem
      parameters:
        - $ref: '#/components/parameters/StoreId'
      requestBody:
        description: request body which should contain item id
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetStoreMenuItemRequest'
      responses:
        '200':
          description: Ok
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/stores/{store_id}/v2/menu:
    post:
      tags:
        - Menu V2
      summary: Get store menu v2.
      description: Get store menu v2
      operationId: GetStoreMenuV2
      parameters:
        - $ref: '#/components/parameters/StoreId'
      requestBody:
        description: request body which should contain store id
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetStoreMenuV2Request'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStoreMenuV2Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
      deprecated: false
  /storefront/api/v1/stores/{store_id}/menus:
    get:
      tags:
        - Business & Store
      summary: Get store menus by store id
      operationId: getMenu
      parameters:
        - $ref: '#/components/parameters/StoreId'
      responses:
        '200':
          description: Successfully retrieved menu details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStoreMenusResponse'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreMenuResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /storefront/api/v1/stores/{store_id}/menus/all:
    get:
      tags:
        - Business & Store
      summary: Get all active store menus by store id
      operationId: getMenuAll
      parameters:
        - $ref: '#/components/parameters/StoreId'
      responses:
        '200':
          description: Successfully retrieved menu details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllStoreMenusResponse'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreMenuResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /storefront/api/v1/orders/order_session:
    post:
      tags:
        - Order
      summary: Create storefront order session from external cart.
      operationId: CreateStorefrontOrderSessionFromExternalCartId
      requestBody:
        description: >-
          request body which should contain menu ids, menu item ids and other
          relevant details needed in external cart.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorefrontOrderSessionRequest'
      responses:
        '200':
          description: Successfully created order session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorefrontOrderSessionResponse'
        '400':
          description: Request Validation Failed
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationFieldError'
        '401':
          description: Request not authenticated
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '403':
          description: Operation not authorized
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: Request resources not found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreMenuResourceNotFoundError'
        '429':
          description: Rate limited
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedError'
        '500':
          description: Internal service failure, please try again later
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalError'
  /storefront/api/v1/orders/order_session_to_cart:
    post:
      tags:
        - Order
      summary: Create cart from order session.
      operationId: CreateCartFromOrderSession
      requestBody:
        description: >-
          Internal use only. request body which should contain all the relevant
          details needed to create cart from order session.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorefrontCreateCartFromOrderSessionRequest'
      responses:
        '200':
          description: Successfully created order session
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/StorefrontCreateCartFromOrderSessionResponse
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '422':
          description: Request Entity Too Large
        '429':
          description: Request is rate limited
        '500':
          description: Internal Server Error
  /storefront/api/v1/orders/order_history:
    post:
      tags:
        - Order
      summary: Get order history of a consumer
      operationId: getOrderHistory
      requestBody:
        description: request body which should contain user's identification details.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoyaltyUserSessionRequest'
      responses:
        '200':
          description: Successfully retrieved order history
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStorefrontOrderHistoryResponse'
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '422':
          description: Request Entity Too Large
        '429':
          description: Request is rate limited
        '500':
          description: Internal Server Error
  /storefront/api/v1/orders/order_status:
    post:
      tags:
        - Order
      summary: Get order status given a order id
      operationId: getOrderStatus
 

# --- truncated at 32 KB (103 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/doordash/refs/heads/main/openapi/_original/doordash-storefront-openapi.yml