Storefront V1 API Specification (1.0.0)
Get stores by business
Retrieve a list of stores that are currently active on storefront and owned by a business. Search results will be sorted by store id.
Authorizations:
path Parameters
business_id required | string (BusinessId) ^([1-9][0-9]*)$ Example: 123 Business id used for filtering stores |
query Parameters
pagination_token | string (PaginationToken) Example: pagination_token=pre1111 The pagination token to retrieve the previous/next page of results. |
limit | integer (Limit) [ 1 .. 200 ] ^(0|[1-9][0-9]*)$ Default: 10 Specify the maximum number of items that may be returned for a single request. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "stores": [
- {
- "name": "test",
- "id": "123",
- "address": "123 Street Apt123, 98101",
- "status": {
- "storefront": "open"
}
}
], - "prev_token": "239843",
- "next_token": "239886"
}
Get stores by business group
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.
Authorizations:
path Parameters
business_group_id required | string (BusinessGroupId) ^([1-9][0-9]*)$ Example: 123 Business group id used for filtering stores |
query Parameters
pagination_token | string (PaginationToken) Example: pagination_token=pre1111 The pagination token to retrieve the previous/next page of results. |
limit | integer (Limit) [ 1 .. 200 ] ^(0|[1-9][0-9]*)$ Default: 10 Specify the maximum number of items that may be returned for a single request. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "stores": [
- {
- "name": "test",
- "id": "123",
- "address": "123 Street Apt123, 98101",
- "status": {
- "storefront": "open"
}
}
], - "prev_token": "239843",
- "next_token": "239886"
}
Get store details
Request more details about a single store given store id
Authorizations:
path Parameters
store_id required | string (StoreId) ^([1-9][0-9]*)$ Example: 123 Store id |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "id": "123",
- "name": "Example Store",
- "address": "123 Street Apt123, WA",
- "phone_number": "1233333456",
- "time_zone": "US/New York",
- "status": {
- "storefront": "open"
}, - "store_hours": {
- "storefront": {
- "monday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "tuesday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "wednesday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "thursday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "friday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "saturday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "sunday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}
}
}, - "store_special_hours": {
- "storefront": {
- "date": "2018-01-12",
- "hours": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}
}
}, - "minimum_order_value": 0,
- "delivery_fee": 399,
- "average_delivery_time": 20,
- "average_pickup_time": 10,
- "special_instructions_max_length": 10,
- "should_show_delivery_fee": true
}
Get store menus by store id
Authorizations:
path Parameters
store_id required | string (StoreId) ^([1-9][0-9]*)$ Example: 123 Store id |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "menu": {
- "name": "string",
- "id": "string",
- "categories": [
- {
- "name": "string",
- "id": "string",
- "description": "string",
- "items": [
- {
- "name": "string",
- "description": "string",
- "id": "string",
- "price": {
- "value": 399,
- "currency": "USD"
}, - "special_hours": [
- {
- "start_date": "2021-06-05",
- "end_date": "2021-07-05",
- "hours": [
- {
- "day": null,
- "start_time": null,
- "end_time": null
}
]
}
], - "extras": [
- {
- "name": "string",
- "description": "string",
- "id": "string",
- "min_num_options": 0,
- "max_num_options": 0,
- "num_free_options": 0,
- "min_option_choice_quantity": 0,
- "max_option_choice_quantity": 0,
- "min_aggregate_options_quantity": 0,
- "max_aggregate_options_quantity": 0,
- "options": [
- {
- "name": null,
- "description": null,
- "id": null,
- "price": null,
- "special_hours": [ ],
- "extras": [ ],
- "original_image_url": null,
- "default_on": null
}
]
}
], - "original_image_url": "string"
}
]
}
], - "menu_hours": {
- "days_bit_array": [
- true,
- true,
- false,
- true,
- true,
- true,
- false
], - "start_time": 0,
- "end_time": 0
}
}
}
Get all active store menus by store id
Authorizations:
path Parameters
store_id required | string (StoreId) ^([1-9][0-9]*)$ Example: 123 Store id |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
[- {
- "menu": {
- "name": "string",
- "id": "string",
- "categories": [
- {
- "name": "string",
- "id": "string",
- "description": "string",
- "items": [
- {
- "name": "string",
- "description": "string",
- "id": "string",
- "price": {
- "value": 399,
- "currency": "USD"
}, - "special_hours": [
- {
- "start_date": "2021-06-05",
- "end_date": "2021-07-05",
- "hours": [
- null
]
}
], - "extras": [
- {
- "name": "string",
- "description": "string",
- "id": "string",
- "min_num_options": 0,
- "max_num_options": 0,
- "num_free_options": 0,
- "min_option_choice_quantity": 0,
- "max_option_choice_quantity": 0,
- "min_aggregate_options_quantity": 0,
- "max_aggregate_options_quantity": 0,
- "options": [
- null
]
}
], - "original_image_url": "string"
}
]
}
], - "menu_hours": {
- "days_bit_array": [
- true,
- true,
- false,
- true,
- true,
- true,
- false
], - "start_time": 0,
- "end_time": 0
}
}
}
]
Search nearby stores by business
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.
Authorizations:
path Parameters
business_id required | string (BusinessId) ^([1-9][0-9]*)$ Example: 123 Business id used for filtering stores |
query Parameters
lat required | string (Latitude) ^(\+|-)?(?:90(?:(?:\.0{1,7})?)|(?:[0-9]|[1-8]... Example: lat=-32.1234537 latitude |
lon required | string (Longitude) ^(\+|-)?(?:180(?:(?:\.0{1,7})?)|(?:[0-9]|[1-9... Example: lon=-156.1234538 longitude |
limit | integer (Limit) [ 1 .. 200 ] ^(0|[1-9][0-9]*)$ Default: 10 Specify the maximum number of items that may be returned for a single request. |
open_at | string (OpenAt) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}... Example: open_at=2018-08-22T17:20:28Z or 2018-08-22T17:20:28.123Z If specified, only stores that are open for business at the specified time are returned. Possible values is future UTC timestamp in ISO-8601 format within seven days from current time. |
is_pickup | boolean (IsPickup) Default: true If true, return stores based on store pick up radius. Otherwise, return stores based on delivery radius. The default value is true. |
search_radius | integer (StoreRadius) [ 1 .. 100000 ] Default: 1000 Define the distance in meters within which to return store results. The default value is 1000. Search radius is only applicable to pick ups. |
should_send_store_details | boolean (ShouldSendStoreDetails) Default: false If true, return stores details for each store in the list. The default value is false. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "stores": [
- {
- "name": "test",
- "id": "123",
- "address": "123 Street Apt123, 98101",
- "distance": 1.2,
- "average_eta": 35,
- "store_details": {
- "id": "123",
- "name": "Example Store",
- "address": "123 Street Apt123, WA",
- "phone_number": "1233333456",
- "time_zone": "US/New York",
- "status": {
- "storefront": "open"
}, - "store_hours": {
- "storefront": {
- "monday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "tuesday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "wednesday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "thursday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "friday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "saturday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "sunday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}
}
}, - "store_special_hours": {
- "storefront": {
- "date": "2018-01-12",
- "hours": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}
}
}, - "minimum_order_value": 0,
- "delivery_fee": 399,
- "average_delivery_time": 20,
- "average_pickup_time": 10,
- "special_instructions_max_length": 10,
- "should_show_delivery_fee": true
}
}
]
}
Search nearby stores by business group
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.
Authorizations:
path Parameters
business_group_id required | string (BusinessGroupId) ^([1-9][0-9]*)$ Example: 123 Business group id used for filtering stores |
query Parameters
lat required | string (Latitude) ^(\+|-)?(?:90(?:(?:\.0{1,7})?)|(?:[0-9]|[1-8]... Example: lat=-32.1234537 latitude |
lon required | string (Longitude) ^(\+|-)?(?:180(?:(?:\.0{1,7})?)|(?:[0-9]|[1-9... Example: lon=-156.1234538 longitude |
limit | integer (Limit) [ 1 .. 200 ] ^(0|[1-9][0-9]*)$ Default: 10 Specify the maximum number of items that may be returned for a single request. |
open_at | string (OpenAt) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}... Example: open_at=2018-08-22T17:20:28Z or 2018-08-22T17:20:28.123Z If specified, only stores that are open for business at the specified time are returned. Possible values is future UTC timestamp in ISO-8601 format within seven days from current time. |
is_pickup | boolean (IsPickup) Default: true If true, return stores based on store pick up radius. Otherwise, return stores based on delivery radius. The default value is true. |
search_radius | integer (StoreRadius) [ 1 .. 100000 ] Default: 1000 Define the distance in meters within which to return store results. The default value is 1000. Search radius is only applicable to pick ups. |
should_send_store_details | boolean (ShouldSendStoreDetails) Default: false If true, return stores details for each store in the list. The default value is false. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "stores": [
- {
- "name": "test",
- "id": "123",
- "address": "123 Street Apt123, 98101",
- "distance": 1.2,
- "average_eta": 35,
- "store_details": {
- "id": "123",
- "name": "Example Store",
- "address": "123 Street Apt123, WA",
- "phone_number": "1233333456",
- "time_zone": "US/New York",
- "status": {
- "storefront": "open"
}, - "store_hours": {
- "storefront": {
- "monday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "tuesday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "wednesday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "thursday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "friday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "saturday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}, - "sunday": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}
}
}, - "store_special_hours": {
- "storefront": {
- "date": "2018-01-12",
- "hours": {
- "closed": false,
- "asap_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "asap_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_pickup": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
], - "scheduled_delivery": [
- {
- "start": "9am",
- "end": "10pm",
- "start_seconds": 39600,
- "end_seconds": 89100
}
]
}
}
}, - "minimum_order_value": 0,
- "delivery_fee": 399,
- "average_delivery_time": 20,
- "average_pickup_time": 10,
- "special_instructions_max_length": 10,
- "should_show_delivery_fee": true
}
}
]
}
Get address suggestions for an input string
Retrieve a list of address suggestions based on the user input and optional geographic bounds.
Authorizations:
query Parameters
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Example: integration_id=987654 business id, business group id or store id |
integration_type | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Example: integration_type=store business id, business group id or store id |
input required | string |
lat | string (Latitude) ^(\+|-)?(?:90(?:(?:\.0{1,7})?)|(?:[0-9]|[1-8]... Example: lat=-32.1234537 latitude |
lon | string (Longitude) ^(\+|-)?(?:180(?:(?:\.0{1,7})?)|(?:[0-9]|[1-9... Example: lon=-156.1234538 longitude |
country_code | string (CountryCode) ^[A-Z]{2}$ Example: country_code=US ISO 3166-1 alpha-2 country code |
search_radius | integer [ 1 .. 100000 ] Define the distance in meters within which to return results. Results outside of the defined area may still be displayed. |
language | string (Language) ^[a-z]{2}$ Example: language=en ISO 639-1 language code |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "suggestions": [
- {
- "source_place_id": "ChIJQdd29XuAhYARlLzH0JbNTyQ",
- "formatted_address": "303 2nd Street, San Francisco, CA, USA",
- "formatted_address_segmented": [
- "303 2nd Street",
- "San Francisco, CA, USA"
]
}
]
}
Get address details with an id
Request more details about an address given an id
Authorizations:
query Parameters
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Example: integration_id=987654 business id, business group id or store id |
integration_type | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Example: integration_type=store business id, business group id or store id |
source_place_id required | string |
country_code | string (CountryCode) ^[A-Z]{2}$ Example: country_code=US ISO 3166-1 alpha-2 country code |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "address": {
- "address_id": "123",
- "formatted_address": "303 2nd Street, San Francisco, CA, USA",
- "lat": 37.7856757,
- "lon": -122.3958433,
- "locality": "San Francisco",
- "administrative_area": "CA",
- "postal_code": "94107",
- "country": "USA"
}
}
Get list of addresses with latitude and longitude
Find addresses closest to a location on the map
Authorizations:
query Parameters
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Example: integration_id=987654 business id, business group id or store id |
integration_type | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Example: integration_type=store business id, business group id or store id |
lat required | string (Latitude) ^(\+|-)?(?:90(?:(?:\.0{1,7})?)|(?:[0-9]|[1-8]... Example: lat=-32.1234537 latitude |
lon required | string (Longitude) ^(\+|-)?(?:180(?:(?:\.0{1,7})?)|(?:[0-9]|[1-9... Example: lon=-156.1234538 longitude |
language | string (Language) ^[a-z]{2}$ Example: language=en ISO 639-1 language code |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "addresses": [
- {
- "address_id": "123",
- "formatted_address": "303 2nd Street, San Francisco, CA, USA",
- "lat": 37.7856757,
- "lon": -122.3958433,
- "locality": "San Francisco",
- "administrative_area": "CA",
- "postal_code": "94107",
- "country": "USA"
}
]
}
Get or create address details with a full qualified address string.
Get or create address details based on a formatted_address, e.g. "1234 Main St., Sacramento, CA 95814"
Authorizations:
Request Body schema: application/json
request body which should contain formatted address, integration id and type.
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
formatted_address required | string Short displayable address |
country_code | string (CountryCode) ^[A-Z]{2}$ Country code in ISO 3166-1 alpha-2 format |
Responses
Request samples
- Payload
{- "integration_id": "987654",
- "integration_type": "store",
- "formatted_address": "303 2nd Street, San Francisco, CA, USA",
- "country_code": "US"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "address": {
- "address_id": "123",
- "formatted_address": "303 2nd Street, San Francisco, CA, USA",
- "lat": 37.7856757,
- "lon": -122.3958433,
- "locality": "San Francisco",
- "administrative_area": "CA",
- "postal_code": "94107",
- "country": "USA"
}
}
Get loyalty account balance of the user Deprecated
Authorizations:
query Parameters
external_user_id required | string (ExternalUserId) ^([a-zA-Z1-9][a-zA-Z0-9]*)$ Example: external_user_id=asAZ123 External User id, user identifier of the external loyalty provider |
provider required | string (Provider) Enum: "paytronix" "spendgo" Example: provider=spendgo loyalty provider of the user |
provider_environment required | string (ProviderEnvironment) Enum: "prod" "staging" Example: provider_environment=staging which environment of the loyalty provider needs to be used. |
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Example: integration_id=987654 business id, business group id or store id |
provider_reference_id required | string (ProviderReferenceId) ^([a-zA-Z1-9][:_a-zA-Z0-9]*)$ Example: provider_reference_id=123:12 merchant id or any other id which loyalty provider uses to uniquely identify the business/merchant. |
Responses
Response samples
- 200
{- "balance": "1234"
}
Get loyalty member profile of the user
Authorizations:
Request Body schema: application/json
request body which should contain user's identification details.
session_id required | string (SessionId) id of the application session |
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
get_loyalty_info | boolean (GetLoyaltyInfo) Default: false if true, return loyalty account information for the user. |
Responses
Request samples
- Payload
{- "session_id": "string",
- "integration_id": "987654",
- "integration_type": "store",
- "get_loyalty_info": false
}
Response samples
- 200
{- "profile": {
- "external_user_id": "123",
- "first_name": "John",
- "last_name": "Doe",
- "phone_number": "1234567890",
- "loyalty_points": 100,
- "loyalty_tier": "Gold"
}
}
Revoke a user's session with the loyalty provider
Authorizations:
Request Body schema: application/json
request body which should contain user's identification details.
session_id required | string (SessionId) id of the application session |
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
Responses
Request samples
- Payload
{- "session_id": "string",
- "integration_id": "987654",
- "integration_type": "store"
}
Delete a user's account.
Authorizations:
Request Body schema: application/json
request body which should contain user's identification details.
session_id required | string (SessionId) id of the application session |
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
Responses
Request samples
- Payload
{- "session_id": "string",
- "integration_id": "987654",
- "integration_type": "store"
}
Retrieve a user's session info with the loyalty provider
Authorizations:
Request Body schema: application/json
request body which should contain user's identification details.
session_id required | string (SessionId) id of the application session |
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
Responses
Request samples
- Payload
{- "session_id": "string",
- "integration_id": "987654",
- "integration_type": "store"
}
Response samples
- 200
{- "session": {
- "is_session_active": true,
- "external_user_id": "123",
- "consumer_id": "321"
}
}
Get QR code for user loyalty account.
Authorizations:
Request Body schema: application/json
request body which should contain user's identification details.
required | object (LoyaltyUserSessionRequest) |
store_id required | string (StoreId) ^([1-9][0-9]*)$ Unique ID for the store. |
width | integer (Width) [ 1 .. 1024 ] Default: 256 expected width of the qr code |
height | integer (Height) [ 1 .. 1024 ] Default: 256 expected height of the qr code |
Responses
Request samples
- Payload
{- "session": {
- "session_id": "string",
- "integration_id": "987654",
- "integration_type": "store"
}, - "store_id": "123",
- "width": 300,
- "height": 300
}
Response samples
- 200
{- "qr_code": "string"
}
Create JWT for the integration_id which could be business, business group or store id
Create JWT for a onboarded integration id.
Authorizations:
Request Body schema: application/json
request body which should contain integration_id.
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
Responses
Request samples
- Payload
{- "integration_id": "987654",
- "integration_type": "store"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "jwt": "string",
- "expires_in": 0
}
Create storefront order session from external cart.
Authorizations:
Request Body schema: application/json
request body which should contain menu ids, menu item ids and other relevant details needed in external cart.
store_id required | string |
menu_id required | string |
fulfillment_type required | string (FulfillmentType) Enum: "delivery" "pickup" |
required | Array of objects (ExternalCartItem) |
object (DeliveryDetails) | |
scheduled_time | string^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}... UTC Timestamp in ISO-8601 format |
Responses
Request samples
- Payload
{- "store_id": "string",
- "menu_id": "string",
- "fulfillment_type": "pickup",
- "items": [
- {
- "id": "string",
- "quantity": 0,
- "price": {
- "value": 399,
- "currency": "USD"
}, - "special_instructions": "string",
- "extras": [
- {
- "id": "string",
- "quantity": 0,
- "price": {
- "value": 399,
- "currency": "USD"
}, - "options": [
- { }
]
}
]
}
], - "delivery_details": {
- "address": {
- "address_id": "1234567",
- "apartment_number": "123"
}, - "delivery_option": "leave_at_my_door",
- "delivery_instruction": "string"
}, - "scheduled_time": "2018-08-22T17:20:28Z or 2018-08-22T17:20:28.123Z"
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 500
{- "order_session_id": "string",
- "checkout_url": "string"
}
Create cart from order session.
Authorizations:
Request Body schema: application/json
Internal use only. request body which should contain all the relevant details needed to create cart from order session.
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
order_session_id required | string |
session_id required | string (SessionId) id of the application session |
consumer_id required | string (ConsumerId) ^([1-9][0-9]*)$ Unique ID for a doordash consumer. |
should_delete_existing_carts | boolean (ShouldDeleteExistingCarts) Default: true |
Responses
Request samples
- Payload
{- "integration_id": "987654",
- "integration_type": "store",
- "order_session_id": "string",
- "session_id": "string",
- "consumer_id": "123",
- "should_delete_existing_carts": true
}
Response samples
- 200
{- "cart_id": "string"
}
Get order history of a consumer
Authorizations:
Request Body schema: application/json
request body which should contain user's identification details.
session_id required | string (SessionId) id of the application session |
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
Responses
Request samples
- Payload
{- "session_id": "string",
- "integration_id": "987654",
- "integration_type": "store"
}
Response samples
- 200
{- "orders": [
- {
- "order_id": "string",
- "tracking_url": "string",
- "eta": 0,
- "fulfillment_type": "pickup",
- "created_at": "2018-08-22T17:20:28Z or 2018-08-22T17:20:28.123Z",
- "updated_at": "2018-08-22T17:20:28Z or 2018-08-22T17:20:28.123Z",
- "order_status": "order_placed",
- "help_url": "string"
}
]
}
Get order status given a order id
Authorizations:
Request Body schema: application/json
request body which should integration id, type and order id.
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Unique ID for the business, business group or store. |
integration_type required | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Type of the integration id |
order_id required | string unique id for this order |
Responses
Request samples
- Payload
{- "integration_id": "987654",
- "integration_type": "store",
- "order_id": "string"
}
Response samples
- 200
{- "order": {
- "order_id": "string",
- "tracking_url": "string",
- "eta": 0,
- "fulfillment_type": "pickup",
- "created_at": "2018-08-22T17:20:28Z or 2018-08-22T17:20:28.123Z",
- "updated_at": "2018-08-22T17:20:28Z or 2018-08-22T17:20:28.123Z",
- "order_status": "order_placed",
- "help_url": "string"
}
}
Get minimum application version required for the mobile apps to operate
Authorizations:
query Parameters
app_platform required | string (AppPlatform) Enum: "android" "ios" Example: app_platform=android operating system like android or ios. |
Responses
Response samples
- 200
{- "version": "1234"
}
Get app metadata for the mobile apps to operate
Authorizations:
query Parameters
integration_id required | string (IntegrationId) ^([1-9][0-9]*)$ Example: integration_id=987654 business id, business group id or store id |
integration_type | string (IntegrationType) Default: "business" Enum: "BUSINESS" "BUSINESS_GROUP" "STORE" Example: integration_type=store business id, business group id or store id |
Responses
Response samples
- 200
{- "oauth_state": "some random string",
- "rewards_points": "5,000 points = 1 Steamed Rice",
- "rewards_points_details": [
- "5,000 points = 1 Steamed Rice",
- "Enjoy a special treat on your birthday!",
- "Earn points for every $1 spent on qualifying purchases."
], - "supported_account_type": "SF_ACCOUNT",
- "qr_code_enabled": false,
- "qr_code_title": "Earn 1 point",
- "qr_code_subtitle": "For Every $1 spent",
- "qr_code_rewards_title": "Scan to earn",
- "qr_code_rewards_subtitle": "details of how it works."
}