{
  "openapi": "3.0.1",
  "info": {
    "title": "Tesco UK & Ireland Scraper",
    "description": "Extract product details like UPC / GTIN, price, competitor price, category, availability, promotions, nutrition, and images from Tesco UK & IE at scale. Scrape by product or category listing URLs with auto-pagination. Export data as HTML Table, JSON, JSONL, CSV, Excel, XML, or RSS.",
    "version": "0.0",
    "x-build-id": "U6CgVxIbjdVd3KkHT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/radeance~tesco-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-radeance-tesco-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/radeance~tesco-scraper/runs": {
      "post": {
        "operationId": "runs-sync-radeance-tesco-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/radeance~tesco-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-radeance-tesco-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",
        "required": [
          "category",
          "region"
        ],
        "properties": {
          "category": {
            "title": "Category",
            "enum": [
              "all",
              "clothing-and-accessories",
              "marketplace",
              "electronics-and-gaming",
              "fresh-food",
              "bakery",
              "treats-and-snacks",
              "food-cupboard",
              "frozen-food",
              "garden-diy-and-car-care",
              "drinks",
              "baby-and-toddler",
              "health-and-beauty",
              "pets",
              "household",
              "home-and-furniture",
              "home-and-living",
              "tesco-finest",
              "parties-and-seasonal",
              "toys-and-games",
              "sports-and-leisure",
              "hobbies-and-stationery",
              "kiosk",
              "inspiration-and-events"
            ],
            "type": "string",
            "description": "Select the grocery category you want to scrape",
            "default": "fresh-food"
          },
          "region": {
            "title": "Region",
            "enum": [
              "UK",
              "IE"
            ],
            "type": "string",
            "description": "Select the region for Tesco UK or Tesco IE. This will be disregarded when using the 'urls' field. Default: UK",
            "default": "UK"
          },
          "keyword": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Enter a product keyword to search for a product. This will be disregarded when using the 'urls' field."
          },
          "categories": {
            "title": "Select multiple categories (Bulk)",
            "uniqueItems": true,
            "type": "array",
            "description": "Select the product categories you want to scrape. The `category`field will be ignored if you use this. This is a paid-only feature.",
            "items": {
              "type": "string",
              "enum": [
                "clothing-and-accessories",
                "marketplace",
                "electronics-and-gaming",
                "fresh-food",
                "bakery",
                "treats-and-snacks",
                "food-cupboard",
                "frozen-food",
                "garden-diy-and-car-care",
                "drinks",
                "baby-and-toddler",
                "health-and-beauty",
                "pets",
                "household",
                "home-and-furniture",
                "home-and-living",
                "tesco-finest",
                "parties-and-seasonal",
                "toys-and-games",
                "sports-and-leisure",
                "hobbies-and-stationery",
                "kiosk",
                "inspiration-and-events"
              ],
              "enumTitles": [
                "Clothing & Accessories (UK only)",
                "Marketplace (UK only)",
                "Electronics & Gaming (UK only)",
                "Fresh Food",
                "Bakery",
                "Treats and Snacks",
                "Food Cupboard",
                "Frozen Food",
                "Garden, DIY & Car Care (UK only)",
                "Drinks",
                "Baby and Toddler",
                "Health and Beauty",
                "Pets",
                "Household",
                "Home and Furniture (UK only)",
                "Home and Living (IE only)",
                "Tesco Finest (IE only)",
                "Parties and Seasonal (UK only)",
                "Toys & Games (UK only)",
                "Sports & Leisure (UK only)",
                "Hobbies & Stationery (UK only)",
                "Kiosk (UK only)",
                "Inspiration & Events"
              ]
            }
          },
          "urls": {
            "title": "Product, Listing or Search URL(s)",
            "type": "array",
            "description": "Add product page or category listing page URLs you want to scrape. You can add multiple URLs by clicking the '+' button.",
            "items": {
              "type": "string"
            }
          },
          "include_product_details": {
            "title": "Include Product Page Data",
            "type": "boolean",
            "description": "If checked, the scraper will include detailed product information from the product page such as ingredients, allergens, and nutritional information. This option will be considered for listing urls. Default: true",
            "default": true
          },
          "only_unique": {
            "title": "Only Unique Products",
            "type": "boolean",
            "description": "If checked, the scraper will only return unique products based on the product identifier. This is useful for large scrapes to avoid duplicates. Default: true",
            "default": true
          },
          "max_items": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of products to scrape. Free Users are limited to 100 Default: 1000",
            "default": 1000
          },
          "max_pages": {
            "title": "Max Pages",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of pages to scrape (Listing mode). Default: 1",
            "default": 1
          },
          "page_offset": {
            "title": "Page Offset",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The page number the scraper should scrape from. Paid-Only Feature. Defaults to 1",
            "default": 1
          },
          "stream_output": {
            "title": "Stream Output",
            "type": "boolean",
            "description": "If checked, the scraper will stream output as it scrapes. This is useful for large scrapes. Default: true",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}