Catalog coverage · necessaire
Catalog coverage · necessaire
Catalog coverage · necessaire.com
Search products from necessaire.com and retrieve product details as JSON through StoreRouter’s API. Access prices, images, descriptions, and available variant data, plus enriched attributes for filtering.
Snapshot from . Counts are approximate and refresh about daily.
Developer quickstart
export OCTOGEN_PLATFORM_API_KEY="your-api-key". Requests use Authorization: Bearer; the SDKs read this variable automatically. Keep the key on your server.curl -sS https://api.storerouter.ai/v1/products/search \ -H "Authorization: Bearer $OCTOGEN_PLATFORM_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "catalogs": ["necessaire"], "limit": 5 }'# Requires Python 3.11+ and uv; install from the public SDK repository:
# git clone https://github.com/octogen-ai/octogen-dev.git
# cd octogen-dev
# uv sync --project sdks/python
# Save this sample as search.py here, then run:
# uv run --project sdks/python python search.py
import asyncio
from octogen_ai_sdk import OctogenClient
async def main() -> None:
async with OctogenClient(base_url="https://api.storerouter.ai/v1") as client:
page = await client.search_products(
catalogs=["necessaire"],
limit=5,
)
for product in page.items:
print(product.title, product.current_price, product.product_url)
asyncio.run(main())// Node.js 20+; install: npm install @octogen-ai/sdk
// Save this sample as search.mjs, then run: node search.mjs
import { OctogenClient } from "@octogen-ai/sdk";
const client = new OctogenClient({ baseUrl: "https://api.storerouter.ai/v1" });
const page = await client.searchProducts({
catalogs: ["necessaire"],
limit: 5,
});
for (const product of page.items) {
console.log(product.title, product.currentPrice, product.productUrl);
}Indexed snapshot from this search, verified by URL lookup. Selected fields only; prices and availability may have changed since retrieval.
Nécessaire
Nécessaire
Nécessaire
Search finds indexed products by query and filters within this retailer’s catalog.Product URL lookup retrieves one product: index_only uses the index and returns 404 on a miss; auto checks the index before resolving a miss on demand. For a fresh page read where supported, use resolutionMode: "on_demand_only" with onDemandCachePolicy: "refresh". On-demand results may be partial and do not guarantee live price or availability.
Example product response
Inspect a product from the search example above, then retrieve its details through the API.
Indexed response retrieved . Price and availability reflect this response and may change.

