Casper Scraper avatar

Casper Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Casper Scraper

Casper Scraper

Scrape Casper.com mattresses, pillows, bedding, bed frames & furniture. Browse by category, search by keyword, or look up exact products by handle/URL. Full pricing (incl. sale pricing), variants, images, descriptions, and Yotpo review ratings. No auth, no proxy.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

Scrape Casper.com — mattresses, pillows, bedding, bed frames, adjustable bases, headboards, furniture and accessories. Browse by category, search by keyword, look up exact products by handle or URL, or pull customer reviews. Get full pricing per size/color variant (including sale pricing when the retailer sets it), product images, descriptions, stock status, and Yotpo review ratings — down to individual review text. HTTP-only via Casper's public storefront JSON API. No auth, no proxy, no cookies.

What this actor does

  • Four modes: category (browse), search (keyword), product (exact lookup by handle or URL), reviews (individual customer reviews for a product)
  • 28 curated categories: mattresses, pillows, bedding, sheets, duvets, bed frames, adjustable bases, headboards, furniture, accessories, clearance, best sellers, and more
  • Full variant pricing: every size/color option (Twin, Queen, King, Indigo, Olive, etc.) with price, sale price when applicable, stock status and a variant-specific photo when Casper sets one
  • Review ratings & reviews: average star rating, total review count and star-rating breakdown per product, plus individual review text/rating/author/date via mode=reviews
  • Client-side sorting: by price, title, rating, or newest — on top of Casper's own default ranking
  • Filters: price range, size, color, in-stock only
  • Empty fields are omitted — a field only appears on a record when real data was found for it

Output per product (category / search / product modes)

  • handle — Casper product handle (URL slug)
  • productId — Shopify product ID
  • title, description — product name and plain-text description
  • vendor — always Casper
  • productType — e.g. Mattress, Pillows, Bedding
  • tags[] — internal Casper product tags (useful for cross-referencing model lines)
  • optionNames[] — variant option names, e.g. ["Size"] or ["Size", "Color"]
  • variants[] — one entry per purchasable size/color, each with:
    • variantId, title (e.g. Queen), price
    • size, color — the variant's own size/color values, when the product has that option axis
    • compareAtPrice, onSale, discountPercent — only present when the variant is genuinely discounted
    • sku, barcode, available, weight, weightUnit
    • imageUrl — the variant/color-specific product photo, when Casper sets one distinct from the main gallery
  • priceMin, priceMax — lowest/highest variant price on the product
  • onSale, maxDiscountPercent — present when at least one variant is discounted
  • inStock — true if at least one size/color variant is currently purchasable
  • imageUrls[], imageUrl — all product image URLs, plus the first as a convenience field
  • productUrl — canonical casper.com/products/... page
  • createdAt, updatedAt — when the product was added to / last updated in Casper's catalog
  • averageRating, totalReviews, starDistribution — from Casper's Yotpo review widget: overall rating, review count, and a {"1":count, ..., "5":count} breakdown (only when Casper has published reviews for the product; distribution omits star levels with zero reviews)
  • recordType: "product", scrapedAt

Output per review (reviews mode)

  • reviewId — Yotpo review ID
  • productHandle, productTitle, productUrl — the product the review belongs to
  • rating — 1–5 star rating given by the reviewer
  • title, content — review headline and body text
  • authorName — display name of the reviewer
  • verifiedBuyer — true when Yotpo confirms the reviewer purchased the product
  • createdAt — when the review was posted
  • sentimentScore — Yotpo's automated sentiment score for the review text (-1 to 1)
  • votesUp, votesDown — "helpful"/"not helpful" vote counts, when other shoppers have voted
  • language — detected review language
  • isIncentivized — true when the review was collected as part of an incentivized campaign
  • recordType: "review", scrapedAt

Input

FieldTypeDefaultDescription
modestringcategorycategory / search / product / reviews
categorystringmattressesCategory to browse (mode=category) — see the dropdown for all 28 options
searchQuerystringKeyword search, e.g. cooling pillow (mode=search)
productHandlesarrayProduct handles or full casper.com/products/... URLs (mode=product, mode=reviews)
sortBystringdefaultdefault / price-ascending / price-descending / title-ascending / title-descending / newest / rating-descending
priceMinintegerMinimum price in USD
priceMaxintegerMaximum price in USD
sizestringOnly include products offering this exact size (e.g. Queen, King)
colorstringOnly include products offering this exact color (e.g. Indigo, Olive)
inStockOnlybooleanfalseExclude products where every variant is out of stock
includeRatingsbooleantrueEnrich each product with its Yotpo rating summary (average, count, star breakdown)
reviewStarRatingstringanyOnly fetch reviews with this exact star rating (mode=reviews)
maxItemsinteger30Hard cap on emitted records — products, or individual reviews when mode=reviews (1–300)

Example: browse the Mattresses category, cheapest first

{
"mode": "category",
"category": "mattresses",
"sortBy": "price-ascending",
"maxItems": 20
}

