# Belladahl (belladahl.com) product data API

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

- Catalog key: `belladahl` (pass in `"catalogs"` to narrow a search to this store)
- Products: 524
- Snapshot: 2026-10-15T11:39:25Z (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/belladahl
- Get an API key: https://platform.storerouter.ai/auth/organization

## Questions

### What does Belladahl sell?

Almost entirely Apparel & Accessories: 100% of its 524 products. Clothing is the largest department with 524 products. The most common Belladahl categories are Tops (265), Pants (103) and Dresses (69).

### How are Belladahl products categorized?

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

### What can I filter Belladahl products by?

59 searchable fields. Well-covered attributes include fabric (96% of products), sleeve length type (66%) and neckline (63%). For fabric, the most common values are Lyocell, Linen and Cotton; for sleeve length type, the most common values are Long, Sleeveless and Short.

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

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

### Can I get Belladahl 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 Belladahl 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 524 Belladahl products, with coverage counts refreshed about daily.

### Where does the data come from?

Straight from belladahl.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

### Button Up Knit Top - Dark Chestnut

The Long Sleeve Knit Button Down,  featuring long sleeves and a classic collared neckline and rounded hem.         SIZE CHEST SHOULDER TO HEM   XS 34 1/2" 23 3/8"   S 36 1/2" 24"   M 38 1/2" 24 5/8"   L 40 1/2" 25 1/4"

Indexed response retrieved 2026-10-15T12:46:48.558Z. Price and availability may change.
Availability: In stock
Sizes: XS, S, M, L, XL

### Product details

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

```json
{
  "source": "indexed",
  "catalogKey": "belladahl",
  "product": {
    "title": "Button Up Knit Top - Dark Chestnut",
    "brand": {
      "name": "Bella Dahl"
    },
    "productUrl": "https://www.belladahl.com/products/b2241-g55-302-button-up-knit-top-dark-chestnut",
    "currentPrice": 136,
    "currency": "USD",
    "inStock": true,
    "description": "The Long Sleeve Knit Button Down,  featuring long sleeves and a classic collared neckline and rounded hem.         SIZE CHEST SHOULDER TO HEM   XS 34 1/2\" 23 3/8\"   S 36 1/2\" 24\"   M 38 1/2\" 24 5/8\"   L 40 1/2\" 25 1/4\"     ",
    "primaryImage": {
      "url": "https://cdn.shopify.com/s/files/1/1654/7673/files/B2241-G55-302_3358.jpg?v=1785433559",
      "cdnUrl": "https://cdn.octogen.ai/c6b83104042924916113846781d21f26/27d3c6b75f6a3c361800025379ad2f5b.webp?request_id=5c997a39-1309-496a-a455-b95dc80e47b4",
      "width": 1756,
      "height": 2195,
      "sizeBytes": 251906,
      "mimeType": "image/webp"
    },
    "details": {
      "materials": [
        "60% Cotton, 40% Modal"
      ],
      "fit": [],
      "dimensions": null,
      "patterns": []
    }
  }
}
```

### Enrichment

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

```json
{
  "source": "indexed",
  "catalogKey": "belladahl",
  "product": {
    "enrichment": {
      "type": "knit top",
      "category_path": [
        "Apparel & Accessories",
        "Clothing",
        "Tops",
        "Shirts & Blouses"
      ],
      "styles": [
        "casual",
        "classic",
        "minimalist"
      ],
      "attributes": {
        "Fabric": [
          "Cotton",
          "Modal"
        ],
        "Pattern": [
          "Solid"
        ],
        "Neckline": [
          "Collared"
        ],
        "Collar Style": [
          "Button-Down"
        ],
        "Graphic Type": [
          "Solid / No Print"
        ],
        "Front Closure": [
          "Buttons"
        ],
        "Front Opening": [
          "Visible Buttons"
        ],
        "Sleeve length type": [
          "Long"
        ]
      },
      "attribute_handles": {
        "fabric": [
          "fabric__cotton",
          "fabric__modal"
        ],
        "pattern": [
          "pattern__solid"
        ],
        "neckline": [
          "neckline__collared"
        ],
        "collar_style": [
          "collar_style__button_down"
        ],
        "graphic_type": [
          "graphic_type__solid_no_print"
        ],
        "placket_type": [
          "placket_type__exposed"
        ],
        "front_closure_type": [
          "front_closure_type__buttons"
        ],
        "sleeve_length_type": [
          "sleeve_length_type__long"
        ]
      }
    }
  }
}
```

## 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": ["belladahl"],
    "q": "tops",
    "limit": 5
  }'
