Skip to content

Product Recommendations (Target response time < 200ms)

POST
/functions/getRecommendedProducts
curl --request POST \
--url https://partner-test.revieve.com/api/functions/getRecommendedProducts \
--header 'Content-Type: application/json' \
--header 'X-Parse-Application-Id: <X-Parse-Application-Id>' \
--data '{ "partner_id": "jmlv6b2qtS", "user_id": "example.user.id", "gender_ui": "female", "age_ui": 35, "eyebags_ui": 0.8, "oily_skin_ui": 1, "wrinkles_cv": 0.212, "organic_ui": 1, "price_groups": { "default": { "economy": [ 1, 20 ], "standard": [ 20, 50 ], "highend": [ 50, 400 ] }, "Moisturizer": { "economy": [ 3, 10 ], "standard": [ 10, 20 ], "highend": [ 20, 200 ] } }, "single_brand": 1 }'

Get product recommendations based on user variables.

The request object

Media type application/json
object
partner_id
required

Partner ID

string format: string
Example
jmlv6b2qtS
user_id
required

User ID

string format: string
Example
example.user.id
categories

Categories we are interested in

Array<string>
Example
[
"Moisturizer",
"Cleanser"
]
gender_ui
required

Gender, ‘male’ or ‘female’

string
Example
female
age_ui

Year of birth, eg. 1983

number format: int
lat

User latitude (setting this will override Revieve’s server side GeoIP)

number format: float
Example
39.40274
lon

User longitude (setting this will override Revieve’s server side GeoIP)

number format: float
Example
-0.40352
city

User’s city (setting this will override Revieve’s server side GeoIP)

string
Example
Catarroja
area

User’s geografical area (setting this will override Revieve’s server side GeoIP)

string
Example
Valencia
country

User’s country (setting this will override Revieve’s server side GeoIP)

string
Example
Spain
wrinkles_ui

How prominent wrinkles user has in their opinion between 0.0 - 1.0.

number format: float
eyebags_ui

How prominent eyebags user has in their opinion between 0.0 - 1.0.

number format: float
dark_spots_ui

How prominent dark spots user has in their opinion between 0.0 - 1.0.

number format: float
dark_circle_cv

How prominent dark circles user has in computer visions opinion between 0.0 - 1.0.

number format: float
wrinkles_cv

How prominent wrinkles user has in computer visions opinion between 0.0 - 1.0.

number format: float
eyebags_cv

How prominent eyebags_cv user has in computer visions opinion between 0.0 - 1.0.

number format: float
redness_cv

How prominent redness user has in computer visions opinion between 0.0 - 1.0.

number format: float
hyperpigmentation_cv

How prominent hyperpigmentation user has in computer visions opinion between 0.0 - 1.0.

number format: float
cuperose_ui

If the user has skin concern “cuperose”, set this to 1

number format: int
rocasea_ui

If the user has skin concern “rocasea”, set this to 1

number format: int
acne_ui

If the user has skin concern “acne”, set this to 1

number format: int
eczema_ui

If the user has skin concern “eczema”, set this to 1

number format: int
hyperpigmentation_ui

If the user has skin concern “hyperpigmentation”, set this to 1

number format: int
oilyness_ui

If the user has skin concern “oilyness”, set this to 1

number format: int
dull_tired_ui

If the user has skin concern “dull and tired skin”, set this to 1

number format: int
psoriasis_ui

If the user has skin concern “psoriasis”, set this to 1

number format: int
sensitive_skin_concern_ui

If the user has skin concern “sensitive skin”, set this to 1

number format: int
normal_skin_ui

If user has skintype “normal”, set to 1. Only set one skintype.

number format: int
dry_skin_ui

If user has skintype “dry skin”, set to 1. Only set one skintype.

number format: int
combination_skin_ui

If user has skintype “combination skin”, set to 1. Only set one skintype.

number format: int
oily_skin_ui

If user has skintype “oily skin”, set to 1. Only set one skintype.

number format: int
sensitive_skin_ui

If user has skintype “sensitive skin”, set to 1. Only set one skintype.

number format: int
organic_ui

If user prefers organic products, set to 1.

