About
What is Garde?
Garde is a fashion price intelligence platform. We aggregate resale transaction data from eBay, Grailed, GOAT, TheRealReal, and Vestiaire Collective, then classify items into structured variant trees and build tradable price indices.
The Garde API gives you programmatic access to this data — real-time median prices, daily snapshots, brand and category indices, and individual sale records across 17,000+ transactions and growing.
About
Why Use the API?
Whether you're building a pricing tool, running a hedge fund model on alternative data, or powering internal analytics at a brand — the Garde API gives you structured, clean resale pricing data without the scraping headache.
- Volume-weighted median prices, not just averages
- Daily snapshots going back to the first sale we tracked
- Brand and category-level indices for market-wide views
- Per-platform breakdowns (eBay vs Grailed vs GOAT)
- Paginated access to individual sale records
Getting Started
Authentication
All API requests require a Bearer token in the Authorization header. API keys start with grd_ and are 68 characters long.
curl -H "Authorization: Bearer grd_your_api_key" \
https://garde.market/v1/indices/gardeTo get an API key, contact our team or ask your account manager to generate one from the admin dashboard.
Getting Started
Rate Limits
Rate limits are enforced per API key on a per-minute sliding window. The limit depends on your tier:
| Tier | Rate Limit | Price |
|---|---|---|
| Free | 60 req/min | $0 |
| Pro | 300 req/min | $500/mo |
| Enterprise | 1,000 req/min | Custom |
When you exceed your limit, the API returns 429 Too Many Requests. Check X-RateLimit-Remaining in response headers.
Getting Started
Response Format
All successful responses are wrapped in a standard envelope with data, meta, and timestamp fields:
{
"data": {
"scope": "brand",
"scope_key": "Supreme",
"current_value": 342.50,
"total_volume": 1847,
"series": [
{
"date": "2026-03-01",
"median_price": 338.00,
"avg_price": 351.20,
"min_price": 85.00,
"max_price": 1200.00,
"volume": 23
}
]
},
"meta": {
"total": 365,
"limit": 50,
"offset": 0
},
"timestamp": "2026-03-23T04:00:00.000Z"
}Errors return a similar shape with an error object containing message and status.
Market Indices
The Garde Index
/v1/indices/gardeReturns the overall fashion resale market index — a volume-weighted average across all brands and categories.
| Parameter | Type | Description |
|---|---|---|
| from | string | Start date (YYYY-MM-DD) |
| to | string | End date (YYYY-MM-DD) |
| limit | integer | Max data points to return |
| offset | integer | Skip this many data points |
curl -H "Authorization: Bearer grd_xxx" \
"https://garde.market/v1/indices/garde?from=2026-01-01&limit=30"Market Indices
Brand Index
/v1/indices/brand/{brand}Returns the resale index for a specific brand. The brand name is URL-encoded in the path.
| Parameter | Type | Description |
|---|---|---|
| brand | path | Brand name, URL-encoded (e.g. Nike%20%2F%20Jordan) |
| from | string | Start date |
| to | string | End date |
| limit | integer | Max data points |
| offset | integer | Offset for pagination |
curl -H "Authorization: Bearer grd_xxx" \
"https://garde.market/v1/indices/brand/Supreme"Market Indices
Category Index
/v1/indices/category/{category}Returns the resale index for a product category. Available categories include Sneakers, Streetwear, Luxury, Designer, Gorpcore, and Vintage.
| Parameter | Type | Description |
|---|---|---|
| category | path | Category name (e.g. Sneakers, Streetwear) |
| from | string | Start date |
| to | string | End date |
| limit | integer | Max data points |
| offset | integer | Offset for pagination |
Market Indices
Item Index
/v1/indices/item/{id}Returns the price history for a specific item, including all variant descendants. Includes per-platform breakdowns.
| Parameter | Type | Description |
|---|---|---|
| id | path | Item slug (e.g. supreme-box-logo) |
| from | string | Start date |
| to | string | End date |
| limit | integer | Max data points |
| offset | integer | Offset for pagination |
curl -H "Authorization: Bearer grd_xxx" \
"https://garde.market/v1/indices/item/supreme-box-logo"Items
Item Catalog
/v1/itemsReturns a paginated list of all root items (products) with their latest pricing snapshot.
| Parameter | Type | Description |
|---|---|---|
| brand | string | Filter by brand name |
| category | string | Filter by category |
| limit | integer | Items per page (default 50) |
| offset | integer | Offset for pagination |
curl -H "Authorization: Bearer grd_xxx" \
"https://garde.market/v1/items?brand=Supreme&limit=10"Items
Item Detail
/v1/items/{id}Returns full detail for a single item including its latest snapshot data and per-platform pricing.
curl -H "Authorization: Bearer grd_xxx" \
"https://garde.market/v1/items/yeezy-350-zebra"Items
Sales History
/v1/items/{id}/salesReturns individual sale records for an item and all its variants. Useful for building custom models or auditing pricing.
| Parameter | Type | Description |
|---|---|---|
| id | path | Item slug |
| from | string | Start date |
| to | string | End date |
| platform | string | Filter by platform (ebay, grailed, goat, therealreal, vestiaire) |
| limit | integer | Results per page (default 50) |
| offset | integer | Offset for pagination |
curl -H "Authorization: Bearer grd_xxx" \
"https://garde.market/v1/items/supreme-box-logo/sales?platform=ebay&limit=20"Code Examples
Python
import requests
API_KEY = "grd_your_api_key"
BASE = "https://garde.market/v1"
# Get the Garde Index (last 90 days)
r = requests.get(
f"{BASE}/indices/garde",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"from": "2026-01-01", "limit": 90},
)
data = r.json()["data"]
print(f"Current market value: ${data['current_value']}")
for point in data["series"][-5:]:
print(f" {point['date']}: ${point['median_price']} ({point['volume']} sales)")Code Examples
JavaScript
const API_KEY = "grd_your_api_key";
const BASE = "https://garde.market/v1";
const res = await fetch(
`${BASE}/indices/brand/Supreme?from=2026-01-01`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
const { data } = await res.json();
console.log(`Supreme index: $${data.current_value}`);
console.log(`Total volume: ${data.total_volume} sales`);Code Examples
cURL
# Garde Index
curl -s -H "Authorization: Bearer grd_your_api_key" \
"https://garde.market/v1/indices/garde?limit=7" | jq .
# Brand Index for Nike
curl -s -H "Authorization: Bearer grd_your_api_key" \
"https://garde.market/v1/indices/brand/Nike" | jq .
# Item sales with platform filter
curl -s -H "Authorization: Bearer grd_your_api_key" \
"https://garde.market/v1/items/jordan-1-chicago/sales?platform=ebay&limit=5" | jq .