Nécessaire
$32.00In stock
Sizes: 250 ml, 250 ml / 8.4 fl oz
The Necessary™ | Care For Your Body | Care For Your Planet The Moisture Conditioner is a daily conditioner that delivers intense moisture to dry hair while helping smooth strands and replenish shine for healthier-looking hair. Powered by Argan (Oil/Extract/Water), Botanical Silk Complex—a plant-derived alternative to synthetic silicones—and Ceramides. Fine fragrance notes of White Musk, Ambrette, Vanille, and Oak. Hypoallergenic. Non-Comedogenic. Dermatologist-Tested. Safe for color-treated hair.
Source product pageProduct content returned by the lookup API, ready for a product page.
JSON response excerpt
{
"source": "indexed",
"catalogKey": "necessaire",
"product": {
"title": "The Moisture Conditioner",
"brand": {
"name": "Nécessaire"
},
"productUrl": "https://necessaire.com/products/the-moisture-conditioner",
"currentPrice": 32,
"currency": "USD",
"inStock": true,
"description": "The Necessary™ | Care For Your Body | Care For Your Planet The Moisture Conditioner is a daily conditioner that delivers intense moisture to dry hair while helping smooth strands and replenish shine for healthier-looking hair. Powered by Argan (Oil/Extract/Water), Botanical Silk Complex—a plant-derived alternative to synthetic silicones—and Ceramides. Fine fragrance notes of White Musk, Ambrette, Vanille, and Oak. Hypoallergenic. Non-Comedogenic. Dermatologist-Tested. Safe for color-treated hair.",
"primaryImage": {
"url": "https://cdn.shopify.com/s/files/1/0034/8812/0947/files/01_THEMOISTURECONDITIONER.jpg?v=1784935491",
"cdnUrl": "https://cdn.octogen.ai/e7a0d04bf6eef7d42dc1904899500b8c/4282b1dbc3addfc0404f14354528520c.webp?request_id=dabcefe5-49c6-4f93-a6c6-e9bab4f57210",
"width": 1116,
"height": 1302,
"sizeBytes": 24802,
"mimeType": "image/webp"
},
"details": {
"materials": [],
"fit": [],
"dimensions": null,
"patterns": []
}
}
}StoreRouter classification and attributes. Use attribute_handles as search facet values.
JSON response excerpt
{
"source": "indexed",
"catalogKey": "necessaire",
"product": {
"enrichment": {
"type": "hair conditioner",
"category_path": [
"Beauty",
"Hair Care",
"Shampoo & Conditioner",
"Conditioners"
],
"styles": [
"minimalist"
],
"attributes": {
"Conditioner effect": [
"Moisturizing",
"Shine",
"Smoothing"
],
"Suitable for hair type": [
"Dry"
],
"Constitutive ingredients": [
"Argan Oil",
"Water"
]
},
"attribute_handles": {
"conditioner_effect": [
"conditioner_effect__moisturizing",
"conditioner_effect__shine",
"conditioner_effect__smoothing"
],
"suitable_for_hair_type": [
"suitable_for_hair_type__dry"
],
"constitutive_ingredients": [
"constitutive_ingredients__argan_oil",
"constitutive_ingredients__water"
]
}
}
}
}curl -sS https://api.storerouter.ai/v1/products/lookup \
-H "Authorization: Bearer $OCTOGEN_PLATFORM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://necessaire.com/products/the-moisture-conditioner",
"resolutionMode": "index_only"
}'Selected response fields are shown. API documentation
Catalog
Attributes
Each attribute below is a search facet: the bar shows the share of Necessaire products that have it, and each value shows the share tagged with that value. A product can have several values, so these can add up to more than 100%.
Product form
product_form
Constitutive ingredients
constitutive_ingredients
Package type
package_type
Product certifications & standards
product_certifications_standards
Scent
scent
Dispenser type
dispenser_type
Skin care effect
skin_care_effect
Cosmetic function
cosmetic_function
| Field | Facet name | Source | Coverage | Values |
|---|---|---|---|---|
| Activewear | is_activewear | Merchant data | 98% | 1 |
| Product color | color | Merchant data | 3% | 2 |
| Color family | color_family | Merchant data | 3% | 2 |
| Category at depth 0 | category_path.depth_0 | StoreRouter enrichment | 100% | 3 |
| Category at depth 1 | category_path.depth_1 | StoreRouter enrichment | 100% | 6 |
| Category at depth 2 | category_path.depth_2 | StoreRouter enrichment | 100% | 17 |
| Category at depth 3 | category_path.depth_3 | StoreRouter enrichment | 94% | 20 |
| Product form | product_form | StoreRouter enrichment | 73% | 11 |
| Age Group | age_groups | StoreRouter enrichment | 62% | 1 |
| Gender | gender | StoreRouter enrichment | 62% | 1 |
| Constitutive ingredients | constitutive_ingredients | StoreRouter enrichment | 48% | 17 |
| Package type | package_type | StoreRouter enrichment | 44% | 11 |
| Product certifications & standards | product_certifications_standards | StoreRouter enrichment | 23% | 10 |
| Scent | scent | StoreRouter enrichment | 20% | 4 |
| Dispenser type | dispenser_type | StoreRouter enrichment | 19% | 5 |
| Skin care effect | skin_care_effect | StoreRouter enrichment | 18% | 16 |
| Cosmetic function | cosmetic_function | StoreRouter enrichment | 17% | 9 |
| Suitable for skin type | suitable_for_skin_type | StoreRouter enrichment | 13% | 4 |
| Active ingredient | active_ingredient | StoreRouter enrichment | 9% | 6 |
| Pattern | pattern | StoreRouter enrichment | 9% | 4 |
| Suitable for hair type | suitable_for_hair_type | StoreRouter enrichment | 9% | 4 |
| Conditioner effect | conditioner_effect | StoreRouter enrichment | 6% | 6 |
| Shampoo/Conditioner effect | shampoo_conditioner_effect | StoreRouter enrichment | 6% | 4 |
| Sustainability Features | sustainability_features | StoreRouter enrichment | 6% | 3 |
| Treatment type | treatment_type | StoreRouter enrichment | 5% | 1 |
| Category at depth 4 | category_path.depth_4 | StoreRouter enrichment | 3% | 3 |
| Application area | application_area | StoreRouter enrichment | 1% | 2 |
| Color | attribute_facets.color | StoreRouter enrichment | 1% | 1 |
| Bag/Case features | bag_case_features | StoreRouter enrichment | 1% | 1 |
| Bag/Case material | bag_case_material | StoreRouter enrichment | 1% | 1 |
| Bag closure type | bag_closure_type | StoreRouter enrichment | 1% | 1 |
| Bristle material | bristle_material | StoreRouter enrichment | 1% | 1 |
| Category at depth 5 | category_path.depth_5 | StoreRouter enrichment | 1% | 1 |
| Fragrance Notes | fragrance_notes | StoreRouter enrichment | 1% | 2 |
| Top Notes | fragrance_top_notes | StoreRouter enrichment | 1% | 2 |
| Graphic Type | graphic_type | StoreRouter enrichment | 1% | 1 |
| Hardware finish | hardware_finish | StoreRouter enrichment | 1% | 1 |
| Material | material | StoreRouter enrichment | 1% | 1 |
| Power source | power_source | StoreRouter enrichment | 1% | 1 |
| Skin care features | skin_care_features | StoreRouter enrichment | 1% | 1 |
| Wipe packaging | wipe_packaging | StoreRouter enrichment | 1% | 2 |
| Canonical brand name | brand_name | Brand | 100% | 1 |
Data
For agents
Every facet name and value on this page, ready for an agent or a script.
Are you an AI agent? Fetch https://storerouter.ai/llms.txt to learn how to get product data from StoreRouter, and how to make a storefront's products readable by agents.
One API key gives your agent search, product lookup, and similar-item results across every store StoreRouter indexes.
Get an API key