{
  "openapi": "3.0.1",
  "info": {
    "title": "Vitacost Scraper",
    "description": "Scrape vitamins, supplements, and health foods from vitacost.com. Browse by category, search by keyword, or look up specific products. Get price, sale price, brand, size, and stock status. No login, no proxy required.",
    "version": "1.0",
    "x-build-id": "2BXSMUdZNRSfncsP5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~vitacost-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-vitacost-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/crawlerbros~vitacost-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-vitacost-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/crawlerbros~vitacost-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-vitacost-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "byCategory",
              "search",
              "byHandles",
              "relatedProducts"
            ],
            "type": "string",
            "description": "`byCategory` browses a category with full pagination. `search` runs Vitacost's in-store search (top 10 most relevant matches). `byHandles` looks up specific products by handle or URL. `relatedProducts` returns Vitacost's own \"customers also viewed\" recommendations for each seed product (top 10 per seed).",
            "default": "byCategory"
          },
          "category": {
            "title": "Category (mode = byCategory)",
            "enum": [
              "supplements",
              "vitamins",
              "minerals",
              "herbs",
              "omegas-fish-oils-epa-dha",
              "bone-joint-cartilage",
              "vitamin-e",
              "hair-skin-nails",
              "greens-superfoods",
              "antioxidants",
              "sleep",
              "womens-health",
              "mens-health",
              "weight-management",
              "amino-acids",
              "brain-cognitive",
              "eye-ear-nose",
              "detox-cleanse-formulas",
              "mushrooms",
              "childrens-health",
              "sports-supplements",
              "protein",
              "creatine",
              "pre-workout-supplements",
              "muscle-builders",
              "muscle-recovery-supplements",
              "electrolytes-hydration",
              "sports-bars-snacks",
              "bath-shower",
              "body-care",
              "essential-oils-aromatherapy",
              "eye-care",
              "hair-care",
              "lip-care",
              "medicine-cabinet",
              "mens-grooming",
              "personal-care",
              "sunscreen",
              "cleansers",
              "face-moisturizers-creams",
              "k-beauty",
              "makeup",
              "treatments-serums",
              "baking-flour-mixes",
              "bars",
              "cereals-breakfast-foods",
              "chocolate-candy",
              "condiments-sauces-spreads",
              "herbs-spices",
              "honey-sweeteners",
              "oils-vinegar",
              "packaged-prepared-foods",
              "snacks",
              "tea-beverages",
              "cleaning",
              "drinkware",
              "home-accessories",
              "home-fragrance",
              "kitchen-supplies",
              "baby-kids-feeding",
              "diapering",
              "pet-food",
              "pet-health"
            ],
            "type": "string",
            "description": "A Vitacost category to browse. Covers vitamins, supplements, sports nutrition, personal care, beauty, grocery/health food, home, baby & kids, and pet health.",
            "default": "vitamins"
          },
          "categoryHandle": {
            "title": "Custom category handle (optional override)",
            "type": "string",
            "description": "Advanced: any Vitacost collection handle not in the dropdown above (the last segment of `vitacost.com/collections/<handle>`). Overrides `category` when set."
          },
          "searchQuery": {
            "title": "Search query (mode = search)",
            "type": "string",
            "description": "Free-text keyword search, e.g. `vitamin c`, `turmeric`, `probiotics`. Returns Vitacost's top 10 most relevant matches (a platform limit on predictive search)."
          },
          "productHandles": {
            "title": "Product handles or URLs (mode = byHandles / relatedProducts)",
            "type": "array",
            "description": "Exact product handles (e.g. `vitacost-vitamin-c-500-mg-rose-hips-100-tablets-1234`) or full product URLs. For `byHandles`, each is looked up individually. For `relatedProducts`, each is used as a seed to fetch Vitacost's own recommended/related products (up to 10 per seed).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by (mode = byCategory)",
            "enum": [
              "best-selling",
              "manual",
              "price-ascending",
              "price-descending",
              "title-ascending",
              "title-descending",
              "created-ascending",
              "created-descending"
            ],
            "type": "string",
            "description": "Sort order applied to category browse results.",
            "default": "best-selling"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap on the number of products returned (1-10000).",
            "default": 20
          },
          "imageQuality": {
            "title": "Image URL quality",
            "enum": [
              "small",
              "medium",
              "large",
              "grande",
              "1024x1024",
              "2048x2048",
              "master"
            ],
            "type": "string",
            "description": "Shopify CDN serves multiple image sizes. `master` returns the original.",
            "default": "master"
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "maximum": 100000,
            "type": "number",
            "description": "Drop products whose lowest price is below this threshold."
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "maximum": 100000,
            "type": "number",
            "description": "Drop products whose lowest price is above this threshold."
          },
          "onSaleOnly": {
            "title": "On-sale products only",
            "type": "boolean",
            "description": "Only emit products with an active discount (compare-at price higher than the current price).",
            "default": false
          },
          "minDiscountPercent": {
            "title": "Min discount %",
            "minimum": 0,
            "maximum": 99,
            "type": "integer",
            "description": "Only emit products discounted by at least this percentage."
          },
          "brandContains": {
            "title": "Brand contains",
            "type": "string",
            "description": "Only emit products whose brand name contains this substring (case-insensitive)."
          },
          "productTypeContains": {
            "title": "Product type contains",
            "type": "string",
            "description": "Only emit products whose Shopify product type contains this substring."
          },
          "titleContains": {
            "title": "Title contains",
            "type": "string",
            "description": "Only emit products whose title contains this substring (case-insensitive)."
          },
          "tagAnyOf": {
            "title": "Tag allowlist (any of)",
            "type": "array",
            "description": "Only emit products whose tags contain at least one of these (case-insensitive substring match).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "tagNoneOf": {
            "title": "Tag blocklist",
            "type": "array",
            "description": "Drop products whose tags contain any of these substrings.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "badgesAnyOf": {
            "title": "Badge allowlist (any of)",
            "type": "array",
            "description": "Only emit products carrying at least one of these promotional/store badges, e.g. `Vitacost Brands` (private label) or `SuperDeal` (deep-discount promo). Case-insensitive substring match.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "skuContains": {
            "title": "SKU contains",
            "type": "string",
            "description": "Only emit products with a SKU containing this substring."
          },
          "includeUnavailable": {
            "title": "Include out-of-stock products",
            "type": "boolean",
            "description": "When false (default), drop products that are entirely out of stock.",
            "default": false
          },
          "useApifyProxy": {
            "title": "Use Apify proxy",
            "type": "boolean",
            "description": "Route requests through Apify proxy from the start. Vitacost usually works from datacenter IPs without proxy — the actor automatically falls back to Apify proxy on the first failure regardless of this setting.",
            "default": false
          },
          "requestDelaySecs": {
            "title": "Delay between page fetches (seconds)",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Pause between successive page fetches. Lower = faster, higher = more polite.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}