Grailed API endpoint
Returns full listing-detail data for one Grailed listing: description, every photo, measurements, designers, and the seller's full profile -- richer than the flattened summary grailed-search/grailed-sold-listings return per listing. id is the listing's numeric id, from a search or sold-listings result's own listings[].id field.
/grailed/listingNotable response behavior:
404.currency is always USD.sold_price/sold_at/sold_shipping_price are only populated when sold is true.measurements[].measurement_type_id/department_mapping_id are Grailed's own internal ids (no public lookup table); inches is the directly usable value.| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| title | Has a value | “Chateau Marmont Gucci Tshirt Red Japan Exclusive” |
| url | Has a value | grailed.com |
| description | Has a value | 589 characters |
| price | Has a value | 400 |
| currency | Has a value | “USD” |
| sold | Has a value | false |
| condition | Has a value | “is_gently_used” |
| size | Has a value | “m” |
| pretty_size | Has a value | “US M / EU 48-50 / 2” |
| department | Has a value | “menswear” |
| category | Has a value | “tops” |
| subcategory | Has a value | “Short Sleeve T-Shirts” |
| category_path | Has a value | “tops.short_sleeve_shirts” |
| designers | Has a value | 1 entry |
| styles | Has a value | 1 entry |
| traits.color | Has a value | “black” |
| traits.country_of_origin | Has a value | “IT” |
| photos | Has a value | 7 entries |
| measurements | Has a value | 4 entries |
| follower_count | Has a value | 1,880 |
| buy_now | Has a value | true |
| make_offer | Has a value | true |
| dropped | Has a value | false |
| deleted | Has a value | false |
| expired | Has a value | false |
| published | Has a value | true |
| created_at | Has a value | 2026-09-08 |
| price_updated_at | Has a value | 2026-09-08 |
| seller.id | Has a value | |
| seller.username | Has a value | |
| seller.avatar_url | Has a value | media-assets.grailed.com |
| seller.location | Has a value | |
| seller.created_at | Has a value | 2022-09-07 |
| seller.total_bought_and_sold | Has a value | 54 |
| seller.listings_for_sale_count | Has a value | 6 |
| seller.follower_count | Has a value | 13 |
| seller.following_count | Has a value | 3 |
| seller.confirmed | Has a value | true |
| seller.banned | Has a value | false |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | integer | Yes | Listing id, from a search or sold-listings result's own listings[].id field | 105379689 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/grailed/listing?id=105379689" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": 105379689,
"title": "Chateau Marmont Gucci Tshirt Red Japan Exclusive",
"url": "https://www.grailed.com/listings/105379689",
"description": "Gucci Chateau shirt red Japan Exclusive\nLabeled size XS truly fits accurately to a M\nVery rare",
"price": 400,
"currency": "USD",
"sold": false,
"condition": "is_gently_used",
"size": "m",
"pretty_size": "US M / EU 48-50 / 2",
"department": "menswear",
"category": "tops",
"subcategory": "Short Sleeve T-Shirts",
"category_path": "tops.short_sleeve_shirts",
"designers": [
{
"id": 79,
"name": "Gucci",
"slug": "gucci",
"departments": [
"menswear",
"womenswear"
]
}
],
"styles": [
"luxury"
],
"traits": {
"color": "black",
"country_of_origin": "IT"
},
"photos": [
"https://media-assets.grailed.com/prd/listing/temp/dc6e1242b28a48bba80b5a353bb8c869"
],
"measurements": [
{
"inches": 17,
"measurement_type_id": 1,
"department_mapping_id": 100
}
],
"follower_count": 712,
"buy_now": true,
"make_offer": true,
"created_at": "2026-09-08T23:44:57.833Z",
"seller": {
"id": 10332947,
"username": "woodlandstepps",
"location": "United States",
"total_bought_and_sold": 52,
"listings_for_sale_count": 4,
"follower_count": 13,
"confirmed": true,
"speedy_shipper": true,
"sold_count": 22,
"rating_average": 4.8,
"rating_count": 9,
"tag_list": [
"fast-shipper",
"quick-replies",
"item-as-described"
]
}
}
}Request schema
No body schema
Response schema
#/definitions/grailed.listingResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | grailed.ListingResponse | No | ||||
| data.buy_now | boolean | No | ||||
| data.category | string | No | ||||
| data.category_path | string | No | ||||
| data.collaboration | string | No | ||||
| data.condition | string | No | ||||
| data.created_at | string | No | ||||
| data.currency | string | No | ||||
| data.deleted | boolean | No | ||||
| data.department | string | No | ||||
| data.description | string | No | ||||
| data.designers | array | No | ||||
| data.designers[].departments | array | No | ||||
| data.designers[].id | integer | No | ||||
| data.designers[].logo_url | string | No | ||||
| data.designers[].name | string | No | ||||
| data.designers[].slug | string | No | ||||
| data.dropped | boolean | No | ||||
| data.exact_size | string | No | ||||
| data.expired | boolean | No | ||||
| data.fetched_at | string | No | ||||
| data.follower_count | integer | No | ||||
| data.id | integer | No | ||||
| data.make_offer | boolean | No | ||||
| data.measurements | array | No | ||||
| data.measurements[].department_mapping_id | integer | No | ||||
| data.measurements[].inches | number | No | ||||
| data.measurements[].measurement_type_id | integer | No | ||||
| data.photos | array | No | ||||
| data.pretty_size | string | No | ||||
| data.price | number | No | ||||
| data.price_updated_at | string | No | ||||
| data.published | boolean | No | ||||
| data.seller | grailed.SellerProfile | No | SellerProfile record, 19 fields: avatar_url, banned, confirmed, created_at, follower_count, following_count, id, listings_for_sale_count, location, quick_responder, rating_average, rating_count and 7 more. Described under Grailed Seller Profile API. | |||
| data.size | string | No | ||||
| data.sold | boolean | No | ||||
| data.sold_at | string | No | ||||
| data.sold_price | number | No | ||||
| data.sold_shipping_price | number | No | ||||
| data.source_url | string | No | ||||
| data.styles | array | No | ||||
| data.subcategory | string | No | ||||
| data.title | string | No | ||||
| data.traits | object | No | ||||
| data.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/grailed/listing?id=105379689" \
-H "x-api-key: $CRAWLORA_API_KEY"