Mytheresa APImytheresa.com ↗
Access Mytheresa's men's luxury catalog via API. Retrieve products, pricing, variants, designer listings, and images with pagination and filtering.
What is the Mytheresa API?
This API exposes 5 endpoints covering Mytheresa's men's luxury fashion catalog, including product listings, full product details, designer directories, and image sets. The get_product_details endpoint returns variant-level stock availability, pricing in cents with discount percentage, material and care features, size and fit notes, and a product description — all keyed by the product slug obtained from catalog listings.
curl -X GET 'https://api.parse.bot/scraper/48521b8f-a4c8-44fe-9aae-5b11cae45a10/get_men_catalog?page=1&size=5&slug=%2Fclothing' \ -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 mytheresa-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: Mytheresa SDK — browse luxury catalog, drill into products."""
from parse_apis.mytheresa_api import Mytheresa, Slug, ProductNotFound
client = Mytheresa()
# Browse the clothing catalog — limit caps total items fetched across pages.
for product in client.catalogs.browse(slug=Slug._CLOTHING, size=5, limit=3):
print(product.name, product.designer, product.price.original)
# Get all designers available in the men's section.
for designer in client.designers.list(limit=5):
print(designer.value, designer.count)
# Drill into a single product for full details (variants, features, measurements).
item = client.catalogs.browse(slug=Slug._SHOES, limit=1).first()
if item:
full = item.details()
print(full.name, full.designer, full.color)
for variant in full.variants[:3]:
print(variant.size, variant.sizeHarmonized, variant.availability.hasStock)
# Fetch images for that product.
if item:
imgs = item.details().images()
print(imgs.product_id, len(imgs.image_urls))
# Browse a specific designer's collection.
for product in client.catalogs.by_designer(designer_slug="gucci", limit=3):
print(product.name, product.price.currencyCode, product.price.discount)
# Typed error handling for a product that doesn't exist.
try:
bad = client.catalogs.browse(limit=1).first()
if bad:
bad.details()
except ProductNotFound as exc:
print(f"Product not found: {exc.product_slug}")
print("exercised: catalogs.browse / designers.list / details / images / by_designer")
Retrieve the clothing catalog with pagination. Returns product listings including pricing, variants, images, facets for filtering, and sort options. The slug parameter scopes results to a category subtree. Each product in the listing is a summary; use get_product_details with the product's slug for full information including measurements and sustainability data.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| size | integer | Number of items per page. |
| slug | string | Category slug path (e.g. /clothing, /shoes, /bags, /clothing/jackets, /clothing/shorts). |
{
"type": "object",
"fields": {
"sort": "object with currentParam and params array of available sort options",
"facets": "object containing filter facets (categories, designers, colors, materials, sizes, etc.)",
"metadata": "object containing page SEO metadata, content banners, and description",
"products": "array of product summary objects with sku, slug, name, designer, price, variants, displayImages",
"totalItems": "total number of items integer",
"totalPages": "total number of pages integer",
"currentPage": "current page number integer",
"itemsPerPage": "items per page integer"
},
"sample": {
"data": {
"sort": {
"params": [
"recommendation",
"new_item",
"price_asc"
],
"currentParam": "recommendation"
},
"products": [
{
"sku": "P01140053",
"name": "Cotton-blend Bermuda shorts",
"slug": "/lemaire-cotton-blend-bermuda-shorts-beige-p01140053",
"price": {
"discount": 55600,
"original": 79500,
"percentage": "30",
"currencyCode": "USD"
},
"designer": "Lemaire",
"hasStock": true
}
],
"totalItems": 6273,
"totalPages": 523,
"currentPage": 1,
"itemsPerPage": 5
},
"status": "success"
}
}About the Mytheresa API
Catalog Browsing and Filtering
The get_men_catalog endpoint accepts page, size, and slug parameters to page through Mytheresa's men's inventory scoped to any category subtree. The slug parameter accepts paths like /clothing, /shoes, /bags, or deeper paths such as /clothing/jackets. The response includes a products array of summary objects (each with sku, slug, name, designer, price, variants, and displayImages), along with facets covering categories, designers, colors, materials, and sizes, plus sort options and pagination fields (totalItems, totalPages, currentPage, itemsPerPage).
Product Details and Images
get_product_details accepts a product_slug (e.g. lemaire-cotton-blend-bermuda-shorts-beige-p01140053) and returns the full product record: price as an object with currencyCode, original and discount amounts in cents, and percentage; a variants array with per-variant size, sizeHarmonized, sku, price, and availability; features listing materials and care instructions; sizeAndFit notes; color; and description. get_product_images uses the same slug to return all image URLs for a product as an array alongside the product_id.
Designer Catalog Access
get_men_designers returns the full list of available designers, each with a value (name), slug (e.g. /designers/gucci), and count of products. The last segment of that slug feeds directly into get_men_designer_catalog as the designer_slug parameter (e.g. gucci, acne-studios). That endpoint returns the same listing structure as get_men_catalog — including facets, sort, products, and pagination — but also includes a metadata object with a designer bio.
The Mytheresa API is a managed, monitored endpoint for mytheresa.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mytheresa.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 mytheresa.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?+
- Aggregate men's luxury fashion pricing across designers by iterating
get_men_catalogwith categoryslugfilters. - Track per-size stock availability for specific products using the
variantsarray inget_product_details. - Build a designer directory with product counts using the
designersarray fromget_men_designers. - Populate a product detail page with all image URLs using
get_product_imagesfor a given product slug. - Monitor discount depth on Mytheresa listings using the
discountandpercentagefields in productpriceobjects. - Filter the men's catalog by material or color using the
facetsreturned alongsideget_men_catalogresults. - Generate designer-specific product feeds with bio copy from the
metadatafield inget_men_designer_catalog.
| 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 Mytheresa have an official public developer API?+
What does get_product_details return that the catalog endpoints don't?+
get_product_details adds variant-level availability, sizeHarmonized, per-variant price, features (materials and care), sizeAndFit descriptions, color, and the full description string. You need a slug from the catalog to call it.Does the API cover women's or kids' categories, or just men's?+
Are product reviews or editorial content available through these endpoints?+
get_men_designer_catalog response. User reviews and editorial lookbook content are not exposed. You can fork the API on Parse and revise it to add an endpoint targeting those content areas.How does pagination work across catalog endpoints?+
get_men_catalog and get_men_designer_catalog accept page (1-based integer) and size (items per page) parameters. Every response returns totalItems, totalPages, currentPage, and itemsPerPage so you can walk the full result set. There is no cursor-based pagination — only numeric page offsets.