EXAMPLE OUTPUT

See the data

Saved sample
urlhttps://www.fragrantica.com/perfume/Chanel/Coco-Mademoiselle-611.html
product_id611
nameCoco Mademoiselle Chanel
sku611
brandChanel
categoryOriental Floral
main_imagehttps://fimgs.net/mdimg/perfume-thumbs/375x500.611.jpg
images[ "https://fimgs.net/mdimg/perfume-thumbs/375x500.611.jpg" ]
descriptionCoco Mademoiselle by Chanel is a Oriental Floral fragrance for women. Coco Mademoiselle was launched in 2001. The nose behind this fragrance is Jacques Polge.
description_html<p><strong>Coco Mademoiselle</strong> by <strong>Chanel</strong> is a Oriental Floral fragrance for women. Coco Mademoiselle was launched in 2001.</p><p>The nose behind this fragrance is Jacques Polge.</p>
attributes{ "audience": "for women", "launch year": 2001 }
rating_value4.1
review_count33212
canonical_urlhttps://www.fragrantica.com/perfume/Chanel/Coco-Mademoiselle-611.html
scraped_at2026-08-14T20:35:00.000Z
audiencefor women
brand_urlhttps://www.fragrantica.com/designers/Chanel.html
fragrance_familyOriental Floral
launch_year2001
main_accords[ "citrus", "woody", "patchouli" ]
top_notes[ "Orange", "Mandarin Orange" ]
middle_notes[ "Rose" ]
base_notes[ "Patchouli", "Vanilla" ]

Collect structured perfume encyclopedia data from Fragrantica perfume, What's New, and designer URLs.

Issues and feature requests

If you encounter an issue or need a field added, open an issue on the Actor page or write to hello@123webdata.com.

Output Example (simplified)

The overview shows the most useful fields in a table. Product images are displayed as thumbnails when the website provides them.

Image Product URL Product ID Product name Brand Scraped at
https://www.fragrantica.com/perfume/Chanel/Coco-Mademoiselle-611.html 611 Coco Mademoiselle Chanel Chanel 2026-08-14T20:35:00.000Z

How to scrape supported list pages

This Actor accepts individual product links in productUrls. It accepts category pages and brand pages in categoryUrls.

  1. Open a supported list page in your browser.
  2. Choose a category and open a brand page you need.
  3. Copy the final URL from the address bar and paste it into categoryUrls.

The Actor follows the products shown on that page.

Features

  • Scrapes detailed perfume information from Fragrantica product pages
  • Accepts individual product URLs and category pages and brand pages
  • Lets you limit the number of saved products and choose whether to continue through additional result pages
  • Returns structured designer details, main accords, fragrance notes, and ratings for viewing, export, and analysis

Pricing

This Actor uses pay-per-event pricing. Its running costs are included.

  • Actor start: $0.02 once per run — One fixed charge for starting a run.
  • Result: $0.00089 each ($0.89 per 1,000) — A product record collected directly from a supported list page.
  • Product detail: $0.00199 each ($1.99 per 1,000) — A full product record collected from its product page.

The start charge applies once per run. Each saved product is charged either as a Result or a Product detail, never both.

Results in one run Result Product detail
100 $0.11 $0.22
1,000 $0.91 $2.01

Apify's Free plan currently includes $5 in monthly usage credits. If the full $5 is available for this Actor, one run covers about 5,595 Results or 2,502 Product details. Other Apify usage reduces the available credit.

Input

The Actor accepts the following input parameters:

Field Type Description
productUrls array Product URLs to scrape
categoryUrls array Supported list pages: category pages and brand pages
maxResultsPerScrape integer Maximum number of product records to save
usePagination boolean Whether to continue through additional result pages
scrapeProductDetails boolean Enabled returns Product detail records with the product-page fields listed below. Disabled returns Result records with the list-level fields.

What data you get in each mode

Every saved product is stored as one record. scrapeProductDetails decides which mode you receive; the lists below name every field each mode can return. A field is empty when the website does not show that information.

