Apparel catalog and pricing monitoring
J.Crewエンドポイントを使えば、「Apparel catalog and pricing monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Turn J.Crew's and J.Crew Factory's own storefront data into structured apparel data — category browsing, keyword search with live facets, full product detail with every color+size SKU, size charts with real body measurements, customer reviews, and store locator data, all as normalized JSON. Credential-free.
Search J.Crew or J.Crew Factory products and get full product detail — pricing, size charts, reviews, and store locations — as structured JSON.
エンドポイントファミリー
6
ドキュメント化されたパラメータ
31
サンプル数
8
ライブカタログスナップショット
稼働エンドポイント
8
メソッド
GET
必須パラメータ
14
スキーマ参照
8
{
"platform": "J.Crew",
"endpoint": "jcrew-search",
"method": "GET",
"path": "/jcrew/search",
"auth": "apiKey"
}ユースケース
Search J.Crew or J.Crew Factory products and get full product detail — pricing, size charts, reviews, and store locations — as structured JSON.
J.Crewエンドポイントを使えば、「Apparel catalog and pricing monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
J.Crewエンドポイントを使えば、「Size and fit data collection」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
J.Crewエンドポイントを使えば、「Store locator and review tracking」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
マネージド実行
CrawloraのJ.Crew APIは、J.Crew固有のデータサーフェスに合わせて設計されています。汎用的なfetchエンドポイントを公開する代わりに、エンドポイント固有のリクエストロジック、マネージドインフラ、パース、正規化、課金、そしてPlaygroundで検証済みのサンプルを組み合わせています。
J.Crewのエンドポイントごとに、リクエスト挙動をチューニングしています。
対応するJ.Crewエンドポイントはマネージドプロキシルーティングを利用でき、信頼性を高めながらインフラ運用の手間を減らせます。
JavaScriptレンダリングが必要なJ.Crewの動的ページは、マネージドブラウザインスタンス経由で処理できます。
J.Crewのチャレンジページや利用不能な上流レスポンスを検知し、明確に通知します。
J.Crewの結果は生のHTMLではなく、ドキュメント化されたJSONで返されます。
本番統合の前に、同じJ.CrewのルートをDocsとPlaygroundからテストできます。
カバレッジマップ
これらのカードは稼働中のエンドポイントカタログから生成されるため、このページはDocsとPlaygroundが使うAPIサーフェスをそのまま反映します。
/jcrew/product
/jcrew/categories
/jcrew/category
/jcrew/search
/jcrew/size-chart
/jcrew/stores
エンドポイントカタログ
/jcrew/searchSearches the product catalog for either storefront (select with site, default jcrew). Returns normalized product summaries with USD pricing, gender, and a description, plus the search index's own facets (gender, fabric, category, size, color, price range, and others) with live per-option counts. sort selects relevance (default), price_asc, or price_desc. filter narrows results by one or more facet name:value pairs (comma-separated, e.g. productGender:Men,styleFabric:Cashmere) taken from a prior response's own facets[].name/facets[].options[].value fields -- not curated against a fixed list, since the facet set is large and can change. This is best-effort relevance, not a guaranteed keyword match: for an obscure alphanumeric keyword the upstream search index falls back to its own semantically-related results instead of an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback.
レスポンスに関する注記
- This search is best-effort relevance, not a guaranteed keyword match. For an obscure alphanumeric keyword, the upstream search index falls back to its own semantically-related results (Constructor.io's own "embeddings match" fallback) instead of an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback. A genuine empty result was only reproduced with a symbols-only query. - `total_products` and `total_pages` reflect the upstream's own result count for the current `keyword`/`site`/`filter` combination. - Each product's `id` is the value to pass as `pid` to `jcrew-product-reviews`, `jcrew-product`, or `jcrew-size-chart` (with the same `site`). - `price_min`/`price_max` and `sale_price_min`/`sale_price_max` are USD, aggregated across every fit the style is offered in. - `facets` lists the search index's own available filters (gender, fabric, category, size, color, price range, and others) with live per-option result counts. A range facet (only `price` observed) sets `is_range` true and carries `range_min`/`range_max` instead of `options`. - `site=factory` uses J.Crew Factory's own independent search index (Constructor.io key, separate from the flagship site) -- results, facets, and product ids are entirely separate from `site=jcrew`. Example response: ```json {"code":200,"msg":"OK","data":{"keyword":"sweater","site":"jcrew","sort":"relevance","page":1,"per_page":24,"total_pages":15,"total_products":338,"count":1,"products":[{"id":"CX415","family_id":"ME617","name":"2025 Rollneck sweater","description":"A J.Crew icon since the '80s, refreshed for right now...","gender":"Women","image_url":"http://www.jcrew.com/s7-img-facade/CX415_NA6434?fmt=jpeg&qlt=90,0","orderable":true,"price_min":98,"price_max":128,"sale_price_min":98,"sale_price_max":98,"url":"https://www.jcrew.com/p/CX415"}],"facets":[{"name":"productGender","label":"Gender","type":"multiple","options":[{"label":"Women","value":"Women","count":208}]},{"name":"price","label":"Price","type":"range","is_range":true,"range_min":28,"range_max":429.99}]}} ```
/jcrew/categoriesLists every category and subcategory from the storefront's own header navigation, flattened into department/section/category triples -- resolves the category-discovery gap jcrew-category's own category parameter otherwise leaves as "find one from a storefront URL". Each entry's category value is exactly what jcrew-category's own category parameter accepts. Filter to one department with department (e.g. women, men); omit for every department. Departments vary slightly by site (jcrew.com has an extra "home" department factory.jcrew.com doesn't) -- see the response's own departments field for the live list.
レスポンスに関する注記
- `departments` lists every department the storefront's own navigation exposes. This varies slightly by site: `jcrew.com` has an extra `home` department `factory.jcrew.com` doesn't. - `section` groups entries the way the storefront's own nav does (typically `clothing`, `accessories`, `shoes`), matching the department tabs and sub-columns visible on the real site. - Some entries are hub-level (e.g. `womens/categories/clothing`, the section's own "All Clothing" link) rather than a true leaf subcategory -- passing one to `jcrew-category` returns a well-formed empty result, not an error, same as browsing that hub page on the real site. Example response: ```json { "code": 200, "msg": "OK", "data": { "site": "jcrew", "departments": ["women", "men", "boys", "girls", "home", "shoes", "accessories"], "categories": [ {"department": "women", "section": "clothing", "category": "womens/categories/clothing/sweaters", "label": "sweaters"}, {"department": "women", "section": "clothing", "category": "womens/categories/clothing/jeans", "label": "jeans"} ] } } ```
/jcrew/categoryReturns one page (up to 60 products) of a category/browse listing for a category path. category is the slash-separated path segment after the storefront's own /plp/ (e.g. womens/categories/clothing/sweaters) -- use jcrew-categories to discover every valid value instead of guessing from storefront URLs. site selects the storefront (default jcrew). page selects the SFCC-native page (default 1); result_count reports the upstream's true total regardless of page size. A hub-level (non-leaf) category path returns a well-formed empty result rather than an error.
レスポンスに関する注記
- Pagination uses the upstream's own SFCC-native page mechanism -- `result_count` reports the true total and `total_pages` is computed from it at the upstream's fixed 60-per-page size. - A hub-level (non-leaf) category path, e.g. `womens/categories/clothing`, returns a well-formed empty result (`count: 0`) rather than an error -- those pages render subcategory tiles instead of a product listing, and there is no reliable marker to distinguish that from a genuinely empty leaf category. - `price`/`currency` on each product always reflect J.Crew's own US pricing in USD, regardless of the requester's own location. On the rare chance the US price can't be determined, a price in a different currency is converted to USD using an approximate, periodically-refreshed exchange rate instead. - Each product's `id` is the value to pass as `pid` to `jcrew-product`, `jcrew-product-reviews`, or `jcrew-size-chart` (with the same `site`). Example response: ```json { "code": 200, "msg": "OK", "data": { "category": "womens/categories/clothing/sweaters", "site": "jcrew", "label": "sweaters", "gender": "Women", "page": 1, "result_count": 142, "total_pages": 3, "count": 1, "products": [ { "id": "CX432", "family_id": "MQ186", "name": "Rollneck reversible cardigan", "default_color_code": "PR5252", "color_codes": ["SX0172", "SX0001", "PR5252", "NA6434", "GR6794", "BL8133", "BK0001"], "price": 1193, "currency": "USD", "badge": "new color", "average_rating": 4.73, "review_count": 52, "url": "https://www.jcrew.com/p/womens/categories/clothing/sweaters/cardigan/rollnecktrade-reversible-cardigan/MQ186" } ] } } ```
/jcrew/productReturns full product detail for one style: name, brand, description, category, list price, aggregate rating, every purchasable color, and every color+size combination as a separate priced/stocked SKU. pid is a style id (e.g. CX415), as returned by jcrew-search's products[].id field. site must match the storefront the pid belongs to (default jcrew). A single call covers every color and size of the style -- no per-color lookup needed.
レスポンスに関する注記
- `skus` lists every color+size combination as its own entry, each with its own `orderable` stock flag and `price`. This is the granular unit a caller would use to check whether a specific size in a specific color is in stock. - `list_price`, `skus[].price`, and `currency` always reflect J.Crew's own US pricing in USD, regardless of the requester's own location. On the rare chance the US price can't be determined, a price in a different currency is converted to USD using an approximate, periodically-refreshed exchange rate instead. - `average_rating`/`rating_count` are a summary only -- use `jcrew-product-reviews` for the actual review list. - An unrecognized `pid` returns `404`. - A `pid` that doesn't match the required shape (letters followed by digits) returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "pid": "CI906", "site": "jcrew", "name": "Arden shirt-dress in cotton poplin", "brand": "J.Crew", "gender": "women", "description": "A modern take on the classic shirt-dress...", "fit_description": ["A-line silhouette.", "Midi length, 50\" from high point of shoulder."], "category_id": "womens|categories|clothing|dresses-and-jumpsuits", "list_price": 1800, "currency": "USD", "average_rating": 4.75, "rating_count": 105, "colors": [ {"code": "BR8840", "name": "AGED PINE", "image_url": "https://www.jcrew.com/s7-img-facade/CI906_BR8840?..."}, {"code": "BL8133", "name": "NAVY", "image_url": "https://www.jcrew.com/s7-img-facade/CI906_BL8133?..."} ], "sizes": ["00", "0", "2", "4", "6", "8", "10", "12", "14", "16"], "skus": [ {"color_code": "BR8840", "color_name": "AGED PINE", "size": "4", "orderable": true, "price": 1259, "currency": "USD"} ], "url": "https://www.jcrew.com/p/womens/categories/clothing/dresses-and-jumpsuits/arden-shirt-dress-in-cotton-poplin/CI906" } } ```
/jcrew/size-chartReturns real body measurements per size (chest, waist, hip, sleeve, length, or a subset depending on the style/category), in both inches and centimeters. pid is a style id, as returned by jcrew-search's products[].id field. site must match the storefront the pid belongs to (default jcrew). A measurement value of 0 means that column doesn't apply to this style (e.g. hip on a top) -- the upstream itself doesn't distinguish that from a genuine zero, so this endpoint passes it through as-is.
レスポンスに関する注記
- `columns` lists the measurement names present for this style (varies by category -- a dress may include `Hip`, a top may not). - Each entry in `sizes` carries the same measurement names in both `imperial` (inches) and `metric` (centimeters). - A measurement value of `0` means that column doesn't apply to this style (e.g. `Hip` on a top) -- the upstream itself doesn't distinguish that from a genuine zero, so this endpoint passes it through as-is. - An unrecognized `pid` returns `404`. - A `pid` that doesn't match the required shape (letters followed by digits) returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "pid": "CI906", "site": "jcrew", "columns": ["Chest", "Waist", "Hip", "Sleeve", "Length"], "sizes": [ { "size": "4", "imperial": {"Chest": 39, "Waist": 29.5, "Hip": 0, "Sleeve": 15.63, "Length": 0}, "metric": {"Chest": 99.06, "Waist": 74.93, "Hip": 0, "Sleeve": 39.69, "Length": 0} } ], "source_url": "https://www.jcrew.com/size-chart/CI906", "fetched_at": "2026-08-19T10:00:00Z" } } ```
/jcrew/product/reviewsReturns one page of a product's customer reviews (author, location, date, rating, headline, body, and verified-purchase flag), plus the product's overall rating summary (average rating, rating count, per-star histogram, and recommended ratio). pid is a style id (e.g. CX415), as returned by jcrew-search's products[].id field. site must match the storefront the pid belongs to (default jcrew). A product with no reviews yet, or a well-formed but unrecognized pid, returns a well-formed empty result, not an error.
レスポンスに関する注記
- A product with no reviews yet, or a well-formed but unrecognized `pid`, returns a well-formed empty result (`total_reviews: 0`, `reviews: []`), not an error. - `rating_histogram` is the count of ratings per star, ascending: index `0` is 1-star, index `4` is 5-star. It is omitted along with `rating_count`/`average_rating`/`recommended_ratio` when the product has no reviews at all. - `total_reviews`/`total_pages` describe the full review set, independent of how many reviews are returned on this page. - A `pid` that doesn't match the required shape (letters followed by digits) returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "pid": "CI906", "site": "jcrew", "page": 1, "page_size": 10, "total_pages": 11, "total_reviews": 105, "rating_count": 105, "average_rating": 4.752380952380952, "rating_histogram": [0, 2, 1, 18, 84], "count": 1, "reviews": [ { "id": "278912347", "rating": 5, "headline": "Unique Dress", "body": "The color and style of the dress is very unique. The material is great quality...", "author": "Seasun", "location": "Miami, FL", "verified_purchase": false, "created_at": "2026-08-14T15:07:23Z", "updated_at": "2026-08-14T15:31:00Z" } ] } } ```
/jcrew/suggestReturns the storefront's own search-box suggestions (typeahead) for a partial query -- a flat list of suggested search phrases, each with its own live total result count on the search index. Select the storefront with site (default jcrew). Not product data.
レスポンスに関する注記
- Up to 10 suggestions, no pagination. - Each suggestion carries `total_results`, the suggested phrase's own live result count on that storefront's search index. - A partial query with no real matches returns a normal, empty result (`count: 0`, empty `suggestions`) rather than an error. Example response: ```json {"code":200,"msg":"OK","data":{"query":"dress","site":"jcrew","count":5,"suggestions":[{"query":"dress","total_results":243},{"query":"maxi dress","total_results":22},{"query":"linen dress","total_results":23},{"query":"petite dresses","total_results":52},{"query":"white dress","total_results":99}],"source_url":"https://ac.cnstrc.com/autocomplete/dress?...","fetched_at":"2026-08-19T10:00:00Z"}} ```
/jcrew/storesReturns one storefront's full open-store directory (address, phone, coordinates, services, weekly hours). site selects the storefront and accepts jcrew or factory; defaults to jcrew. Give lat and lng together to sort by distance from that point (each store's distance_miles is then populated); omit both for the upstream's own order.
レスポンスに関する注記
- Closed locations are excluded. - `hours` is keyed by lowercase weekday name (`monday`..`sunday`); a day with no configured hours is omitted from the map. - `services` lists what that location offers (e.g. `In-Store Pickup`, `Same Day Delivery`, `Women's`, `Collection`) -- not every store offers every service. - Without `lat`/`lng`, `distance_miles` is omitted on every store. Example response: ```json { "code": 200, "msg": "OK", "data": { "site": "jcrew", "count": 114, "stores": [ { "id": "731", "name": "1035 Madison Ave", "address": "1035 Madison Ave", "city": "New York", "region": "NY", "postal_code": "10075", "country": "US", "phone": "+13323343487", "latitude": 40.7764377, "longitude": -73.9618084, "services": ["Women's", "Collection", "In-Store Pickup", "Same Day Delivery"], "hours": { "monday": {"open_intervals": [{"start": "10:00", "end": "19:00"}]}, "sunday": {"open_intervals": [{"start": "11:00", "end": "18:00"}]} } } ] } } ```
関連API
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
J.Crewのスクレイピング方法
Crawlora's J.Crew endpoints return category, search, product, size-chart, review, and store data as normalized JSON with one API key — pass site=jcrew or site=factory to select the storefront, no J.Crew account required.
Call /jcrew/categories for the full department/section/category taxonomy, then pass a category path to /jcrew/category for one page of that category's product grid.
Send a free-text term to /jcrew/search for normalized products with live facets (gender, fabric, category, size, color, price range), or /jcrew/suggest for search-box typeahead.
Pass a style id (pid) to /jcrew/product for full detail — every color and size combination as its own priced/stocked SKU — plus /jcrew/size-chart for real body measurements and /jcrew/product/reviews for customer reviews.
Call /jcrew/stores for the full open-store directory; give lat and lng together to sort results by distance from that point.
FAQ
Yes — every endpoint accepts a site parameter (jcrew or factory, default jcrew) to select the storefront; a pid or category value must match the storefront it came from.
No — it's best-effort relevance from J.Crew's own search index. For an obscure alphanumeric keyword the index can fall back to semantically related results instead of an empty list, and there's no field that distinguishes a true match from that fallback.
Yes — /jcrew/size-chart returns chest, waist, hip, sleeve, and length measurements per size in inches and centimeters, when the style/category carries them. A value of 0 means that column doesn't apply to the style, not a genuine zero measurement.
Yes — pass lat and lng together to /jcrew/stores and each result includes a distance_miles field sorted by proximity; omit both for the upstream's own default order.