{
  "openapi": "3.0.1",
  "info": {
    "title": "Coles Products Scraper — Prices, Specials & Store Stock",
    "description": "Collect Coles grocery prices, specials, nutrition and store availability. Search, browse categories, compare stores and export public store details with the required connection included.",
    "version": "0.0",
    "x-build-id": "lC7G4InMfc25g5lnF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fetch_cat~coles-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fetch_cat-coles-products-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/fetch_cat~coles-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fetch_cat-coles-products-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/fetch_cat~coles-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fetch_cat-coles-products-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 terms",
            "maxItems": 30,
            "type": "array",
            "description": "Product searches such as milk or Tim Tam. Choose at least one search, URL, product ID, department, specials, full catalogue or store directory workflow.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            },
            "default": []
          },
          "startUrls": {
            "title": "Coles links",
            "maxItems": 100,
            "type": "array",
            "description": "HTTPS Coles product, browse category, brand, search/products?q=, on-special or numbered store links. Source sortBy and filter_Brand, filter_Dietary, filter_Allergen and filter_Special parameters are preserved. Store links select those stores.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500,
              "pattern": "^https://(www\\.)?coles\\.com\\.au/"
            },
            "default": []
          },
          "productIds": {
            "title": "Product IDs",
            "maxItems": 100,
            "type": "array",
            "description": "Numeric Coles product IDs with 4 to 7 digits. Direct product lookups always include full details and incur both result and detail events.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]{4,7}$"
            },
            "default": []
          },
          "departments": {
            "title": "Departments or category paths",
            "maxItems": 30,
            "type": "array",
            "description": "Coles category paths such as dairy-eggs-fridge or dairy-eggs-fridge/milk, or a source category ID. The current taxonomy is also saved as CATEGORIES-STOREID when browsing.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            },
            "default": []
          },
          "specials": {
            "title": "Specials",
            "enum": [
              "none",
              "allspecials",
              "halfprice",
              "multibuy",
              "onlineonly"
            ],
            "type": "string",
            "description": "Collect these specials, or apply this source filter to selected searches/categories. none disables the specials filter.",
            "default": "none"
          },
          "fullCatalog": {
            "title": "Browse all departments",
            "type": "boolean",
            "description": "Traverse the current online departments. Global item, request and runtime limits still apply. SUMMARY identifies truncation. This is the online catalogue, not a printed catalogue PDF or a promise of every physical-store item.",
            "default": false
          },
          "storeDirectory": {
            "title": "Include store directory",
            "type": "boolean",
            "description": "Export public Coles supermarket addresses, coordinates, services and trading hours. With postcodes, include stores within 25 km, up to 100 per postcode. Without locations, enumerate Coles supermarket stores from Coles' public store sitemap and retrieve each store's details in bounded batches. SUMMARY reports the published-index count, actual processed stores and any truncation. This is published Coles coverage, not an inferred nearest-store sample.",
            "default": false
          },
          "storeIds": {
            "title": "Store IDs",
            "maxItems": 1200,
            "type": "array",
            "description": "Numeric Coles supermarket IDs. For example 584 is Burwood East, 313 is Karratha. Omitted locations use store 584. Each product/store pair is a separate result.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]{1,14}$"
            },
            "default": []
          },
          "postcodes": {
            "title": "Postcodes",
            "maxItems": 20,
            "type": "array",
            "description": "Four-digit Australian postcodes. Select the nearest matching Coles within 100 km for product prices. Unmatched postcodes are reported, never silently replaced with a default location.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]{4}$"
            },
            "default": []
          },
          "allStores": {
            "title": "Compare all returned Coles stores",
            "type": "boolean",
            "description": "Resolve the Australian Coles directory and collect selected products/searches at each returned store. This can multiply output and costs. maxItems remains global; check SUMMARY for store resolution and truncation.",
            "default": false
          },
          "includeDetails": {
            "title": "Add full product details",
            "type": "boolean",
            "description": "Add source GTIN, ingredients, allergens, dietary notes, nutrition, country and available size/variety records. Each detailed product/store row incurs one detail event in addition to its result event. Variation count may exceed returned variant records.",
            "default": false
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "priceAscending",
              "priceDescending",
              "productNameAscending",
              "productNameDescending"
            ],
            "type": "string",
            "description": "Order products using Coles' native sort within each search/category/store, not a combined cross-input sort.",
            "default": "relevance"
          },
          "brands": {
            "title": "Brand filters",
            "maxItems": 20,
            "type": "array",
            "description": "Source brand names or numeric facet IDs. Names are resolved against actual source facets; unavailable filter names produce a useful error.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            },
            "default": []
          },
          "dietary": {
            "title": "Dietary filters",
            "maxItems": 20,
            "type": "array",
            "description": "Source dietary names or numeric facet IDs, such as Vegan. Availability varies by search/category.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            },
            "default": []
          },
          "allergens": {
            "title": "Allergen filters",
            "maxItems": 20,
            "type": "array",
            "description": "Source allergen facet names or numeric IDs, such as Lactose Free. These are source labels, not medical advice.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            },
            "default": []
          },
          "maxItems": {
            "title": "Maximum total results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Hard total across products, stores, inputs and locations. Duplicated product/store pairs are emitted and billed once. Directory rows also count. Larger values are bounded by the request and runtime limits.",
            "default": 100
          },
          "maxRequests": {
            "title": "Maximum source requests",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard network cap including public bootstrap, store/category resolution, facet lookups and product detail batches. An exhausted cap stops further requests and reports truthful truncation in SUMMARY, not a genuine empty result.",
            "default": 1000
          },
          "maxRunSeconds": {
            "title": "Maximum processing time",
            "minimum": 30,
            "maximum": 1800,
            "type": "integer",
            "description": "Independent elapsed-time limit, at most 30 minutes even when the platform timeout is unlimited. A resurrected run cannot restart extraction. Request timeouts are capped at 25 seconds without blind retries.",
            "default": 1800
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}