Deliveroo Picking API

The Deliveroo Picking API supports the Retail Platform Suite picking flow, letting grocery operators process incoming orders, remove unavailable items, propose substitutions, and accept or reject orders prior to handoff to a courier.

Operations 5

GET /picking/v1/sites/{restaurant_id}/orders/active Deliveroo Fetch Active Orders #
PUT /picking/v1/orders/{order_id}/accept Deliveroo Accept Order #
PUT /picking/v1/orders/{order_id}/reject Deliveroo Reject Order #
PUT /picking/v1/orders/{order_id}/start_picking Deliveroo Start Picking Process for Order #
PUT /picking/v2/orders/{order_id} Deliveroo Update Order Items Availability #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/picking-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

deliveroo-picking-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Deliveroo Catalogue Picking API
  description: Part of the Deliveroo Retail Platform Suite. The Catalogue API lets grocery and non-food retailers manage a master catalogue of up to 30,000 items per brand, publish product data and availability across retail sites, and override item prices at the site level. Authentication uses an OAuth 2.0 client credentials bearer token.
  version: v1
  x-generated-from: documentation
  x-last-validated: '2026-06-02'
  contact:
    name: Kin Lane
    email: kin@apievangelist.com
servers:
- url: https://api.developers.deliveroo.com
  description: Production
- url: https://api-sandbox.developers.deliveroo.com
  description: Sandbox
security:
- bearerAuth: []
tags:
- name: Picking
paths:
  /picking/v1/sites/{restaurant_id}/orders/active:
    get:
      operationId: getActiveOrders
      summary: Deliveroo Fetch Active Orders
      description: Retrieve the active orders for a site, paginated.
      tags:
      - Picking
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      parameters:
      - name: restaurant_id
        in: path
        required: true
        description: The site (restaurant) identifier.
        schema:
          type: string
        example: gb-12345
      - name: page
        in: query
        required: true
        description: The zero-based page index.
        schema:
          type: integer
          minimum: 0
          example: 0
        example: 0
      - name: per_page
        in: query
        required: true
        description: The number of orders per page.
        schema:
          type: integer
          minimum: 1
          example: 20
        example: 20
      responses:
        '200':
          description: A paginated list of active orders.
        '400':
          description: Bad request.
        '500':
          description: Server error.
  /picking/v1/orders/{order_id}/accept:
    put:
      operationId: acceptPickingOrder
      summary: Deliveroo Accept Order
      description: Accept an order. The order must be in PLACED status. Rate limited to 2 requests per second per order.
      tags:
      - Picking
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      parameters:
      - name: order_id
        in: path
        required: true
        description: The unique identifier of the order.
        schema:
          type: string
        example: gb-12345
      responses:
        '200':
          description: Order status information.
        '400':
          description: Bad request.
        '401':
          description: Invalid API key/token or disabled integration.
        '404':
          description: Order not found.
        '429':
          description: Rate limit exceeded (2 requests/second/order).
        '500':
          description: Server error.
  /picking/v1/orders/{order_id}/reject:
    put:
      operationId: rejectPickingOrder
      summary: Deliveroo Reject Order
      description: Reject an order. The order must be in PLACED status and may only be rejected once. Rate limited to 1 request per order per 30 seconds.
      tags:
      - Picking
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      parameters:
      - name: order_id
        in: path
        required: true
        description: The unique identifier of the order.
        schema:
          type: string
        example: gb-12345
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RejectOrder'
            examples:
              RejectPickingOrderRequestExample:
                summary: Default rejectPickingOrder request
                x-microcks-default: true
                value:
                  reject_reason: OTHER
      responses:
        '200':
          description: Order rejected.
        '400':
          description: Bad request.
        '404':
          description: Order not found.
        '500':
          description: Server error.
  /picking/v1/orders/{order_id}/start_picking:
    put:
      operationId: startPicking
      summary: Deliveroo Start Picking Process for Order
      description: Inform Deliveroo that the picking process for an order has started.
      tags:
      - Picking
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      parameters:
      - name: order_id
        in: path
        required: true
        description: The unique identifier of the order.
        schema:
          type: string
        example: gb-12345
      responses:
        '200':
          description: Picking process started.
        '400':
          description: Bad request.
        '404':
          description: Order not found.
        '500':
          description: Server error.
  /picking/v2/orders/{order_id}:
    put:
      operationId: updateOrderItems
      summary: Deliveroo Update Order Items Availability
      description: Apply item amendments, such as removing unavailable items or proposing substitutions, before accepting or rejecting an order. Rate limited to 2 requests per second per order.
      tags:
      - Picking
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
      parameters:
      - name: order_id
        in: path
        required: true
        description: The unique identifier of the order.
        schema:
          type: string
        example: gb-12345
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ItemAmendments'
            examples:
              UpdateOrderItemsRequestExample:
                summary: Default updateOrderItems request
                x-microcks-default: true
                value:
                  item_amendments:
                  - item_id: gb-12345
                    quantity: 0
      responses:
        '200':
          description: Item availability updated.
        '400':
          description: Validation failed for one or more items in the request.
        '404':
          description: Order not found.
        '500':
          description: Server error.
components:
  schemas:
    ItemAmendments:
      title: Item Amendments
      description: 'Request body for amending order item availability. x-schema-source: documentation x-source-url: https://api-docs.deliveroo.com/reference/picking-v2-update-order'
      type: object
      required:
      - item_amendments
      properties:
        item_amendments:
          type: array
          description: The list of item-level amendments to apply.
          items:
            type: object
            properties:
              item_id:
                type: string
                description: The order item identifier.
              quantity:
                type: integer
                description: The amended available quantity.
                example: 0
    RejectOrder:
      title: Reject Order
      description: 'Request body for rejecting a picking order. x-schema-source: documentation x-source-url: https://api-docs.deliveroo.com/reference/picking-v1-reject-order'
      type: object
      required:
      - reject_reason
      properties:
        reject_reason:
          type: string
          enum:
          - INGREDIENT_UNAVAILABLE
          - CLOSING_EARLY
          - BUSY
          - OTHER
          description: The reason for rejecting the order.
          example: OTHER
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 client credentials access token obtained from https://auth.developers.deliveroo.com/oauth2/token. Tokens expire after 5 minutes; no refresh tokens are issued.