---
title: "Search or browse Grailed active listings"
method: GET
path: "/grailed/search"
tags: ["Grailed"]
---

# Search or browse Grailed active listings

`GET /grailed/search`

## Request

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

Searches or browses Grailed's (grailed.com) peer-to-peer resale marketplace for currently-active listings. q, designer, department, category, size, color, condition, min_price, and max_price are all optional and combine as an AND -- a free-text q can be combined with any of the facet filters in the same request, or every field can be omitted to browse the full active catalog by Grailed's own "heat" relevance ranking. designer accepts one of the values grailed-designers' own designers[].name field returns; department, category, size, and color accept values from grailed-categories' own departments[].value/categories[].value/sizes[].value/colors[].value fields. condition and sort are fixed, closed enums (listed below). Keyword search uses typo-tolerant relevance ranking, not a guaranteed exact match. A query with genuinely zero matches returns a well-formed empty result rather than an error.

## Query parameters

- `q` string
- `designer` string
- `department` 'menswear' | 'womenswear'
- `category` string
- `size` string
- `color` string
- `condition` 'is_new' | 'is_gently_used' | 'is_used' | 'is_worn' | 'is_not_specified'
- `min_price` number
- `max_price` number
- `sort` 'heat' | 'heat_recency' | 'followers' | 'newest' | 'price_asc' | 'price_desc' | 'recently_updated' | 'quality'
- `page` integer
- `limit` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- GrailedSearchResponseDoc
  - `code` integer
  - `data` GrailedSearchResponse
    - `category` string
    - `color` string
    - `condition` string
    - `count` integer
    - `department` string
    - `designer` string
    - `fetched_at` string
    - `limit` integer
    - `listings` GrailedListing[]
      - `bumped_at` string
      - `buy_now` boolean
      - `category` string
      - `category_path` string
      - `color` string
      - `condition` string
      - `cover_photo_url` string
      - `created_at` string
      - `currency` string
      - `department` string
      - `designers` string[]
      - `follower_count` integer
      - `id` integer
      - `location` string
      - `make_offer` boolean
      - `photo_count` integer
      - `price` number
      - `seller` GrailedListingSeller
        - `avatar_url` string
        - `id` integer
        - `rating_average` number
        - `rating_count` integer
        - `total_bought_and_sold` integer
        - `trusted_seller` boolean
        - `username` string
      - `size` string
      - `sold` boolean
      - `sold_at` string
      - `sold_price` number
      - `title` string
      - `url` string
    - `max_price` number
    - `min_price` number
    - `page` integer
    - `query` string
    - `size` string
    - `sort` string
    - `source_url` string
    - `total_pages` integer
    - `total_results` 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/0497899e2016?raw)
