Catalog coverage · persol
Catalog coverage · persol
Search products from persol.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.
Catalog
Median price $383 across 934 priced products. Current prices, in USD.
Example product response
Inspect a product from the search example below, then retrieve its details through the API.
Indexed response retrieved . Price and availability reflect this response and may change.

Persol
$163.50In stock
Sizes: 56-17, 56-17RX
Soft rectangular metal shape with acetate temples, flex hinges for added comfort enriched by metal end pieces.
Source product pageProduct content returned by the lookup API, ready for a product page.
JSON response excerpt
{
"source": "indexed",
"catalogKey": "persol",
"product": {
"title": "PO1005V",
"brand": {
"name": "Persol"
},
"productUrl": "https://www.persol.com/en-us/products/0po1005v-1152",
"currentPrice": 163.5,
"currency": "USD",
"inStock": true,
"description": "Soft rectangular metal shape with acetate temples, flex hinges for added comfort enriched by metal end pieces.",
"primaryImage": {
"url": "https://cdn.shopify.com/s/files/1/0666/8045/5235/files/0PO1005V__1152__P21__shad__qt_61b87d14865dc89ff29f611a2a9c4e6cf889555f9a9f8954ea983190ee70ab4a.png?v=1788801022",
"cdnUrl": "https://cdn.octogen.ai/bd8e051068f843761fa261017c30f4d0/3d95934077c05f4130e8526acbea04fa.webp?request_id=7b76fbe5-a772-4acb-9567-3b5620ea791b",
"width": 1920,
"height": 960,
"sizeBytes": 135332,
"mimeType": "image/webp"
},
"details": {
"materials": [
"Steel/Metal"
],
"fit": [
"Adjustable Nosepads"
],
"dimensions": null,
"patterns": []
}
}
}StoreRouter classification and attributes. Use attribute_handles as search facet values.
JSON response excerpt
{
"source": "indexed",
"catalogKey": "persol",
"product": {
"enrichment": {
"type": "eyeglasses",
"category_path": [
"Apparel & Accessories",
"Accessories",
"Eyewear",
"Glasses"
],
"styles": [
"modern",
"professional",
"minimalist"
],
"attributes": {
"Pattern": [
"Solid"
],
"Temple color": [
"Blue"
],
"Temple pattern": [
"Solid"
],
"Eyewear frame color": [
"Blue"
],
"Eyewear frame design": [
"Rectangle"
],
"Eyewear frame pattern": [
"Solid"
],
"Eyewear Frame Material": [
"Acetate",
"Metal"
]
},
"attribute_handles": {
"pattern": [
"pattern__solid"
],
"temple_color": [
"temple_color__blue"
],
"temple_pattern": [
"temple_pattern__solid"
],
"eyewear_frame_color": [
"eyewear_frame_color__blue"
],
"eyewear_frame_design": [
"eyewear_frame_design__rectangle"
],
"eyewear_frame_pattern": [
"eyewear_frame_pattern__solid"
],
"eyewear_frame_material": [
"eyewear_frame_material__acetate",
"eyewear_frame_material__metal"
]
}
}
}
}curl -sS https://api.storerouter.ai/v1/products/lookup \
-H "Authorization: Bearer $OCTOGEN_PLATFORM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.persol.com/en-us/products/0po1005v-1152",
"resolutionMode": "index_only"
}'Selected response fields are shown. API documentation
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": ["persol"], "q": "eyewear", "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=["persol"],
q="eyewear",
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: ["persol"],
q: "eyewear",
limit: 5,
});
for (const product of page.items) {
console.log(product.title, product.currentPrice, product.productUrl);
}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.
Attributes
Each attribute below is a search facet: the bar shows the share of Persol 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%.
Eyewear frame color
eyewear_frame_color
Eyewear Frame Material
eyewear_frame_material
Eyewear frame design
eyewear_frame_design
Product color
color
Color family
color_family
Pattern
pattern
Temple color
temple_color
Lens color
lens_color
Eyewear frame pattern
eyewear_frame_pattern
Temple pattern
temple_pattern
Lens pattern
lens_pattern
| Field | Facet name | Source | Coverage | Values |
|---|---|---|---|---|
| Activewear | is_activewear | Merchant data | 100% | 1 |
| Product color | color | Merchant data | 99% | 28 |
| Color family | color_family | Merchant data | 99% | 12 |
| Age Group | age_groups | StoreRouter enrichment | 100% | 1 |
| Category at depth 0 | category_path.depth_0 | StoreRouter enrichment | 100% | 1 |
| Category at depth 1 | category_path.depth_1 | StoreRouter enrichment | 100% | 1 |
| Category at depth 2 | category_path.depth_2 | StoreRouter enrichment | 100% | 1 |
| Category at depth 3 | category_path.depth_3 | StoreRouter enrichment | 100% | 2 |
| Eyewear frame color | eyewear_frame_color | StoreRouter enrichment | 100% | 16 |
| Gender | gender | StoreRouter enrichment | 100% | 2 |
| Eyewear Frame Material | eyewear_frame_material | StoreRouter enrichment | 100% | 3 |
| Eyewear frame design | eyewear_frame_design | StoreRouter enrichment | 100% | 6 |
| Pattern | pattern | StoreRouter enrichment | 98% | 12 |
| Temple color | temple_color | StoreRouter enrichment | 94% | 16 |
| Lens color | lens_color | StoreRouter enrichment | 86% | 8 |
| Eyewear frame pattern | eyewear_frame_pattern | StoreRouter enrichment | 77% | 7 |
| Temple pattern | temple_pattern | StoreRouter enrichment | 69% | 7 |
| Lens pattern | lens_pattern | StoreRouter enrichment | 48% | 3 |
| Lens polarization | lens_polarization | StoreRouter enrichment | 3% | 1 |
| Sustainability Features | sustainability_features | 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