Bowmark AIdocs

Perennials & Sutherland

Reads Perennials & Sutherland's public rug catalog (perennialsandsutherland.com) — search for a design, read one variant's real trade price, its sibling…

Reads Perennials & Sutherland's public rug catalog (perennialsandsutherland.com) — search for a design, read one variant's real trade price, its sibling colorway/size choices, and its unauthenticated PDF tearsheet.

Domain: perennialsandsutherland.com

Also known as: Perennials & Sutherland, Perennials and Sutherland, Perennials & Sutherland, LLC, perennialsandsutherland.com, Perennials

Call it directly

bowmark.providers.perennialsandsutherland.searchRugs(query: string): Promise<RugSearchResult[]>
bowmark.providers.perennialsandsutherland.getRugVariant(url: string): Promise<RugVariant>
bowmark.providers.perennialsandsutherland.getTearsheetUrl(productId: string): Promise<TearsheetUrl>

Functions

FunctionWhat it does
searchRugsSearches Perennials & Sutherland's live public rug catalog and returns each match's product URL, sku, id and name.
getRugVariantReads one rug product-page variant (design + colorway + size) — the real trade price, sku, size, and every sibling colorway/size choice available on that same design — straight off the…
getTearsheetUrlReturns the direct, unauthenticated PDF tearsheet download URL for one rug variant (spec sheet keyed to that exact product id) — confirmed to serve a real application/pdf with no login and…

Types

interface RugSearchResult {
  sku: string;
  id: string;
  name: string;
  colorway: string;
  url: string;
}

interface RugVariantOption {
  sku: string;
  variationId: number;
  name: string;
}

interface RugVariant {
  sku: string;
  id: number;
  name: string;
  url: string;
  price: number;
  currency: string;
  colorways: RugVariantOption[];
  sizes: RugVariantOption[];
  explorugUrl: string | null;
  tearsheetUrl: string;
}

interface TearsheetUrl {
  productId: string;
  url: string;
}

Examples

const rugs = await bowmark.providers.perennialsandsutherland.searchRugs("cercle"); // => RugSearchResult[]
const variant = await bowmark.providers.perennialsandsutherland.getRugVariant(rugs[0].url); // => RugVariant, real trade price + sibling colorways/sizes