Casper Scraper
Pricing
from $3.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
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 IDtitle,description— product name and plain-text descriptionvendor— alwaysCasperproductType— e.g.Mattress,Pillows,Beddingtags[]— 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),pricesize,color— the variant's own size/color values, when the product has that option axiscompareAtPrice,onSale,discountPercent— only present when the variant is genuinely discountedsku,barcode,available,weight,weightUnitimageUrl— the variant/color-specific product photo, when Casper sets one distinct from the main gallery
priceMin,priceMax— lowest/highest variant price on the productonSale,maxDiscountPercent— present when at least one variant is discountedinStock— true if at least one size/color variant is currently purchasableimageUrls[],imageUrl— all product image URLs, plus the first as a convenience fieldproductUrl— canonicalcasper.com/products/...pagecreatedAt,updatedAt— when the product was added to / last updated in Casper's catalogaverageRating,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 IDproductHandle,productTitle,productUrl— the product the review belongs torating— 1–5 star rating given by the reviewertitle,content— review headline and body textauthorName— display name of the reviewerverifiedBuyer— true when Yotpo confirms the reviewer purchased the productcreatedAt— when the review was postedsentimentScore— Yotpo's automated sentiment score for the review text (-1 to 1)votesUp,votesDown— "helpful"/"not helpful" vote counts, when other shoppers have votedlanguage— detected review languageisIncentivized— true when the review was collected as part of an incentivized campaignrecordType: "review",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | category | category / search / product / reviews |
category | string | mattresses | Category to browse (mode=category) — see the dropdown for all 28 options |
searchQuery | string | – | Keyword search, e.g. cooling pillow (mode=search) |
productHandles | array | – | Product handles or full casper.com/products/... URLs (mode=product, mode=reviews) |
sortBy | string | default | default / price-ascending / price-descending / title-ascending / title-descending / newest / rating-descending |
priceMin | integer | – | Minimum price in USD |
priceMax | integer | – | Maximum price in USD |
size | string | – | Only include products offering this exact size (e.g. Queen, King) |
color | string | – | Only include products offering this exact color (e.g. Indigo, Olive) |
inStockOnly | boolean | false | Exclude products where every variant is out of stock |
includeRatings | boolean | true | Enrich each product with its Yotpo rating summary (average, count, star breakdown) |
reviewStarRating | string | any | Only fetch reviews with this exact star rating (mode=reviews) |
maxItems | integer | 30 | Hard 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.