B2B Fragrance Data API
Read-only programmatic access to the 75,000-fragrance ScentSell catalogue — notes, accords, perfumers, ratings, concentration, year released, provenance metadata, and AU availability. For retailers, discovery apps, subscription box curators, chatbots, and any third-party that wants grounded, current, AU-aware fragrance data.
Marketing page + live examples: www.scentsell.com.au/api.
Base URL
https://www.scentsell.com.au/functions/v1/public-fragrance-api
Authentication
Bearer token in the Authorization header. Keys are SHA-256 hashed in the
api_keys Supabase table — the plaintext is shown once at generation.
Authorization: Bearer <your_api_key>
Request a key by emailing the address on /api.
Endpoints
GET /me
Returns your key's owner + rate-limit status.
{
"owner": "Acme Fragrance Box",
"rate_limit_per_day": 5000,
"used_today": 142
}
GET /fragrances
Search the catalogue. Supports query, brand, concentration, year_from,
year_to, country, limit (max 100), offset.
curl -H "Authorization: Bearer $KEY" \
"https://www.scentsell.com.au/functions/v1/public-fragrance-api/fragrances?query=aventus&limit=5"
GET /fragrances/:id
Fetch one fragrance by fragrance_master UUID. Returns full detail including
arrays of notes (top/heart/base), accords, perfumers, provenance tags.
Rate limiting
Per-key daily quota, configurable per customer. Throttle response is HTTP 429
with retry_after_seconds in the body.
Pricing
Beta: AU$0.05 per 1,000 requests after a free tier. Annual commitments available for high-volume customers — contact us for volume discounts.
Provenance
Every row carries a provenance tag indicating where the data came from —
curated Parfumo taxonomy, ScentSell manual curation, AI-enriched metadata
(GPT-4o), or scraped AU retailer. Enrichment runs nightly.
Next steps: