Frette APIfrette.com ↗
Access Frette product details, category listings, search results, collection sets, and boutique locations via a structured JSON API with 9 endpoints.
What is the Frette API?
The Frette API covers 9 endpoints for extracting product data, category listings, store locations, and order status from frette.com. The get_product_detail endpoint returns 10+ fields per product including SKU, fabric type, dimensions in cm and inches, care instructions, variant-level pricing, and availability inventory counts. Category browsing, keyword search, and new arrivals are each addressable with dedicated endpoints.
curl -X GET 'https://api.parse.bot/scraper/5373e2c7-61ac-4687-82a6-99cac4df1b72/get_product_detail?pid=unito-hand-towel-olive&size=Queen&color=White' \ -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 frette-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: Frette SDK — browse luxury linens, drill into details, find stores."""
from parse_apis.frette_api import Frette, Cgid, ProductNotFound
frette = Frette()
# Search for towel products — limit caps total items fetched
for towel in frette.productsummaries.search(query="towel", limit=3):
print(towel.name, towel.price, towel.url)
# Drill into full product details from a search result
item = frette.productsummaries.search(query="duvet", limit=1).first()
if item:
product = item.details()
print(product.name, product.sku, product.fabric)
print(product.dimensions.cm, product.dimensions.inches)
print(product.availability.messages, product.availability.inventory_count)
# Explore matching collection items (shams, sheets, etc.)
for ci in product.collection_items.list(limit=3):
print(ci.name, ci.sku)
# Browse by category enum
for p in frette.productsummaries.by_category(cgid=Cgid.BED_LINENS_SHOP_ALL, limit=3):
print(p.name, p.price)
# Find stores worldwide filtered by city
for store in frette.stores.list(query="Milan", limit=5):
print(store.name, store.latitude, store.longitude)
# Typed error handling
try:
bad = frette.productsummaries.search(query="towel", limit=1).first()
if bad:
bad.details()
except ProductNotFound as exc:
print(f"Product not found: {exc.pid}")
print("exercised: search / details / collection_items.list / by_category / stores.list")
Fetch full product details for a single Frette product by product slug. Returns pricing, availability, dimensions, fabric, images, and variant attributes. Supports selecting specific color and size variants via query parameters that map to Demandware variation attributes.
| Param | Type | Description |
|---|---|---|
| pidrequired | string | Product slug from the URL path (e.g., 'grace-sheet-set', 'divine-duvet-cover'). |
| size | string | Selected size variant name (e.g., 'Queen', 'King', 'CalKing'). |
| color | string | Selected color variant name (e.g., 'White', 'Milk'). |
{
"type": "object",
"fields": {
"id": "string, internal product variant ID",
"sku": "string, product SKU code",
"name": "string, product display name",
"price": "object containing sales price with value, currency, and formatted fields",
"fabric": "string, fabric type",
"images": "object keyed by view type, each containing array of image objects with url and alt",
"dimensions": "object with cm and inches measurement strings",
"availability": "object with messages array and inventoryCount",
"long_description": "string, full product description",
"care_instructions": "string, care and washing instructions",
"variation_attributes": "array of variant attribute objects (color, size) with selectable values"
},
"sample": {
"data": {
"id": "8051834332180",
"sku": "3FR6238E2432-240I-B101",
"name": "Grace Sheet Set",
"price": {
"list": null,
"sales": {
"value": 1575,
"currency": "USD",
"formatted": "$1,575.00",
"decimalPrice": "1575.00"
}
},
"fabric": "Cotton Sateen",
"images": {
"Square-PDP": [
{
"alt": "Grace Sheet Set",
"url": "https://www.frette.com/dw/image/v2/BCMC_PRD/on/demandware.static/-/Sites-frette-master-catalog/default/dwa3840fd6/images/large/3FR6238E2400_B101_01.jpg?sw=768&strip=false",
"index": "0",
"title": "Grace Sheet Set"
}
]
},
"dimensions": {
"cm": "Top Sheet (240x305), 2 Standard Shams (51x71), Fitted Bottom Sheet (155x205, Depth 38)",
"inches": "Top Sheet (95x120), 2 Standard Shams (20x28), Fitted Bottom Sheet (61x81, Depth 15)"
},
"availability": {
"messages": [
"In Stock"
],
"inStockDate": null,
"inventoryCount": 11
},
"long_description": "Soft and smooth to the touch, the Grace Sheet Set is composed of long-staple cotton sateen...",
"care_instructions": "Machine wash in cold water with mild liquid biodegradable detergent without added bleach or whiteners.",
"variation_attributes": [
{
"id": "color",
"values": [
{
"id": "White",
"value": "White",
"selected": true,
"selectable": true,
"displayValue": "White"
}
],
"swatchable": true,
"attributeId": "color",
"displayName": "Color"
}
]
},
"status": "success"
}
}About the Frette API
Product Data
The get_product_detail endpoint accepts a pid (product slug such as grace-sheet-set) along with optional size and color variant selectors. The response includes sku, fabric, long_description, care_instructions, dimensions (both cm and inches), an availability object with an inventoryCount and messages array, and an images object keyed by view type. Prices are returned as structured objects with value, currency, and a pre-formatted display string.
Browsing and Search
get_category_products accepts a cgid parameter (e.g., bed-linens-shop-all, bath-linens-shop-all, new-arrivals) with optional sz and start for pagination. Each product tile in the response carries an id, name, url, price, and swatches array. Three convenience endpoints — get_bedding_products, get_bath_products, and get_new_arrivals — call fixed category IDs without requiring parameters. search_products accepts a query string plus the same sz/start pagination controls and returns a count alongside the product tile array.
Collections and Order Status
get_collection_set takes a parent pid and returns the associated bundle items — matching duvet covers, shams, and related pieces — each with id, name, sku, and price. check_order_status is a POST endpoint that accepts order_number, order_email, and zip_code, returning a status string and redirect URL for guest order lookup.
Store Locations
find_boutique returns all Frette boutique and flagship store locations worldwide. Each store object includes name, latitude, longitude, and storeID. An optional query string filters results by name, address, or city using a case-insensitive substring match, making it useful for geo-based store finders without requiring a coordinates input.
The Frette API is a managed, monitored endpoint for frette.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when frette.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 frette.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 bedding comparison tool using
get_product_detailto pull fabric, dimensions, and variant pricing across multiple SKUs. - Populate a category page feed by calling
get_category_productswithbed-linens-shop-alland paginating withszandstart. - Create a store locator widget using
find_boutiquelatitude/longitude fields to plot Frette boutiques on a map. - Monitor new product drops by polling
get_new_arrivalsand diffing the returned product tile IDs. - Build a collection bundle display using
get_collection_setto surface matching shams, duvet covers, and accessories alongside a sheet set. - Implement keyword search autocomplete or product search results using the
search_productsqueryparameter and tile responses. - Support guest order lookup flows in a customer service tool using
check_order_statuswith order number, email, and billing ZIP.
| 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 Frette have an official public developer API?+
What does `get_product_detail` return for product variants, and how do I select a specific one?+
size and color parameters you pass alongside the pid slug. If you omit those optional parameters, the response reflects the default variant. Each call returns one sku, one price object, one availability block with inventoryCount, and the images keyed to that variant's view types.Does the API return customer reviews or ratings for products?+
How does pagination work across the browse and search endpoints?+
get_category_products and search_products endpoints both accept sz (page size) and start (offset) as optional integer parameters. The response includes a count field reflecting how many products were returned in that page. Increment start by sz to walk through subsequent pages.Does `find_boutique` return store hours, phone numbers, or contact details?+
name, latitude, longitude, and storeID only — hours, phone numbers, and contact details are not part of the response. You can fork the API on Parse and revise it to add those fields if the source exposes them.