number format: int
anti_age_ui

If user prefers anti aging products, set to 1.

number format: int
fragrance_free_ui

If user prefers fragrance free products, set to 1.

number format: int
paraben_free_ui

If user prefers paraben free products, set to 1.

number format: int
sun_protection_ui

If user prefers sun protecting products, set to 1.

number format: int
skin_brightening_ui

If user prefers skin brightening products, set to 1.

number format: int
skin_firming_ui

If user prefers skin firming products, set to 1.

number format: int
vegan_ui

If user prefers vegan products, set to 1.

number format: int
natural_ui

If user prefers natural products, set to 1.

number format: int
allergy_friendly_ui

If user prefers allergy friendly products, set to 1.

number format: int
essential_oil_free_ui

If user prefers essential oil free products, set to 1.

number format: int
preservative_free_ui

If user prefers preservative free products, set to 1.

number format: int
gluten_free_ui

If user prefers gluten free products, set to 1.

number format: int
alcohol_free_ui

If user prefers alcohol free products, set to 1.

number format: int
coconut_free_ui

If user prefers coconut free products, set to 1.

number format: int
sweat_resistant_ui

If user prefers sweat resistant products, set to 1.

number format: int
water_resistant_ui

If user prefers water resistant products, set to 1.

number format: int
dermatologist_tested_ui

If user prefers dermatologist tested products, set to 1.

number format: int
cruelty_free_ui

If user prefers cruelty free products, set to 1.

number format: int
socially_responsible_ui

If user prefers socially responsible products, set to 1.

number format: int
sustainably_sourced_ui

If user prefers sustainably sourced products, set to 1.

number format: int
chemical_free_sun_protection_ui

If user prefers chemical free sun protection products, set to 1.

number format: int
silicone_free_ui

If user prefers silicone free products, set to 1.

number format: int
non_GMO_ui

If user prefers non GMO products, set to 1.

number format: int
required_tags

Array with product tag required in a product to be included in results

Array<string>
Example
[
"cruelty_free_ui",
"natural_ui"
]
price_groups

Price groups where products must be distributed in results.

object
category

Product’s category

object
name

Price group name

Array<number>
Example
{
"application/json": {
"default": {
"economy": [
1,
20
],
"standard": [
20,
50
],
"highend": [
50,
400
]
},
"Moisturizer": {
"economy": [
3,
10
],
"standard": [
10,
20
],
"highend": [
20,
200
]
}
}
}
single_brand

If set to 1, each price group will all be selected from only one brand, that best fits to the query parameters. Currently requires price groups to also be set in the query.

number
brand_excludes

Array of brands to be excluded from the results

Array<string>
Example
[
"Nuxe"
]
brand_includes

Array of brands to be included in the results (no others will be taken into account)

Array<string>
Example
[
"Clinique",
"Biotherm"
]
undertone_cv

User’s undertone in computer visions opinion. Possible values ‘-1’= ‘Cool’, ‘0’= ‘Neutral’, ‘1’= ‘Warm’

number format: int
Example
1
Example
{
"partner_id": "jmlv6b2qtS",
"user_id": "example.user.id",
"gender_ui": "female",
"age_ui": 35,
"eyebags_ui": 0.8,
"oily_skin_ui": 1,
"wrinkles_cv": 0.212,
"organic_ui": 1,
"price_groups": {
"default": {
"economy": [
1,
20
],
"standard": [
20,
50
],
"highend": [
50,
400
]
},
"Moisturizer": {
"economy": [
3,
10
],
"standard": [
10,
20
],
"highend": [
20,
200
]
}
},
"single_brand": 1
}

Product recommendations

Media type application/json
object
result
object
history_id

Unique ID for this query. Save the latest one in your backend for each user, so you can post it to Revieve in the event of product purchase. This makes it possible for us to track recommendation changes per user.

string
variables

Variables used

object
products

Object of products with category as a key

object
Example generated
{
"result": {
"history_id": "example",
"variables": {},
"products": {}
}
}

Unexpected error

Media type application/json
object
code
integer format: int32
message
string
Example generated
{
"code": 1,
"message": "example"
}