Discover/Fragrantica API
live

Fragrantica APIfragrantica.es

Retrieve perfume names, brands, fragrance notes, accords with strength percentages, ratings, and vote counts from Fragrantica Spain pages.

This API takes change requests — .
Endpoint health
verified 4h ago
get_perfume_details
1/1 passing latest checkself-healing
Endpoints
1
Updated
4h ago

What is the Fragrantica API?

The Fragrantica.es API exposes 6 structured response fields per perfume through a single endpoint, get_perfume_details, covering brand, rating, vote count, main accords with relative strength percentages, and fragrance notes organized by pyramid level. Pass any fragrantica.es perfume page URL to retrieve machine-readable data that would otherwise require manual browsing across multiple page sections.

This call costs5 credits / call— charged only on success
Try it
Full URL of a perfume page on fragrantica.es, e.g. https://www.fragrantica.es/perfume/Dior/Sauvage-Eau-de-Toilette-31861.html
api.parse.bot/scraper/342ff16e-4c05-413b-a83e-ce1b08ce816e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/342ff16e-4c05-413b-a83e-ce1b08ce816e/get_perfume_details?perfume_url=https%3A%2F%2Fwww.fragrantica.es%2Fperfume%2FLattafa-Perfumes%2FKhamrah-Qahwa-88175.html' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace fragrantica-es-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Fragrantica ES — fetch perfume details and explore accords & notes."""
from parse_apis.fragrantica_es_api import Fragrantica, PerfumeNotFound

client = Fragrantica()

# Fetch a perfume by its fragrantica.es page URL.
try:
    perfume = client.perfumes.get(
        url="https://www.fragrantica.es/perfume/Lattafa-Perfumes/Khamrah-Qahwa-88175.html"
    )
except PerfumeNotFound:
    print("Perfume page not found")
    raise SystemExit

print(f"{perfume.name} by {perfume.brand}")
print(f"Rating: {perfume.rating}/5 ({perfume.votes} votes)")

# Walk the main accords with their relative strengths.
for accord in perfume.accords:
    print(f"  {accord.name}: {accord.percentage}%")

# Explore the fragrance pyramid: top, heart, and base notes.
print("Top notes:", ", ".join(perfume.notes.top))
print("Heart notes:", ", ".join(perfume.notes.heart))
print("Base notes:", ", ".join(perfume.notes.base))

print("exercised: perfumes.get")
All endpoints · 1 totalmissing one? ·

Retrieve detailed information about a specific perfume from its fragrantica.es page URL. Returns the perfume name, brand, main accords with relative strength percentages, overall rating (out of 5), total vote count, and fragrance notes organized by pyramid level (top/heart/base). One HTTP round-trip per call. When the URL points to a nonexistent perfume, the endpoint returns stale_input with kind input_not_found.

Input
ParamTypeDescription
perfume_urlrequiredstringFull URL of a perfume page on fragrantica.es, e.g. https://www.fragrantica.es/perfume/Dior/Sauvage-Eau-de-Toilette-31861.html
Response
{
  "type": "object",
  "fields": {
    "marca": "Brand / designer name",
    "notas": "Object with three arrays: salida (top notes), corazon (heart notes), base (base notes)",
    "votos": "Total number of user votes (integer), or null if not available",
    "nombre": "Perfume name without the brand suffix",
    "acordes": "Array of main accords, each with nombre (string) and porcentaje (number 0-100 indicating relative strength)",
    "calificacion": "Overall rating out of 5 (float), or null if not available"
  },
  "sample": {
    "data": {
      "marca": "Lattafa Perfumes",
      "notas": {
        "base": [
          "vainilla",
          "café",
          "haba tonka",
          "benjuí",
          "almizcle"
        ],
        "salida": [
          "canela",
          "cardamomo",
          "jengibre"
        ],
        "corazon": [
          "praliné",
          "Frutas confitadas",
          "flores blancas"
        ]
      },
      "votos": 15684,
      "nombre": "Khamrah Qahwa",
      "acordes": [
        {
          "nombre": "cálido especiado",
          "porcentaje": 100
        },
        {
          "nombre": "dulce",
          "porcentaje": 87.5
        },
        {
          "nombre": "avainillado",
          "porcentaje": 81.3
        },
        {
          "nombre": "canela",
          "porcentaje": 64.1
        },
        {
          "nombre": "café",
          "porcentaje": 60.5
        },
        {
          "nombre": "ámbar",
          "porcentaje": 51.8
        },
        {
          "nombre": "atalcado",
          "porcentaje": 44.9
        }
      ],
      "calificacion": 4.34
    },
    "status": "success"
  }
}

About the Fragrantica API

What the API Returns

