{
  "openapi": "3.0.1",
  "info": {
    "title": "Coles Australia Scraper - Prices, Half Price Specials & Stock",
    "description": "Scrape Coles (coles.com.au) prices, half-price and multibuy specials, unit price per kg/L, stock, barcode and aisle by keyword, category, specials page or product ID. Pull the whole specials catalogue in one run. Per-store pricing, store finder, price-drop alerts. No proxy needed.",
    "version": "0.0",
    "x-build-id": "AjlxefXGGFqOZfOpa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~coles-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-coles-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~coles-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-coles-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~coles-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-coles-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": {
          "searchTerms": {
            "title": "Search Coles for",
            "type": "array",
            "description": "Words to search, one per line, e.g. milk, coffee or tim tams.",
            "items": {
              "type": "string"
            }
          },
          "skuList": {
            "title": "Coles product numbers",
            "type": "array",
            "description": "Product numbers to fetch, one per line. You find them at the end of a Coles product link, e.g. 8150288 in /product/...-8150288.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Coles links",
            "type": "array",
            "description": "Search results (e.g. https://www.coles.com.au/search/products?q=coffee), category pages under /browse/, specials pages (/on-special, /specials/half-price) or single product pages. Each is read the way its page type needs.",
            "items": {
              "type": "string"
            }
          },
          "specials": {
            "title": "Weekly specials",
            "enum": [
              "none",
              "all",
              "halfPrice",
              "multibuy",
              "onlineOnly"
            ],
            "type": "string",
            "description": "Off by default. Pick a kind of special to keep only those products. With keywords or links, you get the specials among their results. With nothing else filled in, you get Coles' whole catalogue of that kind (half price alone is often more than 1,000 products), so clear the starting keyword for a full catalogue.",
            "default": "none"
          },
          "specialsOnly": {
            "title": "On special right now",
            "type": "boolean",
            "description": "On: keeps only products on special right now, whether a lower was-price, a multibuy deal or an online special. Works with every kind of input.",
            "default": false
          },
          "store": {
            "title": "Store for local prices",
            "type": "string",
            "description": "A Coles store as COL:<number>, e.g. COL:7674; prices and stock differ by store. Empty: Coles' online store. The store finder at the bottom of the form gives store numbers."
          },
          "includeDetails": {
            "title": "Barcode, origin, serving size and aisle",
            "type": "boolean",
            "description": "Off by default. On: each row also gets the barcode (GTIN), country of origin, serving size and servings per pack, and the aisle.",
            "default": false
          },
          "includeDescription": {
            "title": "Product description text",
            "type": "boolean",
            "description": "On (default): the product's full description where Coles shows one.",
            "default": true
          },
          "stateName": {
            "title": "Watchlist",
            "type": "string",
            "description": "A name for one set of tracked products, e.g. weekly-coffee. Runs with the same name are compared with each other; use separate names for separate searches.",
            "default": "default"
          },
          "monitorMode": {
            "title": "Tracking",
            "enum": [
              "snapshot",
              "changes"
            ],
            "type": "string",
            "description": "Off (default): plain product rows. On: each row also says what changed since the last run of this watchlist (NEW, PRICE_DROP, PRICE_RISE, BACK_IN_STOCK, OUT_OF_STOCK or UNCHANGED), with the earlier price and availability.",
            "default": "snapshot"
          },
          "onlyChanged": {
            "title": "Changed products only",
            "type": "boolean",
            "description": "On: rows marked UNCHANGED are left out, and tracking switches on by itself. A watchlist's first run marks every product NEW.",
            "default": false
          },
          "maxItems": {
            "title": "Products in total",
            "minimum": 1,
            "type": "integer",
            "description": "The run stops after this many products, default 1,000; only those are billed. The free Apify plan allows 25 products a run and 3 runs a day.",
            "default": 1000
          },
          "maxRequestsPerCrawl": {
            "title": "Page limit",
            "minimum": 0,
            "type": "integer",
            "description": "Stops after this many pages of results. 0 (default): no limit.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Pages at once",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "1 to 30, default 10.",
            "default": 10
          },
          "storeLookup": {
            "title": "Store finder",
            "type": "object",
            "description": "Enter a latitude and longitude to get the nearest Coles and Liquorland stores (number, name, distance) instead of products. Put a store number in the store field above on a later run.",
            "properties": {
              "latitude": {
                "type": "number",
                "description": "Latitude (e.g. -33.86 for Sydney CBD)",
                "title": "Latitude"
              },
              "longitude": {
                "type": "number",
                "description": "Longitude (e.g. 151.21 for Sydney CBD)",
                "title": "Longitude"
              }
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}