{
  "openapi": "3.0.1",
  "info": {
    "title": "Uber Eats Scraper - Restaurants, Full Menus & Modifiers",
    "description": "Scrape Uber Eats restaurants and full menus with prices, ratings, hours, phone, coordinates, ETA and modifiers for any address worldwide. Export CSV, Excel, JSON or XML.",
    "version": "0.1",
    "x-build-id": "RKwwRIqz8DNeQie5e"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~uber-eats-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-uber-eats-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/parseforge~uber-eats-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-uber-eats-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/parseforge~uber-eats-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-uber-eats-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": {
          "startUrls": {
            "title": "Store URLs",
            "type": "array",
            "description": "Uber Eats store links, for example https://www.ubereats.com/store/joes-pizza-times-square-1435-broadway/F9A-B2bKRg-ikAd0B8uzgg . Links from any country domain path work.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Cuisine, dish or restaurant name, for example pizza, sushi, McDonald's. One search runs per term and location. Empty means every restaurant Uber Eats lists there.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Street address, city, postcode or plain coordinates as latitude,longitude (for example 40.7128,-74.0060). Uber Eats returns the restaurants that deliver to that point.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
          },
          "outputMode": {
            "title": "Output rows",
            "enum": [
              "restaurants",
              "menuItems"
            ],
            "type": "string",
            "description": "Restaurants gives one row per restaurant, with the menu nested inside. Menu items gives one row per dish, with the restaurant details repeated on every row. Max Items counts rows of the type you pick.",
            "default": "restaurants"
          },
          "includeMenu": {
            "title": "Include full menu",
            "type": "boolean",
            "description": "Nest the whole menu (categories, dishes, prices, photos, likes) inside each restaurant row. Turn it off for a faster, lighter restaurant directory. Menu items mode always reads the menu.",
            "default": true
          },
          "includeModifiers": {
            "title": "Include modifiers and add-ons",
            "type": "boolean",
            "description": "Also read every dish that has options (sizes, toppings, sides) and add its modifier groups with required flags, limits and prices. Slower, because it makes one extra request per dish.",
            "default": false
          },
          "language": {
            "title": "Language",
            "enum": [
              "english",
              "local"
            ],
            "type": "string",
            "description": "English translates the interface texts (dining modes, hours labels, category names Uber Eats localizes). Local uses the language of the country you search in, as the Uber Eats site does there. Restaurant and dish names are always the ones the restaurant wrote.",
            "default": "english"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "Recommended",
              "Rating",
              "Delivery time"
            ],
            "type": "string",
            "description": "Order in which Uber Eats lists the restaurants.",
            "default": "Recommended"
          },
          "minRating": {
            "title": "Minimum rating",
            "enum": [
              "",
              "3",
              "3.5",
              "4",
              "4.5",
              "5"
            ],
            "type": "string",
            "description": "Keep only restaurants rated at least this high.",
            "default": ""
          },
          "offersOnly": {
            "title": "Only restaurants with offers",
            "type": "boolean",
            "description": "Keep only restaurants running an offer or promotion.",
            "default": false
          },
          "under30Minutes": {
            "title": "Delivery under 30 minutes",
            "type": "boolean",
            "description": "Keep only restaurants Uber Eats estimates to deliver in under 30 minutes.",
            "default": false
          },
          "topEatsOnly": {
            "title": "Best overall (Top Eats)",
            "type": "boolean",
            "description": "Keep only restaurants Uber Eats badges as Best overall, where the market has that badge.",
            "default": false
          },
          "diningMode": {
            "title": "Order type",
            "enum": [
              "DELIVERY",
              "PICKUP"
            ],
            "type": "string",
            "description": "Delivery or pickup. Pickup changes which restaurants are listed and the ETA shown.",
            "default": "DELIVERY"
          },
          "storeType": {
            "title": "Store type",
            "enum": [
              "restaurants",
              "all"
            ],
            "type": "string",
            "description": "Uber Eats mixes shops, pharmacies and convenience stores into the same feed. Restaurants only drops them; All keeps everything.",
            "default": "restaurants"
          },
          "maxStoresPerSearch": {
            "title": "Max restaurants per search",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Optional cap on the restaurants read for each location and search term, so one big city does not use the whole Max Items budget. Leave empty for no cap."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxy is the reliable choice. Datacenter IPs work for small runs but Uber Eats blocks them often.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}