Foot Locker APIfootlocker.com ↗
Access Foot Locker product listings, sneaker release calendars, customer reviews, sale items, and brand/category browsing via a structured REST API.
What is the Foot Locker API?
The Foot Locker API exposes 8 endpoints covering product search, category and brand browsing, sale items, new arrivals, sneaker release calendars, and customer reviews. The search_products endpoint returns paginated listings with pricing, images, variant options, and aggregate ratings across Foot Locker's full catalog. SKUs returned in listing endpoints connect directly to detailed product data and Bazaarvoice review records.
curl -X GET 'https://api.parse.bot/scraper/dcf44ebc-52ab-4e02-9acf-4440e503ff29/search_products?page=1&query=nike+air+max' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace footlocker-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Foot Locker SDK — search, browse, details, releases, reviews."""
from parse_apis.foot_locker_api import FootLocker, Category, NotFoundError
client = FootLocker()
# Search for products by keyword, capped at 5 results
for product in client.products.search(query="nike air max", limit=5):
print(product.name, product.sku, product.price.formatted_value, product.is_new_product)
# Browse men's shoes by category using the Category enum
for product in client.products.by_category(category_path=Category.MENS_SHOES, limit=3):
print(product.name, product.price.formatted_value, product.is_sale_product)
# Drill into product details from a search result
product = client.products.search(query="nike air max", limit=1).first()
if product:
detail = product.details()
print(detail.name, detail.brand, detail.description[:80])
for variant in detail.variants[:3]:
print(variant.sku, variant.color, variant.price)
# Check the release calendar for upcoming sneakers
for release in client.releases.list(limit=3):
print(release.name, release.brand_name, release.sku_launch_date, release.gender)
# Get reviews for a specific product with typed-error handling
try:
for review in client.reviews.for_product(sku="04133050", limit=3):
print(review.rating, review.user_nickname, review.submission_time)
except NotFoundError as exc:
print(f"product not found: {exc}")
print("exercised: products.search / products.by_category / product.details / releases.list / reviews.for_product")
Full-text search over Foot Locker's product catalog. Returns paginated product listings (48 per page) with pricing, images, variants, and basic ratings. Queries match product names and descriptions. Returns a 200 with an empty products array when no results match.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed) |
| queryrequired | string | Search keyword (e.g., 'nike air max', 'adidas samba') |
{
"type": "object",
"fields": {
"products": "array of product listing objects with name, sku, price, images, reviewRatings, and variantOptions",
"pagination": "object with currentPage, pageSize, sort, totalPages, totalResults",
"total_results": "integer total number of matching products"
},
"sample": {
"data": {
"products": [
{
"sku": "H4740007",
"name": "Nike Air Max 95 - Men's",
"price": {
"value": 190,
"formattedValue": "$190.00"
},
"images": [
{
"url": "https://images.footlocker.com/is/image/EBFL2/H4740007",
"format": "large"
}
],
"baseProduct": "H4740007",
"isNewProduct": false,
"isSaleProduct": false,
"originalPrice": {
"value": 190,
"formattedValue": "$190.00"
},
"reviewRatings": {
"rating": 4,
"reviews": 14
},
"variantOptions": [
{
"sku": "H4740009",
"color": "Sapphire/Photon Dust/Dark Raisin"
}
]
}
],
"pagination": {
"sort": "relevance-descending",
"pageSize": 48,
"totalPages": 7,
"currentPage": 0,
"totalResults": 301
},
"total_results": 301
},
"status": "success"
}
}About the Foot Locker API
Product Discovery and Browsing
The search_products endpoint accepts a query string (e.g., 'nike air max', 'adidas samba') and returns up to 48 products per page. Each product object includes name, sku, price, images, reviewRatings, and variantOptions. The pagination response object exposes currentPage, pageSize, totalPages, and totalResults, enabling full traversal of result sets. The same product listing structure is shared across get_category_products (accepts category_path values like 'mens/shoes' or 'womens/clothing'), get_brand_products (accepts brand names like 'Nike' or 'New Balance'), get_sale_products (adds originalPrice alongside the discounted price), and get_new_arrivals.
Product Details and Reviews
get_product_details accepts a sku parameter and returns structured data including an ld_json object typed as ProductGroup, with name, description, brand, variant-level offers, and availability. A breadcrumbs array provides the category path for that product. For reviews, get_product_reviews accepts a sku and returns up to 20 records sorted by most recent submission. Each review object includes Id, Rating, ReviewText, Title, UserNickname, and SubmissionTime. A has_errors boolean and total_results integer are always present in the response envelope. Note: some products return zero reviews when their Bazaarvoice product ID differs from the SKU — using the baseProduct SKU from search results improves match rates.
Sneaker Release Calendar
get_release_calendar requires no input parameters and returns all scheduled and recently launched sneakers in a single response. Each entry includes brandName, name, id, skuLaunchDate, style, gender, image, available sizes, and reservation status. This endpoint is particularly useful for tracking upcoming drops without needing to poll category or search endpoints.
The Foot Locker API is a managed, monitored endpoint for footlocker.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when footlocker.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official footlocker.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor price changes on specific SKUs across Foot Locker's sale catalog using
get_sale_productsand comparingpricevsoriginalPrice. - Build a sneaker release tracker that polls
get_release_calendarto surface upcoming drops with launch dates and reservation status. - Aggregate customer sentiment by pulling review
RatingandReviewTextfields viaget_product_reviewsacross multiple SKUs. - Populate a product comparison tool with variant options and availability from
get_product_detailsLD+JSON structured data. - Track new inventory additions by paginating through
get_new_arrivalsand diffing against a local product database by SKU. - Analyze brand-level assortment depth and pricing by paginating
get_brand_productsfor brands like Jordan, Puma, or New Balance. - Feed a size availability alerting system using variant data returned by
get_product_detailsfor specific SKUs.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Foot Locker have an official developer API?+
What does get_product_details return beyond what search results include?+
get_product_details returns an ld_json object typed as ProductGroup containing the full product description, brand, per-variant offers with availability, and a breadcrumbs array showing the category hierarchy. Search endpoints return only aggregate-level fields like reviewRatings and variantOptions without offer-level availability detail.Why might get_product_reviews return zero reviews for a product that clearly has reviews on the site?+
baseProduct SKU that differs from the variant-level SKU. Passing the baseProduct SKU (available in search_products results) rather than a variant SKU resolves most zero-result cases.Does the API cover Foot Locker storefronts outside the United States, such as Europe or Canada?+
Does the API support filtering search results by size, color, or price range?+
search_products and browsing endpoints accept query and page parameters but do not expose facet filters for size, color, or price. Variant and size data is present in the response objects, so you can filter client-side after fetching. You can fork the API on Parse and revise it to add server-side filter parameters.