Result

A list-level product record with 12 declared fields:

url, product_id, name, sku, brand, audience, launch_year, comment_count, main_image, images, canonical_url, scraped_at

Product detail

A full product record with 24 declared fields:

url, product_id, name, sku, brand, category, main_image, images, description, description_html, attributes, rating_value, review_count, canonical_url, scraped_at, audience, brand_url, fragrance_family, launch_year, comment_count, main_accords, top_notes, middle_notes, base_notes

Output Example (full)

The Actor stores one structured record per product. Card-only records contain only fields available on the list; detail-only fields are omitted.

{
  "url": "https://www.fragrantica.com/perfume/Chanel/Coco-Mademoiselle-611.html",
  "product_id": "611",
  "name": "Coco Mademoiselle Chanel",
  "sku": "611",
  "brand": "Chanel",
  "category": "Oriental Floral",
  "main_image": "https://fimgs.net/mdimg/perfume-thumbs/375x500.611.jpg",
  "images": [
    "https://fimgs.net/mdimg/perfume-thumbs/375x500.611.jpg"
  ],
  "description": "Coco Mademoiselle by Chanel is a Oriental Floral fragrance for women. Coco Mademoiselle was launched in 2001.\n\nThe nose behind this fragrance is Jacques Polge.",
  "description_html": "<p><strong>Coco Mademoiselle</strong> by <strong>Chanel</strong> is a Oriental Floral fragrance for women. Coco Mademoiselle was launched in 2001.</p><p>The nose behind this fragrance is Jacques Polge.</p>",
  "attributes": {
    "audience": "for women",
    "launch year": 2001
  },
  "rating_value": 4.1,
  "review_count": 33212,
  "canonical_url": "https://www.fragrantica.com/perfume/Chanel/Coco-Mademoiselle-611.html",
  "scraped_at": "2026-08-14T20:35:00.000Z",
  "audience": "for women",
  "brand_url": "https://www.fragrantica.com/designers/Chanel.html",
  "fragrance_family": "Oriental Floral",
  "launch_year": 2001,
  "main_accords": [
    "citrus",
    "woody",
    "patchouli"
  ],
  "top_notes": [
    "Orange",
    "Mandarin Orange"
  ],
  "middle_notes": [
    "Rose"
  ],
  "base_notes": [
    "Patchouli",
    "Vanilla"
  ]
}

Use Cases

  • Compare perfume accords and note pyramids
  • Study designer catalogs and launch years
  • Build fragrance research datasets

Integrate with AI and automation

Use with AI through MCP

Connect your AI assistant to the Apify MCP server. It can discover and run Actors, then access the results in the same conversation. For example, ask your assistant to scrape a list of products from Fragrantica, compare prices, or summarize the collected data.

Run on a schedule

After one successful run, use Apify Schedules to repeat the same task hourly, daily, weekly, or with a custom cron schedule. Saved tasks are useful when you want to keep the same URLs and settings for every run.

Connect with n8n

Create an n8n account and add the verified Apify node to a workflow. Choose Run an Actor and Get Dataset when the workflow should start this Actor, wait for completion, and receive the product rows for the next node. See the Apify integration for n8n.

Connect with Make

Create a Make account and add the Apify Run an Actor module. Follow it with Get Dataset Items to pass the product rows to Google Sheets, a database, email, or another Make module. For longer runs, use Watch Actor Runs followed by Get Dataset Items.

Read the Make integration guide.

