Referencia de la API
Todos los endpoints de la API de PerfumesDupes, sus parámetros y ejemplos de respuesta. La spec OpenAPI completa está disponible en /v1/openapi.json.
Autenticación
Todos los endpoints /v1/ requieren autenticación con el header X-API-Key. Los endpoints marcados como Premium requieren un plan de pago.
curl https://api.perfumesdupes.com/v1/search?note=vanilla \ -H "X-API-Key: sk_live_your_key_here"
Endpoints
- GET/v1/searchBuscar perfumes
- GET/v1/perfume/:idDetalle de perfume
- GET/v1/perfume/:id/clonesClones y alternativasPremium
- GET/v1/similar/:idPerfumes similaresPremium
- GET/v1/brand/:slug/perfumesCatálogo de marcaPremium
- GET/public/rankings/by-note/:noteTop 10 por nota
/v1/searchBusca perfumes por nota olfativa, marca, género o categoría. Devuelve una lista paginada.
Parámetros
Respuesta de ejemplo
{
"results": [
{
"id": "clxyz123",
"name": "Vanilla Diorama",
"slug": "vanilla-diorama",
"brand": { "name": "Dior", "slug": "dior" },
"year": 2023,
"gender": "unisex",
"accords": ["vanilla", "woody", "sweet"],
"cloneCount": 14
}
],
"pagination": {
"limit": 20,
"offset": 0,
"total": 142,
"hasMore": true
},
"filters": { "note": "vanilla" }
}Ejemplo con curl
curl "https://api.perfumesdupes.com/v1/search" \ -H "X-API-Key: sk_live_your_key_here"
/v1/perfume/:idDevuelve el perfil completo de un perfume: notas, acordes, rendimiento y precio. El array de clones está disponible en el endpoint /v1/perfume/:id/clones (plan de pago).
Parámetros
Respuesta de ejemplo
{
"id": "clxyz123",
"name": "Baccarat Rouge 540",
"slug": "baccarat-rouge-540",
"brand": { "name": "MFK", "slug": "mfk" },
"year": 2015,
"gender": "unisex",
"concentration": "extrait",
"notes": {
"top": ["safran", "jazmín"],
"heart": ["amberwood", "ambroxan"],
"base": ["cedro", "almizcle"]
},
"accords": ["amberwood", "floral", "amberish"],
"sillage": "strong",
"longevity": "very long",
"priceRange": "luxury",
"cloneCount": 42
}Ejemplo con curl
curl "https://api.perfumesdupes.com/v1/perfume/PERFUME_ID" \ -H "X-API-Key: sk_live_your_key_here"
/v1/perfume/:id/clonesPremiumDevuelve todos los clones, alternativas e inspiraciones de un perfume, ordenados por similarity score.
Parámetros
Respuesta de ejemplo
{
"perfume": { "id": "clxyz123", "name": "Baccarat Rouge 540" },
"equivalences": [
{
"targetName": "Lattafa Bade'e Al Oud Amethyst",
"targetBrand": "Lattafa",
"targetSlug": "badee-al-oud-amethyst",
"similarityScore": 0.94,
"confidence": "HIGH",
"type": "CLONE",
"priceRange": "budget"
}
],
"total": 42
}Ejemplo con curl
curl "https://api.perfumesdupes.com/v1/perfume/PERFUME_ID/clones" \ -H "X-API-Key: sk_live_your_key_here"
/v1/similar/:idPremiumDevuelve los perfumes más similares basado en notas, acordes y relaciones de equivalencia.
Parámetros
Respuesta de ejemplo
{
"results": [
{
"id": "clabc456",
"name": "Amyris Homme",
"brand": { "name": "Maison Margiela" },
"similarityScore": 0.87,
"accords": ["amberwood", "floral"]
}
]
}Ejemplo con curl
curl "https://api.perfumesdupes.com/v1/similar/PERFUME_ID" \ -H "X-API-Key: sk_live_your_key_here"
/v1/brand/:slug/perfumesPremiumLista todos los perfumes de una marca con paginación.
Parámetros
Respuesta de ejemplo
{
"brand": { "name": "Chanel", "slug": "chanel" },
"results": [
{
"id": "cldef789",
"name": "N°5",
"slug": "n5",
"year": 1921,
"gender": "female",
"cloneCount": 87
}
],
"pagination": { "limit": 20, "offset": 0, "total": 38 }
}Ejemplo con curl
curl "https://api.perfumesdupes.com/v1/brand/chanel/perfumes" \ -H "X-API-Key: sk_live_your_key_here"
/public/rankings/by-note/:noteDevuelve los 10 perfumes más clonados que contienen la nota indicada. Sin autenticación. Caché 1 hora.
Parámetros
Respuesta de ejemplo
{
"note": "vanilla",
"results": [
{
"rank": 1,
"id": "clxyz123",
"name": "Baccarat Rouge 540",
"brand": "MFK",
"cloneCount": 42
}
],
"cachedAt": "2025-01-15T10:00:00Z"
}Ejemplo con curl
curl "https://api.perfumesdupes.com/public/rankings/by-note/vanilla"
Códigos de error
Rate limits por plan
¿Listo para empezar?
Obtén tu API key y empieza a consultar datos de perfumes en minutos.