Com APIsabon.com.hk ↗
Access Sabon HK's Eau de Sabon perfume catalog via API. Retrieve fragrance notes (top, middle, base), HKD pricing, stock status, and product images.
What is the Com API?
The Sabon Hong Kong API provides 2 endpoints covering the complete Eau de Sabon perfume line, including structured fragrance note data broken down by top, middle, and base notes. Use list_perfumes to pull the full catalog in one response, or get_perfume to fetch a specific product's SKU, description, imagery, and stock status by URL slug.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/dfce7135-2e4a-46b2-adaa-21d645c38d60/list_perfumes' \ -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 sabon-com-hk-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: Sabon HK Perfumes SDK — bounded, re-runnable; every call capped."""
from parse_apis.sabon_com_hk_api import Sabon, PerfumeNotFound
client = Sabon()
# List all perfumes with their fragrance notes
for perfume in client.perfumes.list(limit=3):
print(perfume.name, perfume.price, perfume.currency)
print(" Top:", perfume.fragrance_notes.top_notes)
print(" Middle:", perfume.fragrance_notes.middle_notes)
print(" Base:", perfume.fragrance_notes.base_notes)
# Get a specific perfume by slug
item = client.perfumes.list(limit=1).first()
try:
detail = client.perfumes.get(slug=item.slug)
print(detail.name, detail.in_stock)
except PerfumeNotFound as e:
print(f"not found: {e.slug}")
print("exercised: perfumes.list / perfumes.get")
Lists all Sabon perfumes (Eau de Sabon line) with their fragrance notes, pricing, and availability. Returns the complete catalog in a single response.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer count of perfumes returned",
"perfumes": "array of perfume objects with name, fragrance notes, pricing, and availability"
},
"sample": {
"data": {
"total": 3,
"perfumes": [
{
"sku": "69296d8176b3d60001c1fa38",
"name": "Eau de Sabon White Tea 80ml",
"slug": "eau-de-sabon-white-tea-80ml",
"price": 480,
"images": [
"https://img.shoplineapp.com/media/image_clips/6989896b6bb50c4e8421cd4c/original.png?1770621290=&owner_id=68ecdab49040b9008eb3361f"
],
"currency": "HKD",
"in_stock": false,
"description": "Our White Tea EAU de SABON is a truly unique perfume which can be enjoyed alone or mixed with other White Tea body products as a final, fragrant touch. Top notes: Fig, Lemon, JasmineMiddle notes: Nutmeg, Cardamom, White TeaBase notes: Violet, Cedar Wood, Thyme",
"fragrance_notes": {
"top_notes": [
"Fig",
"Lemon",
"Jasmine"
],
"base_notes": [
"Violet",
"Cedar Wood",
"Thyme"
],
"middle_notes": [
"Nutmeg",
"Cardamom",
"White Tea"
]
}
}
]
},
"status": "success"
}
}About the Com API
Catalog Overview
The list_perfumes endpoint returns the entire Eau de Sabon collection in a single response. Each perfume object in the array includes the product name, fragrance notes, current HKD price, and availability status. No filters or pagination parameters are required — the full catalog comes back in one call, making it straightforward to index or compare across all available scents.
Per-Perfume Detail
The get_perfume endpoint accepts a slug string (e.g. eau-de-sabon-green-rose-80ml) and returns a richer data shape: sku, name, slug, price, currency (HKD), in_stock boolean, a full description including the fragrance story, images (an array of product image URLs), and a fragrance_notes object containing top_notes, middle_notes, and base_notes as separate arrays. Slugs are available from the perfumes array returned by list_perfumes.
Data Scope and Currency
All pricing is denominated in HKD and reflects the Sabon Hong Kong storefront. The in_stock field indicates current availability. Coverage is limited to the Eau de Sabon fragrance line — the API does not include Sabon's broader bath, body, or skincare product ranges.
The Com API is a managed, monitored endpoint for sabon.com.hk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sabon.com.hk 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 sabon.com.hk 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 fragrance discovery tool that lets users filter perfumes by top, middle, or base notes from
fragrance_notes. - Track HKD price changes across the Eau de Sabon line by polling
list_perfumesperiodically. - Monitor stock availability using the
in_stockfield to alert customers when a sold-out fragrance returns. - Populate a product comparison table with fragrance note breakdowns pulled from
get_perfume. - Sync Sabon HK perfume SKUs and images into a third-party retail or catalog management system.
- Generate fragrance profile summaries by extracting and combining
top_notes,middle_notes, andbase_notesarrays.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Sabon Hong Kong offer an official developer API?+
What does `get_perfume` return beyond what `list_perfumes` includes?+
get_perfume returns fields not present in the catalog listing: a structured fragrance_notes object with separate top_notes, middle_notes, and base_notes arrays, a full prose description covering the fragrance story, the product sku, and an images array of product image URLs. list_perfumes covers name, pricing, and availability only.Does the API cover Sabon's full product range beyond perfumes?+
Can I filter `list_perfumes` by fragrance note or availability?+
list_perfumes takes no input parameters and returns the full catalog in one response. Filtering by note type or stock status is not built in — you would apply those filters client-side on the returned perfumes array. If you need server-side filtering, you can fork this API on Parse and revise the endpoint to add filter parameters.Is ingredient or allergen data available through the API?+
top_notes, middle_notes, and base_notes arrays in get_perfume, and some ingredient context may appear within the description field. You can fork this API on Parse and revise it to surface a structured ingredients field if the source exposes that data.