> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scentxp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fragrance Exploration

## Fragrance discovery

Most users arrive at a fragrance platform without a specific product in mind. They may know they like "something fresh" or "something like the perfume my friend wears" — but they can't articulate it in product catalog terms. Without guidance, they browse aimlessly and leave without buying.

WikiParfum turns this open-ended exploration into a structured, guided experience — helping users move from vague preferences to concrete fragrance options through multiple complementary entry points.

### What you can build

* **Search-as-you-type** interfaces across perfumes, brands, and ingredients
* **Ingredient-driven browsing** — "show me perfumes with oud"
* **Olfactive family navigation** — visual maps and family-based filtering
* **Guided questionnaires** that progressively narrow down fragrance matches

## Search across the catalog

The unified `search` query lets users type freely and get results across perfumes, ingredients, brands, families, and perfumists — ideal for building an omnibox or search bar. Results are scored by relevance and grouped by entity type.

<CodeGroup>
  ```graphql Query theme={null}
  query Search {
    search(q: "dior", lang: "EN", types: [perfumes], limit: 10) {
      totals {
        perfumes
      }
      results {
        perfumes {
          id
          score
        }
      }
    }
  }
  ```

  ```json Response theme={null}
  {
    "data": {
      "search": {
        "totals": {
          "perfumes": 63
        },
        "results": {
          "perfumes": [
            {
              "id": "30369",
              "score": 7.3920350643292885
            },
            {
              "id": "729",
              "score": 7.3920350643292885
            }
          ]
        }
      }
    }
  }
  ```
</CodeGroup>

Search works across all supported languages — pass the appropriate `lang` parameter for localized results. Use `limit_catalog: true` to restrict results to your [Product Feed](/catalog-integration/product-feed).

See [Search](/wikiparfum-api/features/search) for the full query reference, including multi-type search, catalog scoping, and multi-language support.

## Browse by ingredient

One of the most engaging discovery paths. Users who enjoy a particular note — oud, vanilla, bergamot — can explore all perfumes built around it. This bridges the gap between how consumers think about fragrance (in terms of notes and sensations) and how catalogs are structured (by brand and product name).

<CodeGroup>
  ```graphql Query theme={null}
  query PerfumesByIngredient {
    findPerfumeByIngredient(
      ingredientSlug: "vanilla-2"
      lang: "EN"
      page: "0,10"
    ) {
      id
      name
      brand {
        name
      }
      family {
        name
        color
      }
      ingredients {
        name
        proportion
        hero
      }
    }
  }
  ```

  ```json Response theme={null}
  {
    "data": {
      "findPerfumeByIngredient": [
        {
          "id": "24092",
          "name": "VANILLA MILK",
          "brand": {
            "name": "Ellis Brooklyn"
          },
          "family": {
            "name": "AMBERY (ORIENTAL)",
            "color": "#B41F24"
          },
          "ingredients": [
            {
              "name": "Amyris",
              "proportion": null,
              "hero": 0
            },
            {
              "name": "Benzoin",
              "proportion": null,
              "hero": 0
            }
          ]
        },
        {
          "id": "22993",
          "name": "INFUSION DE VANILLE",
          "brand": {
            "name": "Prada"
          },
          "family": {
            "name": "AMBERY (ORIENTAL)",
            "color": "#B41F24"
          },
          "ingredients": [
            {
              "name": "Angelica",
              "proportion": null,
              "hero": 0
            },
            {
              "name": "Bergamot",
              "proportion": null,
              "hero": 0
            }
          ]
        }
      ]
    }
  }
  ```
</CodeGroup>

You can also require multiple ingredients simultaneously — for example, finding perfumes that feature both rose and oud:

<CodeGroup>
  ```graphql Query theme={null}
  query PerfumesWithMultipleIngredients {
    findPerfumeByIngredient(
      ingredient: "42,87"
      lang: "EN"
      and: true
      page: "0,10"
    ) {
      id
      name
    }
  }
  ```

  ```json Response theme={null}
  {
    "data": {
      "findPerfumeByIngredient": []
    }
  }
  ```
