REST & GraphQL documentation. Build your way.
REST resources, GraphQL queries and the typed schema of the KicksAPI sneaker data API, with example requests in JavaScript and Python.
Every request needs an API key. Create an account, mint a test key and call the endpoints below; test keys return sample data, live keys return current market data for the markets on your plan.
Authentication
The API uses a bearer token. Keep live keys on your server and never expose them in a public app bundle; use a test key or an origin-restricted key in browsers.
Authorization: Bearer YOUR_API_KEY
Resources
GET /v1/productsSearch the catalogue by name or style code.
GET /v1/products/{id}/pricesRetrieve size-specific prices for a market.
GET /v1/products/{id}/historyRetrieve available historical snapshots with timestamps.
GraphQL: choose your fields
Query a product and its market-specific prices through one endpoint. Select only the fields your interface needs, using the same underlying data model as REST.
POST /graphql Content-Type: application/json Authorization: Bearer YOUR_API_KEY
Send a JSON body containing query and variables. In the example below, the market control updates the variables and the sample response. The Query, Variables and Response tabs belong to the same request.
The schema covers product lookup, market prices and price history. Query complexity is capped per request and each GraphQL request counts once against your quota; a nested query is not unlimited data for one request.
Code examples

Concept 01
KA-001 / EU 42
Static sample · the live API returns current market data
{
"id": "ka_concept_001",
"name": "KicksAPI Concept 01",
"style_code": "KA-001",
"market": "NL",
"currency": "EUR",
"variants": [
{
"size": "42",
"size_system": "EU",
"asking_price": 189
}
],
"source": "stockx",
"observed_at": "2026-09-10T08:00:00Z"
}Freshness and missing values
Store both the source observation time and the time you received the response. A null price means no usable price is available. Do not turn missing values into zero or interpret an asking price as a completed sale.
Data methodologyError handling
Plan to handle 401 for invalid credentials, 404 for an unknown product, 429 for rate limits and 503 for temporary unavailability. Preserve the last valid snapshot and show its age when an update fails.
For GraphQL, inspect both the HTTP status and the errors array. A response can contain partial data alongside errors. The integration examples reject responses with errors; production apps may choose how to display usable partial results.
Your next idea. Our kind of data.
Create your account, mint a key and make your first request today.
Get your API key