Overview
The Deliveroo Site API provides developers with the ability to manage site information.
You can begin testing here
This API consists of the following components:
Opening Hours
This endpoint is used to retrieve and update the opening hours for each weekday, which can have multiple opening hours as long as they do not overlap.
- GET
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/opening_hours
- POST
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/opening_hours
Status
This endpoint is used to retrieve and set the online status of a site to be open or closed. Please note that it is not allowed to open a site outside of its opening hours, the call will return 400 (bad request) error.
- GET
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/status
- PUT
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/status
Sometimes a site is closed intentionally, either by the partner or Deliveroo. The responses below reflect the reason.
- When the restaurant when it was closed because of opening hours
Unable to open restaurant, reason: OPENING_HOURS
- When vacation mode is enabled by Deliveroo or the partner
Unable to open restaurant, reason: VACATION_MODE
- When the restaurant was closed as the partner put themselves into a day off either via the Hub or tablet.
Unable to open restaurant, reason: CLOSED_PERIOD
- When the restaurant was closed because they experienced three auto-rejections within 15 consecutive minutes.
Unable to open restaurant, reason: CLOSED_PERIOD
Days Off
This endpoint is used to add, retrieve, update or cancel days off periods for a given site. Days off are exceptions to the normal opening hours of a site that are applied each day. It is important to note that this endpoint allows multiple days off periods with overlapping hours to be created.
- GET
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/days_off?page_size={pageSize}&page_number={pageNumber}
- POST
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/days_off
- DELETE
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/days_off/{daysOffId}
Workload (Busy Mode)
This endpoint is used to change workload mode as well as set the preparation time for each mode.
- GET
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/workload/mode
- PUT
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/workload/mode
- GET
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/workload/times?allowed_ranges={true|false}
- PUT
https://partners.deliveroo.com/api/v1/brands/{brandId}/sites/{siteId}/workload/times
// GET /api/v1/brands/{brandId}/sites/{siteId}/opening_hours
// Get site opening hours response body example:
{
"opening_hours": {
"monday": [
{
"local_start_time": "12:00",
"local_end_time": "15:00"
}
],
"friday": [
{
"local_start_time": "11:30",
"local_end_time": "16:00"
},
{
"local_start_time": "18:00",
"local_end_time": "23:00"
}
]
}
}
// POST /api/v1/brands/{brandId}/sites/{siteId}/opening_hours
// Update site opening hours request body example:
{
"opening_hours": {
"monday": [
{
"local_start_time": "12:00",
"local_end_time": "15:00"
}
],
"wednesday": [
{
"local_start_time": "13:00",
"local_end_time": "15:00"
}
],
"friday": [
{
"local_start_time": "11:30",
"local_end_time": "16:00"
},
{
"local_start_time": "18:00",
"local_end_time": "23:00"
}
]
}
}
// When opening a site outside of its opening hours, its status will be set to `READY_TO_OPEN`.
// GET /api/v1/brands/{brandId}/sites/{siteId}/status
// Update site status request body example:
{
"status": "CLOSED"
}
// Update site status
// PUT /api/v1/brands/{brandId}/sites/{siteId}/status
// Update site status request body example:
{
"status": "CLOSED"
}
// GET /api/v1/brands/{brandId}/sites/{siteId}/workload/mode
// Get site workload mode response body example:
{
"mode": "BUSY"
}
// PUT /api/v1/brands/{brandId}/sites/{siteId}/workload/mode
// Set site workload mode response body example:
{
"mode": "BUSY"
}
// GET /api/v1/brands/{brandId}/sites/{siteId}/workload/times?allowed_ranges={true|false}
// Get site's workload times response body example:
{
"busy": 35,
"quiet": 15,
"allowed_ranges": {
"busy": {
"min": 25,
"max": 240
},
"quiet": {
"min": 20,
"max": 60
}
}
}
// Set site workload times
// PUT /api/v1/brands/{brandId}/sites/{siteId}/workload/times
// Set site workload times request body example:
{
"busy": 35,
"quiet": 15
}
// Set site workload times response body example:
{
"busy": 35,
"quiet": 15
}
// GET /api/v1/brands/{brandId}/sites/{siteId}/time_zone
// Get site time zone response body example:
{
"time_zone": "Europe/London"
}
// Get Site Days Off
// GET /api/v1/brands/{brandId}/sites/{siteId}/days_off?page_size={pageSize}&page_number={pageNumber}&upcoming={true|false}
// Get site days off response body example:
{
"days_off": [
{
"id": 1,
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"local_start_time": "2021-11-16 00:00",
"local_end_time": "2021-12-17 23:00",
"reason": "DAYS_OFF",
"cancelled_at": null
},
{
"id": 2,
"days_off_id": "gb:6ae4516d-71c0-4d78-8a58-8015561cae51",
"local_start_time": "2021-12-24 00:00",
"local_end_time": "2021-12-26 10:00",
"reason": "DAYS_OFF",
"cancelled_at": "2021-04-30 14:26"
}
],
"page": {
"number": 1,
"size": 20,
"total_items": 2
}
}
// POST /api/v1/brands/{brandId}/sites/{siteId}/days_off
// Add site days off.
// Add site days off period request body example:
{
"local_start_time": "2020-11-24 00:00",
"local_end_time": "2020-12-26 23:59",
}
// Add site days off period response body example:
{
"id": 15158,
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"local_start_time": "2020-11-24 00:00",
"local_end_time": "2020-12-26 23:59",
"reason": "DAYS_OFF",
"cancelled_at": null
}
// Add site days off period request body example:
{
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"local_start_time": "2020-11-24 00:00",
"local_end_time": "2020-12-26 23:59",
}
// PUT /api/v1/brands/{brandId}/sites/{siteId}/days_off/{daysOffId}
// Update a site days off period.
// Add site days off period request body example:
{
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"local_start_time": "2020-11-24 00:00",
"local_end_time": "2020-12-26 23:59",
}
// Add site days off period response body example:
{
"id": 15158,
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"local_start_time": "2020-11-24 00:00",
"local_end_time": "2020-12-26 23:59",
"reason": "DAYS_OFF",
"cancelled_at": null
}
// Cancel a site days off period
// Cancel site days off period response body example:
{
"id": 15158,
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"local_start_time": "2020-11-24 00:00",
"local_end_time": "2020-12-26 23:59",
"reason": "DAYS_OFF",
"cancelled_at": "2020-05-20 11:23"
}
// DELETE /api/v1/brands/{brandId}/sites/{siteId}/days_off/{daysOffId}
// Get a single a site days off period
// Get site days off period response body example:
{
"id": 15158,
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"start_at": "2021-12-10 00:00",
"end_at": "2021-12-12 23:59",
"reason": "DAYS_OFF",
"cancelled_at": null
}
// GET /api/v1/brands/{brandId}/sites/{siteId}/days_off/{daysOffId}
// Get site days off period response body example:
{
"id": 15158,
"days_off_id": "gb:fab7c7f3-e6eb-4eef-8d06-9f57aa521af5",
"start_at": "2021-12-10 00:00",
"end_at": "2021-12-12 23:59",
"reason": "DAYS_OFF",
"cancelled_at": null
}
// GET /api/v1/brands/:brand_id/sites
// Get sites for a brand response body example:
{
"sites": [
{
"location_id": "location-test-1",
"name": "Name of site1",
"status": "OPEN",
"api_access": {
"fulfillment": false,
"kiosk": true,
"menu": true,
"picking": false,
"pos": false,
"rider_status_updates": true,
"site": false,
"update_order_status": false
},
"phone_number": "",
"branch_type": "RESTAURANT",
"on_vacation": false,
"timezone": "Europe/London"
},
{
"location_id": "location-test-2",
"name": "Name of site2",
"status": "OPEN",
"api_access": {
"fulfillment": false,
"kiosk": true,
"menu": true,
"picking": true,
"pos": false,
"rider_status_updates": false,
"site": false,
"update_order_status": false
},
"phone_number": "07987342740",
"branch_type": "UNKNOWN",
"on_vacation": false,
"timezone": "Europe/London"
}
]
}
Updated 12 months ago