{
  "openapi": "3.0.1",
  "info": {
    "title": "REI Scraper: Outdoor Gear, Sale Prices & Product Specs",
    "description": "Extract REI.com products at super-fast speeds with 35+ detailed columns including bar codes, sale prices, sizing, and stock. Includes an automated block solver that works in the background. Stable design with easy downloads to Excel, CSV, and Google Sheets. $14.99 per 1,000 results.",
    "version": "0.1",
    "x-build-id": "5kUjxcMI1Gr7hF1Mg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~rei-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-rei-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/getascraper~rei-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-rei-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/getascraper~rei-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-rei-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",
        "required": [
          "proxyConfiguration"
        ],
        "properties": {
          "categories": {
            "title": "REI Categories",
            "type": "array",
            "description": "REI category slugs to browse. Each slug is the part of the URL after /c/. Example: 'backpacking-sleeping-bags' becomes /c/backpacking-sleeping-bags. Combine with brands to filter (e.g. all REI Co-op sleeping bags). Leave empty to skip category browsing.",
            "default": [
              "backpacking-sleeping-bags"
            ]
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "REI brand slugs to filter by. Each slug is the part of the URL after /b/. Example: 'rei-co-op' becomes /b/rei-co-op. Common brands: rei-co-op, the-north-face, patagonia, arc-teryx, black-diamond, smartwool, merrell, salomon, osprey.",
            "default": [
              "rei-co-op"
            ]
          },
          "activity": {
            "title": "Activity",
            "enum": [
              "",
              "hiking",
              "climbing",
              "camping",
              "running",
              "snow",
              "water",
              "cycle",
              "travel"
            ],
            "type": "string",
            "description": "Filter products by primary outdoor activity. Combines with the category list to scope the crawl. Leave blank to skip activity filtering.",
            "default": ""
          },
          "gender": {
            "title": "Gender",
            "enum": [
              "",
              "mens",
              "womens",
              "kids",
              "unisex"
            ],
            "type": "string",
            "description": "Filter products by gender category. Leave blank to include all genders.",
            "default": ""
          },
          "startUrls": {
            "title": "Direct REI URLs",
            "type": "array",
            "description": "Paste full REI URLs (one per line). Mix category, brand, product, or search URLs. The auto-detected path overrides the category/brand/activity/gender inputs above for any URL you provide.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "onSaleOnly": {
            "title": "On Sale Only",
            "type": "boolean",
            "description": "Return only products currently on sale. Internally appends ?r=sale to category URLs.",
            "default": false
          },
          "inStockOnly": {
            "title": "In Stock Only",
            "type": "boolean",
            "description": "Skip products that are OutOfStock, PreOrder, Discontinued, or BackOrder.",
            "default": false
          },
          "minPrice": {
            "title": "Minimum Price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip anything cheaper than this. Set to 0 to skip the filter.",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum Price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip anything more expensive than this. Set to 0 to skip the filter.",
            "default": 0
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only include products with an average rating at or above this value (0 to 5). Set to 0 to skip.",
            "default": 0
          },
          "includeReviews": {
            "title": "Include Top Reviews",
            "type": "boolean",
            "description": "Fetch each product's review page and attach the top reviews (rating, title, body, author, date). Roughly 5x slower per product. Turn off for cheap price-monitoring runs.",
            "default": false
          },
          "includeSpecs": {
            "title": "Include Full Specifications",
            "type": "boolean",
            "description": "Fetch each product's detail page for the full specification table (weight, materials, temperature ratings, etc.). On by default; turn off for list-only runs.",
            "default": true
          },
          "maxItems": {
            "title": "Max Products",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most products to return across all input sources. Higher numbers mean longer runs and higher cost. Cap at 100,000.",
            "default": 100
          },
          "maxConcurrency": {
            "title": "Requests In Parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many requests the Actor runs at the same time. Default 3 is safe for Cloudflare. Lower if you hit 403s.",
            "default": 3
          },
          "debugLogging": {
            "title": "Show Detailed Logs",
            "type": "boolean",
            "description": "Turn on to see exactly what the Actor is doing step by step. Useful if something goes wrong, but makes logs noisy. Off by default.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Settings",
            "type": "object",
            "description": "REI is behind Cloudflare. This Actor needs Apify's residential proxy (real home internet connections) to pass the challenge. Default works for most runs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}