Nike API: Search products
Searches Nike products in a chosen country, in Nike search order, with optional gender (men, women, kids) and sale-only filters. Prices, currency and availability reflect the selected country's Nike store.
Unofficial. Not affiliated with or endorsed by Nike.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Query, required
query Products to search for, e.g. Air Force 1.
Air Force 1
- Gender optional
gender Who the products are for, e.g. women.
any (default)
One of
any,men,women,kids.- Country optional
country Country name or two-letter code, e.g. United Kingdom or GB.
United States (default)
- Max Results optional
max_results Maximum products to return, e.g. 48.
24 (default)
Whole number from 1 to 100.
- On Sale Only optional
on_sale_only Only show discounted products, e.g. true.
false (default)
True or false.
Input as JSON
{ "query": "Air Force 1"}Output
{ "products": [ { "badge": "Best Seller", "price": 115, "currency": "USD", "subtitle": "Men's Shoes", "photo_link": "https://static.nike.com/a/images/t_default/u_9ddf04c7-2a9a-4d76-add1-d15af8f0263d,c_scale,fl_relative,w_1.0,h_1.0,fl_layer_apply/e6da41fa-1be4-4ce5-b89c-22be4f1f02d4/AIR+FORCE+1+%2707.png" , "sale_price": null, "style_code": "CW2288-111", "product_link": "https://www.nike.com/t/air-force-1-07-mens-shoes-DZejrQoC/CW2288-111" , "product_name": "Nike Air Force 1 '07", "number_of_colours": 3 }, { "badge": "Best Seller", "price": 115, "currency": "USD", "subtitle": "Women's Shoes", "photo_link": "https://static.nike.com/a/images/t_default/u_9ddf04c7-2a9a-4d76-add1-d15af8f0263d,c_scale,fl_relative,w_1.0,h_1.0,fl_layer_apply/e777c881-5b62-4250-92a6-362967f54cca/WMNS+AIR+FORCE+1+%2707.png" , "sale_price": null, "style_code": "DD8959-100", "product_link": "https://www.nike.com/t/air-force-1-07-womens-shoes-C7h9KAcy/DD8959-100" , "product_name": "Nike Air Force 1 '07", "number_of_colours": 2 }, { "badge": "Best Seller", "price": 90, "currency": "USD", "subtitle": "Big Kids' Shoes", "photo_link": "https://static.nike.com/a/images/t_default/u_9ddf04c7-2a9a-4d76-add1-d15af8f0263d,c_scale,fl_relative,w_1.0,h_1.0,fl_layer_apply/d9f1d9ee-a848-4a36-aab9-48b241078ebb/AIR+FORCE+1+LE+%28GS%29.png" , "sale_price": null, "style_code": "DH2920-111", "product_link": "https://www.nike.com/t/air-force-1-le-big-kids-shoes-3JNSvS/DH2920-111" , "product_name": "Nike Air Force 1 LE", "number_of_colours": 8 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"nike.com/search_products","input":{"query":"Air Force 1"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "nike.com/search_products" , "input": { "query": "Air Force 1" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "nike.com/search_products" , "input": { "query": "Air Force 1" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run nike.com/search_products# with {"query":"Air Force 1"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "minLength": 1, "description": "Products to search for, e.g. Air Force 1." }, "gender": { "enum": [ "any", "men", "women", "kids" ], "type": "string", "default": "any", "description": "Who the products are for, e.g. women." }, "country": { "type": "string", "default": "United States", "description": "Country name or two-letter code, e.g. United Kingdom or GB." }, "max_results": { "type": "integer", "default": 24, "maximum": 100, "minimum": 1, "description": "Maximum products to return, e.g. 48." }, "on_sale_only": { "type": "boolean", "default": false, "description": "Only show discounted products, e.g. true." } }}Output schema
{ "type": "object", "required": [ "products" ], "properties": { "products": { "type": "array", "items": { "type": "object", "required": [ "product_name", "subtitle", "price", "currency", "sale_price", "number_of_colours", "badge", "photo_link", "product_link", "style_code" ], "properties": { "badge": { "type": [ "string", "null" ], "description": "Promotional label, when shown." }, "price": { "type": "number", "description": "Regular price." }, "currency": { "type": "string", "description": "Currency code for the prices." }, "subtitle": { "type": [ "string", "null" ], "description": "Product category or audience." }, "photo_link": { "type": [ "string", "null" ], "description": "Product photo link." }, "sale_price": { "type": [ "number", "null" ], "description": "Discounted price when on sale." }, "style_code": { "type": [ "string", "null" ], "description": "Nike style code." }, "product_link": { "type": [ "string", "null" ], "description": "Product page link." }, "product_name": { "type": [ "string", "null" ], "description": "Product name." }, "number_of_colours": { "type": "integer", "description": "Number of colour options shown for the product." } } }, "description": "Products in Nike search order." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
nike.com/search_products- Returns
- product name, subtitle, price, currency, sale price, number of colours, badge, photo link, product link, style code
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method nike.com/search_products with the inputs above.
Ask your agent
- Find women's Air Max 90 on Nike's UK store, sale items only, and give me prices in GBP with the style codes
- What Pegasus running shoes are currently discounted for men in Germany? Show me about 30 results with original and sale prices
- kids Dunk Low sneakers available in Japan — list names, colour counts and product links
- Search nike.com Canada for tech fleece hoodies and show me the top 10 with badges like 'Just In' or 'Bestseller'
- I need up to 48 basketball shoes from the Australian Nike site, any gender, including photo links and how many colourways each has
See more
All Nike methodsGets a Nike product's details by name or product link for a chosen country. Returns its colourways, size availability, price and reviews.
nike.com/get_productLists upcoming or in-stock Nike SNKRS sneaker releases for a country. Each release has its local launch time and price.
nike.com/list_upcoming_releasesSearches clothes and shoes in one Zalando country shop, with optional gender, brand, deal and sort filters. Prices and discounts are those shown on the product cards; size-dependent prices may be starting prices.
zalando.com/search_productsSearch Nordstrom products by words, price, sale status and sort order. Prices are the lowest listed price. Available sizes may be empty when a product page is unavailable.
nordstrom.com/search_productsSearches H&M clothing and home products by keyword, with country-specific prices and an optional sale-only filter.
hm.com/search_productsSearches IKEA products in a chosen country and returns current prices, details, photos and reviews in IKEA's result order.
ikea.com/search_productsSearches a country's English Zara store for products, with current prices, colours, images and product links. The all section excludes non-Zara brands.
zara.com/search_productsSearches Kohl's products in site order and returns prices, offers, ratings and links for each result.
kohls.com/search_products