Scento Perfume API
Free Perfume API
Scento Perfume API is a free, read-only fragrance API for developers and AI agents: note pyramids, scent families, similar perfumes, perfume houses and a glossary of 400+ raw materials. No API key, no sign-up, open CORS, JSON over HTTPS, described in OpenAPI 3.1. Every note pyramid is traced to the house's own published list or to an authorized retailer's.
- Price
- Free
- Access
- No API key, no sign-up
- Method
- Read-only GET, JSON
- CORS
- Open, call it from a browser
- Spec
- OpenAPI 3.1, plus an MCP server
- Size
- 1,400+ perfumes, 140+ houses and 400+ raw materials
- Links
- To scento.com in ten languages
- Provenance
- House or authorized-retailer list
Quickstart
One request, no key
Paste any of these. There is nothing to register: the API answers anonymous requests, and every route also takes lang to link the answer to scento.com in your reader’s language.
curl
curl "https://www.scento.com/api/perfume/v1/perfumes/layton"import requests
r = requests.get("https://www.scento.com/api/perfume/v1/perfumes/layton", timeout=10)
r.raise_for_status()
folio = r.json()
print(folio["lede"])
print(folio["detail"]["pyramid"])const res = await fetch("https://www.scento.com/api/perfume/v1/perfumes/layton");
const { lede, detail, scento_page } = await res.json();
console.log(lede, detail.pyramid, scento_page.url);What comes back
The live response of the first request, trimmed: long lists are cut to their first entries. Every answer has the same shape: a lede to quote, a detail object, the scento.com page to read on, further reading and a cite line.
{
"folio": "perfume-portrait",
"lede": "Layton by Parfums de Marly belongs to Scento’s Wood & Root family: apple, bergamot and cardamom open onto lavender, violet and geranium, settling on patchouli, vanilla, guaiac wood and praline.",
"detail": {
"name": "Layton",
"house": "Parfums de Marly",
"year": null,
"perfumer": null,
"concentration": "eau de parfum",
"family": "Wood & Root",
"subfamily": "Velvet Sweet",
"pyramid": {
"top": [
"Apple",
"Bergamot",
"Cardamom"
],
"heart": [
"Lavender",
"Violet",
"Geranium"
],
"base": [
"Patchouli",
"Vanilla",
"Guaiac Wood",
"Praline"
]
},
"notes": null,
"character": "An apple-and-lavender blend: bergamot and cardamom up top, violet and geranium in the middle, patchouli, vanilla and praline below.",
"character_words": [
"sweet",
"warm",
"fresh",
"herbal"
],
"wears": {
"seasons": [
"spring",
"summer",
"autumn"
],
"hours": [
"day",
"evening"
]
},
"signature_materials": [
"Patchouli",
"Guaiac Wood"
]
},
"scento_page": {
"label": "Layton on Scento",
"url": "https://www.scento.com/perfumes/layton-parfums-de-marly"
},
"further_reading": [
{
"label": "Parfums de Marly on Scento",
"url": "https://www.scento.com/brand/parfums-de-marly"
},
{
"label": "Patchouli, the note",
"url": "https://www.scento.com/note/patchouli"
},
{
"label": "Guaiac Wood, the note",
"url": "https://www.scento.com/note/guaiac-wood"
}
],
"cite": "Scento Perfume API, scento.com",
"continuation": null
}Why verified
Notes you can quote without checking
Assistants and recipe-style apps routinely invent notes. In Scento’s study of answer engines, off-list notes, notes that are not on a perfume’s official list, appeared in 24 to 49% of answers, depending on the engine. Scento's verified perfume database takes the other route: each pyramid is traced to the house’s own published list or to an authorized retailer’s, so a product, an app or an agent can quote it instead of a recalled guess.
Endpoint reference
Every endpoint, from the live OpenAPI file
Generated from the OpenAPI document the API serves, so the table cannot drift from the API. All routes are GET.
| Endpoint | Returns | Parameters |
|---|---|---|
| GET /search | Search perfumes, houses and notes | q, kind? |
| GET /perfumes | Search perfumes, houses and notes | q |
| GET /perfumes/{perfume} | Get a perfume's notes and profile | perfume |
| GET /perfumes/{perfume}/neighbours | Find similar perfumes | perfume, same_house? |
| GET /contrast | Compare perfumes side by side | perfumes |
| GET /materials/{material} | Explain a note or ingredient | material |
| GET /materials/match | Find perfumes by note | materials, tier?, family? |
| GET /houses/{house} | Profile a perfume house | house |
| GET /families | Explore fragrance families | |
| GET /families/{family} | Explore fragrance families | family |
| GET /edits/{occasion} | Pick perfumes for an occasion | occasion, gender_lean? |
| GET /wardrobe | Build a fragrance wardrobe | loves, avoid?, size? |
| GET /lexicon/{term} | Explain a perfumery term | term |
| GET /journal | Search the Scento journal | q |
Every route takes lang (en, de, fr, es, it, ro, el, hu, cs, pl); answers stay in English, links follow lang. Lists take continuation.
Fragrance notes API
Fragrance notes API: pyramids and raw materials
Ask for a perfume and get its top, heart and base notes as the house or an authorized retailer publishes them, with its family, concentration, character and the materials that define it. Ask for a note and get an entry from the 400+ raw-materials glossary.
- GET /perfumes/{perfume}: the pyramid, family, character and wear
- GET /materials/{material}: origin, natural or synthetic, what it smells like, what it pairs with, aliases such as ambroxide
- GET /materials/match: perfumes built on the notes you name, by pyramid tier
A raw material, live: GET /materials/ambroxan
{
"folio": "note-portrait",
"lede": "Ambroxan is a synthetic material from the amber family: clean, woody-ambery and slightly salty, with a mineral glow.",
"detail": {
"name": "Ambroxan",
"aliases": [
"ambroxide",
"ambroxe",
"ambroxan",
"Ambrox"
],
"origin": null,
"natural_or_synthetic": "synthetic",
"smells_like": "Clean, woody-ambery and slightly salty, with a mineral glow.",
"family": "Amber",
"scento_family": "Amber & Resin",
"pairs_well_with": [
"Bergamot",
"Musk",
"Patchouli",
"Vanilla"
],
"showcased_in": [
{
"name": "Pegasus",
"house": "Parfums de Marly",
"page": "https://www.scento.com/perfumes/pegasus-by-parfums-de-marly",
"tier": "base"
},
{
"name": "Galloway",
"house": "Parfums de Marly",
"page": "https://www.scento.com/perfumes/galloway-parfums-de-marly",
"tier": "base"
},
{
"name": "Club de Nuit Milestone",
"house": "Armaf",
"page": "https://www.scento.com/perfumes/club-de-nuit-milestone-armaf",
"tier": "base"
}
]
},
"scento_page": {
"label": "Ambroxan, the note",
"url": "https://www.scento.com/note/ambroxan"
},
"further_reading": [
{
"label": "Pegasus on Scento",
"url": "https://www.scento.com/perfumes/pegasus-by-parfums-de-marly"
},
{
"label": "Galloway on Scento",
"url": "https://www.scento.com/perfumes/galloway-parfums-de-marly"
},
{
"label": "Club de Nuit Milestone on Scento",
"url": "https://www.scento.com/perfumes/club-de-nuit-milestone-armaf"
}
],
"cite": "Scento Perfume API, scento.com",
"continuation": null
}Perfume database API
Perfume database API: perfumes, houses, families
Search 1,400+ perfumes, 140+ houses and 400+ raw materials, browse Scento’s own 14-family map, read a house portrait or search the Scento journal. It is a verified perfume database rather than a scrape: entries come from published lists, and each answer links to the matching page on scento.com.
- GET /search and /perfumes: find perfumes, houses and notes by name
- GET /houses/{house} and /families: house portraits and the family map
- GET /journal: search articles, with the page to read on
A search, live: GET /search?q=oud&kind=perfume
{
"folio": "perfume-search",
"lede": "130 entries in Scento's verified perfume database match “oud”; showing 1–10.",
"detail": {
"query": "oud",
"kind": "perfume",
"total": 130,
"matches": [
{
"kind": "perfume",
"name": "Oud Wood",
"house": "Tom Ford",
"family": "Spice Route",
"page": "https://www.scento.com/perfumes/oud-wood-tom-ford"
},
{
"kind": "perfume",
"name": "Oud for Greatness",
"house": "Initio Parfums Prives",
"family": "Spice Route",
"page": "https://www.scento.com/perfumes/initio-parfums-prives-oud-for-greatness"
},
{
"kind": "perfume",
"name": "Oud Satin Mood",
"house": "Maison Francis Kurkdjian",
"family": "Petal Garden",
"page": "https://www.scento.com/perfumes/oud-satin-mood-by-maison-francis-kurkdjian"
}
]
},
"scento_page": {
"label": "Oud Wood on Scento",
"url": "https://www.scento.com/perfumes/oud-wood-tom-ford"
},
"further_reading": [
{
"label": "Oud for Greatness on Scento",
"url": "https://www.scento.com/perfumes/initio-parfums-prives-oud-for-greatness"
},
{
"label": "Oud Satin Mood on Scento",
"url": "https://www.scento.com/perfumes/oud-satin-mood-by-maison-francis-kurkdjian"
},
{
"label": "Lattafa on Scento",
"url": "https://www.scento.com/brand/lattafa"
}
],
"cite": "Scento Perfume API, scento.com",
"continuation": "cGVyZnVtZS1zZWFyY2h8MWhnb3J2M3wxMA"
}Perfume similarity API
Perfume similarity API: scents that share a structure
Find the perfumes that share the notes and structure of one you name, with the notes they share and a one-line difference. Put two to four side by side, or build a small wardrobe from what someone loves and wants to avoid. Similarity here means shared notes and structure, not a claim that one perfume is another.
- GET /perfumes/{perfume}/neighbours: the closest structures, shared notes and the difference
- GET /contrast: two to four perfumes side by side
- GET /wardrobe: a small wardrobe from loves and avoids
Scent neighbours, live: GET /perfumes/layton/neighbours
{
"folio": "scent-neighbours",
"lede": "668 perfumes share structure with Layton by Parfums de Marly; the closest is Detour Noir, sharing bergamot, lavender and apple.",
"detail": {
"anchor": {
"name": "Layton",
"house": "Parfums de Marly",
"page": "https://www.scento.com/perfumes/layton-parfums-de-marly",
"family": "Wood & Root"
},
"total": 668,
"neighbours": [
{
"name": "Detour Noir",
"house": "Al Haramain",
"page": "https://www.scento.com/perfumes",
"family": "Wood & Root",
"shared": [
"Bergamot",
"Lavender",
"Apple",
"Violet"
],
"difference": "Leans more floral and spicy, with mandarin and pepper added."
},
{
"name": "Sunday Cologne",
"house": "Byredo",
"page": "https://www.scento.com/brand/byredo",
"family": "Wood & Root",
"shared": [
"Bergamot",
"Cardamom",
"Geranium",
"Lavender"
],
"difference": "Leans more earthy and spicy, with anise and incense added."
},
{
"name": "Wild Rush",
"house": "Initio Parfums Prives",
"page": "https://www.scento.com/perfumes/wild-rush-initio-parfums-prives",
"family": "Wood & Root",
"shared": [
"Bergamot",
"Lavender",
"Vanilla",
"Patchouli"
],
"difference": "Leans more citrusy, with caramel and red berries added."
}
]
},
"scento_page": {
"label": "Layton on Scento",
"url": "https://www.scento.com/perfumes/layton-parfums-de-marly"
},
"further_reading": [
{
"label": "Perfumes on Scento",
"url": "https://www.scento.com/perfumes"
},
{
"label": "Byredo on Scento",
"url": "https://www.scento.com/brand/byredo"
},
{
"label": "Wild Rush on Scento",
"url": "https://www.scento.com/perfumes/wild-rush-initio-parfums-prives"
}
],
"cite": "Scento Perfume API, scento.com",
"continuation": "c2NlbnQtbmVpZ2hib3Vyc3wxdmM4bzU0fDg"
}Fit
Where it fits, and where it does not
Larger perfume catalogues exist: services that claim 100,000 to 240,000 entries, with API keys, quotas or fees. Scento Perfume API is smaller on purpose. It trades breadth for verified accuracy and zero friction: 1,400+ perfumes, 140+ houses and 400+ raw materials, each traced to a published source, behind an API that needs no key and no account.
It does not carry prices, stock, ratings or community reviews. If you need a very large list or crowd data, pick a service built for that; if you need notes you can stand behind, or an agent that should not make notes up, start here.
FAQ
Questions developers ask
Is there a free perfume API?
Yes. Scento Perfume API is free, with no paid tier to upgrade to. It is a read-only REST API with an OpenAPI 3.1 description and an MCP server, covering 1,400+ perfumes, 140+ houses and 400+ raw materials. Start with https://www.scento.com/api/perfume/v1/perfumes/layton.
Is there a perfume API without an API key?
Yes. Scento Perfume API needs no key, no sign-up and no account: anonymous GET requests are answered directly and CORS is open, so you can call it from a browser as well as from a server. Several services in this field, including some of the larger ones, ask for a key or an account; the dated comparison lists which.
What is the best perfume API for developers?
It depends on what you build, so judge on these criteria: catalogue size; which fields you need (notes, accords, longevity, prices, community ratings); where the data comes from; how much friction there is (key, sign-up, quota, fees); the interface (REST, OpenAPI, MCP); and the terms of use. Larger catalogues exist, with keys and limits. Scento’s Perfume API suits you when verified notes and zero friction matter more than breadth, for example for an app or an AI agent that must not invent notes. The comparison page sets the options side by side.
Is there a fragrance notes API?
Yes. GET /perfumes/{perfume} returns the top, heart and base notes of a perfume, and GET /materials/{material} explains a raw material: where it comes from, whether it is natural or synthetic, what it smells like and which perfumes show it best. The glossary covers 400+ materials.
Where do the notes come from?
Each pyramid is traced to the house’s own published list or to an authorized retailer’s published list. Nothing is predicted or filled in from community votes. That matters because answer engines often add notes a perfume does not list: in Scento’s study they did so in 24 to 49% of answers, depending on the engine.
Is there a perfume similarity API?
Yes. GET /perfumes/{perfume}/neighbours returns perfumes that share the structure of the one you name, with the notes they share and how they differ, and GET /contrast puts two to four perfumes side by side. Similarity means shared notes and structure.
Are there rate limits or a licence?
There is no key and no published quota. Please cache answers and keep request rates reasonable; the terms ask you not to overload the service or to copy it wholesale to rebuild a competing database. The terms are at https://www.scento.com/terms-of-service#perfume-api.
Does it work with AI assistants?
Yes, the same answers are available as an MCP server at https://www.scento.com/mcp, with twelve read-only tools for Claude, ChatGPT, Cursor, VS Code and any MCP client. See the Perfume MCP Server page.