# Riodesol (riodesol.com) product data API

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

- Catalog key: `riodesol` (pass in `"catalogs"` to narrow a search to this store)
- Products: 4,547
- Snapshot: 2026-10-16T21:53:06Z (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/riodesol
- Get an API key: https://platform.storerouter.ai/auth/organization

## Questions

### What does Riodesol sell?

Almost entirely Apparel & Accessories: 100% of its 4,547 products. Clothing is the largest department with 4,468 products, followed by Accessories (40) and Shoes (39). The most common Riodesol categories are Swimwear (4,360), Dresses (51) and Sandals (39).

### How are Riodesol 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 Bikini Bottoms (1,784 products). Every level is a search facet.

### What can I filter Riodesol products by?

62 searchable fields. Well-covered attributes include fabric (99% of products), sustainability features (95%) and swimwear features (87%). For fabric, the most common values are Nylon / Polyamide, Elastane (Spandex / Lycra) and Lycra; for sustainability features, the most common values are OEKO-TEX Standard 100, Biodegradable and Eco-Friendly.

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

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

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

### Where does the data come from?

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

### Baltico Rash-Guard

Product Information. Style of Print: Solid Color. Category: Top. Composition: 84% Biodegradable Nylon (AMNI SOUL ECO), 16% Spandex (LYCRA) - OEKO-TEX - Chlorine Resistant. Lining: 84% Polyamide, 16% Elastane - Oeko-Tex. Top style: Rash Guard - Not Padded - Seamless. UV Protection: UPF 50+. Trend: Sport. Brand: Rio de Sol. Model size: The model is wearing a size S. Main color: Blue. Collection: 2023. Wash & care: Hand Wash. Country of origin: Brazil

Indexed response retrieved 2026-10-17T02:33:17.950Z. 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": "riodesol",
  "product": {
    "title": "Baltico Rash-Guard",
    "brand": {
      "name": "Rio de Sol"
    },
    "productUrl": "https://riodesol.com/products/baltico-rash-guard",
    "currentPrice": 100,
    "currency": "USD",
    "inStock": true,
    "description": "Product Information. Style of Print: Solid Color. Category: Top. Composition: 84% Biodegradable Nylon (AMNI SOUL ECO), 16% Spandex (LYCRA) - OEKO-TEX - Chlorine Resistant. Lining: 84% Polyamide, 16% Elastane - Oeko-Tex. Top style: Rash Guard - Not Padded - Seamless. UV Protection: UPF 50+. Trend: Sport. Brand: Rio de Sol. Model size: The model is wearing a size S. Main color: Blue. Collection: 2023. Wash & care: Hand Wash. Country of origin: Brazil",
    "primaryImage": {
      "url": "https://cdn.shopify.com/s/files/1/0260/6435/5408/files/1-7c291eabb89f9010.jpg?v=1769178433",
      "cdnUrl": "https://cdn.octogen.ai/ee08470fb2afe55d3dd2619103bcd4d5/faa88bf9bdcbb2383e7c9bb78905150f.webp?request_id=303f122c-a6d6-4106-9449-a8fdf54c4ca5",
      "width": 1919,
      "height": 2048,
      "sizeBytes": 70920,
      "mimeType": "image/webp"
    },
    "details": {
      "materials": [
        "84% Biodegradable Nylon (AMNI SOUL ECO), 16% Spandex (LYCRA) - OEKO-TEX - Chlorine Resistant",
        "84% Polyamide, 16% Elastane - Oeko-Tex"
      ],
      "fit": [],
      "dimensions": null,
      "patterns": [
        "Solid Color"
      ]
    }
  }
}
```

### Enrichment

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

```json
{
  "source": "indexed",
  "catalogKey": "riodesol",
  "product": {
    "enrichment": {
      "type": "rash guard",
      "category_path": [
        "Apparel & Accessories",
        "Clothing",
        "Swimwear",
        "Performance Tops",
        "Rash Guards"
      ],
      "styles": [
        "sporty",
        "minimalist"
      ],
      "attributes": {
        "Fabric": [
          "Elastane (Spandex / Lycra)",
          "Lycra",
          "Nylon / Polyamide"
        ],
        "Season": [
          "Warm Weather"
        ],
        "Pattern": [
          "Solid"
        ],
        "Neckline": [
          "Round"
        ],
        "Sleeve Style": [
          "Raglan"
        ],
        "Activity Type": [
          "Swimming"
        ],
        "Swimwear Features": [
          "Chlorine Resistant"
        ],
        "Sleeve length type": [
          "Long"
        ],
        "Performance Features": [
          "UV Protection"
        ],
        "Sustainability Features": [
          "Biodegradable",
          "OEKO-TEX Standard 100"
        ],
        "Swim top coverage style": [
          "Sport"
        ],
        "General Clothing Features": [
          "Stretchable"
        ]
      },
      "attribute_handles": {
        "fabric": [
          "fabric__elastane",
          "fabric__lycra",
          "fabric__nylon"
        ],
        "season": [
          "season__warm_weather"
        ],
        "pattern": [
          "pattern__solid"
        ],
        "neckline": [
          "neckline__round"
        ],
        "sleeve_style": [
          "sleeve_style__raglan"
        ],
        "activity_type": [
          "activity_type__swimming"
        ],
        "sleeve_length_type": [
          "sleeve_length_type__long"
        ],
        "performance_features": [
          "performance_features__uv_protection"
        ],
        "sustainability_features": [
          "sustainability_features__biodegradable",
          "sustainability_features__oeko_tex_standard_100"
        ],
        "swim_top_coverage_style": [
          "swim_top_coverage_style__sport"
        ],
        "swimwear_unique_features": [
          "swimwear_unique_features__chlorine_resistant"
        ],
        "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": ["riodesol"],
    "q": "swimwear",
    "limit": 5
  }'
```

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

- [Baltico Rash-Guard](https://riodesol.com/products/baltico-rash-guard) — $100.00
- [Tambourine Rash-Guard](https://riodesol.com/products/tambourine-rash-guard) — $100.00
- [Top -Palms Rash-Guard](https://riodesol.com/products/top-pink-palms-rash-guard) — $100.00
- [Top Pua-Pacifica Reef](https://riodesol.com/products/top-pua-pacifica-reef) — $100.00
- [Top Green-Bloom Rash-Guard](https://riodesol.com/products/top-green-bloom-rash-guard) — $100.00

## Prices

Median price $57 across 4,547 priced products. Current prices, assumed USD.

| Price range | Products |
| --- | --- |
| Under $33 | 35 |
| $33–$43 | 50 |
| $43–$53 | 1,050 |
| $53–$63 | 1,837 |
| $63–$73 | 81 |
| $73–$83 | 0 |
| $83–$93 | 36 |
| $93–$103 | 79 |
| $103–$113 | 774 |
| $113 and up | 605 |

## Categories

| Category | Products |
| --- | --- |
| Swimwear | 4,360 |
| Dresses | 51 |
| Sandals | 39 |
| Hair Accessories | 34 |
| Skirts | 26 |
| Pants | 22 |
| Tops | 6 |
| Hats & Headwear | 3 |
| Scarves | 3 |
| Jackets & Coats | 2 |

## 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% | 24 | `multi` = Multi, 633; `blue` = Blue, 579; `green` = Green, 534; `pink` = Pink, 514; `red` = Red, 413 |
| `color_family` | Color family | Merchant data | 100% | 12 | `Blue` = Blue, 786; `Multicolor` = Multicolor, 633; `Green` = Green, 542; `Pink` = Pink, 514; `Red` = Red, 414 |
| `is_activewear` | Activewear | Merchant data | 100% | 2 | `false` = False, 3,858; `true` = True, 689 |
| `age_groups` | Age Group | StoreRouter enrichment | 100% | 4 | `adult` = Adult, 4,495; `kids` = Kids, 47; `infant` = Infant, 5; `toddler` = Toddler, 5 |
| `category_path.depth_0` | Category at depth 0 | StoreRouter enrichment | 100% | 1 | `apparel & accessories` = Apparel & Accessories, 4,547 |
| `category_path.depth_1` | Category at depth 1 | StoreRouter enrichment | 100% | 3 | `clothing` = Clothing, 4,468; `accessories` = Accessories, 40; `shoes` = Shoes, 39 |
| `category_path.depth_2` | Category at depth 2 | StoreRouter enrichment | 100% | 11 | `swimwear` = Swimwear, 4,360; `dresses` = Dresses, 51; `sandals` = Sandals, 39; `hair accessories` = Hair Accessories, 34; `skirts` = Skirts, 26 |
| `gender` | Gender | StoreRouter enrichment | 100% | 3 | `female` = Female, 4,452; `unisex` = Unisex, 83; `male` = Male, 10 |
| `pattern` | Pattern | StoreRouter enrichment | 100% | 35 | `pattern__solid` = Solid, 2,028; `pattern__floral` = Floral, 899; `pattern__texture` = Texture, 483; `pattern__leaves` = Leaves, 344; `pattern__animal` = Animal, 316 |
| `fabric` | Fabric | StoreRouter enrichment | 99% | 7 | `fabric__nylon` = Nylon / Polyamide, 4,487; `fabric__elastane` = Elastane (Spandex / Lycra), 4,437; `fabric__lycra` = Lycra, 3,278; `fabric__metallic_lurex` = Metallic / Lurex, 86; `fabric__polyester` = Polyester, 86 |
| `category_path.depth_3` | Category at depth 3 | StoreRouter enrichment | 97% | 16 | `bikinis` = Bikinis, 3,875; `one-pieces` = One-Pieces, 428; `hair bands` = Hair Bands, 34; `performance tops` = Performance Tops, 25; `trousers` = Trousers, 22 |
| `sustainability_features` | Sustainability Features | StoreRouter enrichment | 95% | 4 | `sustainability_features__oeko_tex_standard_100` = OEKO-TEX Standard 100, 4,300; `sustainability_features__biodegradable` = Biodegradable, 2,646; `sustainability_features__eco_friendly` = Eco-Friendly, 1,506; `sustainability_features__recycled_materials` = Recycled Materials, 38 |
| `season` | Season | StoreRouter enrichment | 88% | 1 | `season__warm_weather` = Warm Weather, 3,981 |
| `swimwear_unique_features` | Swimwear Features | StoreRouter enrichment | 87% | 4 | `swimwear_unique_features__chlorine_resistant` = Chlorine Resistant, 3,694; `swimwear_unique_features__removable_padding` = Removable Padding, 1,508; `swimwear_unique_features__adjustable_strap` = Adjustable Strap, 345; `swimwear_unique_features__built_in_bra` = Built-In Bra / Shelf Bra, 2 |
| `category_path.depth_4` | Category at depth 4 | StoreRouter enrichment | 87% | 11 | `bikini bottoms` = Bikini Bottoms, 1,784; `bikini tops` = Bikini Tops, 1,100; `bikini sets` = Bikini Sets, 991; `ponytail holders` = Ponytail Holders, 34; `rash guards` = Rash Guards, 24 |
| `general_clothing_features` | General Clothing Features | StoreRouter enrichment | 77% | 2 | `general_clothing_features__stretchable` = Stretchable, 3,385; `general_clothing_features__reversible` = Reversible, 111 |
| `performance_features` | Performance Features | StoreRouter enrichment | 57% | 2 | `performance_features__uv_protection` = UV Protection, 2,595; `performance_features__four_way_stretch` = Four Way Stretch, 1 |
| `sleeve_length_type` | Sleeve length type | StoreRouter enrichment | 43% | 4 | `sleeve_length_type__sleeveless` = Sleeveless, 1,864; `sleeve_length_type__long` = Long, 60; `sleeve_length_type__short` = Short, 15; `sleeve_length_type__3/4` = 3/4, 2 |
| `neckline` | Neckline | StoreRouter enrichment | 27% | 16 | `neckline__halter` = Halter, 444; `neckline__strapless` = Strapless, 262; `neckline__v_neck` = V Neck, 253; `neckline__scoop` = Scoop, 128; `neckline__plunging` = Plunging, 102 |
| `swim_top_coverage_style` | Swim top coverage style | StoreRouter enrichment | 22% | 5 | `swim_top_coverage_style__triangle` = Triangle, 577; `swim_top_coverage_style__bandeau` = Bandeau, 229; `swim_top_coverage_style__bralette` = Bralette, 142; `swim_top_coverage_style__sport` = Sport, 38; `swim_top_coverage_style__high_neck` = High Neck, 5 |
| `swim_bottom_coverage_style` | Swim bottom coverage style | StoreRouter enrichment | 16% | 5 | `swim_bottom_coverage_style__cheeky` = Cheeky, 530; `swim_bottom_coverage_style__thong` = Thong, 142; `swim_bottom_coverage_style__high_waisted` = High-Waisted, 35; `swim_bottom_coverage_style__classic` = Classic, 7; `swim_bottom_coverage_style__full` = Full Coverage, 2 |
| `construction_detail` | Construction Detail | StoreRouter enrichment | 10% | 4 | `construction_detail__ruffled` = Ruffled, 273; `construction_detail__ruched` = Ruched, 178; `construction_detail__draped` = Draped, 11; `construction_detail__lace_trim` = Lace Trim, 1 |
| `skirt_dress_length_type` | Skirt/Dress length type | StoreRouter enrichment | 2% | 3 | `skirt_dress_length_type__mini` = Mini, 53; `skirt_dress_length_type__maxi` = Maxi, 17; `skirt_dress_length_type__midi` = Midi, 3 |
| `care_instructions` | Care instructions | StoreRouter enrichment | <1% | 1 | `care_instructions__hand_wash` = Hand Wash, 40 |
| `footwear_material` | Footwear material | StoreRouter enrichment | <1% | 1 | `footwear_material__rubber_pvc` = Rubber / PVC, 39 |
| `occasion_style_shoes` | Occasion style | StoreRouter enrichment | <1% | 1 | `occasion_style_shoes__casual` = Casual, 39 |
| `sandal_style` | Sandal style | StoreRouter enrichment | <1% | 2 | `sandal_style__flip_flop` = Flip Flop, 39; `sandal_style__thong` = Thong, 39 |
| `shoe_closure_type` | Closure type | StoreRouter enrichment | <1% | 3 | `shoe_closure_type__slip-on` = Slip-On, 39; `shoe_closure_type__none` = None, 37; `shoe_closure_type__straps` = Straps, 11 |
| `shoe_heel_height` | Heel height | StoreRouter enrichment | <1% | 1 | `shoe_heel_height__flats` = Flats, 39 |
| `shoe_sole_type` | Sole Type | StoreRouter enrichment | <1% | 2 | `shoe_sole_type__rubber` = Rubber, 26; `shoe_sole_type__standard` = Standard, 9 |
| `toe_style` | Toe Shape | StoreRouter enrichment | <1% | 1 | `toe_style__open` = Open-Toe, 36 |
| `dress_style` | Dress style | StoreRouter enrichment | <1% | 5 | `dress_style__bodycon` = Bodycon, 14; `dress_style__shirt` = Shirt, 14; `dress_style__wrap` = Wrap, 2; `dress_style__flared` = Flared, 1; `dress_style__tiered` = Tiered, 1 |
| `activity_type` | Activity Type | StoreRouter enrichment | <1% | 1 | `activity_type__swimming` = Swimming, 22 |
| `skirt_style` | Skirt style | StoreRouter enrichment | <1% | 3 | `skirt_style__wrap` = Wrap, 15; `skirt_style__asymmetrical` = Asymmetrical, 9; `skirt_style__pencil` = Pencil, 3 |
| `sleeve_style` | Sleeve Style | StoreRouter enrichment | <1% | 5 | `sleeve_style__raglan` = Raglan, 11; `sleeve_style__kimono` = Kimono, 7; `sleeve_style__dolman` = Dolman / Batwing, 2; `sleeve_style__bell` = Bell, 1; `sleeve_style__ruffle` = Ruffle, 1 |
| `pants_leg_shape` | Leg Shape | StoreRouter enrichment | <1% | 2 | `pants_leg_shape__wide_leg` = Wide Leg, 16; `pants_leg_shape__flare` = Flare, 3 |
| `fit_bottoms` | Fit | StoreRouter enrichment | <1% | 1 | `fit_bottoms__wide_leg_volume_fit` = Wide-Leg Volume Fit, 12 |
| `graphic_type` | Graphic Type | StoreRouter enrichment | <1% | 2 | `graphic_type__solid_no_print` = Solid / No Print, 11; `graphic_type__abstract_print` = Abstract Graphic, 2 |
| `slit_style` | Slit Style | StoreRouter enrichment | <1% | 3 | `slit_style__side_slit` = Side Slit, 12; `slit_style__high_slit` = High Slit, 2; `slit_style__front_slit` = Front Slit, 1 |
| `front_closure_type` | Front Closure | StoreRouter enrichment | <1% | 2 | `front_closure_type__none` = None, 6; `front_closure_type__tie_lace_up` = Tie / Lace-Up, 2 |
| `fit_top` | Fit (Tops) | StoreRouter enrichment | <1% | 2 | `fit_top__fitted` = Fitted, 5; `fit_top__flowy` = Flowy, 1 |
| `front_closure_length` | Front Closure Length | StoreRouter enrichment | <1% | 1 | `front_closure_length__none` = None, 5 |
| `headwear_features` | Headwear features | StoreRouter enrichment | <1% | 1 | `headwear_features__uv_protection` = UV Protection, 3 |
| `material` | Material | StoreRouter enrichment | <1% | 1 | `material__polyester` = Polyester, 3 |
| `occasion_general` | Occasion | StoreRouter enrichment | <1% | 1 | `occasion_general__active` = Active, 3 |
| `occasion_style_dresses` | Dress occasion | StoreRouter enrichment | <1% | 1 | `occasion_style_dresses__casual` = Casual, 4 |
| `openwork_detail` | Openwork Detail | StoreRouter enrichment | <1% | 2 | `openwork_detail__cutouts` = Cutouts, 2; `openwork_detail__open_knit` = Open Knit, 1 |
| `scarf_shawl_style` | Scarf/Shawl style | StoreRouter enrichment | <1% | 3 | `scarf_shawl_style__square` = Square, 3; `scarf_shawl_style__wrap` = Wrap, 2; `scarf_shawl_style__shawl` = Shawl, 1 |
| `top_length_type` | Top length type | StoreRouter enrichment | <1% | 1 | `top_length_type__cropped` = Cropped, 5 |
| `bottoms_closure` | Bottoms Closure | StoreRouter enrichment | 0% | 1 | `bottoms_closure__drawstring` = Drawstring, 1 |
| `bra_features` | Bra features | StoreRouter enrichment | 0% | 1 | `bra_features__removable_padding` = Removable Padding, 1 |
| `bra_strap_type` | Bra strap type | StoreRouter enrichment | 0% | 1 | `bra_strap_type__cross_back` = Cross Back, 1 |
| `category_path.depth_5` | Category at depth 5 | StoreRouter enrichment | 0% | 1 | `lounge bottoms` = Lounge Bottoms, 1 |
| `collar_style` | Collar Style | StoreRouter enrichment | 0% | 1 | `collar_style__collarless` = Collarless, 2 |
| `embellishments` | Embellishments | StoreRouter enrichment | 0% | 1 | `embellishments__fringe` = Fringe, 2 |
| `fabric_weight` | Fabric Weight | StoreRouter enrichment | 0% | 1 | `fabric_weight__sheer` = Sheer, 1 |
| `opacity_level` | Opacity | StoreRouter enrichment | 0% | 1 | `opacity_level__sheer` = Sheer, 2 |
| `outerwear_length_type` | Outerwear Length | StoreRouter enrichment | 0% | 1 | `outerwear_length_type__mid_thigh` = Mid-Thigh, 1 |
| `pants_length_type` | Pants length type | StoreRouter enrichment | 0% | 1 | `pants_length_type__long` = Long, 1 |
| `shoe_features` | Shoe features | StoreRouter enrichment | 0% | 1 | `shoe_features__lightweight` = Lightweight, 1 |
| `surface_finish` | Surface Finish | StoreRouter enrichment | 0% | 1 | `surface_finish__metallic` = Metallic, 1 |
| `brand_name` | Canonical brand name | Brand | 100% | 3 | `Rio de Sol` = Rio de Sol, 4,242; `Wednesday in Hawaii by Rio de Sol` = Wednesday in Hawaii by Rio de Sol, 303; `Brazilian Bikini Shop` = Brazilian Bikini Shop, 2 |
