# Onlyhearts (onlyhearts.com) product data API

> Search Onlyhearts products with StoreRouter’s API. Get prices, images, and details as JSON. See coverage and curl, Python, and TypeScript examples.

- Catalog key: `onlyhearts` (pass in `"catalogs"` to narrow a search to this store)
- Products: 945
- Snapshot: 2026-10-19T17:26:02Z (counts are approximate and refreshed about daily)
- Search endpoint: `POST https://api.storerouter.ai/v1/products/search`
- Human page: https://storerouter.ai/catalog-coverage/stores/onlyhearts
- Get an API key: https://platform.storerouter.ai/auth/organization

## Questions

### What does Onlyhearts sell?

Almost entirely Apparel & Accessories: 100% of its 945 products. Clothing is the largest department with 933 products, followed by Accessories (10) and Bags (2). The most common Onlyhearts categories are Underwear & Sleepwear (570), Tops (246) and Pants (23).

### How are Onlyhearts products categorized?

Into a shared taxonomy 6 levels deep. The first level separates Apparel & Accessories; the second separates departments such as Clothing; 6 levels down, categories are as specific as Camisoles (60 products). Every level is a search facet.

### What can I filter Onlyhearts products by?

73 searchable fields. Well-covered attributes include fabric (97% of products), neckline (41%) and sleeve length type (38%). For fabric, the most common values are Nylon / Polyamide, Elastane (Spandex / Lycra) and Lycra; for neckline, the most common values are Spaghetti Strap, V Neck and Scoop.

### Is this API provided by Onlyhearts or StoreRouter?

StoreRouter. One API key gives your app or agent access to Onlyhearts product data and thousands more stores.

### Can I get Onlyhearts product prices and stock status?

Yes. Bring pricing and availability into your shopping experience with structured data for selling prices, original prices, currency, and stock status.

### Can I get sizes and variants for Onlyhearts products?

Yes. Help shoppers find their perfect match with size, color, SKU, and stock details from product lookup.

### How fresh is the data?

StoreRouter continually recrawls product pages to update product details. This page tracks 945 Onlyhearts products, with coverage counts refreshed about daily.

### Where does the data come from?

Straight from onlyhearts.com. StoreRouter turns product pages into rich, searchable data—organized into consistent categories and attributes so your app can connect shoppers with the right products.

## Example product

### Silk Heritage Hearts Bias Bikini

This luxe silk makes this bikini is perfectly soft for special occasions.  100% Silk Dry clean only Made in NYC

Indexed response retrieved 2026-10-20T00:25:19.666Z. Price and availability may change.
Availability: In stock
Sizes: S, M, L

### Product details

Product content returned by the lookup API, ready for a product page.

```json
{
  "source": "indexed",
  "catalogKey": "onlyhearts",
  "product": {
    "title": "Silk Heritage Hearts Bias Bikini",
    "brand": {
      "name": "Only Hearts"
    },
    "productUrl": "https://onlyhearts.com/products/silk-heritage-hearts-bias-bikini",
    "currentPrice": 49,
    "currency": "USD",
    "inStock": true,
    "description": "This luxe silk makes this bikini is perfectly soft for special occasions.  100% Silk Dry clean only Made in NYC  ",
    "primaryImage": {
      "url": "https://cdn.shopify.com/s/files/1/0587/7943/5203/files/pinkheart_front.jpg?v=1767807601",
      "cdnUrl": "https://cdn.octogen.ai/76a5ab3ab067f3127663b42ba16bd6ed/c15f4bda8565c1881562026e038398ce.webp?request_id=82715c7e-262d-4084-a2c2-c43c4613600d",
      "width": 927,
      "height": 1408,
      "sizeBytes": 36592,
      "mimeType": "image/webp"
    },
    "details": {
      "materials": [
        "100% Silk"
      ],
      "fit": [],
      "dimensions": null,
      "patterns": []
    }
  }
}
```

### Enrichment

StoreRouter classification and attributes. Use attribute_handles as search facet values.

