Introduction

Deliveroo is excited to introduce the Catalogue API— a powerful integration platform tailored for our Grocery and Retail partners. This API addresses the unique needs of businesses in the grocery and retail sectors by providing a seamless way to integrate extensive product catalogues into the Deliveroo platform.

What is the Catalogue API?

The Catalogue API enables Grocery, Specialist, and Retail businesses to integrate their large product catalogues directly with Deliveroo. Built specifically for the Grocery and Retail sectors, this API simplifies the process of uploading and managing numerous items, making it easier to reach more customers and expand your business.

Benefits for Partners

Access to the Latest Features

With the Catalogue API, we are committed to providing our partners with ongoing updates and enhancements. This ensures that partners have immediate access to the latest features as soon as they are released, keeping your integration current and competitive. Please note that the features and enhancements released as part of the Catalogue API will not be available on the Menu API.

Handles Large Product Catalogues

Designed to support large item catalogues, the Catalogue API accommodates the high SKU counts typical in the Grocery and Retail sectors. This scalability allows you to offer your full range of products to Deliveroo customers without limitations.

Tailored for Retail and Grocery Needs

Understanding the specific requirements of the Retail and Grocery, the Catalogue API includes features such as Multiple Barcodes, Variable weight items, Richer item attributes data, Merchandise Collections, Substitution Control Flags, Legal Classifications and much more.

Features Matrix of Catalogue APIs

FeatureDescriptionAvailableUpcoming Releases
Create CatalogueAbility to create catalogues & allow customization for each site with a tailored product assortment
Detailed Items InformationAbility to store comprehensive item and category details, including modifiers and classification data
Real-time UpdatesAbility to get instant successful or unsuccessful updates to the catalogue with rate limiting for optimal system usage
Item SKU Range Up to 15KAbility to create a catalogue up to 15K SKUs
BarcodesAbility to assign multiple GTINs/Barcodes per item
Next Generation Menu (NGM) SupportAbility to publish the catalogue in NGM format, along with the default non-NGM format
Update Stock CatalogueAbility to set Items stock to 'available' and 'unavailable' statuses
Variable WeightAbility to capture item and order data used for products sold by weight (or by other units of measurement)
Catalogue Rich Items AttributesAbility to send more detailed item attributes which can be surfaced in Deliveroo for every Item
Item SKU Range Up to 30KAbility to create a catalogue of up to 30K SKUs
Catalogue API via Developer portalAbility to test Catalogue API workflows in the Developer Portal
Multi-level taxonomiesAbility to set two aisle categories for every item

Examples

