Solebox APIsolebox.com ↗
Access Solebox product listings via API. Filter sneakers, apparel, and accessories by brand, price range, and category. Returns names, prices, colors, and URLs.
What is the Solebox API?
The Solebox API exposes one endpoint — get_products — that returns up to 10 fields per product across Solebox's sneaker, apparel, and accessories catalog. Each response includes brand, display name, current price, discount status, color, and a direct product URL, alongside pagination metadata covering total results and page counts. You can filter by category ID, price range in EUR, brand slug, and sort order.
curl -X GET 'https://api.parse.bot/scraper/81372760-674a-4ffa-a6a6-3bdfb3181c69/get_products?page=1&brand=830&sorting=key-relevance&per_page=12&max_price=200&min_price=1&category_id=2821' \ -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 solebox-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: Solebox SDK — browse categories, filter by price and brand, paginate."""
from parse_apis.solebox_product_listings_api import Solebox, Sorting, CategoryNotFound
client = Solebox()
# Browse the Shoes category (2833), sorted by price ascending, capped at 5 items.
for product in client.category(id=2833).get_products(sorting=Sorting.PRICE_ASC, limit=5):
print(product.brand, product.name, product.formatted_price, product.in_stock)
# Drill into one product from the Apparel category with a price filter.
item = client.category(id=2821).get_products(
min_price="50", max_price="150", sorting=Sorting.NEWEST, limit=1
).first()
if item:
print(item.display_name, item.price, item.currency, item.available_sizes)
# Filter by brand (adidas Originals = 830) in Accessories category.
for product in client.category(id=2834).get_products(brand="830", limit=3):
print(product.name, product.color, product.image_url)
# Typed error handling: attempt a non-existent category.
try:
result = client.category(id=99999).get_products(limit=1).first()
except CategoryNotFound as exc:
print(f"Category not found: {exc.category_id}")
print("exercised: category.get_products (pagination, sorting, price filter, brand filter, error handling)")
Retrieve product listings from a Solebox category. Supports filtering by price range (EUR), brand ID, and sort order. Results are paginated; each page returns up to `per_page` items. The response includes pagination metadata (total_results, total_pages, current_page) alongside the product array. Each product carries brand, name, price, images, available sizes, and stock status. Category defaults to 2821 (Bekleidung/Apparel) when omitted.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based). |
| brand | string | Brand filter. Accepts the format 'slug-id' (e.g., 'adidas_originals-830', 'nike_1-392') where the numeric ID after the last dash is used for filtering. Also accepts a bare numeric ID (e.g., '830'). |
| sorting | string | Sort order for results. |
| per_page | integer | Products per page (max 24). |
| max_price | string | Maximum price filter in EUR (e.g., '200'). Omitting applies no maximum price constraint. |
| min_price | string | Minimum price filter in EUR (e.g., '1'). Omitting applies no minimum price constraint. |
| category_id | string | Category ID to browse (e.g., 2821=Bekleidung/Apparel, 2833=Schuhe/Shoes, 2834=Accessoires). |
{
"type": "object",
"fields": {
"category": "object with id, name, slug describing the browsed category",
"products": "array of product objects with id, brand, name, display_name, price, currency, formatted_price, was_price, has_discount, color, url, image_url, all_image_urls, available_sizes, in_stock, is_new",
"page_size": "integer - products per page",
"total_pages": "integer - total pages available",
"current_page": "integer - current page number (1-based)",
"total_results": "integer - total number of matching products"
}
}About the Solebox API
What the API Returns
The get_products endpoint returns a paginated list of products from a specified Solebox category. Each product object includes id, brand, name, display_name, price, currency, formatted_price, was_price, has_discount, color, and url. The has_discount flag and was_price field let you identify currently discounted items without additional requests. The response also includes a category object with id, name, and slug describing the browsed category.
Filtering and Pagination
Use category_id to target specific sections: 2821 for apparel (Bekleidung), 2833 for shoes (Schuhe), and 2834 for accessories. The min_price and max_price parameters accept EUR values as strings (e.g., '1', '200') to narrow price ranges. Brand filtering uses a slug-id format such as 'adidas_originals-830' or 'nike_1-392'. Pages are 1-based and each can return up to 24 products via per_page. Pagination metadata — total_results, total_pages, and current_page — is returned on every response.
Sorting
The sorting parameter controls result order. This is useful for surfacing newest arrivals or most relevant matches within a filtered product set. Combined with price filters and brand IDs, sorting lets you build targeted queries without fetching the full catalog.
The Solebox API is a managed, monitored endpoint for solebox.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when solebox.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 solebox.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 Solebox sneaker prices and flag items where
has_discountis true for deal-tracking tools - Build a brand-filtered product feed for adidas or Nike using the
brandslug-id parameter - Compare
priceandwas_priceacross apparel categories to calculate discount depth - Aggregate product URLs from Solebox to power affiliate link engines or price-comparison pages
- Track catalog size changes over time using
total_resultsfor specific category IDs - Filter the shoes category (
2833) bymax_priceto surface budget sneaker options - Populate a sneaker discovery app with
display_name,color, andformatted_priceper product
| 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 Solebox have an official developer API?+
What does `get_products` return for a discounted item?+
price (the current sale price) and was_price (the original price), and sets has_discount to true. Non-discounted items will have has_discount as false and was_price will be null or absent.Does the API return product images?+
get_products endpoint does not return image URLs in the product objects — it covers fields like brand, name, price, color, and url. You can fork this API on Parse and revise it to add image fields to the product response.Can I retrieve individual product detail pages, such as size availability or stock levels?+
What is the maximum number of products returned per request?+
per_page parameter. To retrieve more, increment the page parameter. The total_pages and total_results fields in each response tell you how many pages and products exist for your current filter combination.