```

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

- [Button Up Knit Top - Dark Chestnut](https://www.belladahl.com/products/b2241-g55-302-button-up-knit-top-dark-chestnut) — $136.00
- [Button Up Knit Top - Endless Sea](https://www.belladahl.com/products/b2241-g55-302-button-up-knit-top-1) — $136.00
- [Smocked Beaded Strap Tank - Olive Leaf](https://www.belladahl.com/products/b20060-w94-302-smocked-beaded-strap-tank-olive-leaf) — $90.50
- [Raglan Sleeve Top With Lace Inset - Black](https://www.belladahl.com/products/b20144-689-302-raglan-sleeve-ruffle-top-with-lace-inset-black) — $172.00
- [Long Sleeve Button Back Top - Shadow Floral Print](https://www.belladahl.com/products/b20177-l48-304-long-sleeve-button-back-top-shadow-floral-print) — $150.00

## Categories

| Category | Products |
| --- | --- |
| Tops | 265 |
| Pants | 103 |
| Dresses | 69 |
| Shorts | 36 |
| Skirts | 26 |
| Jackets & Coats | 18 |
| Underwear & Sleepwear | 4 |
| Sets & Co-ords | 2 |
| Swimwear | 1 |

## 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) |
| --- | --- | --- | --- | --- | --- |
| `color` | Product color | Merchant data | 100% | 34 | `black` = Black, 102; `white` = White, 92; `multi` = Multi, 87; `navy` = Navy, 45; `olive` = Olive, 42 |
| `color_family` | Color family | Merchant data | 100% | 11 | `White` = White, 111; `Black` = Black, 102; `Blue` = Blue, 92; `Multicolor` = Multicolor, 87; `Brown` = Brown, 65 |
| `is_activewear` | Activewear | Merchant data | 100% | 2 | `false` = False, 498; `true` = True, 26 |
| `age_groups` | Age Group | StoreRouter enrichment | 100% | 1 | `adult` = Adult, 524 |
| `category_path.depth_0` | Category at depth 0 | StoreRouter enrichment | 100% | 1 | `apparel & accessories` = Apparel & Accessories, 524 |
| `category_path.depth_1` | Category at depth 1 | StoreRouter enrichment | 100% | 1 | `clothing` = Clothing, 524 |
| `category_path.depth_2` | Category at depth 2 | StoreRouter enrichment | 100% | 9 | `tops` = Tops, 265; `pants` = Pants, 103; `dresses` = Dresses, 69; `shorts` = Shorts, 36; `skirts` = Skirts, 26 |
| `gender` | Gender | StoreRouter enrichment | 100% | 1 | `female` = Female, 524 |
| `pattern` | Pattern | StoreRouter enrichment | 100% | 30 | `pattern__solid` = Solid, 367; `pattern__striped` = Striped, 74; `pattern__floral` = Floral, 40; `pattern__texture` = Texture, 38; `pattern__lace` = Lace, 34 |
| `fabric` | Fabric | StoreRouter enrichment | 96% | 30 | `fabric__lyocell` = Lyocell, 175; `fabric__linen` = Linen, 153; `fabric__cotton` = Cotton, 133; `fabric__rayon` = Rayon, 125; `fabric__viscose` = Viscose, 65 |
| `category_path.depth_3` | Category at depth 3 | StoreRouter enrichment | 82% | 25 | `shirts & blouses` = Shirts & Blouses, 158; `trousers` = Trousers, 62; `tank tops & sleeveless` = Tank Tops & Sleeveless, 50; `knitwear` = Knitwear, 31; `casual shorts` = Casual Shorts, 21 |
| `sleeve_length_type` | Sleeve length type | StoreRouter enrichment | 66% | 4 | `sleeve_length_type__long` = Long, 176; `sleeve_length_type__sleeveless` = Sleeveless, 99; `sleeve_length_type__short` = Short, 70; `sleeve_length_type__3/4` = 3/4, 3 |
| `neckline` | Neckline | StoreRouter enrichment | 63% | 18 | `neckline__collared` = Collared, 173; `neckline__v_neck` = V Neck, 45; `neckline__crew` = Crew, 37; `neckline__spaghetti_strap` = Spaghetti Strap, 29; `neckline__round` = Round, 26 |
| `front_closure_type` | Front Closure | StoreRouter enrichment | 55% | 6 | `front_closure_type__buttons` = Buttons, 174; `front_closure_type__none` = None, 90; `front_closure_type__tie_lace_up` = Tie / Lace-Up, 19; `front_closure_type__zipper` = Zipper, 7; `front_closure_type__snaps` = Snaps, 5 |
| `graphic_type` | Graphic Type | StoreRouter enrichment | 45% | 3 | `graphic_type__solid_no_print` = Solid / No Print, 235; `graphic_type__abstract_print` = Abstract Graphic, 2; `graphic_type__photo_art` = Photo Print / Art, 1 |
| `front_closure_length` | Front Closure Length | StoreRouter enrichment | 45% | 5 | `front_closure_length__full` = Full, 135; `front_closure_length__none` = None, 76; `front_closure_length__short_placket` = Short Placket, 17; `front_closure_length__quarter` = Quarter, 4; `front_closure_length__half` = Half, 1 |
| `collar_style` | Collar Style | StoreRouter enrichment | 39% | 11 | `collar_style__button_down` = Button-Down, 82; `collar_style__collarless` = Collarless, 55; `collar_style__crew` = Crew, 31; `collar_style__point` = Point, 10; `collar_style__polo` = Polo, 9 |
| `placket_type` | Front Opening | StoreRouter enrichment | 32% | 3 | `placket_type__exposed` = Visible Buttons, 163; `placket_type__snap` = Snap Closure, 4; `placket_type__concealed` = Hidden Buttons, 1 |
| `fit_top` | Fit (Tops) | StoreRouter enrichment | 26% | 6 | `fit_top__relaxed` = Relaxed, 96; `fit_top__flowy` = Flowy, 26; `fit_top__fitted` = Fitted, 17; `fit_top__oversized` = Oversized, 13; `fit_top__boxy` = Boxy, 12 |
| `bottoms_closure` | Bottoms Closure | StoreRouter enrichment | 24% | 4 | `bottoms_closure__drawstring` = Drawstring, 71; `bottoms_closure__pull_on` = Pull-On, 35; `bottoms_closure__zip` = Zip Fly, 33; `bottoms_closure__buttons` = Button Fly, 8 |
| `occasion_general` | Occasion | StoreRouter enrichment | 20% | 2 | `occasion_general__casual` = Casual, 104; `occasion_general__work` = Work, 9 |
| `category_path.depth_4` | Category at depth 4 | StoreRouter enrichment | 20% | 13 | `tank & cami tops` = Tank & Cami Tops, 50; `sweaters` = Sweaters, 27; `casual jackets` = Casual Jackets, 5; `cardigans` = Cardigans, 4; `chore & barn jackets` = Chore & Barn Jackets, 4 |
| `construction_detail` | Construction Detail | StoreRouter enrichment | 19% | 6 | `construction_detail__pleated` = Pleated, 32; `construction_detail__lace_trim` = Lace Trim, 28; `construction_detail__draped` = Draped, 17; `construction_detail__smocked` = Smocked, 11; `construction_detail__ruffled` = Ruffled, 10 |
| `skirt_dress_length_type` | Skirt/Dress length type | StoreRouter enrichment | 18% | 4 | `skirt_dress_length_type__mini` = Mini, 53; `skirt_dress_length_type__midi` = Midi, 31; `skirt_dress_length_type__maxi` = Maxi, 13; `skirt_dress_length_type__knee` = Knee, 2 |
| `fit_bottoms` | Fit | StoreRouter enrichment | 17% | 6 | `fit_bottoms__wide_leg_volume_fit` = Wide-Leg Volume Fit, 42; `fit_bottoms__relaxed_boyfriend_fit` = Relaxed / Boyfriend Fit, 38; `fit_bottoms__loose_slouchy_fit` = Loose / Slouchy Fit, 13; `fit_bottoms__straight_through_fit` = Straight-Through Fit, 11; `fit_bottoms__curved_volume_fit_barrel_hip` = Curved Volume Fit (Barrel Hip), 3 |
| `pants_leg_shape` | Leg Shape | StoreRouter enrichment | 17% | 7 | `pants_leg_shape__wide_leg` = Wide Leg, 47; `pants_leg_shape__jogger` = Jogger, 21; `pants_leg_shape__cuffed` = Cuffed, 17; `pants_leg_shape__straight` = Straight, 16; `pants_leg_shape__barrel_balloon` = Barrel / Balloon, 3 |
| `dress_style` | Dress style | StoreRouter enrichment | 13% | 12 | `dress_style__shirt` = Shirt, 25; `dress_style__a_line` = A Line, 12; `dress_style__flared` = Flared, 9; `dress_style__shift` = Shift, 8; `dress_style__tank` = Tank, 8 |
| `embellishments` | Embellishments | StoreRouter enrichment | 12% | 6 | `embellishments__contrast_piping` = Contrast Trim / Piping, 16; `embellishments__fringe` = Fringe, 15; `embellishments__embroidery` = Embroidery, 14; `embellishments__beading` = Beading, 10; `embellishments__bow` = Bow, 8 |
| `occasion_style_dresses` | Dress occasion | StoreRouter enrichment | 11% | 3 | `occasion_style_dresses__casual` = Casual, 58; `occasion_style_dresses__work` = Work, 3; `occasion_style_dresses__evening` = Evening, 1 |
| `sleeve_style` | Sleeve Style | StoreRouter enrichment | 9% | 7 | `sleeve_style__raglan` = Raglan, 18; `sleeve_style__drop_shoulder` = Drop Shoulder, 11; `sleeve_style__puff` = Puff, 10; `sleeve_style__cap` = Cap, 9; `sleeve_style__set_in` = Set-In, 4 |
| `top_length_type` | Top length type | StoreRouter enrichment | 9% | 4 | `top_length_type__cropped` = Cropped, 39; `top_length_type__hip_length` = Hip Length, 3; `top_length_type__tunic_length` = Tunic Length, 2; `top_length_type__waist_length` = Waist Length, 1 |
| `general_clothing_features` | General Clothing Features | StoreRouter enrichment | 8% | 1 | `general_clothing_features__stretchable` = Stretchable, 42 |
| `pants_length_type` | Pants length type | StoreRouter enrichment | 8% | 3 | `pants_length_type__ankle` = Ankle Length, 16; `pants_length_type__long` = Long, 13; `pants_length_type__cropped` = Cropped, 12 |
| `fabric_weight` | Fabric Weight | StoreRouter enrichment | 6% | 1 | `fabric_weight__lightweight` = Lightweight, 31 |
| `denim_wash_effects` | Denim Finish Effects | StoreRouter enrichment | 4% | 5 | `denim_wash_effects__faded_stonewash` = Faded / Stonewash, 11; `denim_wash_effects__clean_none` = Clean / None, 5; `denim_wash_effects__raw` = Raw, 3; `denim_wash_effects__waxed_sheen` = Waxed / Sheen, 2; `denim_wash_effects__distressed` = Distressed, 1 |
| `denim_wash` | Denim Wash | StoreRouter enrichment | 4% | 6 | `denim_wash__light` = Light, 8; `denim_wash__dark` = Dark, 5; `denim_wash__black` = Black, 3; `denim_wash__colored` = Colored, 3; `denim_wash__medium` = Medium, 1 |
| `sustainability_features` | Sustainability Features | StoreRouter enrichment | 4% | 4 | `sustainability_features__eco_friendly` = Eco-Friendly, 13; `sustainability_features__recycled_materials` = Recycled Materials, 5; `sustainability_features__sustainable_sourcing` = Sustainable Sourcing, 1; `sustainability_features__vegan` = Vegan, 1 |
| `opacity_level` | Opacity | StoreRouter enrichment | 3% | 3 | `opacity_level__opaque` = Opaque, 11; `opacity_level__semi_sheer` = Semi-Sheer, 6; `opacity_level__sheer` = Sheer, 1 |
| `shorts_fit` | Shorts Fit | StoreRouter enrichment | 3% | 3 | `shorts_fit__relaxed` = Relaxed, 12; `shorts_fit__slim` = Slim, 5; `shorts_fit__tailored` = Tailored, 3 |
| `openwork_detail` | Openwork Detail | StoreRouter enrichment | 3% | 3 | `openwork_detail__open_knit` = Open Knit, 7; `openwork_detail__eyelet` = Eyelet, 6; `openwork_detail__crochet` = Crochet, 5 |
| `outerwear_length_type` | Outerwear Length | StoreRouter enrichment | 3% | 3 | `outerwear_length_type__cropped` = Cropped, 8; `outerwear_length_type__hip` = Hip Length, 6; `outerwear_length_type__mid_thigh` = Mid-Thigh, 1 |
| `knit_style` | Knit Style | StoreRouter enrichment | 3% | 4 | `knit_style__rib_knit` = Rib Knit, 7; `knit_style__jersey` = Jersey, 3; `knit_style__pointelle` = Pointelle, 2; `knit_style__cable_knit` = Cable Knit, 1 |
| `skirt_style` | Skirt style | StoreRouter enrichment | 3% | 7 | `skirt_style__wrap` = Wrap, 5; `skirt_style__flared` = Flared, 4; `skirt_style__high_low` = High-Low, 2; `skirt_style__plisse` = Plisse, 2; `skirt_style__asymmetrical` = Asymmetrical, 1 |
| `surface_finish` | Surface Finish | StoreRouter enrichment | 2% | 2 | `surface_finish__glossy` = Glossy, 10; `surface_finish__metallic` = Metallic, 2 |
| `season` | Season | StoreRouter enrichment | 2% | 2 | `season__warm_weather` = Warm Weather, 6; `season__cold_weather` = Cold Weather, 5 |
| `slit_style` | Slit Style | StoreRouter enrichment | 2% | 2 | `slit_style__side_slit` = Side Slit, 11; `slit_style__front_slit` = Front Slit, 1 |
| `denim_hem_style` | Denim Hem Style | StoreRouter enrichment | 2% | 2 | `denim_hem_style__regular` = Regular, 8; `denim_hem_style__frayed` = Frayed, 1 |
| `waist_rise` | Waist rise | StoreRouter enrichment | 2% | 3 | `waist_rise__mid` = Mid, 6; `waist_rise__high` = High, 2; `waist_rise__low` = Low, 1 |
| `size_group` | Size Type | StoreRouter enrichment | 2% | 1 | `size_group__regular` = Regular, 8 |
| `top_hem_shape` | Top Hem Shape | StoreRouter enrichment | 1% | 1 | `top_hem_shape__high_low` = High-Low, 7 |
| `denim_fabric` | Denim Fabric | StoreRouter enrichment | 1% | 3 | `denim_fabric__rigid` = Rigid, 4; `denim_fabric__alternative` = Alternative, 1; `denim_fabric__colored` = Colored, 1 |
| `pants_leg_length` | Pants Leg Length | StoreRouter enrichment | 1% | 2 | `pants_leg_length__regular` = Regular, 4; `pants_leg_length__cropped` = Cropped, 1 |
| `activewear_unique_features` | Activewear Features | StoreRouter enrichment | <1% | 1 | `activewear_unique_features__adjustable_waistband` = Adjustable Waistband, 4 |
| `lining_material_outerwear` | Lining Material | StoreRouter enrichment | <1% | 2 | `lining_material_outerwear__quilted` = Quilted, 3; `lining_material_outerwear__fully_lined` = Fully Lined, 1 |
| `outerwear_unique_features` | Outerwear Features | StoreRouter enrichment | <1% | 2 | `outerwear_unique_features__belted` = Belted, 2; `outerwear_unique_features__insulated` = Insulated, 2 |
| `category_path.depth_5` | Category at depth 5 | StoreRouter enrichment | <1% | 2 | `camisoles` = Camisoles, 2; `lounge bottoms` = Lounge Bottoms, 1 |
| `stretch_level` | Stretch Level | StoreRouter enrichment | <1% | 1 | `stretch_level__none` = None, 2 |
| `insulation_level` | Insulation Level | StoreRouter enrichment | <1% | 1 | `insulation_level__lightweight` = Lightweight, 1 |
| `brand_name` | Canonical brand name | Brand | 95% | 2 | `Bella Dahl` = Bella Dahl, 496; `LK Blue` = LK Blue, 4 |
