openapi: 3.2.0 info: title: Doordash Business & Store API x-refined-note: - x-logo differs across the merged source definitions and was not carried version: '1.0' description: 'Operations tagged Business & Store across 3 of this provider''s published API definitions: doordash-drive-classic-openapi.yml, doordash-drive-openapi.yml, doordash-storefront-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://openapi.doordash.com variables: {} tags: - name: Business & Store x-displayName: Business & Store paths: /developer/v1/businesses/{external_business_id}: get: summary: Get Business tags: - Business & Store description: Get the details of a business. operationId: GetBusiness parameters: - $ref: '#/components/parameters/PathExternalBusinessId' responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Business' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false patch: summary: Update Business tags: - Business & Store description: Update the attributes of a business. operationId: UpdateBusiness parameters: - $ref: '#/components/parameters/PathExternalBusinessId' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateBusinessInput' required: true responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Business' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /developer/v1/businesses: post: summary: Create Business tags: - Business & Store description: Create a Drive business. You cannot create a business with string "default" as external_business_id. "default" is reserved for automatically created business during developer onboarding. operationId: CreateBusiness requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateBusinessInput' required: true responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Business' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false get: summary: List Businesses tags: - Business & Store description: List the businesses owned by a developer. operationId: ListBusiness parameters: - in: query name: activationStatus schema: $ref: '#/components/schemas/BusinessActivationStatus' - in: query name: continuationToken schema: type: string description: Opaque string that can be used to fetch next page of businesses, the token value will be null if there are no more businesses to fetch. Page size is 100 businesses. responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/PaginatedBusinessList' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /developer/v1/businesses/{external_business_id}/stores/{external_store_id}: get: summary: Get Store tags: - Business & Store description: Get the details of a store. operationId: GetStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' - $ref: '#/components/parameters/PathExternalStoreId' responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Store' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Store not found under this external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_store_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false patch: summary: Update Store tags: - Business & Store description: Update the attributes of a store. operationId: UpdateStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' - $ref: '#/components/parameters/PathExternalStoreId' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateStoreInput' required: true responses: '200': description: Ok headers: {} content: application/json: schema: $ref: '#/components/schemas/Store' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Store not found under this external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_store_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /developer/v1/businesses/{external_business_id}/stores: post: summary: Create Store tags: - Business & Store description: Create a Drive store. To create a store for your developer's default business please create stores under "default" external_business_id. We recommend this route if you are either an enterprise or a developer who plan to manage only one business. operationId: CreateStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateStoreInput' required: true responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/Store' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '424': description: Missing dependency to set up stores headers: {} content: application/json: schema: $ref: '#/components/schemas/missing_dependency_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false get: summary: List Stores tags: - Business & Store description: List the stores under a business. operationId: ListStore parameters: - $ref: '#/components/parameters/PathExternalBusinessId' - in: query name: activationStatus schema: $ref: '#/components/schemas/StoreActivationStatus' - in: query name: continuationToken schema: type: string description: Opaque string that can be used to fetch next page of stores, the token value will be null if there are no more stores to fetch. Page size is 100 stores. responses: '200': description: OK headers: {} content: application/json: schema: $ref: '#/components/schemas/PaginatedStoreList' '400': description: Request validation failed headers: {} content: application/json: schema: $ref: '#/components/schemas/validation_field_error' '403': description: Operation not authorized headers: {} content: application/json: schema: $ref: '#/components/schemas/authorization_error' '404': description: Unknown external business ID headers: {} content: application/json: schema: $ref: '#/components/schemas/unknown_business_error' '500': description: Internal service failure, please try again later content: application/json: schema: $ref: '#/components/schemas/server_fault' deprecated: false servers: - url: https://openapi.doordash.com variables: {} /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 security: - BearerAuth: [] servers: - url: https://openapi.doordash.com variables: {} /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 security: - BearerAuth: [] servers: - url: https://openapi.doordash.com variables: {} /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 security: - BearerAuth: [] servers: - url: https://openapi.doordash.com variables: {} /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' security: - BearerAuth: [] servers: - url: https://openapi.doordash.com variables: {} /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' security: - BearerAuth: [] servers: - url: https://openapi.doordash.com variables: {} components: schemas: UpdateStoreInput: title: UpdateStoreInput type: object properties: name: $ref: '#/components/schemas/Name' phone_number: $ref: '#/components/schemas/StorePhoneNumber' address: $ref: '#/components/schemas/StoreAddress' StoreExternalBusinessId: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: Unique, caller-selected ID for the business. example: a0720d55-7cbe-41ce-8185-58285b7985cd StoreActivationStatus: type: string description: Activation status of the store. enum: - active - inactive Name: title: Store Name type: string pattern: Any non empty string description: The name of the store. example: 'Neighborhood Deli #10' authorization_error: x-error: true type: object description: 'Authorization error: the credentials provided with the request don''t work for the requested operation' required: - code - message properties: code: type: string enum: - authorization_error default: authorization_error message: type: string example: 'Authorization error: the credentials provided with the request don''t work for the requested operation' default: 'Authorization error: the credentials provided with the request don''t work for the requested operation' Store: title: Store description: Details of a store. type: object properties: name: $ref: '#/components/schemas/Name' external_business_id: $ref: '#/components/schemas/StoreExternalBusinessId' external_store_id: $ref: '#/components/schemas/StoreExternalStoreId' phone_number: $ref: '#/components/schemas/StorePhoneNumber' address: $ref: '#/components/schemas/StoreAddress' status: $ref: '#/components/schemas/StoreActivationStatus' is_test: type: boolean description: Indicates whether the store was created as a test store. example: false created_at: type: string description: Time when the store was created. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' last_updated_at: type: string description: Time when the store was last updated. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' CreateBusinessInput: title: CreateBusinessInput type: object properties: external_business_id: $ref: '#/components/schemas/BizExternalBusinessId' name: $ref: '#/components/schemas/BusinessName' description: $ref: '#/components/schemas/BusinessDescription' activation_status: $ref: '#/components/schemas/BusinessActivationStatus' required: - name - external_business_id StoreExternalStoreId: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: A unique ID for the store, selected or generated by the API caller. example: ed178ef3-b486-4ce8-8baa-5bc9f0f3fa4a BusinessActivationStatus: type: string description: Activation status of the business. Used primarily for the automatic self-serve onboarding flow. enum: - initiated - pending_external_activation - pending_legal_agreement - abandoned - failed - active - inactive example: active unknown_business_error: x-error: true type: object description: External business ID was not found. required: - code - message - external_business_id properties: code: type: string enum: - unknown_business_id message: type: string default: External Business ID was not found example: External Business ID was not found external_business_id: type: string description: The external business ID that couldn't be found. example: a0720d55-7cbe-41ce-8185-58285b7985cd unknown_store_error: x-error: true type: object description: The external store ID wasn't found under the external business ID. required: - code - message - external_business_id - external_store_id properties: code: type: string enum: - unknown_business_id - unknown_store_id_under_business_id message: type: string example: The external store ID in the request wasn't found under the external business ID. external_business_id: type: string description: The external business ID that couldn't be found. example: a0720d55-7cbe-41ce-8185-58285b7985cd external_store_id: type: string description: The external store ID that couldn't be found. example: ed178ef3-b486-4ce8-8baa-5bc9f0f3fa4a StoreAddress: type: string pattern: Any non empty string description: The full address of the store, in the order appropriate for your locale, with each element separated by a comma. example: 901 Market Street, 6th Floor, San Francisco, CA, 94103 BizExternalBusinessId: type: string pattern: /^[A-Za-z0-9_-]{3,64}$/ description: Unique, caller-selected ID of the business. example: a0720d55-7cbe-41ce-8185-58285b7985cd CreateStoreInput: title: CreateStoreInput type: object properties: external_store_id: $ref: '#/components/schemas/StoreExternalStoreId' name: $ref: '#/components/schemas/Name' phone_number: $ref: '#/components/schemas/StorePhoneNumber' address: $ref: '#/components/schemas/StoreAddress' required: - external_store_id - name - address validation_field_error: x-error: true title: ValidationFieldError type: object description: One or more request values couldn't be validated. required: - code - message - field_errors properties: code: type: string enum: - validation_error message: type: string description: One or more request values couldn't be validated. example: One or more request values couldn't be validated. field_errors: type: array description: The list of fields whose values couldn't be validated. See more [error examples](https://developer.doordash.com/en-US/docs/drive/reference/errors) items: $ref: '#/components/schemas/FieldError' readOnly: true components: schemas: FieldError: title: FieldError type: object description: A field whose value couldn't be validated. required: - field - error properties: field: type: string description: Name of the field whose value couldn't be validated. example: pickup_phone_number error: type: string description: The error that was encountered when validating the field's value. example: Invalid phone number format BusinessName: title: Business Name type: string pattern: Any non empty string description: Human readable name for the business. Used when the details of a business are shown to a customer, Dasher, merchant, or support agent. example: Neighborhood Deli FieldError: title: FieldError type: object description: A field whose value couldn't be validated. required: - field - error properties: field: type: string description: Name of the field whose value couldn't be validated. example: pickup_phone_number error: type: string description: The error that was encountered when validating the field's value. example: Invalid phone number format PaginatedBusinessList: type: object required: - business_list - result_count properties: result: type: array items: $ref: '#/components/schemas/Business' description: Max length of result set is 25 continuation_token: type: string description: Opaque string that can be used to fetch next page of businesses, the token value will be null if there are no more businesses to fetch. result_count: type: integer MissingDependency: title: MissingDependency type: object description: Missing dependencies. required: - dependency - error properties: field: type: string description: identifier for dependency example: invocing error: type: string description: Error string description missing dependency example: Missing invocing set up UpdateBusinessInput: title: UpdateBusinessInput type: object properties: name: $ref: '#/components/schemas/BusinessName' description: $ref: '#/components/schemas/BusinessDescription' activation_status: $ref: '#/components/schemas/BusinessActivationStatus' Business: title: Business description: Details of a business. type: object properties: name: $ref: '#/components/schemas/BusinessName' description: $ref: '#/components/schemas/BusinessDescription' external_business_id: $ref: '#/components/schemas/BizExternalBusinessId' activation_status: $ref: '#/components/schemas/BusinessActivationStatus' created_at: type: string description: Time when the business was created. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' last_updated_at: type: string description: Time when the business was last updated. Uses ISO-8601 format. example: '2022-04-25T17:21:43Z' is_test: type: boolean description: Indicates whether the business was created as a test business. example: false external_metadata: $ref: '#/components/schemas/ExternalMetadata' ExternalMetadata: title: ExternalMetadata description: Additional caller-specific metadata about the business. Used primarily for the automatic self-serve onboarding flow. type: object properties: number_of_stores: type: integer description: Number of stores owned by the business. example: '10' client_email: type: string description: Business owner or contact email address. example: merchant@doordash.com client_phone_number: type: string description: Business owner or contact phone number. example: '+12065551212' external_store_ids: type: array items: type: String description: External store_ids that merchant wants MWP/DoorDash to create stores BusinessDescription: type: string pattern: Any non empty string description: Short description of the business. Used in the DoorDash Merchant Portal. Maximum length of description is 100 characters example: A neighborhood deli serving many tasty sandwiches and soups. StorePhoneNumber: type: string pattern: Any non empty string, validated by country description: Phone number of the store. Used when a customer, Dasher, or support agent needs to contact the store. example: '+12065551212' PaginatedStoreList: type: object required: - store_list - result_count properties: result: type: array items: $ref: '#/components/schemas/Store' description: Max length of result set is 25 continuation_token: type: string description: Opaque string that can be used to fetch next page of stores, the token value will be null if there are no more stores to fetch. result_count: type: integer server_fault: x-error: true type: object description: Internal service failure, please try again later. required: - code - message properties: code: type: string enum: - service_fault default: service_fault message: type: string example: Internal service failure, please try again later. default: Internal service failure, please try again later. missing_dependency_error: x-error: true title: MissingDependencyError type: object description: The response returned when one or more dependencies required to create a resource are missing. required: - code - message - missing_dependencies properties: code: type: string enum: - missing_dependency_error message: type: string example: Missing dependency missing_dependencies: type: array description: Missing dependencies that were generated during the call items: $ref: '#/components/schemas/MissingDependency' readOnly: true MissingDependency: title: MissingDependency type: object description: Missing dependencies. required: - dependency - error properties: field: type: string description: identifier for dependency example: invocing error: type: string description: Error string description missing dependency example: Missing invocing set up Hour: type: object description: Special hours that the item is being offered properties: day: $ref: '#/components/schemas/Day' start_time: type: string description: Start time in format HH:MM:SS example: '13:00:00' end_time: type: string description: End time in format HH:MM:SS example: '18:00:00' BusinessResourceNotFoundError: x-error: true title: BusinessResourceNotFoundError type: object description: The response returned when requested resource is not found/available. required: - code - message properties: code: type: string enum: - not_found message: type: string example: Business is inactive/invalid. ItemExtra: type: object required: - name properties: name: type: string description: Extra Name description: type: string description: Extra Description id: type: string description: Extra Id min_num_options: description: Minimum number of total options that must be selected type: integer max_num_options: description: Maximum number of total options that must be selected type: integer num_free_options: description: Maximum number of options that are free type: integer min_option_choice_quantity: description: Minimum quantity of a single option that must be selected type: integer max_option_choice_quantity: description: Maximum quantity of a single option that can be selected type: integer min_aggregate_options_quantity: description: Minimum combined quantity of all options that must be selected type: integer max_aggregate_options_quantity: description: Maximum combined quantity of all options that can be selected type: integer options: type: array items: $ref: '#/components/schemas/ItemExtraOption' StoreResourceNotFoundError: x-error: true title: StoreResourceNotFoundError type: object description: The response returned when requested resource is not found/available. required: - code - message properties: code: type: string enum: - not_found message: type: string example: Store is inactive/invalid. NestedL2ItemExtraOption: type: object required: - name - price properties: name: type: string description: The given name of this instance description: type: string id: type: string price: $ref: '#/components/schemas/Price' special_hours: type: array items: $ref: '#/components/schemas/ItemSpecialHour' original_image_url: type: string description: Item image URL in JPG|JPEG|PNG format, min resolution (1600w x 800h), aspect ratio 16:9 and max size 2MB. Initial image ingestion will go through approval process default_on: type: boolean description: Whether this option is default selected InternalError: x-error: true title: InternalError type: object description: Internal errors that occur during the api call. required: - code - message properties: code: type: string enum: - internal_service_error message: type: string example: Internal Service Error. MenuHours: type: object description: Menu Category Available Hours required: - days_bit_array - start_time - end_time properties: days_bit_array: type: array description: Represents day of week from Monday to Sunday. When it's not empty, must have length = 7 items: type: boolean maxLength: 7 example: - true - true - false - true - true - true - false start_time: type: number description: start_time is milliseconds, represents a period in a day. end_time: type: number description: end_time is milliseconds, represents a period in a day. 0 <= start_time <= end_time < 24*60*60*1000 StoreMenuResourceNotFoundError: x-error: true title: StoreMenuResourceNotFoundError type: object description: The response returned when requested resource is not found/available. required: - code - message properties: code: type: string enum: - not_found message: type: string example: Failed to fetch store menus for store 123. StorefrontStoreSpecialHours: type: object properties: date: type: string description: In yyyy-mm-dd format example: '2018-01-12' hours: $ref: '#/components/schemas/StoreHours' StoresResponse: type: object title: BusinessStoresResponse description: List of stores with basic information. required: - stores properties: stores: type: array items: $ref: '#/components/schemas/BasicStoreInfo' prev_token: type: string description: Indicate the starting point to the previous page within the collection of resource results example: '239843' next_token: type: string description: Indicate the starting point to the next page within the collection of resource results example: '239886' BusinessGroupResourceNotFoundError: x-error: true title: BusinessResourceNotFoundError type: object description: The response returned when requested resource is not found/available. required: - code - message properties: code: type: string enum: - not_found message: type: string example: Business group is inactive/invalid. BusinessGroupId: type: string pattern: ^([1-9][0-9]*)$ description: Unique ID for the business. example: '123' RateLimitedError: x-error: true title: RateLimitedError type: object description: Rate limited. required: - code - message properties: code: type: string enum: - rate_limit_error message: type: string example: Developer account endpoint rate limit exceeded. ShouldSendStoreDetails: type: boolean default: false BasicStoreInfo: type: object properties: name: type: string description: Store name example: test id: type: string description: Store id example: '123' address: type: string description: Store address example: 123 Street Apt123, 98101 status: type: object description: Store activation status properties: storefront: $ref: '#/components/schemas/StoreStatus' store_properties: type: object description: Store properties indicating available services properties: curbside: type: boolean description: Whether the store offers curbside pickup example: true default: false drivethru: type: boolean description: Whether the store has a drive-thru example: false default: false Day: type: array items: type: string maxItems: 7 example: - monday - tuesday ItemExtraOption: type: object required: - name - price properties: name: type: string description: Item Extra Option Name description: type: string description: Item Extra Option Description id: type: string description: Item Extra Option Id price: $ref: '#/components/schemas/Price' special_hours: type: array items: $ref: '#/components/schemas/ItemSpecialHour' extras: type: array items: $ref: '#/components/schemas/NestedItemExtra' original_image_url: type: string description: Item image URL in JPG|JPEG|PNG format, min resolution (1600w x 800h), aspect ratio 16:9 and max size 2MB. Initial image ingestion will go through approval process default_on: type: boolean description: Whether this option is default selected StoreHours: type: object properties: closed: type: boolean example: false asap_pickup: type: array items: $ref: '#/components/schemas/StoreIntervals' asap_delivery: type: array items: $ref: '#/components/schemas/StoreIntervals' scheduled_pickup: type: array items: $ref: '#/components/schemas/StoreIntervals' scheduled_delivery: type: array items: $ref: '#/components/schemas/StoreIntervals' Item: type: object properties: name: type: string description: Item name description: type: string description: Item description id: type: string description: Item id price: $ref: '#/components/schemas/Price' special_hours: type: array items: $ref: '#/components/schemas/ItemSpecialHour' extras: type: array items: $ref: '#/components/schemas/ItemExtra' original_image_url: type: string description: Item image URL in JPG|JPEG|PNG format, min resolution (1600w x 800h), aspect ratio 16:9 and max size 2MB. Initial image ingestion will go through approval process Price: type: object required: - value - currency properties: value: type: integer description: Price of this instance in minor units example: 399 currency: type: string description: ISO 4217 - currency codes example: USD PaginationToken: type: string description: Resource results starting point example: pre1111 GetStoreMenusResponse: type: object required: - store - open_hours - special_hours properties: menu: $ref: '#/components/schemas/Menu' AuthenticationError: x-error: true type: object description: Authorization error, available credentials don't match requested operation required: - code - message properties: code: type: string enum: - authentication_error message: type: string example: Request does not contain a JWT. NestedItemExtraOption: type: object required: - name - price properties: name: type: string description: The given name of this instance description: type: string description: The description of this instance id: type: string description: The id of this instance price: $ref: '#/components/schemas/Price' special_hours: type: array items: $ref: '#/components/schemas/ItemSpecialHour' extras: type: array items: $ref: '#/components/schemas/NestedL2ItemExtra' original_image_url: type: string description: Item image URL in JPG|JPEG|PNG format, min resolution (1600w x 800h), aspect ratio 16:9 and max size 2MB. Initial image ingestion will go through approval process default_on: type: boolean description: Whether this option is default selected GetAllStoreMenusResponse: type: array items: $ref: '#/components/schemas/GetStoreMenusResponse' ValidationFieldError: x-error: true title: ValidationFieldError type: object description: The response returned when validation for field errors are encountered. required: - code - message - field_errors properties: code: type: string enum: - validation_error message: type: string example: Request validation failed. errors: type: string example: Missing business/store id. NestedItemExtra: type: object required: - name properties: name: type: string description: The given name of this instance description: type: string description: The description of this instance id: type: string description: The id of this instance min_num_options: description: Minimum number of total options that must be selected type: integer max_num_options: description: Maximum number of total options that must be selected type: integer num_free_options: description: Maximum number of options that are free type: integer min_option_choice_quantity: description: Minimum quantity of a single option that must be selected type: integer max_option_choice_quantity: description: Maximum quantity of a single option that can be selected type: integer min_aggregate_options_quantity: description: Minimum combined quantity of all options that must be selected type: integer max_aggregate_options_quantity: description: Maximum combined quantity of all options that can be selected type: integer options: type: array items: $ref: '#/components/schemas/NestedItemExtraOption' NestedL2ItemExtra: type: object required: - name properties: name: type: string description: The given name of this instance description: type: string description: The description of this instance id: type: string description: The id of this instance min_num_options: description: Minimum number of total options that must be selected type: integer max_num_options: description: Maximum number of total options that must be selected type: integer num_free_options: description: Maximum number of options that are free type: integer min_option_choice_quantity: description: Minimum quantity of a single option that must be selected type: integer max_option_choice_quantity: description: Maximum quantity of a single option that can be selected type: integer min_aggregate_options_quantity: description: Minimum combined quantity of all options that must be selected type: integer max_aggregate_options_quantity: description: Maximum combined quantity of all options that can be selected type: integer options: type: array items: $ref: '#/components/schemas/NestedL2ItemExtraOption' AuthorizationError: x-error: true type: object description: Authorization error, available credentials don't match requested operation required: - code - message properties: code: type: string enum: - authorization_error message: type: string example: You are not authorized to perform this action. StoreId: type: string pattern: ^([1-9][0-9]*)$ description: Unique ID for the store. example: '123' BusinessId: type: string pattern: ^([1-9][0-9]*)$ description: Unique ID for the business. example: '123' ItemSpecialHour: type: object description: Special time period that the item is being offered properties: start_date: description: Start date in format yyyy-mm-dd if specified type: string example: '2021-06-05' end_date: description: End date in format yyyy-mm-dd if specified type: string example: '2021-07-05' hours: description: Special hours type: array items: $ref: '#/components/schemas/Hour' Menu: type: object required: - name properties: name: description: Menu name type: string id: description: Doordash Menu Id type: string categories: type: array items: $ref: '#/components/schemas/MenuCategory' menu_hours: $ref: '#/components/schemas/MenuHours' StoreStatus: type: string description: store activation status enum: - open - closed - inactive - paused - deactivated example: open StoreIntervals: type: object properties: start: type: string description: Store open time example: 9am end: type: string description: Store close time example: 10pm start_seconds: type: integer description: number of seconds since the beginning of the day e.g. 3600 means 1am. 39600 means 11 am and 89100 means 12:45 am. example: 39600 end_seconds: type: integer description: number of seconds since the beginning of the day e.g.3600 means 1am. 39600 means 11 am and 89100 means 12:45 am. example: 89100 StorefrontStoreHours: type: object properties: monday: $ref: '#/components/schemas/StoreHours' tuesday: $ref: '#/components/schemas/StoreHours' wednesday: $ref: '#/components/schemas/StoreHours' thursday: $ref: '#/components/schemas/StoreHours' friday: $ref: '#/components/schemas/StoreHours' saturday: $ref: '#/components/schemas/StoreHours' sunday: $ref: '#/components/schemas/StoreHours' Limit: type: integer pattern: ^(0|[1-9][0-9]*)$ description: Resource results size limit default: 10 minimum: 1 maximum: 200 StoreDetails: type: object title: StoreDetails description: Store details properties: id: type: string description: Store id example: '123' name: type: string description: Store name example: Example Store address: type: string description: Store address example: 123 Street Apt123, WA phone_number: type: string description: Store phone number example: '1233333456' time_zone: type: string description: Store time zone example: US/New York status: type: object description: Store activation status properties: storefront: $ref: '#/components/schemas/StoreStatus' store_hours: type: object description: Store hours properties: storefront: $ref: '#/components/schemas/StorefrontStoreHours' store_special_hours: type: object description: Special service hours for a specific day properties: storefront: $ref: '#/components/schemas/StorefrontStoreSpecialHours' minimum_order_value: type: number format: integer description: The minimum amount that the consumers need to spend. Value in minor units. example: 0 delivery_fee: type: number format: integer description: Order delivery fee. Value in minor units. example: 399 average_delivery_time: type: number format: integer description: Average store ETA for delivery orders. Value in minutes. example: 20 average_pickup_time: type: number format: integer description: Average store ETA for pickup orders. Value in minutes. example: 10 special_instructions_max_length: type: number format: integer description: Maximum length of special instructions. if <= 0 then it means merchant does not allow it. example: 10 should_show_delivery_fee: type: boolean description: whether to show delivery fee. example: true default: true store_properties: type: object description: Store properties indicating available services properties: curbside: type: boolean description: Whether the store offers curbside pickup example: true default: false drivethru: type: boolean description: Whether the store has a drive-thru example: false default: false MenuCategory: type: object required: - name - id properties: name: type: string description: Menu Category Name id: type: string description: Menu Category Id description: type: string description: Menu Category description items: type: array items: $ref: '#/components/schemas/Item' parameters: PathExternalStoreId: name: external_store_id in: path description: 'Unique, caller-selected ID for the store. Validated using the following regular expression: `/^[A-Za-z0-9_-]{3,64}$/` .' required: true style: simple explode: false minLength: 1 schema: type: string PathExternalBusinessId: name: external_business_id in: path description: 'Unique, caller-selected ID of the business. Validated using the following regular expression: `/^[A-Za-z0-9_-]{3,64}$/` .' required: true style: simple explode: false minLength: 1 schema: type: string ShouldSendStoreDetails: name: should_send_store_details in: query description: If true, return stores details for each store in the list. The default value is false. schema: $ref: '#/components/schemas/ShouldSendStoreDetails' StoreId: name: store_id in: path description: Store id required: true schema: $ref: '#/components/schemas/StoreId' Limit: name: limit in: query description: Specify the maximum number of items that may be returned for a single request. schema: $ref: '#/components/schemas/Limit' BusinessId: name: business_id in: path description: Business id used for filtering stores required: true schema: $ref: '#/components/schemas/BusinessId' BusinessGroupId: name: business_group_id in: path description: Business group id used for filtering stores required: true schema: $ref: '#/components/schemas/BusinessGroupId' PaginationToken: name: pagination_token in: query description: The pagination token to retrieve the previous/next page of results. schema: $ref: '#/components/schemas/PaginationToken' securitySchemes: BearerAuth: type: http scheme: bearer x-refined-from: - doordash-drive-classic-openapi.yml - doordash-drive-openapi.yml - doordash-storefront-openapi.yml