---
title: "Search Grailed sold listings (sale price history)"
method: GET
path: "/grailed/sold-listings"
tags: ["Grailed"]
---

# Search Grailed sold listings (sale price history)

`GET /grailed/sold-listings`

## Request

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

Searches Grailed's SOLD-listing index -- a separate dataset from active listings, carrying each item's final sale price and sale date. Same filter shape as grailed-search (q, designer, department, category, size, color, condition), but min_price/max_price filter the SOLD price, not the original asking price. Useful for sale-price-history/comparable-sales lookups (e.g. "what did this designer/category actually sell for recently"). 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` 'recent' | 'price_asc' | 'price_desc'
- `page` integer
- `limit` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- GrailedSoldListingsResponseDoc
  - `code` integer
  - `data` GrailedSoldListingsResponse
    - `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/afac9b012a27?raw)
