Laced API & Scraper
The Laced API turns laced.com, the UK marketplace where sellers list new sneakers, streetwear and collectibles at their own asking price, into JSON in four actions.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
search finds products by model (dunk low), colourway (grey fog) or style code (DD1391-103) and narrows them by brand, product type, colour, gender, age group, size and price, sorted by relevance, lowest price, newest release or recent sales, up to 100 products a page. collection lists one brand (nike), brand series (nike/dunk-low) or group (best-sellers) with the same filters. Every row carries the lowest asking price of every size in stock, the cheapest size, the 28-day sales count and the number of sellers. product returns one product live: each size's lowest asking price, the shipping fee and return fee, whether taxes and duties are included, the barcode (GTIN) and the listing id, plus the style code, brand, colour, release year and 28-day sales. Laced prices each size for the country it is delivered to, so you pass delivery_country (100 countries, GB by default) and currency (GBP, EUR, USD or AED); every price in the answer says which. One ReefAPI key, the standard { ok, data, meta, error } envelope, no Laced account.
One size, six destinations — the same sneaker priced by Laced for each delivery country
The cheapest size of the Nike Dunk Low 'Grey Fog' (DD1391-103) on 2026-10-15, as the API returned it for each delivery country. Prices to the EU and the US include taxes and duties; prices to the UK do not need them.
| delivered to | currency | lowest ask |
|---|---|---|
| United Kingdom (GB) | GBP | 74 |
| Germany (DE) | EUR | 116 |
| France (FR) | GBP | 96 |
| United States (US) | USD | 136 |
| Australia (AU) | GBP | 74 |
| United Arab Emirates (AE) | AED | 361 |
Asking prices move as sellers list and sell. Shipping is charged on top and is returned per size (for example 9.99 GBP within the UK, 46.99 USD to the US).
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/laced/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "dunk low"
}
}{
"ok": true,
"meta": {
"api": "laced",
"endpoint": "search",
"mode": "live",
"latency_ms": 359,
"record_count": 40,
"bytes": 72574,
"cache_hit": false,
"total": 1059,
"total_is_exact": true,
"reachable": 1000,
"page": 1,
"limit": 40,
"has_more": true,
"sort": "relevance",
"filters_applied": {},
"delivery_country": "GB",
"currency": "GBP",
"price_area": "GB",
"price_basis": "each size's lowest ask for the delivery country in the currency, from the site's search index (can trail the live product page by minutes)",
"upstream_requests": 1,
"warnings": [],
"charged_credits": 2,
"version": "1.0.0",
"request_id": "3494a465749e41aa",
"queue_ms": 1.5,
"fetched_at": "2026-10-15T17:02:54.408Z"
},
"data": {
"rows": [
{
"style_code": "CW1590-103",
"slug": "nike-dunk-low-university-blue-gs",
"url": "https://www.laced.com/products/nike-dunk-low-university-blue-gs",
"title": "Nike Dunk Low University Blue GS",
"brand": "Nike",
"product_type": "Shoes",
"color": "Blue",
"gender": null,
"age_category": "Grade School",
"release_date": null,
"delivery_country": "GB",
"currency": "GBP",
"price_from": 54,
"price_from_size": {
"uk": "5",
"eu": "38",
"us": "5.5"
},
"price_to": 142,
"sizes_available": 8,
"size_prices": [
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
},
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
},
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
}
],
"sold_last_28_days": 4,
"distinct_sellers": 40,
"categories": [
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
},
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
},
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
}
],
"image": "https://images-beta.laced.com/products/76e7febf-9ebb-4e0a-88d2-b970385383e5.jpg?format=webp&width=1200"
},
{
"style_code": "DD1391-104",
"slug": "nike-dunk-low-court-purple",
"url": "https://www.laced.com/products/nike-dunk-low-court-purple",
"title": "Nike Dunk Low Court Purple",
"brand": "Nike",
"product_type": "Shoes",
"color": "Purple",
"gender": null,
"age_category": "Adult",
"release_date": null,
"delivery_country": "GB",
"currency": "GBP",
"price_from": 50,
"price_from_size": {
"uk": "7.5",
"eu": "42",
"us": "8.5"
},
"price_to": 252,
"sizes_available": 16,
"size_prices": [
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
},
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
},
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
}
],
"sold_last_28_days": 3,
"distinct_sellers": 46,
"categories": [
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
},
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
},
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
}
],
"image": "https://images-beta.laced.com/products/7f47430f-4109-4b76-9c3a-8ca7addbbe08.jpg?format=webp&width=1200"
},
{
"style_code": "DN1431-101",
"slug": "nike-dunk-low-next-nature-white-gym-red-womens",
"url": "https://www.laced.com/products/nike-dunk-low-next-nature-white-gym-red-womens",
"title": "Nike Dunk Low Next Nature White Gym Red Womens",
"brand": "Nike",
"product_type": "Shoes",
"color": "Red",
"gender": "women",
"age_category": "Adult",
"release_date": null,
"delivery_country": "GB",
"currency": "GBP",
"price_from": 96,
"price_from_size": {
"uk": "6.5",
"eu": "40.5",
"us": "9"
},
"price_to": 237,
"sizes_available": 14,
"size_prices": [
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
},
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
},
{
"size_id": "[trimmed-depth]",
"uk": "[trimmed-depth]",
"eu": "[trimmed-depth]",
"us": "[trimmed-depth]",
"price": "[trimmed-depth]"
}
],
"sold_last_28_days": 2,
"distinct_sellers": 8,
"categories": [
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
},
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
},
{
"name": "[trimmed-depth]",
"collection": "[trimmed-depth]"
}
],
"image": "https://images-beta.laced.com/products/dae0adfa-9d56-42d6-9269-ff3614d048ab.jpg?format=webp&width=1200"
}
]
}
}What the Laced API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Laced by model, colourway or style code, with filters for brand, product type, colour, gender, age group, size and price. Each row carries every size's lowest asking price for the chosen delivery country and currency. | Pricing teams call search to search Laced by model, colourway or style code, with filters for brand, product type, colour,…. | query, delivery_country, currency, brand, product_type, ... |
| collection | One Laced collection — a brand (nike), a brand series (nike/dunk-low) or a group (best-sellers) — with the same filters, sort and row shape as `search`. | Marketplace operators call collection to get one Laced collection. | collection, delivery_country, currency, brand, product_type, ... |
| product | One product, live: every size with its lowest asking price, shipping fee, return fee, whether taxes and duties are included, barcode (GTIN) and listing id, for the chosen delivery country and currency; style code, brand, colour, release year, 28-day sales count, description, images. Give `slug` (from a search row) or `style_code`. | Catalog enrichment teams call product to get one product, live. | slug, style_code, delivery_country, currency |
| suggest | The site's own search suggestions for the start of a query (jordan → jordan 4, jordan 5 …), with the site's popularity score. | Retail analysts call suggest to get the site's own search suggestions for the start of a query (jordan → jordan 4, jordan 5 …), w…. | query, limit |
Call search from your stack
curl -X POST https://api.reefapi.com/laced/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"dunk low"}'import requests
r = requests.post(
"https://api.reefapi.com/laced/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "dunk low"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/laced/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "dunk low"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.laced.search with {"query":"dunk low"}.Who uses this API and why
- Compare resale prices across marketplaces: look a shoe up by style code on Laced and on StockX or GOAT and compare size by size.
- Price for buyers abroad: call product for the same shoe with delivery_country GB, DE and US and show the landed price per size.
- Watch a size: search a model with size 9 every day and track matched_size_price.
- Spot what is selling: sort a brand or series by recently_sold and read sold_last_28_days.
- Build a UK resale price feed for a brand: collection with nike/dunk-low or air-jordan/air-jordan-4, 100 products a page.
Questions developers ask before integrating
Why does the same shoe cost more to Germany than to the UK?
Laced prices every size for the country it is delivered to, and prices to EU countries and the United States include taxes and duties (price_includes_tax_duties is true there). Measured on 2026-10-15, the same UK 5.5 of the Dunk Low 'Grey Fog' was 148 GBP to the UK, 235 EUR to Germany and 230 USD to the US. Pass delivery_country and currency; the answer does not depend on where the call comes from.
Does every size have its own price?
Yes. Every search row lists each size in stock with its lowest asking price (size_prices), and product returns every size live with its price, shipping fee, return fee, barcode and listing id. Sizes nobody is selling are listed with available false and no price.
Are there bids, last sales or used items?
No. Laced is a fixed-price marketplace for new items: sellers set an asking price and buyers buy at it. There are no bids or offers and no sale history on the site; the closest figure is sold_last_28_days, the number of pairs sold in the last 28 days, which Laced publishes for every product.
How fresh are the search prices?
Search and collection rows come from the site's search index; product reads the live listings. On 2026-10-15, 9 of 10 sampled search from-prices equalled the live lowest price on the product, and across 8 products in 4 delivery countries 127 of 134 sizes were priced identically; the rest had sold since the index was written. Call product for the price at the moment of purchase.
Can I look a product up by style code?
Yes. product takes style_code (DD1391-103, 1203A537-020, FY5158) as well as slug. Codes are matched as Laced files them; where Laced files two codes on one product (315122-111/CW2288-111) either code finds it if no other product carries that code on its own. 6 of 6 style codes measured resolved to the same product as their search row.
How many results can a search return?
Up to 100 products a page and the first 1,000 products of any search; meta.total is the full count the site reports (31,780 products with sizes on sale across the whole catalogue on 2026-10-15). Narrow with brand, size, price or a collection to reach the rest.
What does the size filter do?
size (UK sizing by default, or EU or US with size_system) keeps the products that have that size for sale, and each row then gives matched_size and matched_size_price, the lowest ask for that exact size, next to price_from for the cheapest size of the product.
Which countries and currencies are supported?
100 delivery countries, the list Laced itself ships to, and four currencies: GBP, EUR, USD and AED. The default is delivery to the United Kingdom in GBP.
What is the Laced API?
Laced API is a ReefAPI endpoint group for laced, the uk sneaker and streetwear marketplace, as json: every size's lowest asking price, shipping and return fee, barcode and 28-day sales count, priced for the delivery country you name. It returns live JSON through POST requests under /laced/v1.
Is the Laced API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Laced calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Laced login or account?
No login to Laced is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Laced data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Laced API use?
Laced actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Laced from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call laced actions with the same key, credit pool and JSON envelope used by normal REST requests.