```json
{
  "source": "indexed",
  "catalogKey": "onlyhearts",
  "product": {
    "enrichment": {
      "type": "bikini underwear",
      "category_path": [
        "Apparel & Accessories",
        "Clothing",
        "Underwear & Sleepwear",
        "Underwear",
        "Bikini Underwear"
      ],
      "styles": [
        "feminine",
        "luxe"
      ],
      "attributes": {
        "Fabric": [
          "Silk"
        ],
        "Pattern": [
          "Hearts"
        ],
        "Care instructions": [
          "Dry Clean Only"
        ],
        "Underwear coverage style": [
          "Bikini"
        ]
      },
      "attribute_handles": {
        "fabric": [
          "fabric__silk"
        ],
        "pattern": [
          "pattern__hearts"
        ],
        "care_instructions": [
          "care_instructions__dry_clean_only"
        ],
        "underwear_coverage_style": [
          "underwear_coverage_style__bikini"
        ]
      }
    }
  }
}
```

## Query this store

```bash
curl -sS https://api.storerouter.ai/v1/products/search \
  -H "Authorization: Bearer $OCTOGEN_PLATFORM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "catalogs": ["onlyhearts"],
    "q": "underwear & sleepwear",
    "limit": 5
  }'
```

Selected matching products on October 20, 2026 (not the complete search response):