{
  "version": "catalogue-upload-v1",
  "catalogue": {
    "id": "1",
    "items": [
      {
        "id": "789",
        "plu": "789-plu",
        "barcodes": [
          "5000128861083",
          "5000128861106",
          "5000128861069"
        ],
        "mpn": "12345-MPN",
        "name": {
          "en": "Coca Cola Diet Coke"
        },
        "description": {
          "en": "Coca Cola Diet Coke"
        },
        "media": [
          {
            "media_type": "main_image",
            "media_url": "https://xxx.com/image.jpeg"
          }
        ],
        "price_info": {
          "price": 150,
          "overrides": [
            {
              "type": "ITEM",
              "id": "breakfast_bundle",
              "price": 0
            }
          ],
          "fees": [ // Only Valid for Ireland Market
            {
              "type": "DEPOSIT_FEE",
              "amount": 10
            }
          ]
        },
        "tax_rate": "20.0",
        "is_eligible_as_replacement": true,
        "is_eligible_for_substitution": true,
        "is_returnable": false,
        "returns_information": {
          "en": "This product is non-returnable item"
        },
        "age_restricted": false,
        "alcohol_percentage_by_volume": 00.00,
        "classifications": [],
        "allergies": [
          "no_allergens"
        ],
        "diets": [],
        "country_of_origin": [
          "Great Bretain"
        ],
        "manufacturer": "The Coca Cola Company, 123 Street, Tropic City",
        "eu_responsible_person": "EU Distributor, 456 Europe Lane, Euro City",
        "warranty_information": {
          "en": "0 years limited warranty"
        },
        "directions": {
          "en": "Store in a cool, dry place. Best served chilled."
        },
        "brand": "Coca Cola",
        "colour": {
          "en": "Black"
        },
        "gender": "Unisex",
        "safety_information": {
          "en": "Pressurissed Container, Handle with Care"
        },
        "google_product_category": "1234",
        "temperature_zone": "chilled",
        "display_price_per_unit": {
          "value": 10,
          "unit": "100g"
        },
        "nutritional_info": {
          "ingredients": {
            "en": "Carbonated Water, Colour, Sweetners, Acids, Flavouring, Preservatives"
          },
          "energy_kcal": {
            "high": 1
          },
          "energy_kj": {
            "high": 5
          },
          "macronutrients": {
            "description": {
              "en": "Carbonated Low Calorie Cola Flavoured Soft Drink with Sweetners"
            },
            "protein": {
              "unit": "g",
              "value": 0
            },
            "fat": {
              "unit": "g",
              "value": 0
            },
            "fat_of_which_saturates": {
              "unit": "g",
              "value": 0
            },
            "carbohydrates": {
              "unit": "g",
              "value": 0
            },
            "carbohydrates_of_which_sugars": {
              "unit": "g",
              "value": 0
            },
            "fibre": {
              "unit": "g",
              "value": 0
            },
            "salt": {
              "unit": "g",
              "value": 0
            },
            "measurement_unit": "ml"
          },
          "serving_size": {
            "unit": "ml",
            "value": 250
          },
          "nutri_score": "E",
          "nutri_grade": "D"
        },
        "product_size": {
          "en": "M"
        },
        "product_dimensions": {
          "length": 100,
          "width": 50,
          "height": 10.6,
          "unit": "cm"
        },
        "product_weight": {
          "value": 200,
          "unit": "g"
        },
        "product_volume": {
          "value": 2000,
          "unit": "ml"
        },
        "shipping_dimensions": {
          "length": 130,
          "width": 80,
          "height": 16,
          "unit": "cm"
        },
        "shipping_weight": {
          "value": 230,
          "unit": "g"
        },
        "pack_details": {
          "per_item_size": {
            "en": "This is the details"
          },
          "per_item_dimensions": {
            "length": 10,
            "width": 15,
            "height": 10,
            "unit": "mm"
          },
          "per_item_weight": {
            "unit": "g",
            "value": 250
          },
          "per_item_volume": {
            "unit": "ml",
            "value": 250
          },
          "counts_per_pack": 5
        },
        "max_quantity": 10,
        "variable_measurement": {
          "unit": "GRAMS",
          "sold_by": "MEASUREMENT",
          "increment": 30
        }
      }
    ],
    "hero_image": {
      "url": "https://xxx.com/image.jpeg"
    },
    "experience": "aisles",
    "merchandise_collections": {
      "item_categories": [
        {
          "id": "SummerDrinks",
          "name": {
            "en": "Summer Exotic Drinks"
          },
          "description": {
            "en": "Summer Exotic Drinks"
          },
          "item_ids": [
            "789"
          ]
        }
      ]
    },
    "modifiers": []
  }
}
{
  "version": "catalogue-upload-v1",
  "catalogue": {
    "id": "1",
    "items": [
      {
        "id": "789",
        "plu": "789-plu",
        "barcodes": [
          "5000128861083",
          "5000128861106",
          "5000128861069"
        ],
        "mpn": "12345-MPN",
        "name": {
          "en": "Coca Cola Diet Coke"
        },
        "description": {
          "en": "Coca Cola Diet Coke"
        },
        "media": [
          {
            "media_type": "main_image",
            "media_url": "https://xxx.com/image.jpeg"
          }
        ],
        "price_info": {
          "price": 150,
          "overrides": [
            {
              "type": "ITEM",
              "id": "breakfast_bundle",
              "price": 0
            }
          ],
          "fees": [ // Only Valid for Iceland Market
            {
              "type": "DEPOSIT_FEE",
              "amount": 10
            }
          ]
        },
        "tax_rate": "20.0",
        "is_eligible_as_replacement": true,
        "is_eligible_for_substitution": true,
        "is_returnable": false,
        "returns_information": {
          "en": "This product is non-returnable item"
        },
        "age_restricted": false,
        "alcohol_percentage_by_volume": 00.00,
        "classifications": [],
        "allergies": [
          "no_allergens"
        ],
        "diets": [],
        "country_of_origin": [
          "Great Bretain"
        ],
        "manufacturer": "The Coca Cola Company, 123 Street, Tropic City",
        "eu_responsible_person": "EU Distributor, 456 Europe Lane, Euro City",
        "warranty_information": {
          "en": "0 years limited warranty"
        },
        "directions": {
          "en": "Store in a cool, dry place. Best served chilled."
        },
        "brand": "Coca Cola",
        "colour": {
          "en": "Black"
        },
        "gender": "Unisex",
        "safety_information": {
          "en": "Pressurissed Container, Handle with Care"
        },
        "google_product_category": "1234",
        "temperature_zone": "chilled",
        "display_price_per_unit": {
          "value": 10,
          "unit": "100g"
        },
        "nutritional_info": {
          "ingredients": {
            "en": "Carbonated Water, Colour, Sweetners, Acids, Flavouring, Preservatives"
          },
          "energy_kcal": {
            "high": 1
          },
          "energy_kj": {
            "high": 5
          },
          "macronutrients": {
            "description": {
              "en": "Carbonated Low Calorie Cola Flavoured Soft Drink with Sweetners"
            },
            "protein": {
              "unit": "g",
              "value": 0
            },
            "fat": {
              "unit": "g",
              "value": 0
            },
            "fat_of_which_saturates": {
              "unit": "g",
              "value": 0
            },
            "carbohydrates": {
              "unit": "g",
              "value": 0
            },
            "carbohydrates_of_which_sugars": {
              "unit": "g",
              "value": 0
            },
            "fibre": {
              "unit": "g",
              "value": 0
            },
            "salt": {
              "unit": "g",
              "value": 0
            },
            "measurement_unit": "ml"
          },
          "serving_size": {
            "unit": "ml",
            "value": 250
          },
          "nutri_score": "E",
          "nutri_grade": "D"
        },
        "product_size": {
          "en": "M"
        },
        "product_dimensions": {
          "length": 100,
          "width": 50,
          "height": 10.6,
          "unit": "cm"
        },
        "product_weight": {
          "value": 200,
          "unit": "g"
        },
        "product_volume": {
          "value": 2000,
          "unit": "ml"
        },
        "shipping_dimensions": {
          "length": 130,
          "width": 80,
          "height": 16,
          "unit": "cm"
        },
        "shipping_weight": {
          "value": 230,
          "unit": "g"
        },
        "pack_details": {
          "per_item_size": {
            "en": "This is the details"
          },
          "per_item_dimensions": {
            "length": 10,
            "width": 15,
            "height": 10,
            "unit": "mm"
          },
          "per_item_weight": {
            "unit": "g",
            "value": 250
          },
          "per_item_volume": {
            "unit": "ml",
            "value": 250
          },
          "counts_per_pack": 5
        },
        "max_quantity": 10,
        "variable_measurement": {
          "unit": "GRAMS",
          "sold_by": "MEASUREMENT",
          "increment": 30
        }
      }
    ],
    "hero_image": {
      "url": "https://xxx.com/image.jpeg"
    },
    "experience": "categories",
     "categories": {
       "item_categories": [
       {
         "id": "Drinks",
         "name": {"en": "Drinks"},
         "description": {"en": "Drinks"},
         "item_ids": ["789"]
       }]
     },
    "modifiers": []
  }
}
{
  "event": "catalogue_upload",
  "created_at": "2024-10-10T09:51:35.538428888Z",
  "brand_id": "partner-brand",
  "status": "external_error",
  "upload_id": "918a9ae1-1471-40aa-9443-0c76880bfc6f",
  "updated_at": "2024-10-10T09:51:50.854540313Z",
  "catalogue_id": "String",
  "error_messages": [ // Blocked Critical issues found during processing
    "string"
  ],
  "warnings": [ // Non-Critical issues found during processing
      {
            "warning_type": "url",
            "value": "https://example.com/image.jpg",
            "message": "failed to download image",
      },
      {
            "warning_type": "barcode",
            "value": "123456789",
            "message": "invalid barcode",
      }
  ]
}

{
  "brand_id": "partner-brand",
  "catalogue_id": "String",
  "created_at": "2024-10-14T13:13:44.948139736Z",
  "event": "catalogue_upload",
  "status": "success",
  "updated_at": "2024-10-14T13:15:13.363519401Z",
  "upload_id": "b4a73cb0-6a24-45bd-b6af-ce425cc75f1d",
}

📘

Unchanged Catalogue

In the case of the catalogue details to be uploaded are the same as the existing details, then an error response is returned with the additional information of the result. The result will contain the error message File already uploaded.

{
  "event": "catalogue_upload",
  "created_at": "2024-04-18T15:52:14.49683622Z",
  "brand_id": "partner-brand",
  "status": "external_error",
  "upload_id": "ae8dd9b6-4d2d-4c53-a9a2-afd433229500",
  "updated_at": "2024-04-18T15:52:23.001059154Z",
  "catalogue_id": "String",
  "error_messages": [ // Blocked Critical issues found during processing
    "file already uploaded"
  ]
}