---
title: "Search J.Crew or J.Crew Factory products"
method: GET
path: "/jcrew/search"
tags: ["J.Crew"]
---

# Search J.Crew or J.Crew Factory products

`GET /jcrew/search`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/jcrew/search`
- Auth: API key in header `x-api-key`

Searches the product catalog for either storefront (select with site, default jcrew). Returns 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 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.

## Query parameters

- `keyword` string, required
- `site` 'jcrew' | 'factory'
- `page` integer
- `per_page` integer
- `sort` 'relevance' | 'price_asc' | 'price_desc'
- `filter` string

## Headers

- `x-api-key` string, required

## Response `200`

OK

- JcrewSearchResponseDoc
  - `code` integer
  - `data` JcrewSearchResponse
    - `count` integer
    - `facets` JcrewFacet[]
      - `is_range` boolean
      - `label` string
      - `name` string
      - `options` JcrewFacetOption[]
        - `count` integer
        - `label` string
        - `value` string
      - `range_max` number
      - `range_min` number
      - `type` string
    - `fetched_at` string
    - `filter` string
    - `keyword` string
    - `page` integer
    - `per_page` integer
    - `products` JcrewProductSummary[]
      - `description` string
      - `family_id` string
      - `gender` string
      - `id` string
      - `image_url` string
      - `name` string
      - `orderable` boolean
      - `price_max` number
      - `price_min` number
      - `sale_price_max` number
      - `sale_price_min` number
      - `url` string
    - `site` string
    - `sort` string
    - `source_url` string
    - `total_pages` integer
    - `total_products` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
