Catalog coverage · craftrecordings
Catalog coverage · craftrecordings
Catalog coverage · craftrecordings.com
Search products from craftrecordings.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": ["craftrecordings"], "q": "vinyl", "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=["craftrecordings"],
q="vinyl",
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: ["craftrecordings"],
q: "vinyl",
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.
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.

$26.00In stock
The Best of John Coltrane captures the legendary saxophonist in his most formative and creative years with Prestige. Curated from his prolific 1957-1958 output, this LP features selections that spotlight Coltrane's rapid artistic evolution as an original tenor saxophonist. Featuring both American songbook classics and jazz standards, it is both the perfect introduction for new listeners and a prized acquisition for aficionados, presenting the recordings that cemented John Coltrane's legacy.
Source product pageProduct content returned by the lookup API, ready for a product page.
JSON response excerpt
{
"source": "indexed",
"catalogKey": "craftrecordings",
"product": {
"title": "The Best Of John Coltrane (LP)",
"brand": null,
"productUrl": "https://craftrecordings.com/products/john-coltrane-the-best-of-john-coltrane-lp",
"currentPrice": 26,
"currency": "USD",
"inStock": true,
"description": "The Best of John Coltrane captures the legendary saxophonist in his most formative and creative years with Prestige. Curated from his prolific 1957-1958 output, this LP features selections that spotlight Coltrane's rapid artistic evolution as an original tenor saxophonist. Featuring both American songbook classics and jazz standards, it is both the perfect introduction for new listeners and a prized acquisition for aficionados, presenting the recordings that cemented John Coltrane's legacy.",
"primaryImage": {
"url": "https://cdn.shopify.com/s/files/1/0015/0840/9399/files/BestofJC.png?v=1768334682",
"cdnUrl": "https://cdn.octogen.ai/9cc9927dc735061948cfcb091b625e77/c939a841e97948135a6bba4156f4714d.webp?request_id=3c6d3458-7320-46d5-bad1-24f5aafb1717",
"width": 2048,
"height": 2048,
"sizeBytes": 202156,
"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": "craftrecordings",
"product": {
"enrichment": {
"type": "vinyl record",
"category_path": [
"Media",
"Music & Sound Recordings",
"Records & LPs"
],
"styles": [
"jazz"
],
"attributes": {
"Music genre": [
"Jazz"
]
},
"attribute_handles": {
"music_genre": [
"music_genre__jazz"
]
}
}
}
}curl -sS https://api.storerouter.ai/v1/products/lookup \
-H "Authorization: Bearer $OCTOGEN_PLATFORM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://craftrecordings.com/products/john-coltrane-the-best-of-john-coltrane-lp",
"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 Craftrecordings 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%.
Music genre
music_genre
Download format
download_format
| Field | Facet name | Source | Coverage | Values |
|---|---|---|---|---|
| Activewear | is_activewear | Merchant data | 11% | 2 |
| Product color | color | Merchant data | 9% | 28 |
| Color family | color_family | Merchant data | 9% | 12 |
| Category at depth 0 | category_path.depth_0 | StoreRouter enrichment | 100% | 2 |
| Category at depth 1 | category_path.depth_1 | StoreRouter enrichment | 100% | 6 |
| Category at depth 2 | category_path.depth_2 | StoreRouter enrichment | 100% | 16 |
| Music genre | music_genre | StoreRouter enrichment | 82% | 55 |
| Download format | download_format | StoreRouter enrichment | 22% | 4 |
| Pattern | pattern | StoreRouter enrichment | 11% | 20 |
| Category at depth 3 | category_path.depth_3 | StoreRouter enrichment | 11% | 14 |
| Age Group | age_groups | StoreRouter enrichment | 11% | 1 |
| Gender | gender | StoreRouter enrichment | 11% | 3 |
| Graphic Type | graphic_type | StoreRouter enrichment | 11% | 8 |
| Neckline | neckline | StoreRouter enrichment | 9% | 5 |
| Sleeve length type | sleeve_length_type | StoreRouter enrichment | 9% | 2 |
| Front Closure | front_closure_type | StoreRouter enrichment | 9% | 3 |
| Collar Style | collar_style | StoreRouter enrichment | 8% | 3 |
| Fabric | fabric | StoreRouter enrichment | 7% | 6 |
| Front Closure Length | front_closure_length | StoreRouter enrichment | 6% | 2 |
| Opacity | opacity_level | StoreRouter enrichment | 5% | 1 |
| Category at depth 4 | category_path.depth_4 | StoreRouter enrichment | 2% | 9 |
| Fit (Tops) | fit_top | StoreRouter enrichment | 2% | 4 |
| Fabric Weight | fabric_weight | StoreRouter enrichment | 1% | 3 |
| Knit Style | knit_style | StoreRouter enrichment | <1% | 1 |
| Sleeve Style | sleeve_style | StoreRouter enrichment | <1% | 3 |
| Occasion | occasion_general | StoreRouter enrichment | <1% | 1 |
| Bag/Case material | bag_case_material | StoreRouter enrichment | <1% | 2 |
| Bag closure type | bag_closure_type | StoreRouter enrichment | <1% | 1 |
| Bag Shape | bag_shape | StoreRouter enrichment | <1% | 1 |
| Carry options | carry_options | StoreRouter enrichment | <1% | 2 |
| Season | season | StoreRouter enrichment | <1% | 3 |
| Genre | genre | StoreRouter enrichment | <1% | 6 |
| Language version | language_version | StoreRouter enrichment | <1% | 1 |
| Material | material | StoreRouter enrichment | <1% | 6 |
| Tote handle type | tote_handle_type | StoreRouter enrichment | <1% | 2 |
| Book cover type | book_cover_type | StoreRouter enrichment | <1% | 1 |
| Jewelry material | jewelry_material | StoreRouter enrichment | <1% | 2 |
| Jewelry type | jewelry_type | StoreRouter enrichment | <1% | 1 |
| Size Type | size_group | StoreRouter enrichment | <1% | 1 |
| Target audience | target_audience | StoreRouter enrichment | <1% | 1 |
| Activity Type | activity_type | StoreRouter enrichment | <1% | 1 |
| Bottoms Closure | bottoms_closure | StoreRouter enrichment | <1% | 1 |
| Embellishments | embellishments | StoreRouter enrichment | <1% | 1 |
| General Clothing Features | general_clothing_features | StoreRouter enrichment | <1% | 1 |
| Hardware finish | hardware_finish | StoreRouter enrichment | <1% | 1 |
| Headwear features | headwear_features | StoreRouter enrichment | <1% | 1 |
| Insulation Level | insulation_level | StoreRouter enrichment | <1% | 2 |
| Outerwear Length | outerwear_length_type | StoreRouter enrichment | <1% | 1 |
| Leg Shape | pants_leg_shape | StoreRouter enrichment | <1% | 2 |
| Front Opening | placket_type | StoreRouter enrichment | <1% | 1 |
| Surface Finish | surface_finish | StoreRouter enrichment | <1% | 1 |
| Top Hem Shape | top_hem_shape | StoreRouter enrichment | <1% | 1 |
| Top length type | top_length_type | StoreRouter enrichment | <1% | 1 |
| Canonical brand name | brand_name | Brand | 11% | 20 |
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