# Shopdonni (shopdonni.com) product data API

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

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

## Questions

### What does Shopdonni sell?

Almost entirely Apparel & Accessories: 100% of its 552 products. Clothing is the largest department with 489 products, followed by Jewelry (43) and Accessories (20). The most common Shopdonni categories are Tops (245), Pants (163) and Necklaces (32).

### How are Shopdonni 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 (41 products). Every level is a search facet.

### What can I filter Shopdonni products by?

63 searchable fields. Well-covered attributes include fabric (86% of products), front closure (47%) and sleeve length type (45%). For fabric, the most common values are Cotton, Silk and Elastane (Spandex / Lycra); for front closure, the most common values are None, Buttons and Zipper.

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

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

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

### Where does the data come from?

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

### The Baby Rib Envelope Top

Crafted in buttery-soft Baby Rib with subtle stretch. Designed with a boat neckline, close fit, and envelope detail at the collar. A clean silhouette with a softly sculpted finish.

Indexed response retrieved 2026-10-15T17:30:29.100Z. Price and availability may change.
Availability: In stock
Sizes: XXS, XS, S, M, L, XL, XXL

### Product details

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

```json
{
  "source": "indexed",
  "catalogKey": "shopdonni",
  "product": {
    "title": "The Baby Rib Envelope Top",
    "brand": {
      "name": "DONNI."
    },
    "productUrl": "https://shopdonni.com/products/the-baby-rib-envelope-top-cream",
    "currentPrice": 107,
    "currency": "USD",
    "inStock": true,
    "description": "Crafted in buttery-soft Baby Rib with subtle stretch. Designed with a boat neckline, close fit, and envelope detail at the collar. A clean silhouette with a softly sculpted finish.",
    "primaryImage": {
      "url": "https://shopdonni.com/cdn/shop/files/DonniHolidayMaya-_136of144.jpg?v=1770142693&width=1200",
      "cdnUrl": "https://cdn.octogen.ai/5ad9173e36c1f4cd438f0c5f0ef8f94e/b200918ea80009c47e3ceb0999ee92ca.webp?request_id=4daba847-58fd-43d2-8590-a71ca6507389",
      "width": 1200,
      "height": 1800,
      "sizeBytes": 148818,
      "mimeType": "image/webp"
    },
    "details": {
      "materials": [
        "47% Modal 47% Cotton 6% Spandex"
      ],
      "fit": [],
      "dimensions": null,
      "patterns": []
    }
  }
}
```

### Enrichment

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

```json
{
  "source": "indexed",
  "catalogKey": "shopdonni",
  "product": {
    "enrichment": {
      "type": "top",
      "category_path": [
        "Apparel & Accessories",
        "Clothing",
        "Tops",
        "Shirts & Blouses"
      ],
      "styles": [
        "minimalist",
        "basic",
        "contemporary"
      ],
      "attributes": {
        "Fabric": [
          "Cotton",
          "Elastane (Spandex / Lycra)",
          "Modal"
        ],
        "Pattern": [
          "Solid"
        ],
        "Neckline": [
          "Boat",
          "Envelope / Lap Shoulder"
        ],
        "Occasion": [
          "Casual"
        ],
        "Fit (Tops)": [
          "Fitted"
        ],
        "Knit Style": [
          "Rib Knit"
        ],
        "Collar Style": [
          "Collarless"
        ],
        "Graphic Type": [
          "Solid / No Print"
        ],
        "Front Closure": [
          "None"
        ],
        "Sleeve length type": [
          "Long"
        ],
        "Front Closure Length": [
          "None"
        ],
        "General Clothing Features": [
          "Stretchable"
        ]
      },
      "attribute_handles": {
        "fabric": [
          "fabric__cotton",
          "fabric__elastane",
          "fabric__modal"
        ],
        "fit_top": [
          "fit_top__fitted"
        ],
        "pattern": [
          "pattern__solid"
        ],
        "neckline": [
          "neckline__boat",
          "neckline__envelope_lap_shoulder"
        ],
        "knit_style": [
          "knit_style__rib_knit"
        ],
        "collar_style": [
          "collar_style__collarless"
        ],
        "graphic_type": [
          "graphic_type__solid_no_print"
        ],
        "occasion_general": [
          "occasion_general__casual"
        ],
        "front_closure_type": [
          "front_closure_type__none"
        ],
        "sleeve_length_type": [
          "sleeve_length_type__long"
        ],
        "front_closure_length": [
          "front_closure_length__none"
        ],
        "general_clothing_features": [
          "general_clothing_features__stretchable"
        ]
      }
    }
  }
}
```

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

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

