Skip to main content

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: