Fragrantica Perfume Scraper avatar

Fragrantica Perfume Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Fragrantica Perfume Scraper

Fragrantica Perfume Scraper

Extract perfume data from Fragrantica.com like name, brand, year, perfumer, fragrance pyramid (top/middle/base notes), main accords, ratings, and reviews. No proxy required.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(29)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

30

Bookmarked

29

Total users

11

Monthly active users

14 days ago

Last modified

Share

Extract perfume data from Fragrantica.com — the world's largest perfume database. Returns name, brand, year, perfumer, full fragrance pyramid (top/middle/base notes), main accords, and aggregated ratings.

Features

  • 17 output fields per perfume — flat schema with typed defaults (zero nulls)
  • Two input modes — direct perfume URLs, or designer pages (auto-expanded)
  • Full fragrance pyramid — top notes, middle/heart notes, base notes
  • Main accords with rankings
  • Ratings — average value + total count
  • Perfumer (nose) names extracted from the description
  • Launch year
  • Gender classification (for women / for men / unisex)
  • DataDome bypass via curl_cffi Chrome 131 + RESIDENTIAL/US proxy (hardcoded, applied automatically). Sessions rotate on failure.

Input

FieldTypeDescription
perfumeUrlsArrayDirect perfume URLs (e.g., https://www.fragrantica.com/perfume/Chanel/Coco-Mademoiselle-611.html)
designerUrlsArrayDesigner/brand pages (e.g., https://www.fragrantica.com/designers/Chanel.html) — automatically expanded to all perfumes from that brand
maxItemsIntegerMaximum perfumes to return (default 20, max 500)

Example Input

Single perfume:

{
"perfumeUrls": [
"https://www.fragrantica.com/perfume/Chanel/Coco-Mademoiselle-611.html"
],
"maxItems": 1
}

Brand catalog:

{
"designerUrls": [
"https://www.fragrantica.com/designers/Tom-Ford.html"
],
"maxItems": 50
}

Output

Each perfume has 17 fields. All fields are always present — empty strings, zero, or empty array as typed defaults, never null.

Identity

FieldTypeDescription
idIntegerFragrantica perfume ID
urlStringPerfume page URL
nameStringPerfume name
brandStringBrand / designer
fullNameStringFull title (Name + Brand + gender)
genderStringfor women, for men, or for women and men
yearIntegerLaunch year

Composition

FieldTypeDescription
perfumersArrayPerfumer / nose names
topNotesArrayTop notes
middleNotesArrayMiddle / heart notes
baseNotesArrayBase notes
allNotesArrayAll notes combined
mainAccordsArrayMain accord names (e.g., floral, woody, citrus)

Ratings & Media

FieldTypeDescription
ratingValueNumberAverage user rating (1-5 scale)
ratingCountIntegerTotal number of ratings
imageUrlStringCover image URL

Metadata

FieldTypeDescription
scrapedAtStringISO 8601 scrape timestamp

FAQ

Q: Do I need a proxy? No configuration needed — a US residential proxy is hardcoded and applied automatically. Fragrantica is fronted by DataDome which blocks Apify datacenter IPs with 403. The scraper combines RESIDENTIAL/US traffic with curl_cffi Chrome 131 TLS impersonation, with automatic session rotation on each failed attempt (up to 5 retries per URL).

Q: How do I find a designer URL? The format is https://www.fragrantica.com/designers/{Brand-Name}.html (e.g., Chanel.html, Tom-Ford.html, Dior.html). Spaces become hyphens.

Q: How many perfumes per brand? Major brands like Chanel and Dior have 150-300 perfumes. The scraper expands the designer page and scrapes up to maxItems perfumes.

Q: How fresh is the data? Fragrantica updates ratings and reviews continuously — new data is reflected within hours.

Use Cases

  • Perfume market research — track new launches by brand or accord
  • E-commerce enrichment — pull perfume metadata for product catalogs
  • Accord analysis — find perfumes with specific note combinations
  • Rating aggregation — compare brands by average ratings
  • Recommendation systems — match perfumes by shared notes / perfumers