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/products

Search the catalogue by name or style code.

GET /v1/products/{id}/prices

Retrieve size-specific prices for a market.

GET /v1/products/{id}/history

Retrieve 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

Sample responseKA—001
SAMPLE SNEAKER / EU 42
KICKSAPI ORIGINAL

Concept 01

KA-001 / EU 42

Price189.00

Static sample · the live API returns current market data

API style
GET /v1/products/ka_concept_001/prices
{
  "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"
}
Live APIREST / JSON

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 methodology

Error 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