The get_perfume_details endpoint accepts a single required parameter, perfume_url, which must be a full URL pointing to a perfume page on fragrantica.es (for example, https://www.fragrantica.es/perfume/Lattafa-Perfumes/Khamrah-Qahwa-88175.html). The response includes nombre (perfume name without the brand suffix) and marca (brand or designer name), giving you a clean, split representation of the product identity.

Accords and Ratings

The acordes array lists the main accords attributed to a fragrance, each with a nombre string and a porcentaje value between 0 and 100 representing relative accord strength as shown on the Fragrantica page. The calificacion field returns the community rating as a float out of 5, and votos returns the total number of user votes as an integer. Both fields return null when the data is unavailable for a given perfume.

Fragrance Notes by Pyramid Level

The notas object organizes fragrance notes into three arrays: salida (top notes), corazon (heart notes), and base (base notes). Each array contains the note names as strings. This structure maps directly to the standard fragrance pyramid and makes it straightforward to query, filter, or compare notes across multiple perfumes programmatically.

Reliability & maintenanceVerified

The Fragrantica API is a managed, monitored endpoint for fragrantica.es — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fragrantica.es changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official fragrantica.es API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a fragrance recommendation engine that matches perfumes by shared base or heart notes from the notas field.
  • Aggregate accord profiles across hundreds of perfumes to identify which acordes dominate a particular brand's catalog.
  • Compare community calificacion scores and votos counts to surface highly-rated but underexposed fragrances.
  • Populate a perfume database with structured pyramid note data (salida, corazon, base) for search and filtering.
  • Track accord strength percentages (porcentaje) across a brand's product line to analyze house style trends.
  • Feed structured perfume metadata into a shopping assistant or chatbot that answers questions about note profiles.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Fragrantica offer an official developer API?+
Fragrantica does not publish an official public developer API or documented data access program. There is no API key signup or official endpoint documentation available on fragrantica.es or fragrantica.com as of mid-2025.
What does `acordes` actually contain, and how should I interpret `porcentaje`?+
The acordes array contains one object per main accord listed on the perfume's Fragrantica.es page. Each object has a nombre string (e.g., "amaderado", "especiado") and a porcentaje number from 0 to 100. The percentage reflects relative strength compared to the other accords on that page — it is not a global score and should be interpreted within the context of a single perfume's accord breakdown.
Are user reviews or individual review text available from the endpoint?+
Not currently. The get_perfume_details endpoint returns aggregate data: rating (calificacion), vote count (votos), accords, and notes. Individual review text, reviewer usernames, and review dates are not part of the response. You can fork this API on Parse and revise it to add a reviews endpoint targeting that section of the perfume page.
Does the API cover all fragrantica.es perfume pages, or only certain brands?+
The endpoint accepts any valid perfume_url from fragrantica.es — there is no brand or category restriction built into the API. Coverage depends on whether the target page exists and has the expected data fields populated. Pages for very new or minimally-documented fragrances may return null for calificacion and votos if community data has not accumulated.
Can I retrieve a list of perfumes by brand or search for perfumes by note?+
Not currently. The API takes a direct perfume page URL and returns data for that single perfume. There is no search endpoint or brand-listing endpoint. You can fork this API on Parse and revise it to add an endpoint that accepts a brand name or note keyword and returns matching perfume URLs.
Page content last updated . Spec covers 1 endpoint from fragrantica.es.
Related APIs in Reviews RatingsSee all →
fragrantica.com API
Search and discover perfumes with detailed information including fragrance notes, accords, and ratings, while exploring curated brands and note collections. Browse Fragrantica's comprehensive perfume catalog to find scents based on specific characteristics and community feedback.
fragrantica.it API
Search for perfumes and retrieve detailed information including fragrance notes, accords, olfactory family, perfumer, year of release, and community ratings from Fragrantica.
selfridges.com API
Search and browse Selfridges fragrance products by keyword, category, or brand. Returns detailed product data including fragrance notes, scent tags, pricing, sizing, and product descriptions.
sabon.com.hk API
Browse Sabon Hong Kong's Eau de Sabon perfume collection and view detailed information about fragrance notes and ingredients for each scent. Quickly find and compare perfumes to discover your ideal fragrance profile.
world.openbeautyfacts.org API
Search and discover cosmetic and beauty products by name or ingredient, accessing detailed information like INCI ingredient lists, product categories, and full product specifications. Browse beauty product categories and find exactly what you're looking for with comprehensive data on thousands of cosmetic items.
sa.almajed4oud.com API
Browse and retrieve detailed information about Al Majed Oud's perfume and oud collection, including product listings, categories, and pricing from their Saudi Arabian store. Get comprehensive product details to compare offerings and explore their full catalog of fragrances.
incidecoder.com API
Search cosmetic products and ingredients, get detailed analysis of their safety and composition, and decode ingredient lists to understand what's in your beauty products. Find similar products and explore comprehensive ingredient databases to make informed decisions about the cosmetics you use.
3atir.co API
Browse and discover authentic and rare perfumes from 3atir's Saudi e-commerce store by searching through their product catalog, exploring best sellers, filtering by categories, and discovering available brands. Get detailed access to product information, curated collections, and brand offerings to find your perfect fragrance.