{
  "openapi": "3.0.1",
  "info": {
    "title": "Uber Eats & Deliveroo Scraper API – Menus, Prices, No Login",
    "description": "Uber Eats scraper and Deliveroo scraper API for food delivery data: restaurants, full restaurant menus, dish prices, delivery fees, ratings and hours by address or link. No login. One price per restaurant, never per dish. Track menu prices. 100 Uber Eats and 20 Deliveroo menus free monthly.",
    "version": "0.2",
    "x-build-id": "NoixHMBnTzjnDud8T"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/k-data-lab~uber-eats-deliveroo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-k-data-lab-uber-eats-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/k-data-lab~uber-eats-deliveroo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-k-data-lab-uber-eats-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/k-data-lab~uber-eats-deliveroo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-k-data-lab-uber-eats-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": {
          "addresses": {
            "title": "Delivery addresses",
            "type": "array",
            "description": "Delivery addresses to search, one per item: a street, area, postcode, city or coordinates, e.g. <code>Times Square, New York</code>, <code>W1D 3QU, London</code> or <code>51.5136, -0.1345</code>. Add a city and country so the place is unambiguous. Prices, fees and the restaurants returned depend on this address. Send this or <code>startUrls</code>.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country (optional)",
            "type": "string",
            "description": "Two-letter country code such as <code>US</code> or <code>GB</code>. Only needed if an address lands in the wrong country; normally it comes from the address."
          },
          "queries": {
            "title": "Search (optional)",
            "type": "array",
            "description": "Dish, cuisine or restaurant name to search at each address, e.g. <code>pizza</code>, <code>sushi</code> or <code>McDonald's</code>. Leave empty to get what the platform shows for the address.",
            "items": {
              "type": "string"
            }
          },
          "platforms": {
            "title": "Platforms",
            "type": "array",
            "description": "Which food delivery platforms to search at each address: <code>ubereats</code>, <code>deliveroo</code> or both. Uber Eats covers the US, UK, Canada, Australia, much of Europe, Japan and more. Deliveroo works in the UK, Ireland, France, Italy, Belgium, UAE and Kuwait.",
            "items": {
              "type": "string",
              "enum": [
                "ubereats",
                "deliveroo"
              ],
              "enumTitles": [
                "Uber Eats",
                "Deliveroo"
              ]
            },
            "default": [
              "ubereats"
            ]
          },
          "startUrls": {
            "title": "Restaurant links",
            "type": "array",
            "description": "Restaurant links to read directly, each as <code>{ \"url\": \"...\" }</code>: Uber Eats store links (<code>ubereats.com/store/name/ID</code>) or Deliveroo menu links (<code>deliveroo.co.uk/menu/city/area/name</code>). Each link returns that restaurant and its menu. Send this or <code>addresses</code>.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxRestaurants": {
            "title": "Max restaurants per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The limit for each address + search + platform, from 1 to 1000. It keeps cost predictable: use 5 for a quick check.",
            "default": 20
          },
          "includeMenus": {
            "title": "Include full menus",
            "type": "boolean",
            "description": "On: every dish with its price, plus address, hours and delivery fees, charged as a restaurant with full menu. Off: the cheaper restaurant list only (name, rating, delivery time, promotions).",
            "default": true
          },
          "rowPer": {
            "title": "Output rows",
            "enum": [
              "restaurant",
              "dish"
            ],
            "type": "string",
            "description": "One row per restaurant with its menu inside, or one flat row per dish for spreadsheets. The price is the same: you pay per restaurant, never per dish.",
            "default": "restaurant"
          },
          "includeOptions": {
            "title": "Include dish options",
            "type": "boolean",
            "description": "Add-ons and sizes with their extra prices. Free on Deliveroo. On Uber Eats each dish with options needs one more request and is charged as <code>item-options</code>.",
            "default": false
          },
          "maxOptionItemsPerRestaurant": {
            "title": "Max Uber Eats dishes with options per restaurant",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Limits the option cost of very long menus.",
            "default": 30
          },
          "diningMode": {
            "title": "Dining mode (Uber Eats)",
            "enum": [
              "DELIVERY",
              "PICKUP"
            ],
            "type": "string",
            "description": "Delivery or pickup.",
            "default": "DELIVERY"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Skip restaurants rated below this, e.g. <code>4.5</code>. Unrated restaurants are skipped too when this is set."
          },
          "restaurantsOnly": {
            "title": "Restaurants only",
            "type": "boolean",
            "description": "Skip supermarkets and convenience stores, which show only featured shelves on Uber Eats. Turn off to include them.",
            "default": true
          },
          "openNowOnly": {
            "title": "Open now only",
            "type": "boolean",
            "description": "Skip restaurants that can't take an order right now.",
            "default": false
          },
          "trackPriceChanges": {
            "title": "Track price changes",
            "type": "boolean",
            "description": "Remembers each menu between runs. Later runs add <code>priceChanges</code> (dish, old price, new price). Use it with a schedule; the first run only records prices.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate price memories, e.g. <code>london-pizza</code>.",
            "default": "default"
          },
          "dedupe": {
            "title": "Skip repeats within a run",
            "type": "boolean",
            "description": "A restaurant found by two searches is returned and charged once.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}