Filtering & Search
KicksDB uses Meilisearch for powerful filtering and full-text search across all product endpoints.
Basic Filtering
Single Field Filter
# Filter by brand
GET /v3/stockx/products?filters=brand%3D%22Nike%22
# URL decoded: filters=brand="Nike"Multiple Conditions (AND)
# Filter by brand AND product type
GET /v3/stockx/products?filters=brand%3D%22Nike%22%20AND%20product_type%3D%22sneakers%22
# URL decoded: filters=brand="Nike" AND product_type="sneakers"OR Conditions
# Filter by Nike OR Jordan
GET /v3/stockx/products?filters=brand%3D%22Nike%22%20OR%20brand%3D%22Jordan%22
# URL decoded: filters=brand="Nike" OR brand="Jordan"Comparison Operators
| Operator | Description | Example |
|---|---|---|
= | Equal to | brand="Nike" |
!= | Not equal to | gender!="kids" |
> | Greater than | rank>1000 |
< | Less than | rank<100 |
>= | Greater or equal | rank>=50 |
<= | Less or equal | rank<=500 |
Nested Object Filtering
For Shopify products, you can filter by size-specific prices:
# Find products under $100 for size 9.5
GET /v3/shopify/products?filters=prices%5B%229.5%22%5D%3C100
# URL decoded: filters=prices["9.5"]<100Full-Text Search + Filters
Combine the query parameter with filters:
# Search "dunk" within Nike sneakers
GET /v3/stockx/products?query=dunk&filters=brand%3D%22Nike%22%20AND%20product_type%3D%22sneakers%22Index Schemas
Each platform has different filterable and searchable fields. Indexes are refreshed every 12 hours.
stockx
| Field | Type | Searchable | Filterable | Sortable |
|---|---|---|---|---|
slug | string | ✓ | ✓ | - |
brand | string | ✓ | ✓ | - |
gender | string | - | ✓ | - |
product_type | string | - | ✓ | - |
category | string | - | ✓ | - |
sku | string | ✓ | ✓ | - |
rank | number | - | - | ✓ |
release_date | date | - | ✓ | ✓ |
colorway | string | - | ✓ | - |
barcodes | array | - | ✓ | - |
goat
| Field | Type | Searchable | Filterable | Sortable |
|---|---|---|---|---|
brand | string | ✓ | ✓ | - |
slug | string | ✓ | ✓ | - |
sku | string | ✓ | ✓ | - |
colorway | string | - | ✓ | - |
release_date | string | - | ✓ | ✓ |
rank | number | - | - | ✓ |
product_type | string | - | ✓ | - |
model | string | ✓ | ✓ | - |
season | string | - | ✓ | - |
shopify
| Field | Type | Searchable | Filterable | Sortable |
|---|---|---|---|---|
title | string | ✓ | - | - |
slug | string | ✓ | ✓ | - |
brand | string | ✓ | ✓ | - |
product_type | string | - | ✓ | - |
sku | string | ✓ | ✓ | - |
shop_name | string | - | ✓ | - |
prices | object | - | ✓ | - |
barcodes | array | - | ✓ | - |
JavaScript Example
const API_KEY = process.env.KICKSDB_API_KEY;
// Build filter string
const filters = [
'brand="Nike"',
'product_type="sneakers"',
'gender="men"'
].join(' AND ');
// URL encode the filters
const encodedFilters = encodeURIComponent(filters);
// Search with filters
const response = await fetch(
`https://api.kicks.dev/v3/stockx/products?query=dunk&filters=${encodedFilters}`,
{ headers: { 'Authorization': `Bearer ${API_KEY}` } }
);
const { data } = await response.json();
console.log(`Found ${data.length} products`);