{
  "openapi": "3.0.1",
  "info": {
    "title": "Pak'nSave Scraper — Store Prices, Unit Prices, Promotions",
    "description": "Pak'nSave New Zealand (paknsave.co.nz) scraper: product ID, name, brand, package size, price in NZD, unit price, unit label, promotions, category, sales channels, URL, store ID. Per store, by keyword or Pantry category, with continuation. Pay per result, no login.",
    "version": "0.0",
    "x-build-id": "XaJ5aYQh67DJiAeCm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/architekture~paknsave-nz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-architekture-paknsave-nz-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/architekture~paknsave-nz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-architekture-paknsave-nz-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/architekture~paknsave-nz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-architekture-paknsave-nz-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": {
          "operation": {
            "title": "Operation",
            "enum": [
              "collect",
              "capture"
            ],
            "type": "string",
            "description": "Collect public product rows. Capture is a developer-only diagnostic.",
            "default": "collect"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Product keywords, e.g. milk or weet-bix. Up to100 terms.",
            "default": [
              "milk"
            ],
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "Category URLs",
            "type": "array",
            "description": "Verified category: https://www.paknsave.co.nz/shop/category/pantry. Other categories are rejected before collection.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "storeId": {
            "title": "Store ID",
            "type": "string",
            "description": "Public store UUID. Blank collection input selects Royal Oak (e1925ea7-01bc-4358-ae7c-c6502da5ab12). Output records the requested store; the response does not echo it."
          },
          "maxItemsPerQuery": {
            "title": "Maximum items per query",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Per term/category cap across a continuation chain. 0 means no item cap; time and budget limits remain.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include details",
            "type": "boolean",
            "description": "Not enabled: no additional detail fields verified. True stops before collection; no detail event exists.",
            "default": false
          },
          "preview": {
            "title": "Free preview",
            "type": "boolean",
            "description": "20 lifetime attempts per account; one page and up to10 rows across the entire run. No paid fallback.",
            "default": true
          },
          "continuePreviousRun": {
            "title": "Continue previous run",
            "type": "boolean",
            "description": "Paid only. Claims a saved checkpoint once. Increase query cap to consume previously buffered results.",
            "default": false
          },
          "previousStoreId": {
            "title": "Previous key-value store ID",
            "type": "string",
            "description": "Previous run's default key-value store; contains CHECKPOINT and CHECKPOINT_META. Not a retailer store ID."
          },
          "maxRunSeconds": {
            "title": "Run time bound",
            "minimum": 60,
            "maximum": 3600,
            "type": "integer",
            "description": "Total collection/warm-up deadline; leaves checkpoint where safe.",
            "default": 240
          },
          "debugSaveResponses": {
            "title": "Save sanitised response",
            "type": "boolean",
            "description": "Private evidence preparation. Saves last source JSON with key-based secret redaction and URL query stripping; manually review before sharing.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Residential proxy (NZ required)",
            "type": "object",
            "description": "Required residential NZ proxy. One sticky endpoint per clearance; changes on challenge recurrence.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "NZ"
            }
          },
          "feedback": {
            "title": "Feedback",
            "type": "string",
            "description": "Tell the maintainers what you needed and did not get. Read by a human; does not change the output."
          },
          "captureCostMode": {
            "title": "Private cost probe",
            "enum": [
              "none",
              "warmup",
              "representative"
            ],
            "type": "string",
            "description": "Developer-only matched cost experiment. Warmup stops after anonymous API bootstrap; representative requests up to20 Pantry pages. No paid rows.",
            "default": "none"
          },
          "previousQueueId": {
            "title": "Previous continuation claim queue",
            "type": "string",
            "description": "Queue ID from the previous run CHECKPOINT_META record. Needed only for continuation; it prevents replay of the same checkpoint."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}