# Bstroy (bstroy.us) product data API

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

- Catalog key: `bstroy` (pass in `"catalogs"` to narrow a search to this store)
- Products: 154
- Snapshot: 2026-10-19T16:51:22Z (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/bstroy.us
- Get an API key: https://platform.storerouter.ai/auth/organization

## Questions

### What does Bstroy sell?

Almost entirely Apparel & Accessories: 100% of its 154 products. Clothing is the largest department with 120 products, followed by Accessories (24) and Shoes (6). The most common Bstroy categories are Tops (60), Underwear & Sleepwear (21) and Hats & Headwear (19).

### How are Bstroy products categorized?

Into a shared taxonomy 5 levels deep. The first level separates Apparel & Accessories; the second separates departments such as Clothing; 5 levels down, categories are as specific as Crew / Mid-Calf (12 products). Every level is a search facet.

### What can I filter Bstroy products by?

71 searchable fields. Well-covered attributes include fabric (72% of products), graphic type (50%) and front closure (48%). For fabric, the most common values are Cotton, Elastane (Spandex / Lycra) and Polyester; for graphic type, the most common values are Text / Slogan Print, Logo Print and Photo Print / Art.

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

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

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

### Where does the data come from?

Straight from bstroy.us. 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

### DK Tee

Bstroy

Indexed response retrieved 2026-10-20T00:25:18.412Z. Price and availability may change.
Availability: In stock
Sizes: X-Small, Medium, Large, X-Large, Small

### Product details

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

```json
{
  "source": "indexed",
  "catalogKey": "bstroy",
  "product": {
    "title": "DK Tee",
    "brand": {
      "name": "Bstroy"
    },
    "productUrl": "https://bstroy.us/products/dk-tee-black",
    "currentPrice": 200,
    "currency": "USD",
    "inStock": true,
    "description": "Bstroy",
    "primaryImage": {
      "url": "https://bstroy.us/cdn/shop/files/bstroy-ecom_96_1.jpg?v=1762545495&width=5760",
      "cdnUrl": "https://cdn.octogen.ai/683051b81fe6b1501fda8b45d18f9a6e/ccae4a46d2f663f577f68926a674b9d2.webp?request_id=24fc7900-bde8-4f96-a81c-b57d43534a36",
      "width": 4912,
      "height": 4912,
      "sizeBytes": 559776,
      "mimeType": "image/webp"
    },
    "details": {
      "materials": [],
      "fit": [],
      "dimensions": null,
      "patterns": []
    }
  }
}
```

### Enrichment

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

```json
{
  "source": "indexed",
  "catalogKey": "bstroy",
  "product": {
    "enrichment": {
      "type": "t-shirt",
      "category_path": [
        "Apparel & Accessories",
        "Clothing",
        "Tops",
        "T-Shirts"
      ],
      "styles": [
        "streetwear",
        "casual"
      ],
      "attributes": {
        "Opacity": [
          "Opaque"
        ],
        "Pattern": [
          "Abstract",
          "Geometric",
          "Solid"
        ],
        "Neckline": [
          "Crew",
          "Round"
        ],
        "Collar Style": [
          "Crew"
        ],
        "Graphic Type": [
          "Abstract Graphic"
        ],
        "Sleeve Style": [
          "Drop Shoulder"
        ],
        "Front Closure": [
          "None"
        ],
        "Sleeve length type": [
          "Short"
        ],
        "Front Closure Length": [
          "None"
        ]
      },
      "attribute_handles": {
        "pattern": [
          "pattern__abstract",
          "pattern__geometric",
          "pattern__solid"
        ],
        "neckline": [
          "neckline__crew",
          "neckline__round"
        ],
        "collar_style": [
          "collar_style__crew"
        ],
        "graphic_type": [
          "graphic_type__abstract_print"
        ],
        "sleeve_style": [
          "sleeve_style__drop_shoulder"
        ],
        "opacity_level": [
          "opacity_level__opaque"
        ],
        "front_closure_type": [
          "front_closure_type__none"
        ],
        "sleeve_length_type": [
          "sleeve_length_type__short"
        ],
        "front_closure_length": [
          "front_closure_length__none"
        ]
      }
    }
  }
}
```

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

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

- [DK Tee](https://bstroy.us/products/dk-tee-black) — $200.00
- [(b).Kini Wax Baby Tee](https://bstroy.us/products/bstroy-digital-t-shirt-white) — $125.00
- [(b).Kini Wax Boxy Tee](https://bstroy.us/products/b-kini-wax-boxy-tee-white) — $125.00
- [(b).Kini Wax Women’s Zip Hoodie](https://bstroy.us/products/b-kini-wax-women-s-zip-hoodie-black) — $325.00
- [Militare Polo](https://bstroy.us/products/militare-polo-black) — $250.00

## Prices

Median price $130 across 154 priced products. Current prices, assumed USD.

| Price range | Products |
| --- | --- |
| $20–$80 | 14 |
| $80–$140 | 68 |
| $140–$200 | 24 |
| $200–$260 | 12 |
| $260–$320 | 13 |
| $320–$380 | 6 |
| $380–$440 | 2 |
| $440–$500 | 1 |
| $500–$560 | 3 |
| $560 and up | 11 |

## Categories

| Category | Products |
| --- | --- |
| Tops | 60 |
| Underwear & Sleepwear | 21 |
| Hats & Headwear | 19 |
| Pants | 14 |
| Jackets & Coats | 11 |
| Shorts | 8 |
| Sandals | 6 |
| Gloves & Mittens | 5 |
| Totes & Shoppers | 4 |
| Skirts | 3 |

## 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, 123; `true` = True, 31 |
| `color` | Product color | Merchant data | 82% | 24 | `black` = Black, 38; `white` = White, 17; `blue` = Blue, 14; `yellow` = Yellow, 12; `navy` = Navy, 8 |
| `color_family` | Color family | Merchant data | 82% | 12 | `Black` = Black, 38; `Blue` = Blue, 32; `White` = White, 17; `Yellow` = Yellow, 12; `Gray` = Gray, 8 |
| `age_groups` | Age Group | StoreRouter enrichment | 100% | 1 | `adult` = Adult, 154 |
| `category_path.depth_0` | Category at depth 0 | StoreRouter enrichment | 100% | 1 | `apparel & accessories` = Apparel & Accessories, 154 |
| `category_path.depth_1` | Category at depth 1 | StoreRouter enrichment | 100% | 4 | `clothing` = Clothing, 120; `accessories` = Accessories, 24; `shoes` = Shoes, 6; `bags` = Bags, 4 |
| `category_path.depth_2` | Category at depth 2 | StoreRouter enrichment | 100% | 11 | `tops` = Tops, 60; `underwear & sleepwear` = Underwear & Sleepwear, 21; `hats & headwear` = Hats & Headwear, 19; `pants` = Pants, 14; `jackets & coats` = Jackets & Coats, 11 |
| `gender` | Gender | StoreRouter enrichment | 100% | 3 | `unisex` = Unisex, 107; `female` = Female, 33; `male` = Male, 14 |
| `pattern` | Pattern | StoreRouter enrichment | 100% | 13 | `pattern__logo` = Logo, 104; `pattern__solid` = Solid, 71; `pattern__text` = Text, 47; `pattern__art` = Art, 28; `pattern__characters` = Characters, 11 |
| `category_path.depth_3` | Category at depth 3 | StoreRouter enrichment | 94% | 20 | `t-shirts` = T-Shirts, 46; `socks` = Socks, 12; `balaclavas & face masks` = Balaclavas & Face Masks, 10; `sweatshirts & hoodies` = Sweatshirts & Hoodies, 9; `underwear` = Underwear, 9 |
| `fabric` | Fabric | StoreRouter enrichment | 72% | 13 | `fabric__cotton` = Cotton, 69; `fabric__elastane` = Elastane (Spandex / Lycra), 35; `fabric__polyester` = Polyester, 17; `fabric__nylon` = Nylon / Polyamide, 16; `fabric__denim` = Denim, 14 |
| `graphic_type` | Graphic Type | StoreRouter enrichment | 51% | 8 | `graphic_type__slogan_text` = Text / Slogan Print, 33; `graphic_type__logo_branded` = Logo Print, 32; `graphic_type__photo_art` = Photo Print / Art, 15; `graphic_type__logo_patch` = Logo Patch, 9; `graphic_type__abstract_print` = Abstract Graphic, 8 |
| `front_closure_type` | Front Closure | StoreRouter enrichment | 48% | 4 | `front_closure_type__none` = None, 50; `front_closure_type__zipper` = Zipper, 16; `front_closure_type__buttons` = Buttons, 8; `front_closure_type__snaps` = Snaps, 1 |
| `sleeve_length_type` | Sleeve length type | StoreRouter enrichment | 46% | 3 | `sleeve_length_type__short` = Short, 41; `sleeve_length_type__long` = Long, 24; `sleeve_length_type__sleeveless` = Sleeveless, 6 |
| `front_closure_length` | Front Closure Length | StoreRouter enrichment | 40% | 3 | `front_closure_length__none` = None, 42; `front_closure_length__full` = Full, 18; `front_closure_length__short_placket` = Short Placket, 2 |
| `neckline` | Neckline | StoreRouter enrichment | 40% | 5 | `neckline__crew` = Crew, 45; `neckline__round` = Round, 24; `neckline__hooded` = Hooded, 9; `neckline__collared` = Collared, 2; `neckline__halter` = Halter, 1 |
| `collar_style` | Collar Style | StoreRouter enrichment | 38% | 5 | `collar_style__crew` = Crew, 42; `collar_style__collarless` = Collarless, 8; `collar_style__stand_funnel` = Stand / Funnel, 7; `collar_style__polo` = Polo, 2; `collar_style__point` = Point, 1 |
| `category_path.depth_4` | Category at depth 4 | StoreRouter enrichment | 35% | 14 | `crew / mid-calf` = Crew / Mid-Calf, 12; `hoodies` = Hoodies, 9; `bomber jackets` = Bomber Jackets, 6; `women's briefs` = Women's Briefs, 5; `baseball caps` = Baseball Caps, 4 |
| `opacity_level` | Opacity | StoreRouter enrichment | 27% | 1 | `opacity_level__opaque` = Opaque, 42 |
| `general_clothing_features` | General Clothing Features | StoreRouter enrichment | 27% | 2 | `general_clothing_features__stretchable` = Stretchable, 37; `general_clothing_features__reversible` = Reversible, 4 |
| `fit_top` | Fit (Tops) | StoreRouter enrichment | 23% | 4 | `fit_top__boxy` = Boxy, 25; `fit_top__fitted` = Fitted, 7; `fit_top__regular` = Regular, 2; `fit_top__oversized` = Oversized, 1 |
| `fabric_weight` | Fabric Weight | StoreRouter enrichment | 18% | 1 | `fabric_weight__heavyweight` = Heavyweight, 27 |
| `season` | Season | StoreRouter enrichment | 16% | 2 | `season__cold_weather` = Cold Weather, 15; `season__warm_weather` = Warm Weather, 9 |
| `bottoms_closure` | Bottoms Closure | StoreRouter enrichment | 9% | 4 | `bottoms_closure__drawstring` = Drawstring, 8; `bottoms_closure__pull_on` = Pull-On, 4; `bottoms_closure__zip` = Zip Fly, 2; `bottoms_closure__buttons` = Button Fly, 1 |
| `denim_wash` | Denim Wash | StoreRouter enrichment | 9% | 3 | `denim_wash__black` = Black, 7; `denim_wash__medium` = Medium, 4; `denim_wash__light` = Light, 3 |
| `denim_wash_effects` | Denim Finish Effects | StoreRouter enrichment | 9% | 2 | `denim_wash_effects__faded_stonewash` = Faded / Stonewash, 14; `denim_wash_effects__distressed` = Distressed, 1 |
| `pants_leg_shape` | Leg Shape | StoreRouter enrichment | 9% | 2 | `pants_leg_shape__straight` = Straight, 10; `pants_leg_shape__skinny` = Skinny, 4 |
| `activewear_unique_features` | Activewear Features | StoreRouter enrichment | 7% | 3 | `activewear_unique_features__adjustable_waistband` = Adjustable Waistband, 6; `activewear_unique_features__hidden_pockets` = Hidden Pockets, 3; `activewear_unique_features__flatlock_seams` = Flatlock Seams, 1 |
| `care_instructions` | Care instructions | StoreRouter enrichment | 6% | 1 | `care_instructions__machine_washable` = Machine Washable, 9 |
| `material` | Material | StoreRouter enrichment | 6% | 4 | `material__cotton` = Cotton, 4; `material__polyester` = Polyester, 4; `material__wool` = Wool, 3; `material__faux-fur` = Faux Fur, 2 |
| `underwear_coverage_style` | Underwear coverage style | StoreRouter enrichment | 6% | 3 | `underwear_coverage_style__full` = Full Coverage, 7; `underwear_coverage_style__high_rise` = High Rise, 3; `underwear_coverage_style__brief` = Brief, 2 |
| `activity_type` | Activity Type | StoreRouter enrichment | 5% | 2 | `activity_type__training_gym` = Training / Gym, 6; `activity_type__tennis` = Tennis, 2 |
| `outerwear_length_type` | Outerwear Length | StoreRouter enrichment | 5% | 2 | `outerwear_length_type__hip` = Hip Length, 5; `outerwear_length_type__cropped` = Cropped, 3 |
| `sleeve_style` | Sleeve Style | StoreRouter enrichment | 5% | 1 | `sleeve_style__drop_shoulder` = Drop Shoulder, 8 |
| `top_length_type` | Top length type | StoreRouter enrichment | 5% | 3 | `top_length_type__cropped` = Cropped, 4; `top_length_type__hip_length` = Hip Length, 3; `top_length_type__waist_length` = Waist Length, 1 |
| `activity_intensity` | Activity Intensity | StoreRouter enrichment | 4% | 1 | `activity_intensity__training` = Training, 6 |
| `denim_hem_style` | Denim Hem Style | StoreRouter enrichment | 4% | 3 | `denim_hem_style__frayed` = Frayed, 3; `denim_hem_style__split` = Split, 2; `denim_hem_style__regular` = Regular, 1 |
| `footwear_material` | Footwear material | StoreRouter enrichment | 4% | 1 | `footwear_material__rubber_pvc` = Rubber / PVC, 6 |
| `occasion_style_shoes` | Occasion style | StoreRouter enrichment | 4% | 1 | `occasion_style_shoes__casual` = Casual, 6 |
| `performance_features` | Performance Features | StoreRouter enrichment | 4% | 1 | `performance_features__water_resistant` = Water Resistant, 6 |
| `sandal_style` | Sandal style | StoreRouter enrichment | 4% | 1 | `sandal_style__slide` = Slide, 6 |
| `shoe_closure_type` | Closure type | StoreRouter enrichment | 4% | 1 | `shoe_closure_type__slip-on` = Slip-On, 6 |
| `shoe_heel_height` | Heel height | StoreRouter enrichment | 4% | 1 | `shoe_heel_height__flats` = Flats, 6 |
| `shoe_sole_type` | Sole Type | StoreRouter enrichment | 4% | 1 | `shoe_sole_type__rubber` = Rubber, 6 |
| `toe_style` | Toe Shape | StoreRouter enrichment | 4% | 1 | `toe_style__open` = Open-Toe, 6 |
| `handwear_material` | Handwear material | StoreRouter enrichment | 3% | 2 | `handwear_material__cotton` = Cotton, 5; `handwear_material__polyvinyl_chloride_pvc` = Polyvinyl Chloride PVC, 5 |
| `handwear_type` | Handwear type | StoreRouter enrichment | 3% | 1 | `handwear_type__gloves` = Gloves, 5 |
| `placket_type` | Front Opening | StoreRouter enrichment | 3% | 1 | `placket_type__exposed` = Visible Buttons, 5 |
| `bag_case_material` | Bag/Case material | StoreRouter enrichment | 3% | 1 | `bag_case_material__leather` = Leather, 4 |
| `bag_closure_type` | Bag closure type | StoreRouter enrichment | 3% | 1 | `bag_closure_type__zipper` = Zipper, 4 |
| `bag_shape` | Bag Shape | StoreRouter enrichment | 3% | 1 | `bag_shape__rectangle` = Rectangle, 4 |
| `carry_options` | Carry options | StoreRouter enrichment | 3% | 1 | `carry_options__handle` = Handle, 4 |
| `fit_bottoms` | Fit | StoreRouter enrichment | 3% | 2 | `fit_bottoms__hip_hugging_skinny_fit` = Hip-Hugging (Skinny Fit), 3; `fit_bottoms__straight_through_fit` = Straight-Through Fit, 1 |
| `headwear_features` | Headwear features | StoreRouter enrichment | 3% | 2 | `headwear_features__adjustable_fit` = Adjustable Fit, 2; `headwear_features__versatile` = Versatile, 2 |
| `knit_style` | Knit Style | StoreRouter enrichment | 3% | 2 | `knit_style__jersey` = Jersey, 2; `knit_style__rib_knit` = Rib Knit, 2 |
| `occasion_general` | Occasion | StoreRouter enrichment | 3% | 1 | `occasion_general__casual` = Casual, 4 |
| `size_group` | Size Type | StoreRouter enrichment | 3% | 1 | `size_group__regular` = Regular, 4 |
| `embellishments` | Embellishments | StoreRouter enrichment | 2% | 1 | `embellishments__embroidery` = Embroidery, 3 |
| `pants_length_type` | Pants length type | StoreRouter enrichment | 2% | 2 | `pants_length_type__footed` = Footed, 2; `pants_length_type__ankle` = Ankle Length, 1 |
| `skirt_dress_length_type` | Skirt/Dress length type | StoreRouter enrichment | 2% | 2 | `skirt_dress_length_type__mini` = Mini, 2; `skirt_dress_length_type__maxi` = Maxi, 1 |
| `sustainability_features` | Sustainability Features | StoreRouter enrichment | 2% | 1 | `sustainability_features__recycled_materials` = Recycled Materials, 3 |
| `swimwear_unique_features` | Swimwear Features | StoreRouter enrichment | 2% | 1 | `swimwear_unique_features__adjustable_strap` = Adjustable Strap, 3 |
| `handwear_features` | Handwear features | StoreRouter enrichment | 1% | 1 | `handwear_features__enhanced_grip` = Enhanced Grip, 2 |
| `shorts_fit` | Shorts Fit | StoreRouter enrichment | 1% | 1 | `shorts_fit__tailored` = Tailored, 2 |
| `surface_finish` | Surface Finish | StoreRouter enrichment | 1% | 1 | `surface_finish__matte` = Matte, 2 |
| `insulation_level` | Insulation Level | StoreRouter enrichment | <1% | 1 | `insulation_level__heavyweight` = Heavyweight, 1 |
| `lining_material_outerwear` | Lining Material | StoreRouter enrichment | <1% | 1 | `lining_material_outerwear__fully_lined` = Fully Lined, 1 |
| `skirt_style` | Skirt style | StoreRouter enrichment | <1% | 1 | `skirt_style__pencil` = Pencil, 1 |
| `swim_top_coverage_style` | Swim top coverage style | StoreRouter enrichment | <1% | 1 | `swim_top_coverage_style__triangle` = Triangle, 1 |
| `tote_handle_type` | Tote handle type | StoreRouter enrichment | <1% | 1 | `tote_handle_type__dual` = Dual, 1 |
| `brand_name` | Canonical brand name | Brand | 100% | 1 | `Bstroy` = Bstroy, 154 |