- [Silk Heritage Hearts Bias Bikini](https://onlyhearts.com/products/silk-heritage-hearts-bias-bikini) — $49.00
- [Sleeping Some Sleep Shorts](https://onlyhearts.com/products/sleeping-some-sleep-shorts) — $38.00
- [Poets Walk Belle Sleep T](https://onlyhearts.com/products/poets-walk-belle-sleep-t) — $78.00
- [Organic Cotton Boxer Shorts](https://onlyhearts.com/products/organic-cotton-boxer-shorts) — $64.00
- [Red Rose Sleep Shorts](https://onlyhearts.com/products/red-rose-sleep-shorts) — $19.50

## Prices

Median price $62 across 945 priced products. Current prices, assumed USD.

| Price range | Products |
| --- | --- |
| Under $15 | 3 |
| $15–$30 | 98 |
| $30–$45 | 150 |
| $45–$60 | 182 |
| $60–$75 | 153 |
| $75–$90 | 129 |
| $90–$105 | 88 |
| $105–$120 | 36 |
| $120–$135 | 38 |
| $135 and up | 68 |

## Categories

| Category | Products |
| --- | --- |
| Underwear & Sleepwear | 570 |
| Tops | 246 |
| Pants | 23 |
| Dresses | 22 |
| Swimwear | 20 |
| Jackets & Coats | 17 |
| Sets & Co-ords | 14 |
| Skirts | 11 |
| Jumpsuits & One-Pieces | 5 |
| Shorts | 5 |

## Searchable fields

Use `name` and a `value` as a facet: `{"name": "<name>", "values": ["<value>"]}`.

| name | Field | Source | Coverage | Distinct values | Top values (`value` = label, products) |
| --- | --- | --- | --- | --- | --- |
| `is_activewear` | Activewear | Merchant data | 100% | 2 | `false` = False, 936; `true` = True, 9 |
| `color` | Product color | Merchant data | 78% | 63 | `black` = Black, 504; `white` = White, 258; `beige` = Beige, 116; `pink` = Pink, 113; `ivory` = Ivory, 84 |
| `color_family` | Color family | Merchant data | 78% | 12 | `Black` = Black, 504; `White` = White, 324; `Blue` = Blue, 186; `Brown` = Brown, 164; `Pink` = Pink, 121 |
| `age_groups` | Age Group | StoreRouter enrichment | 100% | 1 | `adult` = Adult, 945 |
| `category_path.depth_0` | Category at depth 0 | StoreRouter enrichment | 100% | 1 | `apparel & accessories` = Apparel & Accessories, 945 |
| `category_path.depth_1` | Category at depth 1 | StoreRouter enrichment | 100% | 3 | `clothing` = Clothing, 933; `accessories` = Accessories, 10; `bags` = Bags, 2 |
| `category_path.depth_2` | Category at depth 2 | StoreRouter enrichment | 100% | 16 | `underwear & sleepwear` = Underwear & Sleepwear, 570; `tops` = Tops, 246; `pants` = Pants, 23; `dresses` = Dresses, 22; `swimwear` = Swimwear, 20 |
| `gender` | Gender | StoreRouter enrichment | 100% | 3 | `female` = Female, 932; `unisex` = Unisex, 11; `male` = Male, 2 |
| `pattern` | Pattern | StoreRouter enrichment | 100% | 33 | `pattern__solid` = Solid, 420; `pattern__lace` = Lace, 271; `pattern__floral` = Floral, 178; `pattern__dots` = Dots, 99; `pattern__hearts` = Hearts, 57 |
| `fabric` | Fabric | StoreRouter enrichment | 98% | 23 | `fabric__nylon` = Nylon / Polyamide, 583; `fabric__elastane` = Elastane (Spandex / Lycra), 468; `fabric__lycra` = Lycra, 175; `fabric__cotton` = Cotton, 159; `fabric__rayon` = Rayon, 147 |
| `category_path.depth_3` | Category at depth 3 | StoreRouter enrichment | 95% | 26 | `lingerie, intimates & shapewear` = Lingerie, Intimates & Shapewear, 217; `underwear` = Underwear, 195; `sleep & loungewear` = Sleep & Loungewear, 153; `tank tops & sleeveless` = Tank Tops & Sleeveless, 89; `bodysuits` = Bodysuits, 84 |
| `category_path.depth_4` | Category at depth 4 | StoreRouter enrichment | 75% | 29 | `bras` = Bras, 132; `camisoles & slips` = Camisoles & Slips, 82; `nightdresses & gowns` = Nightdresses & Gowns, 66; `thongs` = Thongs, 66; `women's briefs` = Women's Briefs, 54 |
| `general_clothing_features` | General Clothing Features | StoreRouter enrichment | 52% | 2 | `general_clothing_features__stretchable` = Stretchable, 490; `general_clothing_features__reversible` = Reversible, 3 |
| `care_instructions` | Care instructions | StoreRouter enrichment | 47% | 2 | `care_instructions__hand_wash` = Hand Wash, 432; `care_instructions__dry_clean_only` = Dry Clean Only, 9 |
| `neckline` | Neckline | StoreRouter enrichment | 42% | 20 | `neckline__spaghetti_strap` = Spaghetti Strap, 193; `neckline__v_neck` = V Neck, 73; `neckline__scoop` = Scoop, 50; `neckline__round` = Round, 41; `neckline__plunging` = Plunging, 27 |
| `sleeve_length_type` | Sleeve length type | StoreRouter enrichment | 39% | 4 | `sleeve_length_type__sleeveless` = Sleeveless, 235; `sleeve_length_type__long` = Long, 89; `sleeve_length_type__short` = Short, 37; `sleeve_length_type__3/4` = 3/4, 4 |
| `opacity_level` | Opacity | StoreRouter enrichment | 30% | 3 | `opacity_level__sheer` = Sheer, 208; `opacity_level__semi_sheer` = Semi-Sheer, 58; `opacity_level__opaque` = Opaque, 19 |
| `underwear_coverage_style` | Underwear coverage style | StoreRouter enrichment | 20% | 9 | `underwear_coverage_style__thong` = Thong, 66; `underwear_coverage_style__bikini` = Bikini, 41; `underwear_coverage_style__brief` = Brief, 36; `underwear_coverage_style__hipster` = Hipster, 25; `underwear_coverage_style__g_string` = G-String, 11 |
| `top_length_type` | Top length type | StoreRouter enrichment | 18% | 5 | `top_length_type__cropped` = Cropped, 89; `top_length_type__extended_bodysuit` = Extended / Bodysuit, 77; `top_length_type__hip_length` = Hip Length, 3; `top_length_type__tunic_length` = Tunic Length, 1; `top_length_type__waist_length` = Waist Length, 1 |
| `front_closure_type` | Front Closure | StoreRouter enrichment | 17% | 3 | `front_closure_type__none` = None, 133; `front_closure_type__buttons` = Buttons, 14; `front_closure_type__tie_lace_up` = Tie / Lace-Up, 10 |
| `sustainability_features` | Sustainability Features | StoreRouter enrichment | 16% | 7 | `sustainability_features__eco_friendly` = Eco-Friendly, 68; `sustainability_features__organic_materials` = Organic Materials, 65; `sustainability_features__sustainable_sourcing` = Sustainable Sourcing, 37; `sustainability_features__gots_certified` = GOTS Certified, 23; `sustainability_features__oeko_tex_standard_100` = OEKO-TEX Standard 100, 15 |
| `fit_top` | Fit (Tops) | StoreRouter enrichment | 15% | 4 | `fit_top__fitted` = Fitted, 140; `fit_top__flowy` = Flowy, 3; `fit_top__relaxed` = Relaxed, 3; `fit_top__oversized` = Oversized, 1 |
| `graphic_type` | Graphic Type | StoreRouter enrichment | 14% | 3 | `graphic_type__solid_no_print` = Solid / No Print, 134; `graphic_type__photo_art` = Photo Print / Art, 3; `graphic_type__slogan_text` = Text / Slogan Print, 1 |
| `bra_style` | Bra style | StoreRouter enrichment | 14% | 12 | `bra_style__bralette` = Bralette, 85; `bra_style__wireless` = Wireless, 83; `bra_style__underwire` = Underwire, 44; `bra_style__triangle` = Triangle, 30; `bra_style__plunge` = Plunge, 14 |
| `category_path.depth_5` | Category at depth 5 | StoreRouter enrichment | 13% | 6 | `camisoles` = Camisoles, 60; `lounge bottoms` = Lounge Bottoms, 36; `slips` = Slips, 22; `full body shapers` = Full Body Shapers, 2; `lounge tops` = Lounge Tops, 2 |
| `fabric_weight` | Fabric Weight | StoreRouter enrichment | 12% | 2 | `fabric_weight__sheer` = Sheer, 73; `fabric_weight__lightweight` = Lightweight, 61 |
| `bra_closure_type` | Bra closure type | StoreRouter enrichment | 11% | 3 | `bra_closure_type__pull-on-no-closure` = Pull-on (no Closure), 56; `bra_closure_type__back` = Back, 44; `bra_closure_type__front` = Front, 3 |
| `bra_features` | Bra features | StoreRouter enrichment | 11% | 4 | `bra_features__adjustable_strap` = Adjustable Strap, 85; `bra_features__underwire_support` = Underwire Support, 44; `bra_features__breathable_design` = Breathable Design, 2; `bra_features__convertible_strap` = Convertible Strap, 1 |
| `front_closure_length` | Front Closure Length | StoreRouter enrichment | 10% | 3 | `front_closure_length__none` = None, 88; `front_closure_length__full` = Full, 8; `front_closure_length__quarter` = Quarter, 1 |
| `bra_strap_type` | Bra strap type | StoreRouter enrichment | 10% | 5 | `bra_strap_type__adjustable` = Adjustable, 85; `bra_strap_type__standard` = Standard, 6; `bra_strap_type__racerback` = Racerback, 5; `bra_strap_type__convertible` = Convertible, 1; `bra_strap_type__cross_back` = Cross Back, 1 |
| `skirt_dress_length_type` | Skirt/Dress length type | StoreRouter enrichment | 10% | 4 | `skirt_dress_length_type__mini` = Mini, 52; `skirt_dress_length_type__maxi` = Maxi, 26; `skirt_dress_length_type__midi` = Midi, 15; `skirt_dress_length_type__knee` = Knee, 1 |
| `construction_detail` | Construction Detail | StoreRouter enrichment | 9% | 6 | `construction_detail__lace_trim` = Lace Trim, 46; `construction_detail__ruffled` = Ruffled, 30; `construction_detail__ruched` = Ruched, 5; `construction_detail__smocked` = Smocked, 2; `construction_detail__draped` = Draped, 1 |
| `nightgown_style` | Nightgown style | StoreRouter enrichment | 6% | 4 | `nightgown_style__chemise` = Chemise, 31; `nightgown_style__gown` = Gown, 14; `nightgown_style__babydoll` = Babydoll, 11; `nightgown_style__sleep_shirt` = Sleep Shirt, 3 |
| `collar_style` | Collar Style | StoreRouter enrichment | 6% | 4 | `collar_style__collarless` = Collarless, 31; `collar_style__crew` = Crew, 14; `collar_style__stand_funnel` = Stand / Funnel, 7; `collar_style__camp_revere` = Camp / Revere, 1 |
| `knit_style` | Knit Style | StoreRouter enrichment | 6% | 5 | `knit_style__rib_knit` = Rib Knit, 35; `knit_style__jersey` = Jersey, 10; `knit_style__pointelle` = Pointelle, 6; `knit_style__fine_gauge` = Fine Gauge, 2; `knit_style__waffle` = Waffle, 1 |
| `bra_coverage_style` | Bra coverage style | StoreRouter enrichment | 6% | 5 | `bra_coverage_style__minimal` = Minimal, 28; `bra_coverage_style__plunge` = Plunge, 21; `bra_coverage_style__demi` = Demi, 8; `bra_coverage_style__full` = Full Coverage, 1; `bra_coverage_style__high_neck` = High Neck, 1 |
| `pants_length_type` | Pants length type | StoreRouter enrichment | 5% | 6 | `pants_length_type__above_the_knee` = Above the Knee, 32; `pants_length_type__capri` = Capri, 6; `pants_length_type__cropped` = Cropped, 3; `pants_length_type__long` = Long, 3; `pants_length_type__ankle` = Ankle Length, 1 |
| `embellishments` | Embellishments | StoreRouter enrichment | 3% | 6 | `embellishments__embroidery` = Embroidery, 13; `embellishments__bow` = Bow, 10; `embellishments__applique` = Appliqué, 3; `embellishments__decorative_buttons` = Decorative Buttons, 3; `embellishments__sequins` = Sequins, 2 |
| `openwork_detail` | Openwork Detail | StoreRouter enrichment | 3% | 5 | `openwork_detail__cutouts` = Cutouts, 14; `openwork_detail__fishnet` = Fishnet, 6; `openwork_detail__open_knit` = Open Knit, 5; `openwork_detail__eyelet` = Eyelet, 2; `openwork_detail__crochet` = Crochet, 1 |
| `sleeve_style` | Sleeve Style | StoreRouter enrichment | 3% | 11 | `sleeve_style__kimono` = Kimono, 8; `sleeve_style__puff` = Puff, 4; `sleeve_style__bishop` = Bishop, 3; `sleeve_style__ruffle` = Ruffle, 3; `sleeve_style__balloon` = Balloon, 2 |
| `dress_style` | Dress style | StoreRouter enrichment | 2% | 9 | `dress_style__gown` = Gown, 11; `dress_style__bodycon` = Bodycon, 9; `dress_style__slip` = Slip, 4; `dress_style__caftan` = Caftan, 1; `dress_style__empire_waist` = Empire Waist, 1 |
| `bra_support_level` | Bra support level | StoreRouter enrichment | 2% | 2 | `bra_support_level__light` = Light, 17; `bra_support_level__low` = Low, 4 |
| `fit_bottoms` | Fit | StoreRouter enrichment | 2% | 5 | `fit_bottoms__hip_hugging_skinny_fit` = Hip-Hugging (Skinny Fit), 8; `fit_bottoms__wide_leg_volume_fit` = Wide-Leg Volume Fit, 8; `fit_bottoms__loose_slouchy_fit` = Loose / Slouchy Fit, 3; `fit_bottoms__curved_volume_fit_barrel_hip` = Curved Volume Fit (Barrel Hip), 1; `fit_bottoms__kick_flare_fit_hip_fitted` = Kick-Flare Fit (Hip-Fitted), 1 |
| `pants_leg_shape` | Leg Shape | StoreRouter enrichment | 2% | 6 | `pants_leg_shape__skinny` = Skinny, 8; `pants_leg_shape__wide_leg` = Wide Leg, 8; `pants_leg_shape__flare` = Flare, 2; `pants_leg_shape__barrel_balloon` = Barrel / Balloon, 1; `pants_leg_shape__jogger` = Jogger, 1 |
| `season` | Season | StoreRouter enrichment | 2% | 2 | `season__warm_weather` = Warm Weather, 18; `season__cool_weather` = Cool Weather, 1 |
| `intimates_unique_features` | Intimates Features | StoreRouter enrichment | 2% | 1 | `intimates_unique_features__seamless` = Seamless, 14 |
| `waist_rise` | Waist rise | StoreRouter enrichment | 2% | 3 | `waist_rise__high` = High, 7; `waist_rise__low` = Low, 5; `waist_rise__mid` = Mid, 2 |
| `bottoms_closure` | Bottoms Closure | StoreRouter enrichment | 1% | 2 | `bottoms_closure__pull_on` = Pull-On, 12; `bottoms_closure__drawstring` = Drawstring, 1 |
| `placket_type` | Front Opening | StoreRouter enrichment | 1% | 1 | `placket_type__exposed` = Visible Buttons, 13 |
| `outerwear_length_type` | Outerwear Length | StoreRouter enrichment | 1% | 3 | `outerwear_length_type__cropped` = Cropped, 10; `outerwear_length_type__hip` = Hip Length, 1; `outerwear_length_type__knee` = Knee Length, 1 |
| `surface_finish` | Surface Finish | StoreRouter enrichment | 1% | 3 | `surface_finish__metallic` = Metallic, 9; `surface_finish__glossy` = Glossy, 2; `surface_finish__matte` = Matte, 1 |
| `occasion_style_dresses` | Dress occasion | StoreRouter enrichment | 1% | 2 | `occasion_style_dresses__casual` = Casual, 6; `occasion_style_dresses__evening` = Evening, 3 |
| `skirt_style` | Skirt style | StoreRouter enrichment | <1% | 6 | `skirt_style__flared` = Flared, 2; `skirt_style__gathered` = Gathered, 2; `skirt_style__pencil` = Pencil, 2; `skirt_style__wrap` = Wrap, 2; `skirt_style__prairie` = Prairie, 1 |
| `one_piece_style` | One-piece style | StoreRouter enrichment | <1% | 3 | `one_piece_style__romper` = Romper, 3; `one_piece_style__jumpsuit` = Jumpsuit, 1; `one_piece_style__playsuit` = Playsuit, 1 |
| `insulation_level` | Insulation Level | StoreRouter enrichment | <1% | 1 | `insulation_level__lightweight` = Lightweight, 4 |
| `occasion_general` | Occasion | StoreRouter enrichment | <1% | 1 | `occasion_general__casual` = Casual, 4 |
| `material` | Material | StoreRouter enrichment | <1% | 2 | `material__nylon` = Nylon, 2; `material__cotton` = Cotton, 1 |
| `slit_style` | Slit Style | StoreRouter enrichment | <1% | 1 | `slit_style__side_slit` = Side Slit, 3 |
| `activity_intensity` | Activity Intensity | StoreRouter enrichment | <1% | 2 | `activity_intensity__run` = Run, 1; `activity_intensity__studio_low` = Low Impact / Studio, 1 |
| `activity_type` | Activity Type | StoreRouter enrichment | <1% | 4 | `activity_type__dance_studio` = Dance / Studio, 1; `activity_type__running` = Running, 1; `activity_type__training_gym` = Training / Gym, 1; `activity_type__yoga_pilates` = Yoga / Pilates, 1 |
| `bag_case_material` | Bag/Case material | StoreRouter enrichment | <1% | 2 | `bag_case_material__cotton` = Cotton, 2; `bag_case_material__canvas` = Canvas, 1 |
| `carry_options` | Carry options | StoreRouter enrichment | <1% | 1 | `carry_options__handle` = Handle, 2 |
| `handwear_material` | Handwear material | StoreRouter enrichment | <1% | 4 | `handwear_material__elastane` = Elastane (Spandex / Lycra), 1; `handwear_material__mesh` = Mesh, 1; `handwear_material__nylon` = Nylon, 1; `handwear_material__polyester` = Polyester, 1 |
| `handwear_type` | Handwear type | StoreRouter enrichment | <1% | 2 | `handwear_type__arm_gloves` = Arm Gloves, 2; `handwear_type__gloves` = Gloves, 2 |
| `scarf_shawl_style` | Scarf/Shawl style | StoreRouter enrichment | <1% | 1 | `scarf_shawl_style__regular` = Regular, 2 |
| `stretch_level` | Stretch Level | StoreRouter enrichment | <1% | 1 | `stretch_level__high` = High, 2 |
| `activewear_unique_features` | Activewear Features | StoreRouter enrichment | <1% | 1 | `activewear_unique_features__adjustable_waistband` = Adjustable Waistband, 1 |
| `bag_closure_type` | Bag closure type | StoreRouter enrichment | <1% | 1 | `bag_closure_type__open_top` = Open Top, 1 |
| `outerwear_unique_features` | Outerwear Features | StoreRouter enrichment | <1% | 1 | `outerwear_unique_features__belted` = Belted, 1 |
| `performance_features` | Performance Features | StoreRouter enrichment | <1% | 1 | `performance_features__breathable_design` = Breathable Design, 1 |
| `swim_bottom_coverage_style` | Swim bottom coverage style | StoreRouter enrichment | <1% | 1 | `swim_bottom_coverage_style__cheeky` = Cheeky, 1 |
| `swim_top_coverage_style` | Swim top coverage style | StoreRouter enrichment | <1% | 1 | `swim_top_coverage_style__triangle` = Triangle, 1 |
| `brand_name` | Canonical brand name | Brand | 99% | 1 | `Only Hearts` = Only Hearts, 932 |
