Vessi
Vessi's live Shopify catalog (every style, colorway, size, price and stock) plus its own per-style fit-guide — a size-offset recommendation computed from…
Vessi's live Shopify catalog (every style, colorway, size, price and stock) plus its own per-style fit-guide — a size-offset recommendation computed from real return/exchange volume for that exact style, not a static chart — off the storefront's own live data rather than a generic guess.
Domain: vessi.com
Also known as: Vessi, Vessi Footwear, vessi.com
Call it directly
bowmark.providers.vessi.listProducts(productType?: string): Promise<VessiProduct[]>
bowmark.providers.vessi.searchProducts(query: string): Promise<VessiProduct[]>
bowmark.providers.vessi.getProduct(handle: string): Promise<VessiProduct>
bowmark.providers.vessi.getFitGuide(handle: string): Promise<VessiFitGuide | null>Functions
| Function | What it does |
|---|---|
listProducts | Lists every Vessi product from the storefront's own live catalog — colorways, sizes, live prices and stock. |
searchProducts | Searches the live catalog by a fuzzy match on product title or handle, e.g. "weekend classic" or "tidal sneaker". |
getProduct | Reads one product's complete colorway x size grid with live price, SKU and availability — a handle, e.g. "womens-weekend-classic-marble-white". THROWS on an unrecognized handle, naming… |
getFitGuide | Reads Vessi's own computed fit-guide for one style — a size-offset recommendation per foot profile (standard/wide/narrow/between), each backed by that style's real return/exchange data (a… |
Types
// Vessi's OWN shapes — not a capability contract.
interface VessiVariant {
productHandle: string;
productTitle: string;
colorway: string;
size: string;
sku: string;
price: number;
priceFormatted: string;
available: boolean;
}
interface VessiProduct {
handle: string;
title: string;
productType: string; // "Shoes" | "Bags" | "Socks" | "Gloves" | "Hats" | "Clothing"
url: string;
colorways: string[];
sizes: string[];
priceRange: { min: number; max: number };
variants: VessiVariant[];
}
interface VessiFitGuide {
productHandle: string;
colorwayName: string;
styleDirection: string; // e.g. "snug"
introCopy: string; // the site's own plain-language fit summary
chips: string[]; // e.g. ["whole_sizes_only", "Slightly snug"]
sizeChart: { gender: string; headers: string[]; rows: string[][] };
// keyed by foot profile, e.g. "standard" | "wide" | "narrow" | "between"
recommendations: Record<string, { offsetSizes: number; reason: string }>;
returnData: {
snugPct: number;
loosePct: number;
otherPct: number;
ratioLabel: string; // e.g. "2.2 to 1"
window: string; // e.g. "H1 2026 · current (gendered) SKUs"
returnedUnits: number; // e.g. 4826
};
}Examples
// The goal-flow: read Vessi's own real fit recommendation, not a static chart.
const fitGuide = await bowmark.providers.vessi.getFitGuide("womens-weekend-classic-marble-white");
return {
advice: fitGuide?.introCopy,
wideFootOffset: fitGuide?.recommendations.wide?.offsetSizes,
returnedUnitsThisWindow: fitGuide?.returnData.returnedUnits,
};// Find a style, then check the exact size/color it's in stock in.
const matches = await bowmark.providers.vessi.searchProducts("weekend classic");
const product = await bowmark.providers.vessi.getProduct(matches[0]!.handle);
return { colorways: product.colorways, sizes: product.sizes, priceRange: product.priceRange };