Input schema
{
  "title": "Fragrantica Scraper Input",
  "type": "object",
  "schemaVersion": 1,
  "properties": {
    "productUrls": {
      "title": "Product URLs",
      "type": "array",
      "description": "Product URLs on Fragrantica.",
      "prefill": [
        "https://www.fragrantica.com/perfume/Dior/Sauvage-31861.html"
      ],
      "default": [],
      "editor": "stringList"
    },
    "categoryUrls": {
      "title": "Category URLs",
      "type": "array",
      "description": "Category URLs on Fragrantica.",
      "prefill": [
        "https://www.fragrantica.com/whats-new/"
      ],
      "default": [],
      "editor": "stringList"
    },
    "maxResultsPerScrape": {
      "title": "Maximum results",
      "type": "integer",
      "description": "Maximum number of product records to save.",
      "default": 20,
      "minimum": 1,
      "maximum": 100000
    },
    "usePagination": {
      "title": "Use pagination",
      "type": "boolean",
      "description": "Enqueue the bounded pagination lookahead exposed by this actor.",
      "default": true
    },
    "scrapeProductDetails": {
      "title": "Include product details",
      "type": "boolean",
      "default": true,
      "description": "Enabled returns Product detail records with the product-page fields listed in the README. Disabled returns Result records with the list-level fields."
    }
  }
}
Output schema
{
  "actorSpecification": 1,
  "fields": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "url": {
        "type": [
          "string",
          "null"
        ],
        "format": "uri"
      },
      "product_id": {
        "type": [
          "string",
          "null"
        ],
        "description": "Stable source-side product identifier."
      },
      "name": {
        "type": [
          "string",
          "null"
        ]
      },
      "sku": {
        "type": [
          "string",
          "null"
        ]
      },
      "brand": {
        "type": [
          "string",
          "null"
        ]
      },
      "category": {
        "type": [
          "string",
          "null"
        ]
      },
      "main_image": {
        "type": [
          "string",
          "null"
        ],
        "format": "uri"
      },
      "images": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uri"
        }
      },
      "description": {
        "type": [
          "string",
          "null"
        ]
      },
      "description_html": {
        "type": [
          "string",
          "null"
        ],
        "description": "Sanitized rich-text product description with structural HTML only."
      },
      "attributes": {
        "type": "object",
        "description": "Additional source product attributes."
      },
      "rating_value": {
        "type": [
          "number",
          "null"
        ]
      },
      "review_count": {
        "type": [
          "integer",
          "null"
        ]
      },
      "canonical_url": {
        "type": [
          "string",
          "null"
        ],
        "format": "uri"
      },
      "scraped_at": {
        "type": "string",
        "format": "date-time"
      },
      "audience": {
        "type": [
          "string",
          "null"
        ],
        "description": "Audience wording shown in the perfume heading."
      },
      "brand_url": {
        "type": [
          "string",
          "null"
        ],
        "format": "uri",
        "description": "Fragrantica designer-page URL."
      },
      "fragrance_family": {
        "type": [
          "string",
          "null"
        ],
        "description": "Fragrance family stated in the product prose."
      },
      "launch_year": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Source-stated launch year."
      },
      "comment_count": {
        "type": [
          "integer",
          "null"
        ],
        "minimum": 1,
        "description": "Positive comment count shown on a Fragrantica list card; omitted when the card UI hides zero."
      },
      "main_accords": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Ordered main accords displayed by Fragrantica."
      },
      "top_notes": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Top-note names in the source pyramid."
      },
      "middle_notes": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Middle-note names in the source pyramid."
      },
      "base_notes": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Base-note names in the source pyramid."
      }
    },
    "required": [
      "url",
      "name"
    ]
  },
  "views": {
    "overview": {
      "title": "Overview",
      "transformation": {
        "fields": [
          "main_image",
          "url",
          "product_id",
          "name",
          "brand",
          "scraped_at"
        ]
      },
      "display": {
        "component": "table",
        "properties": {
          "main_image": {
            "label": "Image",
            "format": "image"
          },
          "url": {
            "label": "Product URL",
            "format": "link"
          },
          "product_id": {
            "label": "Product ID",
            "format": "text"
          },
          "name": {
            "label": "Product name",
            "format": "text"
          },
          "brand": {
            "label": "Brand",
            "format": "text"
          },
          "scraped_at": {
            "label": "Scraped at",
            "format": "datetime"
          }
        }
      }
    }
  }
}
CUSTOM REQUIREMENTS

Need something different?

Tell us the website, fields, and delivery format you need. We’ll reply by email.