{
  "openapi": "3.0.1",
  "info": {
    "title": "Deliveroo Scraper — Menus, Prices, Ratings & Address",
    "description": "Deliveroo scraper for restaurants and menus: paste menu URLs or search by city, neighborhood, and postcode. One row per store with name, rating, delivery time, street address, and menu items with prices when includeMenu is on. Covers UK, EU, UAE, and Asia-Pacific markets.",
    "version": "1.0",
    "x-build-id": "0iRZDL4xwfuRmkKZH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~deliveroo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-deliveroo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/memo23~deliveroo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-deliveroo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/memo23~deliveroo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-deliveroo-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "restaurantUrls": {
            "title": "Restaurant menu URLs",
            "type": "array",
            "description": "Deliveroo menu pages. Keep ?day= &postcode= or &geohash= &time= when present — they pick the serving menu. When this list is filled, location search is skipped.",
            "items": {
              "type": "string"
            }
          },
          "queries": {
            "title": "Locations",
            "type": "array",
            "description": "city/neighborhood pairs copied from the Deliveroo address bar, e.g. london/soho, marseille/marseille-vieux-port, dubai/dubai-marina. On deliveroo.fr the neighborhood starts with the city name; marseille/vieux-port is retried as marseille/marseille-vieux-port automatically.",
            "items": {
              "type": "string"
            }
          },
          "domain": {
            "title": "Deliveroo market",
            "enum": [
              "co.uk",
              "ae",
              "fr",
              "it",
              "ie",
              "be",
              "nl",
              "hk",
              "sg",
              "au",
              "qa",
              "kw"
            ],
            "type": "string",
            "description": "TLD for search-mode listing URLs. Ignored when restaurantUrls already include a host.",
            "default": "co.uk"
          },
          "postcode": {
            "title": "Postcode",
            "type": "string",
            "description": "Delivery postcode for UK/IE listing and for menu URLs that omit one. Example: W1D3QU."
          },
          "maxRestaurants": {
            "title": "Max restaurants",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on restaurants returned (and billed). Default 50.",
            "default": 50
          },
          "includeMenu": {
            "title": "Include menu",
            "type": "boolean",
            "description": "Fetch menu items and prices. Billed once per restaurant only when menu[] is non-empty. Default true.",
            "default": true
          },
          "menuMode": {
            "title": "Menu coverage",
            "enum": [
              "limited",
              "all"
            ],
            "type": "string",
            "description": "limited = at most maxMenuItems per restaurant. all = keep every item from the menu page. Default limited.",
            "default": "limited"
          },
          "maxMenuItems": {
            "title": "Max menu items per restaurant",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Used when menuMode is limited. Default 80. Ignored when menuMode is all.",
            "default": 80
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Keep customer reviews when Deliveroo publishes them on the page (name, rating, comment). Public menu pages usually have none — reviews[] stays empty and this event is not charged. Billed once per restaurant when reviews[] is non-empty, not per review. Default false.",
            "default": false
          },
          "includeExtra": {
            "title": "Include street address",
            "type": "boolean",
            "description": "Keep address and postcode from the menu page. Billed once per restaurant when address lands. Default true.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many restaurants to fetch in parallel. Default 4, max 8.",
            "default": 4
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}