Bowmark AIdocs

Proven Winners

Proven Winners' own Container Recipe Finder (1,074+ real container-planting recipes, filterable by season, pot style, pot size, color scheme, exposure and…

Proven Winners' own Container Recipe Finder (1,074+ real container-planting recipes, filterable by season, pot style, pot size, color scheme, exposure and keyword) plus a recipe's exact plant list off its own combination page.

Domain: provenwinners.com

Also known as: Proven Winners, provenwinners.com, Proven Winners ColorChoice

Call it directly

bowmark.providers.provenwinners.searchContainerRecipes(filters?: ContainerRecipeFilters): Promise<ContainerRecipeSearchResult>
bowmark.providers.provenwinners.getRecipeDetails(slug: string): Promise<ContainerRecipeDetails>

Functions

FunctionWhat it does
searchContainerRecipesRuns Proven Winners' own Container Recipe Finder — season, pot style, pot size (with an operator), color scheme, exposure and free-text keyword — and returns the matching recipes with their…
getRecipeDetailsReads one container recipe's own combination page — season(s), container size, and the exact plant list with each plant's role (Filler/Spiller/Thriller), quantity and buy-page link.

Types

interface ContainerRecipeFilters {
  keyword?: string;
  season?: "early_spring" | "spring" | "summer" | "fall" | "winter";
  potStyle?: "hanging_basket" | "upright_container" | "wall_sconce" | "window_box";
  colorScheme?: "complementary" | "accented_neutral" | "analogous" | "earth_tones" | "monochromatic" | "neutral" | "pastel_mix" | "patriotic" | "split_analogous" | "split_complementary" | "tetradic" | "triadic" | "tropical" | "vibrant_mix" | "warm_and_cool";
  exposure?: "bright_light" | "full_shade" | "high" | "low" | "medium" | "part_shade" | "part_shade_to_shade" | "part_sun_to_shade" | "part_sun_to_sun" | "sun" | "sun_or_shade";
  potSizeInches?: number;
  potSizeOp?: "lt" | "lte" | "eq" | "neq" | "gte" | "gt";
  page?: number;
}
interface ContainerRecipeSummary {
  slug: string;
  title: string;
  url: string;
  potSizeInches: number | null;
  plants: Array<{ quantity: number; name: string; url: string }>;
}
interface ContainerRecipeSearchResult {
  recipes: ContainerRecipeSummary[];
  totalCount: number;
}
interface ContainerRecipeDetails {
  slug: string;
  title: string;
  url: string;
  description: string;
  seasons: string[];
  potSizeInches: number | null;
  plants: Array<{ role: string; quantity: number; name: string; url: string }>;
}

Examples

// a hanging basket recipe for full sun, red-and-white, 12"+ pot
const { recipes, totalCount } = await bowmark.providers.provenwinners.searchContainerRecipes({
  potStyle: "hanging_basket",
  exposure: "sun",
  colorScheme: "patriotic",
  potSizeInches: 12,
  potSizeOp: "gte",
});
log(`${totalCount} recipes match; first: ${recipes[0]?.title} -> ${recipes[0]?.url}`);
// the exact plant list for one recipe found above
const details = await bowmark.providers.provenwinners.getRecipeDetails(recipes[0].slug);
log(details.plants.map(p => `${p.quantity}x ${p.name} (${p.role})`).join(", "));