10ML Perfume Finder · voor ontwikkelaars
Parfumaanbevelings-API en API voor vergelijkbare parfums
De parfumaanbevelings-API van 10ML is een set gratis GET-routes zonder API-sleutel. /similar rangschikt parfums op gedeelde noten en accoorden en kan ze bijsturen naar frisser, zoeter of donkerder. /alternatives geeft alternatieven van andere huizen. Keuzes op basis van iemands smaak komen van de tool recommend_perfumes op het MCP-endpoint.
API voor vergelijkbare parfums
https://mcp.10ml.com/api/v1/similarJSON via GET, OpenAPI 3.1. Gratis, geen API-sleutel.
API voor vergelijkbare parfums
GET /api/v1/similar?perfume= neemt de naam van een parfum in de index en geeft de parfums terug die er het dichtst bij liggen. Elk resultaat zegt welke noten en accoorden het deelt en hoe dichtbij het is: „very close” = heel dichtbij, „similar vibe” = vergelijkbare sfeer of „same spirit” = dezelfde geest. Er worden twee van de veertien resultaten getoond, ingekort, van 21 oktober 2026.
curl "https://mcp.10ml.com/api/v1/similar?perfume=Creed+Aventus&limit=2"{
"results": [
{
"perfume": {
"name": "Club de Nuit Intense Man Parfum",
"house": "Armaf",
"family": "Fruity woody"
},
"closeness": "very close",
"shared_notes": ["pineapple", "bergamot", "apple", "black currant", "birch", "jasmine"],
"shared_accords": ["fruity", "woody", "smoky", "fresh"],
"why": "shares pineapple, bergamot, apple, black currant"
},
{
"perfume": {
"name": "Club de Nuit Intense Man EDT",
"house": "Armaf",
"family": "Fruity woody"
},
"closeness": "similar vibe",
"shared_notes": ["pineapple", "bergamot", "apple", "black currant", "birch", "jasmine"],
"shared_accords": ["fruity", "woody", "smoky", "musky"],
"why": "shares pineapple, bergamot, apple, black currant"
}
],
"total": 14,
"source": "10ML Fragrance Index"
}Geef house= mee als een naam dubbelzinnig is, gender= om herenparfums, damesparfums of unisexparfums te houden, other_houses_only=true om het eigen huis van het uitgangsparfum weg te laten, en limit= en cursor= om door de resultaten te bladeren.
Stuur het resultaat bij
steer= verschuift het resultaat in één richting weg van het uitgangsparfum: fresher, sweeter, darker, lighter, longer_lasting of more_projection. De laatste twee vragen een parfum dat in de index staat. De reden bij elk resultaat noemt de richting.
curl "https://mcp.10ml.com/api/v1/similar?perfume=Creed+Aventus&steer=fresher&limit=2"{
"target": {
"name": "Aventus",
"house": "Creed"
},
"results": [
{
"perfume": {
"name": "Club de Nuit Intense Man EDT",
"house": "Armaf",
"gender": "men",
"family": "Fruity woody",
"accords": ["citrus", "fruity", "smoky"]
},
"closeness": "very close",
"shared_notes": ["pineapple", "bergamot", "apple", "black currant", "birch", "jasmine"],
"why": "shares pineapple, bergamot, apple, black currant; fresher than the starting point"
},
{
"perfume": {
"name": "Club de Nuit Intense Man Parfum",
"house": "Armaf",
"gender": "men",
"family": "Fruity woody",
"accords": ["fruity", "smoky", "woody"]
},
"closeness": "very close",
"shared_notes": ["pineapple", "bergamot", "apple", "black currant", "birch", "jasmine"],
"why": "shares pineapple, bergamot, apple, black currant; fresher than the starting point"
}
],
"total": 1989,
"source": "10ML Fragrance Index"
}Vergelijkbare parfums alleen op basis van noten
Geef voor een parfum dat niet in de index staat zijn notes= en accords= mee in plaats van een naam. Het resultaat rangschikt de index op die lijst.
curl "https://mcp.10ml.com/api/v1/similar?notes=vanilla,saffron&limit=2"{
"target": {
"name": "your notes",
"notes": ["vanilla", "saffron"]
},
"results": [
{
"perfume": {
"name": "Vanille & Ambre",
"house": "Berdoues",
"gender": "unisex",
"family": "Vanilla amber",
"accords": ["vanilla", "amber", "sweet"]
},
"closeness": "very close",
"shared_notes": ["vanilla", "saffron"],
"why": "shares vanilla, saffron"
},
{
"perfume": {
"name": "Liquid Brun",
"house": "French Avenue",
"gender": "unisex",
"family": "Gourmand spicy",
"accords": ["warm spicy", "sweet", "vanilla"]
},
"closeness": "very close",
"shared_notes": [],
"why": "a similar overall profile"
}
],
"total": 2612,
"source": "10ML Fragrance Index"
}Alternatieven van andere huizen
GET /api/v1/alternatives?perfume= geeft de alternatieven van de redactie voor een beroemd parfum, altijd van andere huizen, elk met de reden waarom het dichtbij ligt. closeness= houdt alleen „very close” (heel dichtbij), „similar vibe” (vergelijkbare sfeer) of „same spirit” (dezelfde geest) over.
curl "https://mcp.10ml.com/api/v1/alternatives?perfume=Creed+Aventus&limit=2"{
"total": 5,
"original": {
"name": "Creed Aventus",
"id": "creed-aventus-edp"
},
"alternatives": [
{
"name": "Armaf Club de Nuit Intense Man",
"closeness": "very close",
"why": "Pineapple, lemon, birch smoke and musk make it smell similar, a popular alternative at a different weight.",
"id": "armaf-club-de-nuit-intense-man-parfum",
"house": "Armaf",
"source": "editors"
},
{
"name": "Al Haramain L'Aventure",
"closeness": "very close",
"why": "Fruity-smoky opening over woods and musk follows the same blueprint.",
"id": "al-haramain-laventure",
"house": "Al Haramain",
"source": "editors"
}
],
"source": "10ML Fragrance Index"
}Aanbevelingen op basis van iemands smaak
Keuzes op basis van smaak zijn geen REST-route: ze komen van de tool recommend_perfumes van de MCP-server. Die neemt de parfums die iemand mooi of niet mooi vindt, de noten waar diegene van houdt of die diegene vermijdt, en gender, season, occasion, style en familie, en zegt bij elke keuze waarom. Het MCP-endpoint https://mcp.10ml.com/mcp beantwoordt ook een gewone JSON-RPC POST, dus elke code kan het aanroepen. Het antwoord hieronder is de structuredContent van de reactie, ingekort.
curl -X POST https://mcp.10ml.com/mcp \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"recommend_perfumes","arguments":{"likes":["Dior Sauvage"],"avoided_notes":["patchouli"],"season":"summer","limit":2}}}'{
"total": 3916,
"picks": [
{
"perfume": {
"name": "L'Immensité",
"house": "Louis Vuitton",
"gender": "men",
"family": "Aromatic aquatic",
"accords": ["fresh", "aquatic", "amber"],
"key_notes": ["sage", "labdanum", "ambroxan", "amber", "ginger"]
},
"why": "shares bergamot, labdanum, ambroxan with Sauvage Eau de Parfum; suits summer"
},
{
"perfume": {
"name": "Jean Lowe Immortel",
"house": "Maison Alhambra",
"gender": "men",
"family": "Fresh aromatic",
"accords": ["fresh", "aromatic", "woody"],
"key_notes": []
},
"why": "suits summer"
}
],
"taste": {
"liked_perfumes": ["Sauvage Eau de Parfum"],
"liked_notes": [],
"avoided_notes": ["patchouli"]
},
"source": "10ML Fragrance Index"
}Een assistent doet dezelfde aanroep voor je: vraag Claude of ChatGPT „mijn signatuurgeur is Dior Sauvage, wat nu?” zodra je de parfum-MCP-server hebt toegevoegd.
Filter op noten, seizoen en gelegenheid
GET /api/v1/perfumes toont parfums op notes_include, notes_exclude, accords, family, gender, season, occasion en style, en ook op vrije tekst. Het voorbeeld hieronder houdt parfums over die zowel bergamot als ambroxan bevatten.
curl "https://mcp.10ml.com/api/v1/perfumes?notes_include=bergamot,ambroxan&limit=2"{
"total": 90,
"results": [
{
"name": "Imagination",
"house": "Louis Vuitton",
"family": "Citrus woody",
"key_notes": ["ginger", "cinnamon", "amberwood", "ambroxan", "citron"]
},
{
"name": "L'Immensité",
"house": "Louis Vuitton",
"family": "Aromatic aquatic",
"key_notes": ["sage", "labdanum", "ambroxan", "amber", "ginger"]
}
],
"filters": {
"notes_include": "bergamot, ambroxan"
},
"relaxed": false,
"source": "10ML Fragrance Index"
}Welke route voor welke vraag
| De vraag | De aanroep |
|---|---|
| Welke parfums lijken op deze? | GET /api/v1/similar?perfume= |
| Zoals deze, maar frisser, zoeter of donkerder? | GET /api/v1/similar?perfume=&steer= |
| Ik ken alleen de noten. | GET /api/v1/similar?notes= |
| Wat zijn de alternatieven van andere huizen? | GET /api/v1/alternatives?perfume= |
| Parfums met deze noten voor dit seizoen? | GET /api/v1/perfumes?notes_include=&season= |
| Wat past bij wat deze persoon mooi vindt en vermijdt? | MCP tool recommend_perfumes |
De index bevat 6.000+ parfums en 285 noten. De pagina over de parfum-API documenteert elk endpoint, en de gids over het Fragrantica-API-alternatief brengt de andere data in kaart die ontwikkelaars zoeken.
Vragen
Is er een parfumaanbevelings-API?
Ja. De 10ML Fragrance Index API beveelt aan via drie gratis routes: /similar voor parfums zoals een parfum dat je kent, /alternatives voor alternatieven van andere huizen en /perfumes voor filters op noten, seizoen en gelegenheid. Keuzes op basis van de parfums en noten die iemand mooi vindt of vermijdt komen van de tool recommend_perfumes op https://mcp.10ml.com/mcp. Geen API-sleutel.
Is er een API voor de gelijkenis tussen parfums?
Ja: GET https://mcp.10ml.com/api/v1/similar?perfume=Creed+Aventus geeft de dichtstbijzijnde parfums terug, elk met de noten en accoorden die het deelt en hoe dichtbij het is („very close” = heel dichtbij, „similar vibe” = vergelijkbare sfeer, „same spirit” = dezelfde geest). steer= verschuift het resultaat naar fresher, sweeter, darker, lighter, longer_lasting of more_projection.
Hoe wordt gelijkenis gemeten?
Aan de hand van gedeelde noten, accoorden en stijl. Elk resultaat noemt wat het deelt en zegt hoe dichtbij het is. Het is een vergelijking van de parfums zelf, geen beoordeling op basis van reviews.
Kan ik vergelijkbare parfums krijgen voor een parfum dat niet in de index staat?
Ja. Geef de noten en accoorden mee aan /similar in plaats van een naam, bijvoorbeeld notes=vanilla,saffron, en de index wordt op die lijst gerangschikt.
Kan ik via REST aanbevelingen krijgen op basis van de smaak van een gebruiker?
Vandaag niet via een REST-route. De tool recommend_perfumes zit op het MCP-endpoint, dat ook een gewone JSON-RPC POST beantwoordt, zoals het voorbeeld hierboven laat zien. De REST-routes dekken vergelijkbare parfums, alternatieven en filters.
Is het gratis?
Ja. Er is geen API-sleutel, account of aanmelding. Er geldt geen vaste limiet op het aantal verzoeken (zie de voorwaarden), dus cache wat je ophaalt, houd een beleefd tempo aan en laat het ons weten voordat je veel volume afneemt, via contact@10ml.com.