bershka.com APIwww.bershka.com ↗
Search Bershka's fashion catalog, retrieve product details, and list categories. Get pricing, sizes, colors, composition, and availability via 3 endpoints.
curl -X GET 'https://api.parse.bot/scraper/cb777852-06cd-4236-b10b-5a6322c4afae/search_products?query=camiseta&country=es' \ -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 bershka-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: Bershka SDK — search products, get details, browse categories."""
from parse_apis.Bershka_Product_API import Bershka, Gender, Country, ProductNotFound
client = Bershka()
# Search for t-shirts, limit to 5 results
for product in client.products.search(query="camiseta", limit=5):
print(product.name, product.price, product.image_url)
# Drill into one product for full details
product = client.products.search(query="jacket", limit=1).first()
if product:
detail = client.products.get(product_id=str(product.id))
print(detail.name_en, detail.reference, detail.price)
for mat in detail.composition:
print(f" {mat.material}: {mat.percentage}%")
# Browse categories filtered by gender
for cat in client.categories.list(gender=Gender.WOMEN, limit=10):
print(cat.name, cat.product_count)
# Handle a missing product gracefully
try:
missing = client.products.get(product_id="999999999")
print(missing.name)
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: products.search / products.get / categories.list / ProductNotFound")
Full-text search over Bershka's product catalog. Returns products with name, price, image, colors, sizes, and composition. Supports filtering by color, category, and size via Algolia facets. Results are auto-iterated; facets in the response show available filter values and counts.
| Param | Type | Description |
|---|---|---|
| page | integer | Zero-based page number for pagination. |
| size | string | Filter by size (e.g. 'S', 'M', 'L', 'XL', 'XXS'). Available values returned in facets.sizes of search results. |
| color | string | Filter by color name in the store's language (e.g. 'Negro', 'Blanco', 'Rojo' for Spain). Available values returned in facets.colorNameEs of search results. |
| limit | integer | Number of products per page (max 224). |
| queryrequired | string | Search query text (e.g. 'camiseta', 'jacket', 'jeans'). |
| country | string | Country code determining store locale and language. |
| category | string | Filter by category name in English (e.g. 'T-shirts', 'Jeans', 'Dresses'). Available values returned in facets.categoryNameEn of search results. |
{
"type": "object",
"fields": {
"page": "integer",
"query": "string",
"facets": "object with available filter values and counts for categoryNameEn, sizes, price, discount, colorNameEs",
"products": "array of product objects with id, name, name_en, reference, product_type, price, old_price, colors, sizes, image_url, description, composition",
"total_pages": "integer",
"total_results": "integer"
},
"sample": {
"data": {
"page": 0,
"query": "camiseta",
"facets": {
"sizes": {
"L": 1504,
"M": 1507
},
"colorNameEs": {
"Negro": 241,
"Blanco roto": 265
},
"categoryNameEn": {
"T-shirts": 621,
"Tops and bodysuits": 492
}
},
"products": [
{
"id": 229737190,
"name": "Camiseta boxy fit SPIDERMAN",
"price": 17.99,
"sizes": [
{
"name": "XS",
"available": true
},
{
"name": "S",
"available": true
}
],
"colors": [
{
"id": 600,
"name": "Rojo"
}
],
"name_en": "SPIDERMAN boxy fit T-shirt",
"image_url": "https://static.bershka.net/4/photos2/2026/I/0/2/p/1081/190/600/1081190600_2_4_0.jpg?t=1779969158018",
"old_price": null,
"reference": "1081/190",
"composition": [
{
"material": "algodón",
"percentage": "100"
}
],
"description": "",
"product_type": "Clothing"
}
],
"total_pages": 200,
"total_results": 1520
},
"status": "success"
}
}About the bershka.com API
The Bershka API provides 3 endpoints for querying Bershka's fashion catalog, returning structured product data including pricing, color variants, size availability, and material composition. The search_products endpoint accepts free-text queries with filters for category, color, and size, while get_product returns per-variant availability and care details for a single item by numeric ID.
Search and Browse the Catalog
The search_products endpoint accepts a required query string and optional filters: category (English names such as T-shirts or Dresses), color (locale-specific names like Negro or Blanco), size (e.g. S, M, XL), and country to select the store locale. Each response includes a products array with fields for id, name, name_en, price, old_price, colors, sizes, image_url, description, and reference. The facets object in the response exposes available filter values and counts for categoryNameEn, sizes, price, discount, and colorNameEs, making it straightforward to build dynamic filter UIs. Pagination is controlled via page (zero-based) and limit (up to 224 per page), with total_pages and total_results returned on every response.
Single Product Detail
The get_product endpoint takes a numeric product_id (obtainable from search_products results) and an optional country code. It returns the full product record including all color variants, a sizes array with name and available per entry, composition as an array of material objects, and old_price for discounted items. This endpoint is the only one that exposes care instructions and per-size stock availability.
Category Discovery
The list_categories endpoint returns the full category tree Bershka uses across its catalog. Results include a categories array with name and product_count, a hierarchy array of top-level groupings (e.g. clothes, women, men, shoes), and total_categories. An optional gender filter narrows results to a specific section. Category names from this endpoint map directly to the category parameter in search_products.
The bershka.com API is a managed, monitored endpoint for www.bershka.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when www.bershka.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 www.bershka.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?+
- Build a Bershka price tracker that monitors
priceandold_pricechanges across product IDs over time. - Populate a size-availability checker using the
sizesarray withavailableflags fromget_product. - Generate a catalog feed filtered by category and color using
search_productsfacets for downstream ad campaigns. - Create a composition filter tool that surfaces products by material (e.g. 100% cotton) using the
compositionfield. - Sync Bershka category data via
list_categoriesto maintain an up-to-date taxonomy for a fashion comparison site. - Build localized storefronts using the
countryparameter to retrieve locale-specific product names and prices. - Identify discounted items by comparing
pricetoold_priceacross paginatedsearch_productsresults.
| 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 | 250 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 Bershka have an official public developer API?+
How do color and category filter values work in search_products?+
country (e.g. Negro for Spain). Category names use English regardless of locale (e.g. T-shirts, Jeans). Both sets of valid values and their product counts are returned in the facets object of every search_products response, so you can dynamically populate filter options from live results.Does the API return customer reviews or ratings for products?+
What is the maximum number of products returned per search request?+
limit parameter in search_products accepts a maximum value of 224 products per page. Combined with the page parameter and total_pages in the response, you can iterate through the full result set for any query.Is stock availability data returned at the search level or only per product?+
available flag on each size object) is only returned by the get_product endpoint. The search_products endpoint returns the sizes associated with a product but does not include per-size stock status. You would need to call get_product with individual product IDs to check current availability.