{
  "openapi": "3.0.1",
  "info": {
    "title": "Israeli Supermarket Prices - Cross-Chain Compare",
    "description": "Compare any product's price across every major Israeli supermarket chain (Shufersal, Rami Levy, Carrefour, Tiv Taam, Osher Ad, Yochananof and more). Built on the legally-mandated price-transparency files, updated daily. Snapshot a single store, list branches, or pull promotions.",
    "version": "0.1",
    "x-build-id": "DsOoFmNA0W9DUc7pj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/swerve~supermarket-prices/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-swerve-supermarket-prices",
        "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/swerve~supermarket-prices/runs": {
      "post": {
        "operationId": "runs-sync-swerve-supermarket-prices",
        "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/swerve~supermarket-prices/run-sync": {
      "post": {
        "operationId": "run-sync-swerve-supermarket-prices",
        "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": {
          "mode": {
            "title": "What do you want to do?",
            "enum": [
              "compareProducts",
              "storeSnapshot",
              "listStores",
              "chainDump",
              "promoSnapshot"
            ],
            "type": "string",
            "description": "Pick one. The fields below are grouped by mode, only fill in the group that matches your choice.",
            "default": "compareProducts"
          },
          "productQueries": {
            "title": "Products to compare (search by name)",
            "type": "array",
            "description": "Type product names in Hebrew, the way they appear on the shelf. Each one is matched against every chain's products. Add as many as you like. Examples: חלב 3% (3% milk), קוטג' (cottage cheese), קוקה קולה זירו, במבה. You get the matching products and their price at each chain, ready to sort cheapest-first.",
            "items": {
              "type": "string"
            }
          },
          "barcodes": {
            "title": "...or by exact barcode (advanced, most precise)",
            "type": "array",
            "description": "If you know a product's barcode, use it for an exact match (names vary slightly between chains, barcodes do not). Example: 7290000042015 (Tnuva 3% milk). Most people should just use the name search above.",
            "items": {
              "type": "string"
            }
          },
          "chains": {
            "title": "Which chains to compare",
            "type": "array",
            "description": "Leave empty to compare ALL chains. Or pick specific ones.",
            "items": {
              "type": "string",
              "enum": [
                "shufersal",
                "rami-levy",
                "carrefour",
                "tiv-taam",
                "osher-ad",
                "yochananof",
                "keshet",
                "stop-market",
                "super-yuda",
                "fresh-market",
                "politzer",
                "salach-dabach",
                "shuk-hayir",
                "bareket",
                "king-store",
                "maayan-2000",
                "zol-vebegadol",
                "shefa-birkat",
                "super-sapir",
                "good-pharm",
                "hazi-hinam",
                "h-cohen",
                "wolt-market",
                "victory",
                "machsanei-hashuk"
              ],
              "enumTitles": [
                "Shufersal (שופרסל)",
                "Rami Levy (רמי לוי)",
                "Carrefour (קרפור)",
                "Tiv Taam (טיב טעם)",
                "Osher Ad (אושר עד)",
                "Yochananof (יוחננוף)",
                "Keshet Taamim (קשת טעמים)",
                "Stop Market (סטופ מרקט)",
                "Super Yuda (סופר יודה)",
                "Fresh Market / Paz (פרש מרקט)",
                "Politzer (פוליצר)",
                "Salach Dabach (סאלח דבאח)",
                "Shuk Ha׳ir (שוק העיר)",
                "Bareket (ברקת)",
                "King Store (קינג סטור)",
                "Maayan 2000 (מעיין 2000)",
                "Zol VeBegadol (זול ובגדול)",
                "Shefa Birkat Hashem (שפע ברכת השם)",
                "Super Sapir (סופר ספיר)",
                "Good Pharm (גוד פארם)",
                "Hazi Hinam (חצי חינם)",
                "H. Cohen (ח. כהן)",
                "Wolt Market (וולט מרקט)",
                "Victory (ויקטורי)",
                "Machsanei HaShuk (מחסני השוק)"
              ]
            },
            "default": []
          },
          "oneStorePerChain": {
            "title": "One store per chain (recommended)",
            "type": "boolean",
            "description": "On: check one representative branch per chain (prices barely vary between a chain's branches, so this is fast and gives a clean one-row-per-chain comparison). Off: check every branch of every chain (much slower, many more rows).",
            "default": true
          },
          "includeImages": {
            "title": "Include product photos",
            "type": "boolean",
            "description": "Add a product photo (imageUrl) to each item, looked up by barcode. Best for comparing a handful of products; it adds a lookup per product so avoid it on whole-store or whole-chain pulls. Coverage is roughly 70% of common products.",
            "default": false
          },
          "chain": {
            "title": "Chain",
            "enum": [
              "shufersal",
              "rami-levy",
              "carrefour",
              "tiv-taam",
              "osher-ad",
              "yochananof",
              "keshet",
              "stop-market",
              "super-yuda",
              "fresh-market",
              "politzer",
              "salach-dabach",
              "shuk-hayir",
              "bareket",
              "king-store",
              "maayan-2000",
              "zol-vebegadol",
              "shefa-birkat",
              "super-sapir",
              "good-pharm",
              "hazi-hinam",
              "h-cohen",
              "wolt-market",
              "victory",
              "machsanei-hashuk"
            ],
            "type": "string",
            "description": "Which chain to pull from.",
            "default": "rami-levy"
          },
          "storeId": {
            "title": "Store / branch ID (optional)",
            "type": "string",
            "description": "For 'one store' and 'promotions': a specific branch ID (get IDs from the 'List a chain's branches' mode). Leave empty to use the first available branch."
          },
          "category": {
            "title": "Keep only products whose name contains (optional)",
            "type": "string",
            "description": "For 'one store' and 'download a chain': filter to products whose name contains this text. Example: שמן (oil), בירה (beer). Leave empty to keep everything."
          },
          "confirmFullDump": {
            "title": "Yes, download the whole chain",
            "type": "boolean",
            "description": "Only for 'Download an entire chain'. A full chain is hundreds of thousands of products. This must be on for that mode to run, a safety check so nobody triggers a huge run by accident.",
            "default": false
          },
          "maxItems": {
            "title": "Max results (optional)",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many rows. Leave empty for everything in scope (there is no upper limit)."
          },
          "maxRowsPerChain": {
            "title": "Max rows per chain (cost guard)",
            "minimum": 1,
            "type": "integer",
            "description": "compareProducts only: cap how many matching rows each chain returns. A broad one-word query like \"חלב\" can match 600+ rows per chain across 22 chains; with a cap of 50 the run stays representative and cheap. Leave empty for everything."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}