- [The Baby Rib Envelope Top](https://shopdonni.com/products/the-baby-rib-envelope-top-cream) — $107.00
- [The Pop Pinstripe Tie Top](https://shopdonni.com/products/the-pop-pinstripe-tie-top-navy) — $244.00
- [The Baby Rib Envelope Top](https://shopdonni.com/products/the-baby-rib-envelope-top-navy) — $80.00
- [The Baby Rib Turtleneck Oxblood](https://shopdonni.com/products/the-baby-rib-turtleneck-oxblood) — $107.00
- [The Varied Rib Tank](https://shopdonni.com/products/the-varied-rib-tank-jet) — $99.00

## Categories

| Category | Products |
| --- | --- |
| Tops | 245 |
| Pants | 163 |
| Necklaces | 32 |
| Shorts | 24 |
| Underwear & Sleepwear | 20 |
| Jackets & Coats | 16 |
| Scarves | 12 |
| Dresses | 8 |
| Hair Accessories | 8 |
| Skirts | 6 |

## 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, 504; `true` = True, 48 |
| `color` | Product color | Merchant data | 100% | 49 | `black` = Black, 254; `navy` = Navy, 152; `powderblue` = Powderblue, 137; `ivory` = Ivory, 133; `brown` = Brown, 114 |
| `color_family` | Color family | Merchant data | 100% | 12 | `Blue` = Blue, 310; `Black` = Black, 254; `White` = White, 200; `Gray` = Gray, 145; `Brown` = Brown, 143 |
| `age_groups` | Age Group | StoreRouter enrichment | 100% | 1 | `adult` = Adult, 552 |
| `category_path.depth_0` | Category at depth 0 | StoreRouter enrichment | 100% | 1 | `apparel & accessories` = Apparel & Accessories, 552 |
| `category_path.depth_1` | Category at depth 1 | StoreRouter enrichment | 100% | 3 | `clothing` = Clothing, 489; `jewelry` = Jewelry, 43; `accessories` = Accessories, 20 |
| `category_path.depth_2` | Category at depth 2 | StoreRouter enrichment | 100% | 15 | `tops` = Tops, 245; `pants` = Pants, 163; `necklaces` = Necklaces, 32; `shorts` = Shorts, 24; `underwear & sleepwear` = Underwear & Sleepwear, 20 |
| `gender` | Gender | StoreRouter enrichment | 100% | 2 | `female` = Female, 510; `unisex` = Unisex, 42 |
| `pattern` | Pattern | StoreRouter enrichment | 99% | 13 | `pattern__solid` = Solid, 393; `pattern__texture` = Texture, 106; `pattern__striped` = Striped, 94; `pattern__lace` = Lace, 23; `pattern__gingham` = Gingham, 20 |
| `category_path.depth_3` | Category at depth 3 | StoreRouter enrichment | 90% | 28 | `trousers` = Trousers, 122; `shirts & blouses` = Shirts & Blouses, 60; `tank tops & sleeveless` = Tank Tops & Sleeveless, 55; `knitwear` = Knitwear, 52; `t-shirts` = T-Shirts, 43 |
| `fabric` | Fabric | StoreRouter enrichment | 86% | 20 | `fabric__cotton` = Cotton, 307; `fabric__silk` = Silk, 113; `fabric__elastane` = Elastane (Spandex / Lycra), 61; `fabric__poplin` = Poplin, 36; `fabric__modal` = Modal, 35 |
| `front_closure_type` | Front Closure | StoreRouter enrichment | 48% | 4 | `front_closure_type__none` = None, 169; `front_closure_type__buttons` = Buttons, 84; `front_closure_type__zipper` = Zipper, 7; `front_closure_type__tie_lace_up` = Tie / Lace-Up, 3 |
| `sleeve_length_type` | Sleeve length type | StoreRouter enrichment | 46% | 4 | `sleeve_length_type__long` = Long, 160; `sleeve_length_type__sleeveless` = Sleeveless, 74; `sleeve_length_type__short` = Short, 16; `sleeve_length_type__3/4` = 3/4, 5 |
| `neckline` | Neckline | StoreRouter enrichment | 46% | 17 | `neckline__crew` = Crew, 71; `neckline__collared` = Collared, 54; `neckline__v_neck` = V Neck, 28; `neckline__boat` = Boat, 25; `neckline__round` = Round, 23 |
| `front_closure_length` | Front Closure Length | StoreRouter enrichment | 40% | 5 | `front_closure_length__none` = None, 155; `front_closure_length__full` = Full, 43; `front_closure_length__short_placket` = Short Placket, 20; `front_closure_length__half` = Half, 2; `front_closure_length__quarter` = Quarter, 1 |
| `fit_top` | Fit (Tops) | StoreRouter enrichment | 40% | 7 | `fit_top__relaxed` = Relaxed, 138; `fit_top__fitted` = Fitted, 69; `fit_top__boxy` = Boxy, 7; `fit_top__flowy` = Flowy, 6; `fit_top__oversized` = Oversized, 4 |
| `graphic_type` | Graphic Type | StoreRouter enrichment | 39% | 1 | `graphic_type__solid_no_print` = Solid / No Print, 213 |
| `category_path.depth_4` | Category at depth 4 | StoreRouter enrichment | 30% | 12 | `tank & cami tops` = Tank & Cami Tops, 41; `sweaters` = Sweaters, 40; `loungewear` = Loungewear, 20; `sweatshirts` = Sweatshirts, 16; `tube tops` = Tube Tops, 14 |
| `bottoms_closure` | Bottoms Closure | StoreRouter enrichment | 28% | 3 | `bottoms_closure__pull_on` = Pull-On, 86; `bottoms_closure__drawstring` = Drawstring, 67; `bottoms_closure__side_zip` = Side Zip, 3 |
| `collar_style` | Collar Style | StoreRouter enrichment | 27% | 5 | `collar_style__crew` = Crew, 63; `collar_style__collarless` = Collarless, 59; `collar_style__polo` = Polo, 16; `collar_style__point` = Point, 9; `collar_style__camp_revere` = Camp / Revere, 3 |
| `knit_style` | Knit Style | StoreRouter enrichment | 26% | 7 | `knit_style__rib_knit` = Rib Knit, 82; `knit_style__jersey` = Jersey, 35; `knit_style__fine_gauge` = Fine Gauge, 18; `knit_style__french_terry` = French Terry, 14; `knit_style__pointelle` = Pointelle, 6 |
| `pants_leg_shape` | Leg Shape | StoreRouter enrichment | 23% | 6 | `pants_leg_shape__straight` = Straight, 68; `pants_leg_shape__wide_leg` = Wide Leg, 36; `pants_leg_shape__flare` = Flare, 14; `pants_leg_shape__barrel_balloon` = Barrel / Balloon, 12; `pants_leg_shape__cuffed` = Cuffed, 11 |
| `fit_bottoms` | Fit | StoreRouter enrichment | 21% | 7 | `fit_bottoms__relaxed_boyfriend_fit` = Relaxed / Boyfriend Fit, 64; `fit_bottoms__straight_through_fit` = Straight-Through Fit, 30; `fit_bottoms__wide_leg_volume_fit` = Wide-Leg Volume Fit, 23; `fit_bottoms__kick_flare_fit_hip_fitted` = Kick-Flare Fit (Hip-Fitted), 9; `fit_bottoms__loose_slouchy_fit` = Loose / Slouchy Fit, 8 |
| `pants_length_type` | Pants length type | StoreRouter enrichment | 19% | 4 | `pants_length_type__cropped` = Cropped, 51; `pants_length_type__long` = Long, 31; `pants_length_type__above_the_knee` = Above the Knee, 13; `pants_length_type__ankle` = Ankle Length, 7 |
| `sustainability_features` | Sustainability Features | StoreRouter enrichment | 16% | 2 | `sustainability_features__organic_materials` = Organic Materials, 88; `sustainability_features__eco_friendly` = Eco-Friendly, 33 |
| `placket_type` | Front Opening | StoreRouter enrichment | 15% | 2 | `placket_type__exposed` = Visible Buttons, 74; `placket_type__concealed` = Hidden Buttons, 10 |
| `general_clothing_features` | General Clothing Features | StoreRouter enrichment | 14% | 2 | `general_clothing_features__stretchable` = Stretchable, 75; `general_clothing_features__wrinkle_resistant` = Wrinkle Resistant, 3 |
| `opacity_level` | Opacity | StoreRouter enrichment | 13% | 3 | `opacity_level__opaque` = Opaque, 56; `opacity_level__sheer` = Sheer, 10; `opacity_level__semi_sheer` = Semi-Sheer, 6 |
| `construction_detail` | Construction Detail | StoreRouter enrichment | 11% | 3 | `construction_detail__draped` = Draped, 35; `construction_detail__pleated` = Pleated, 21; `construction_detail__lace_trim` = Lace Trim, 5 |
| `fabric_weight` | Fabric Weight | StoreRouter enrichment | 11% | 3 | `fabric_weight__lightweight` = Lightweight, 48; `fabric_weight__heavyweight` = Heavyweight, 13; `fabric_weight__sheer` = Sheer, 10 |
| `sleeve_style` | Sleeve Style | StoreRouter enrichment | 10% | 5 | `sleeve_style__drop_shoulder` = Drop Shoulder, 22; `sleeve_style__raglan` = Raglan, 17; `sleeve_style__bell` = Bell, 7; `sleeve_style__cap` = Cap, 5; `sleeve_style__set_in` = Set-In, 2 |
| `jewelry_material` | Jewelry material | StoreRouter enrichment | 8% | 4 | `jewelry_material__gold` = Gold, 36; `jewelry_material__pearl` = Pearl, 30; `jewelry_material__stone` = Stone, 13; `jewelry_material__metal` = Metal, 3 |
| `occasion_general` | Occasion | StoreRouter enrichment | 7% | 2 | `occasion_general__casual` = Casual, 40; `occasion_general__work` = Work, 2 |
| `necklace_design` | Necklace design | StoreRouter enrichment | 6% | 5 | `necklace_design__beaded` = Beaded, 21; `necklace_design__strand` = Strand, 16; `necklace_design__chain` = Chain, 13; `necklace_design__pendant` = Pendant, 11; `necklace_design__choker` = Choker, 5 |
| `embellishments` | Embellishments | StoreRouter enrichment | 6% | 3 | `embellishments__contrast_piping` = Contrast Trim / Piping, 19; `embellishments__decorative_buttons` = Decorative Buttons, 10; `embellishments__bow` = Bow, 2 |
| `jewelry_type` | Jewelry type | StoreRouter enrichment | 5% | 1 | `jewelry_type__fine_jewelry` = Fine Jewelry, 29 |
| `surface_finish` | Surface Finish | StoreRouter enrichment | 5% | 2 | `surface_finish__glossy` = Glossy, 15; `surface_finish__matte` = Matte, 13 |
| `insulation_level` | Insulation Level | StoreRouter enrichment | 5% | 2 | `insulation_level__lightweight` = Lightweight, 17; `insulation_level__heavyweight` = Heavyweight, 9 |
| `season` | Season | StoreRouter enrichment | 5% | 3 | `season__cold_weather` = Cold Weather, 12; `season__warm_weather` = Warm Weather, 9; `season__all_season` = All-Season, 4 |
| `top_length_type` | Top length type | StoreRouter enrichment | 4% | 3 | `top_length_type__cropped` = Cropped, 10; `top_length_type__hip_length` = Hip Length, 6; `top_length_type__waist_length` = Waist Length, 6 |
| `openwork_detail` | Openwork Detail | StoreRouter enrichment | 4% | 3 | `openwork_detail__eyelet` = Eyelet, 11; `openwork_detail__open_knit` = Open Knit, 8; `openwork_detail__cutouts` = Cutouts, 2 |
| `category_path.depth_5` | Category at depth 5 | StoreRouter enrichment | 4% | 1 | `lounge bottoms` = Lounge Bottoms, 20 |
| `shorts_fit` | Shorts Fit | StoreRouter enrichment | 3% | 3 | `shorts_fit__relaxed` = Relaxed, 13; `shorts_fit__tailored` = Tailored, 3; `shorts_fit__athletic` = Athletic, 1 |
| `skirt_dress_length_type` | Skirt/Dress length type | StoreRouter enrichment | 3% | 3 | `skirt_dress_length_type__mini` = Mini, 11; `skirt_dress_length_type__midi` = Midi, 5; `skirt_dress_length_type__knee` = Knee, 3 |
| `performance_features` | Performance Features | StoreRouter enrichment | 2% | 2 | `performance_features__breathable_design` = Breathable Design, 8; `performance_features__water_resistant` = Water Resistant, 3 |
| `denim_wash_effects` | Denim Finish Effects | StoreRouter enrichment | 1% | 1 | `denim_wash_effects__waxed_sheen` = Waxed / Sheen, 8 |
| `outerwear_unique_features` | Outerwear Features | StoreRouter enrichment | 1% | 2 | `outerwear_unique_features__insulated` = Insulated, 5; `outerwear_unique_features__hooded` = Hooded, 3 |
| `waist_rise` | Waist rise | StoreRouter enrichment | 1% | 1 | `waist_rise__high` = High, 7 |
| `lining_material_outerwear` | Lining Material | StoreRouter enrichment | 1% | 1 | `lining_material_outerwear__quilted` = Quilted, 6 |
| `outerwear_length_type` | Outerwear Length | StoreRouter enrichment | 1% | 3 | `outerwear_length_type__hip` = Hip Length, 3; `outerwear_length_type__knee` = Knee Length, 2; `outerwear_length_type__mid_thigh` = Mid-Thigh, 1 |
| `chain_link_type` | Chain link type | StoreRouter enrichment | <1% | 1 | `chain_link_type__ball/bead` = Ball/Bead, 5 |
| `earring_design` | Earring design | StoreRouter enrichment | <1% | 1 | `earring_design__drop` = Drop, 5 |
| `scarf_shawl_style` | Scarf/Shawl style | StoreRouter enrichment | <1% | 2 | `scarf_shawl_style__regular` = Regular, 4; `scarf_shawl_style__square` = Square, 1 |
| `activewear_unique_features` | Activewear Features | StoreRouter enrichment | <1% | 1 | `activewear_unique_features__adjustable_waistband` = Adjustable Waistband, 4 |
| `size_group` | Size Type | StoreRouter enrichment | <1% | 1 | `size_group__tall` = Tall, 4 |
| `dress_style` | Dress style | StoreRouter enrichment | <1% | 3 | `dress_style__shift` = Shift, 2; `dress_style__a_line` = A Line, 1; `dress_style__slip` = Slip, 1 |
| `skirt_style` | Skirt style | StoreRouter enrichment | <1% | 2 | `skirt_style__a_line` = A-Line, 2; `skirt_style__sheath` = Sheath, 1 |
| `material` | Material | StoreRouter enrichment | <1% | 1 | `material__silk` = Silk, 2 |
| `occasion_style_dresses` | Dress occasion | StoreRouter enrichment | <1% | 1 | `occasion_style_dresses__casual` = Casual, 2 |
| `slit_style` | Slit Style | StoreRouter enrichment | <1% | 1 | `slit_style__side_slit` = Side Slit, 2 |
| `ring_design` | Ring design | StoreRouter enrichment | <1% | 3 | `ring_design__band` = Band, 1; `ring_design__beaded` = Beaded, 1; `ring_design__stackable` = Stackable, 1 |
| `ring_size` | Ring size | StoreRouter enrichment | <1% | 2 | `ring_size__5` = 5, 1; `ring_size__7` = 7, 1 |
| `brand_name` | Canonical brand name | Brand | 100% | 1 | `DONNI.` = DONNI., 552 |