Example: search for cooling pillows under $150

{
"mode": "search",
"searchQuery": "cooling pillow",
"priceMax": 150,
"maxItems": 25
}

Example: look up specific products by handle or URL

{
"mode": "product",
"productHandles": [
"casper-one-foam",
"https://casper.com/products/casper-dream-hybrid",
"original-pillow"
]
}

Example: get 5-star reviews for a product

{
"mode": "reviews",
"productHandles": ["casper-one-foam"],
"reviewStarRating": "5",
"maxItems": 50
}

Use cases

  • Price monitoring — track Casper mattress and bedding prices over time, including sale detection
  • Competitive intelligence — compare Casper's catalog, pricing tiers and review scores against other DTC mattress brands
  • Affiliate & content sites — pull product data, images and ratings for mattress review/comparison content
  • Market research — analyze Casper's product line breadth (mattress families, bedding materials, accessories)
  • Deal aggregators — surface Casper's clearance and best-seller collections
  • Voice of customer / review analysis — pull individual review text, ratings and sentiment for a product line
  • Inventory & merchandising checks — spot out-of-stock sizes/colors across the catalog with inStockOnly

FAQ

What's the data source? Casper's public Shopify storefront JSON API (casper.com/collections/*.json, casper.com/products/*.json, casper.com/search/suggest.json) plus Casper's public Yotpo review-widget API for ratings. No login or API key required.

Is this affiliated with Casper? No — this is an independent third-party actor that reads Casper's public storefront data. It is not affiliated with or endorsed by Casper Sleep Inc.

Why do some products not have averageRating/totalReviews? Those fields are only included when Casper's review platform (Yotpo) has published review data for that specific product. Newer or low-traffic products (e.g. replacement parts) sometimes have no reviews yet — the field is omitted rather than shown as zero.

Why do some products not show sale pricing (compareAtPrice/onSale)? Sale pricing reflects whatever Casper has configured for a given variant at the time of the scrape. It's genuinely intermittent — Casper runs promotions seasonally (holidays, Casper's own sale events) rather than year-round, so at any given moment many or most variants may show regular pricing only. When Casper does mark a variant down, compareAtPrice, onSale, and discountPercent appear automatically.

How does search work if there's no full-text search API? Casper exposes a predictive search endpoint that returns Casper's own top ~10 relevance-ranked matches. For broader searches (more than 10 results requested), the actor supplements this with a keyword match across product titles, types and tags from the full catalog listing, so you still get complete coverage for common queries.

Does sortBy call Casper's own sort feature? Casper's collection/search JSON endpoints don't honor a server-side sort parameter, so sorting is applied to the fetched results directly. default preserves Casper's own category/relevance ordering; the other options re-order by price, title, rating, or creation date.

How do the size/color filters work when a product has both options? Each filter is matched independently against the product's full option set — a product passes size=Queen if Queen is offered in any color, and passes color=Indigo if Indigo is offered in any size. Using both together narrows to products offering both values (not necessarily as the same purchasable combination). Products that don't have a size or color option at all are always included, since the filter simply doesn't apply to them.

Why is inStock sometimes missing, especially with mode=product? Casper's category/search listings include stock status for every variant, so inStock and the inStockOnly filter work fully there. Casper's single-product lookup endpoint (used by mode=product) doesn't include stock status at all, so inStock is simply omitted on direct handle/URL lookups — size, color, pricing and every other field are unaffected.

Why do some products not have size/color on their variants? Casper only uses two variant option axes site-wide: Size and Color. Single-option products (most mattresses, replacement parts) only populate size; multi-color products (sheets, duvet covers, pillowcases) populate both. A product with neither (e.g. a single-SKU accessory) omits both fields.

What does mode=reviews return, and is it complete? It returns individual customer reviews from Casper's public Yotpo review widget — the same reviews shown on the product page — sorted newest-first. reviewStarRating filters to an exact star rating (not "at least"). Reviews are fetched live per run, so very recently deleted/moderated reviews may briefly still appear if Yotpo's cache hasn't updated yet.

Why do some reviews not have authorName, votesUp/votesDown, or language? Those fields are only included when Casper/Yotpo actually recorded them for that specific review — an anonymous reviewer, a review nobody has voted on yet, or an unclassified language are all real, common cases, so the field is omitted rather than shown as empty/zero.

What's in the "All Products" category? It mirrors Casper's own storefront "All Products" collection exactly, which is heavily weighted toward bundle SKUs (a mattress + accessories bundle sold as one product per size/color combination) — so most records you'll see there are bundle variants rather than standalone mattresses. It also includes a small number (typically 1-2%) of administrative line items Casper itself lists as products, such as a recycling fee or remote-area shipping surcharge. If you want only standalone products, use a specific category (mattresses, pillows, bedding, etc.) instead of all.

Are prices in USD? Yes, Casper.com serves the US market in USD.

How fresh is the data? Every run fetches live data directly from casper.com at request time — there is no caching.