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

(10)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

11

Bookmarked

1

Total users

0

Monthly active users

4 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