Saatva
Saatva's mattress catalogue and its own mattress-quiz recommendation logic — every mattress line Saatva currently sells with every buyable variant's size,…
Saatva's mattress catalogue and its own mattress-quiz recommendation logic — every mattress line Saatva currently sells with every buyable variant's size, comfort level, sleep-position fit, stock and price, plus a real computed recommendation from stated sleep position, weight, and firmness preference, each with the exact pre-selected-SKU product link to buy it.
Domain: saatva.com
Also known as: Saatva, saatva, SAATVA, Saatva Mattress, Saatva Company
Call it directly
bowmark.providers.saatva.listMattresses(): Promise<SaatvaMattress[]>
bowmark.providers.saatva.recommendMattress(answers: MattressQuizAnswers): Promise<SaatvaRecommendation[]>Functions
| Function | What it does |
|---|---|
listMattresses | Lists every mattress product line Saatva currently sells with every buyable variant — size, comfort level, sleep-position fit, stock and price — read out of the same catalogue the site's… |
recommendMattress | Runs Saatva's mattress-quiz goal-flow (saatva.com/mattress-quiz) for a stated sleep position and firmness preference, ranking every mattress line against the SAME live catalogue the site's… |
Types
// Saatva's OWN shapes — not a capability contract.
interface MattressQuizAnswers {
sleepPosition: "side" | "back" | "stomach";
feel: "soft" | "medium" | "firm";
sharesBed?: boolean; // optional — narrows scoring further when given
}
interface SaatvaVariant {
sku: string;
name: string;
size: string | null;
comfortLevel: string | null; // Saatva's own label, e.g. "Medium Firm"
mattressType: string | null; // "Standard" | "Split" | "Upper-Flex"
price: number | null;
inStock: boolean;
sleepPositions: string[]; // e.g. ["Side Sleeper", "Back Sleeper"]
url: string; // pre-selected-SKU product page, one click from cart
}
interface SaatvaMattress {
productCode: string;
name: string;
url: string;
variants: SaatvaVariant[];
}
interface SaatvaRecommendation {
productCode: string;
name: string;
score: number; // higher is a better match; ties break on lower price
matchedOn: string[]; // plain-language reasons this variant scored
bestVariant: SaatvaVariant | null;
}Examples
// Which Saatva mattress should a side sleeper who wants something not too
// firm buy, and where do they check out?
const recs = await bowmark.providers.saatva.recommendMattress({ sleepPosition: "side", feel: "medium" });
const top = recs[0];
return { name: top.name, why: top.matchedOn, buyUrl: top.bestVariant?.url };// What mattresses does Saatva sell under $2,500 in stock right now?
const catalog = await bowmark.providers.saatva.listMattresses();
return catalog
.flatMap((m) => m.variants.filter((v) => v.inStock && (v.price ?? Infinity) <= 2500).map((v) => ({ name: v.name, price: v.price, url: v.url })))
.sort((a, b) => (a.price ?? 0) - (b.price ?? 0));