{
  "openapi": "3.0.1",
  "info": {
    "title": "PetSmart, Visions & Pet Valu Scraper — Prices, UPCs, Stock",
    "description": "Scrape PetSmart Canada + US, Visions Electronics and Pet Valu by keyword, category, product URL or full catalog: price, sale vs regular price, UPC barcode per size/flavour, SKU, online + in-store stock, stores with stock, ratings, brand, category. Price-change monitoring mode. No login.",
    "version": "0.1",
    "x-build-id": "fdIvltGuhayjpOHek"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~canada-retail-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-canada-retail-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/yugenox~canada-retail-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-canada-retail-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/yugenox~canada-retail-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-canada-retail-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": {
          "retailers": {
            "title": "Retailers",
            "type": "array",
            "description": "Stores to scrape. PetSmart Canada / US work on any Apify account. Visions Electronics only answers residential Canadian IPs, so it needs the RESIDENTIAL proxy group on your Apify account (it is skipped with a clear note otherwise). Product URLs below work for any of these stores even if the store is not selected here.",
            "items": {
              "type": "string",
              "enum": [
                "petsmart_ca",
                "petsmart_us",
                "visions"
              ],
              "enumTitles": [
                "PetSmart Canada (petsmart.ca)",
                "PetSmart US (petsmart.com)",
                "Visions Electronics (visions.ca) — needs residential proxies"
              ]
            },
            "default": [
              "petsmart_ca"
            ]
          },
          "searchQueries": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search in every selected store, e.g. \"dog food\", \"cat litter\", \"oled tv\". Each term returns up to \"Max products\" results per store.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Category page URLs copied from the store (e.g. https://www.petsmart.ca/dog/food/dry-food/, https://www.visions.ca/shop/category/tv-projectors-media-players-accessories/televisions). You can also type a category name such as \"Dry Food\" or a path such as \"Dog > Food > Dry Food\".",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Individual product pages. PetSmart and Visions links return every size/flavour of the product with its own SKU, UPC and price. Links from other stores are read from the page's structured product data (works on most modern shops; shops that block automated visitors are skipped).",
            "items": {
              "type": "string"
            }
          },
          "fullCatalog": {
            "title": "Full catalog",
            "type": "boolean",
            "description": "Scrape every product of the selected stores (PetSmart Canada ≈ 13,000 SKUs, PetSmart US ≈ 35,000 SKUs, Visions ≈ 8,700 products). Set \"Max products\" to 0 to get everything.",
            "default": false
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum products per store for each search term, each category, and for the full catalog. 0 = no limit.",
            "default": 100
          },
          "oneRowPer": {
            "title": "One row per",
            "enum": [
              "variant",
              "product"
            ],
            "type": "string",
            "description": "\"Variant\" returns every size / flavour / colour as its own row with its own SKU, UPC and exact price (best for price tracking and UPC matching). \"Product\" returns one row per product with a price range.",
            "default": "variant"
          },
          "onlyChanged": {
            "title": "Only new or changed products (price monitoring)",
            "type": "boolean",
            "description": "Remember prices and stock between runs with the same input, and return only products that are new, changed price, or went in/out of stock since the last run. Each row gets changeType, previousPrice and previousAvailability. Schedule the actor to get a daily price-change feed.",
            "default": false
          },
          "includeStoreInventory": {
            "title": "Include store IDs with stock (PetSmart)",
            "type": "boolean",
            "description": "Add the list of PetSmart store numbers that have each SKU in stock. The count of stores is always included.",
            "default": false
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel requests per store. The default is safe.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Your own proxies (optional)",
            "type": "object",
            "description": "Leave empty: the actor picks the right Apify proxy for each store automatically (datacenter for PetSmart, residential Canada for Visions). Only fill this in to send traffic through your own proxy URLs first."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}