</CodeGroup>

### Price-based filtering

If your catalog includes product prices, you can narrow ingredient-based results by price range and sort by price.

<CodeGroup>
  ```graphql Query theme={null}
  query IngredientPerfumesByPrice {
    findPerfumeByIngredient(
      ingredientSlug: "vanilla-2"
      lang: "EN"
      page: "0,10"
      order_by: "customerPrice-desc"
      filters: {
        customerPriceRange: "20,80"
      }
    ) {
      id
      name
      brand {
        name
      }
    }
  }
  ```
</CodeGroup>

<Note>
  Requires the `price` column in your [Product Feed](/catalog-integration/feed-format). See [Filtering & Pagination](/wikiparfum-api/features/filtering) for all available filter and sort options.
</Note>

## Navigate by olfactive family

Families — Floral, Woody, Ambery, Citrus, and their subfamilies — are the top-level taxonomy of fragrance. They provide a natural browsing structure for users who think in terms of scent character rather than specific products. See [Olfactive Classification](/wikiparfum-api/guides/olfactive-classification) for the full classification guide.

<CodeGroup>
  ```graphql Query theme={null}
  query PrimaryFamilies {
    findFamilies(search: { lang: "EN", isPrimary: true }) {
      id
      name
      slug
      color
      description
      image {
        urls {
          low
          mid
        }
      }
    }
  }
  ```

  ```json Response theme={null}
  {
    "data": {
      "findFamilies": [
        {
          "id": "1",
          "name": "CITRUS",
          "slug": "citrus",
          "color": "#FFD33F",
          "description": "The citrus ingredients, also named hesperidian, cover natural essential oils obtained by expression of the rind of citrus fruits, but also plants or reconstitution accords that offers a sparkling freshness, energetic and tangy.",
          "image": {
            "urls": {
              "low": "https://api-assets.wikiparfum.com/_resized/ef43511fad5caeef8f15b58fbbfc9675f7568109-w100-q85.jpg",
              "mid": "https://api-assets.wikiparfum.com/_resized/ef43511fad5caeef8f15b58fbbfc9675f7568109-w500-q85.jpg"
            }
          }
        },
        {
          "id": "5",
          "name": "AROMATIC FOUGERE",
          "slug": "aromatic-fougere",
          "color": "#01918D",
          "description": "The aromatic ingredients, part of what we call the 'Fougère' fragrances, in the perfumistic jargon, gather a lot of different aromatic plants such as basil, sage, rosemary, thyme, transmitting an energetic and clean sexiness.",
          "image": {
            "urls": {
              "low": "https://api-assets.wikiparfum.com/_resized/623d401ea7f016dc0d0eb105c93f5efe02f8ce30-w100-q85.jpg",
              "mid": "https://api-assets.wikiparfum.com/_resized/623d401ea7f016dc0d0eb105c93f5efe02f8ce30-w500-q85.jpg"
            }
          }
        }
      ]
    }
  }
  ```
</CodeGroup>

Each family includes a color and imagery, making it easy to build visual navigation grids. See [Families](/wikiparfum-api/features/families) for the full entity reference.

## Guided discovery

The `discoverPerfumes` query powers step-by-step questionnaire flows. Users answer a series of preference questions and receive a curated set of matching perfumes — no fragrance knowledge required. This is the technology behind the **Fragrance Profiler** product.

```graphql theme={null}
query GuidedDiscovery {
  discoverPerfumes(
    questions: [
      { id: "gender", value: 1 }
      { id: "family", value: 3 }
    ]
    lang: "EN"
  ) {
    id
    name
    brand {
      name
    }
    family {
      name
    }
  }
}
```

This is particularly effective for onboarding new users or building interactive gift-finder experiences.
