API Reference
User Suggestions
/cs/v1/content_creation/suggestionGenerate suggestions for the user based on the provided conversation history
Open interactive API explorer ↗ · Download OpenAPI
Authentication
bearerAuth
Bearer authentication header of the form Bearer <token>, where <token> is an access key.
Example: Authorization: Bearer sk-proj-XXXXXXXXX
Type: bearer
Request body (required)
#application/json
Type:object#userProfile objectrequired
A user profile; this will represent the profile that will receive the generated suggestions.
Type:objectid stringrequiredThe profile's ID (must be the same as the profileId parameter passed to the endpoint).
stringgender stringrequiredGender of the profile owner.
Type:stringAllowed values: "WOMAN", "MAN", "TRANS_MAN", "TRANSMASCULINE", "TRANS_WOMAN", "TRANSFEMININE"
version stringAn arbitrary string compared against the one stored in our profile database; any mismatch will trigger a profile data refresh. For example, you can use the latest update date as the version number.
Type:stringfirstName stringFirst name of the profile owner. You must provide either a first name or a nickname. At least one is required.
Type:stringnickname stringNickname of the profile owner. You must provide either a first name or a nickname. At least one is required.
Type:stringbirthdate stringBirthdate of the profile owner, formatted as yyyy-MM-dd.
stringformat: "yyyy-MM-dd"countryCode stringCountry code of the profile owner. Must be a two-letter ISO 3166-1 alpha-2 code.
Type:stringminLength: 2 maxLength: 2city stringCity of the profile owner. You must provide a country code for this parameter to be used by our system. If no country code is provided, the city will be ignored.
Type:stringminLength: 0 maxLength: 64postalCode stringPostal code of the profile owner. You must provide a country code for this parameter to be used by our system. If no country code is provided, the postal code will be ignored.
Type:stringminLength: 0 maxLength: 64#features object
Features of the profile.
Type:objectethnicity stringThe ethnicity of the profile. Default is null.
stringAllowed values: "ASIAN", "BLACK", "CAUCASIAN", "MIDDLE_EAST", "HISPANIC_LATINO", "INDIAN", "MEDITERRANEAN", "OTHER", "UNCERTAIN"
height integerHeight in metric by default (cm). Set unitSystem to IMPERIAL for inches.
integerformat: "int32"weight integerWeight in metric by default (kg). Set unitSystem to IMPERIAL for pounds.
integerformat: "int32"eyesColor stringThe color of the eyes. Default is null.
stringAllowed values: "BLACK", "BLUE_GREY", "BLUE", "BROWN", "GREEN_BLUE", "GREEN", "GREY", "OTHER", "UNKNOWN"
hairColor stringThe color of the hair. Default is null.
stringAllowed values: "BLACK", "BLOND", "BROWN", "DARK_BLOND", "GREY", "RED", "WHITE", "OTHER", "UNKNOWN"
hairLength stringThe length of the hair. Default is null.
stringAllowed values: "AVERAGE", "BALD", "HALF_LONG", "LONG", "SHORT", "VERY_LONG", "VERY_SHORT"
maritalStatus stringThe marital status of the profile. Default is null.
stringAllowed values: "SINGLE", "SEPARATED", "IN_RELATIONSHIP", "MARRIED", "DIVORCED", "WIDOW"
working booleanExplicitly controls whether the profile is currently working. When set, this takes precedence over inferring the working status from the presence of the job attribute. Defaults to null, in which case the working status is determined by whether job is set.
booleandefault: null#interests array
The interests of the profile. Default is an empty array.
Type:array#Array items
Type:stringAllowed values: "TAILORING", "BOOK_READING", "TRAVELING", "COOKING", "GARDENING", "PHOTOGRAPHY", "PAINTING", "MUSIC", "MOVIES", "CYCLING", "HIKING", "FITNESS", "GAMING", "DANCING", "YOGA", "SOFTWARE_DEVELOPMENT", "DIY_PROJECTS", "WRITING", "LANGUAGES", "ASTRONOMY", "VOLUNTEERING", "FISHING", "BIRD_WATCHING", "SPORTS", "EDUCATION", "ECONOMY", "FOOD_DRINKING", "CULINARY", "TECHNOLOGY", "MEDICAL", "NATURE", "CULTURE", "ART"
#bdsmInterests array
The BDSM interests of the profile. Default is an empty array.
Type:array#Array items
Type:stringAllowed values: "BDSM_BLOOD_PLAY", "BDSM_BONDAGE", "BDSM_BREATH_PLAY", "BDSM_BUTTOCKS", "BDSM_DOMINATION", "BDSM_EDGE_PLAY", "BDSM_FIRE_PLAY", "BDSM_FISTING", "BDSM_FLOGGING", "BDSM_GOLDEN_SHOWER", "BDSM_HARD", "BDSM_KINKSTER", "BDSM_KNIFE_PLAY", "BDSM_MASOCHIST", "BDSM_NEEDLE_PLAY", "BDSM_ORGASM_DENIAL", "BDSM_PET_PLAY", "BDSM_QUEENING_FACESITTING", "BDSM_SADISM", "BDSM_SOFT", "BDSM_STRAP_ON_DILDO", "BDSM_SUBMISSION", "BDSM_SUSPENSION", "BDSM_ZENTAI"
#sexualInterests array
The sexual interests of the profile. Default is an empty array.
Type:array#Array items
Type:stringAllowed values: "ANAL", "VAGINAL", "ORAL_GIVING", "ORAL_RECEIVING", "KISSING", "CUDDLING", "DOMINANCE", "SUBMISSION", "BDSM", "ROLEPLAY", "PUBLIC_SEX", "GROUP_SEX", "SWINGING", "WATCHING", "BEING_WATCHED", "THREESOME", "FOREPLAY", "DIRTY_TALK", "SENSUAL_MASSAGE", "TOYS", "LIGHT_BONDAGE", "SPANKING", "CHOKING", "FEET", "EXHIBITIONISM", "VOYEURISM"
sexualOrientation stringThe sexual orientation of the profile. Default is null.
stringAllowed values: "HETEROSEXUAL", "GAY", "LESBIAN", "BISEXUAL", "ASEXUAL", "DEMISEXUAL", "PANSEXUAL", "QUEER", "QUESTIONING", "AROMANTIC", "OMNISEXUAL", "OTHER"
childrenCount integerThe number of children the profile has. Default is null.
integerformat: "int32"wantsChildren stringThe preference for having children. Default is null.
stringAllowed values: "YES", "NO", "MAYBE"
surgeryStatus stringFor Transgender profile only. The surgery status of the profile. Default is null.
stringAllowed values: "UNKNOWN", "PRE_OP", "POST_OP", "NON_OP", "PREFER_NOT_TO_SAY"
unitSystem stringThe unit system used for the profile. Default is METRIC.
stringdefault: "METRIC"Allowed values: "IMPERIAL", "METRIC"
livingWith stringDescribes the user's current living situation. Default is null if unspecified.
stringAllowed values: "ALONE", "KIDS", "PARENTS", "ROOMMATE", "PARTNER", "PARTNER_AND_KIDS"
education stringThe education level of the profile. Default is null.
stringAllowed values: "NO_EDUCATION", "PRIMARY_EDUCATION", "HIGH_SCHOOL_DIPLOMA", "ASSOCIATES_DEGREE", "BACHELORS_DEGREE", "MASTERS_DEGREE", "DOCTORATE"
religion stringThe religion of the profile. Default is null.
stringAllowed values: "NO_RELIGION", "AGNOSTIC", "CHRISTIAN", "CATHOLIC", "PROTESTANT", "MUSLIM", "JEWISH", "HINDU", "BUDDHIST", "SPIRITUAL", "OTHER"
smoking stringThe smoking habits of the profile. Default is null.
stringAllowed values: "NEVER", "OCCASIONALLY", "REGULARLY", "TRYING_TO_QUIT", "VAPING"
bodyShape stringThe body shape of the profile. Default is null.
stringAllowed values: "SLIM", "ATHLETIC", "AVERAGE", "FEW_EXTRA_POUNDS", "CURVY", "FULL_PLUS_SIZE", "MUSCULAR"
personality stringPersonality of the profile.
Type:stringAllowed values: "SUPPORTIVE", "TEASING", "CONFIDENT", "GEEKY", "POETIC", "HIGH_ENERGY", "INTELLECTUAL", "ROMANTIC", "SARCASTIC", "POSSESSIVE", "NATURAL", "APPRECIATIVE", "PASSIONATE"
#pictures array
List of public picture URLs. All URLs must be HTTPS
Type:array#Array items
Type:string#privatePictures array
List of private picture URLs. All URLs must be HTTPS
Type:array#Array items
Type:stringexpiresAt stringAn ISO-8601 formatted date. By default, set to one week after profile creation. Purges profile data when reached; fresh data is fetched on next use. Avoid setting durations shorter than 24 hours. Use the version parameter for user profile updates.
Type:stringformat: "date-time"#personaProfile objectrequired
A persona profile; this will represent the profile that supposed to receive the suggestions
Type:objectid stringrequiredThe profile's ID (must be the same as the profileId parameter passed to the endpoint).
stringgender stringrequiredGender of the profile owner.
Type:stringAllowed values: "WOMAN", "MAN", "TRANS_MAN", "TRANSMASCULINE", "TRANS_WOMAN", "TRANSFEMININE"
version stringAn arbitrary string compared against the one stored in our profile database; any mismatch will trigger a profile data refresh. For example, you can use the latest update date as the version number.
Type:stringfirstName stringFirst name of the profile owner. You must provide either a first name or a nickname. At least one is required.
Type:stringnickname stringNickname of the profile owner. You must provide either a first name or a nickname. At least one is required.
Type:stringbirthdate stringBirthdate of the profile owner, formatted as yyyy-MM-dd.
stringformat: "yyyy-MM-dd"countryCode stringCountry code of the profile owner. Must be a two-letter ISO 3166-1 alpha-2 code.
Type:stringminLength: 2 maxLength: 2city stringCity of the profile owner. You must provide a country code for this parameter to be used by our system. If no country code is provided, the city will be ignored.
Type:stringminLength: 0 maxLength: 64postalCode stringPostal code of the profile owner. You must provide a country code for this parameter to be used by our system. If no country code is provided, the postal code will be ignored.
Type:stringminLength: 0 maxLength: 64#features object
Features of the profile.
Type:objectethnicity stringThe ethnicity of the profile. Default is null.
stringAllowed values: "ASIAN", "BLACK", "CAUCASIAN", "MIDDLE_EAST", "HISPANIC_LATINO", "INDIAN", "MEDITERRANEAN", "OTHER", "UNCERTAIN"
height integerHeight in metric by default (cm). Set unitSystem to IMPERIAL for inches.
integerformat: "int32"weight integerWeight in metric by default (kg). Set unitSystem to IMPERIAL for pounds.
integerformat: "int32"eyesColor stringThe color of the eyes. Default is null.
stringAllowed values: "BLACK", "BLUE_GREY", "BLUE", "BROWN", "GREEN_BLUE", "GREEN", "GREY", "OTHER", "UNKNOWN"
hairColor stringThe color of the hair. Default is null.
stringAllowed values: "BLACK", "BLOND", "BROWN", "DARK_BLOND", "GREY", "RED", "WHITE", "OTHER", "UNKNOWN"
hairLength stringThe length of the hair. Default is null.
stringAllowed values: "AVERAGE", "BALD", "HALF_LONG", "LONG", "SHORT", "VERY_LONG", "VERY_SHORT"
maritalStatus stringThe marital status of the profile. Default is null.
stringAllowed values: "SINGLE", "SEPARATED", "IN_RELATIONSHIP", "MARRIED", "DIVORCED", "WIDOW"
working booleanExplicitly controls whether the profile is currently working. When set, this takes precedence over inferring the working status from the presence of the job attribute. Defaults to null, in which case the working status is determined by whether job is set.
booleandefault: null#interests array
The interests of the profile. Default is an empty array.
Type:array#Array items
Type:stringAllowed values: "TAILORING", "BOOK_READING", "TRAVELING", "COOKING", "GARDENING", "PHOTOGRAPHY", "PAINTING", "MUSIC", "MOVIES", "CYCLING", "HIKING", "FITNESS", "GAMING", "DANCING", "YOGA", "SOFTWARE_DEVELOPMENT", "DIY_PROJECTS", "WRITING", "LANGUAGES", "ASTRONOMY", "VOLUNTEERING", "FISHING", "BIRD_WATCHING", "SPORTS", "EDUCATION", "ECONOMY", "FOOD_DRINKING", "CULINARY", "TECHNOLOGY", "MEDICAL", "NATURE", "CULTURE", "ART"
#bdsmInterests array
The BDSM interests of the profile. Default is an empty array.
Type:array#Array items
Type:stringAllowed values: "BDSM_BLOOD_PLAY", "BDSM_BONDAGE", "BDSM_BREATH_PLAY", "BDSM_BUTTOCKS", "BDSM_DOMINATION", "BDSM_EDGE_PLAY", "BDSM_FIRE_PLAY", "BDSM_FISTING", "BDSM_FLOGGING", "BDSM_GOLDEN_SHOWER", "BDSM_HARD", "BDSM_KINKSTER", "BDSM_KNIFE_PLAY", "BDSM_MASOCHIST", "BDSM_NEEDLE_PLAY", "BDSM_ORGASM_DENIAL", "BDSM_PET_PLAY", "BDSM_QUEENING_FACESITTING", "BDSM_SADISM", "BDSM_SOFT", "BDSM_STRAP_ON_DILDO", "BDSM_SUBMISSION", "BDSM_SUSPENSION", "BDSM_ZENTAI"
#sexualInterests array
The sexual interests of the profile. Default is an empty array.
Type:array#Array items
Type:stringAllowed values: "ANAL", "VAGINAL", "ORAL_GIVING", "ORAL_RECEIVING", "KISSING", "CUDDLING", "DOMINANCE", "SUBMISSION", "BDSM", "ROLEPLAY", "PUBLIC_SEX", "GROUP_SEX", "SWINGING", "WATCHING", "BEING_WATCHED", "THREESOME", "FOREPLAY", "DIRTY_TALK", "SENSUAL_MASSAGE", "TOYS", "LIGHT_BONDAGE", "SPANKING", "CHOKING", "FEET", "EXHIBITIONISM", "VOYEURISM"
sexualOrientation stringThe sexual orientation of the profile. Default is null.
stringAllowed values: "HETEROSEXUAL", "GAY", "LESBIAN", "BISEXUAL", "ASEXUAL", "DEMISEXUAL", "PANSEXUAL", "QUEER", "QUESTIONING", "AROMANTIC", "OMNISEXUAL", "OTHER"
childrenCount integerThe number of children the profile has. Default is null.
integerformat: "int32"wantsChildren stringThe preference for having children. Default is null.
stringAllowed values: "YES", "NO", "MAYBE"
surgeryStatus stringFor Transgender profile only. The surgery status of the profile. Default is null.
stringAllowed values: "UNKNOWN", "PRE_OP", "POST_OP", "NON_OP", "PREFER_NOT_TO_SAY"
unitSystem stringThe unit system used for the profile. Default is METRIC.
stringdefault: "METRIC"Allowed values: "IMPERIAL", "METRIC"
livingWith stringDescribes the user's current living situation. Default is null if unspecified.
stringAllowed values: "ALONE", "KIDS", "PARENTS", "ROOMMATE", "PARTNER", "PARTNER_AND_KIDS"
education stringThe education level of the profile. Default is null.
stringAllowed values: "NO_EDUCATION", "PRIMARY_EDUCATION", "HIGH_SCHOOL_DIPLOMA", "ASSOCIATES_DEGREE", "BACHELORS_DEGREE", "MASTERS_DEGREE", "DOCTORATE"
religion stringThe religion of the profile. Default is null.
stringAllowed values: "NO_RELIGION", "AGNOSTIC", "CHRISTIAN", "CATHOLIC", "PROTESTANT", "MUSLIM", "JEWISH", "HINDU", "BUDDHIST", "SPIRITUAL", "OTHER"
smoking stringThe smoking habits of the profile. Default is null.
stringAllowed values: "NEVER", "OCCASIONALLY", "REGULARLY", "TRYING_TO_QUIT", "VAPING"
bodyShape stringThe body shape of the profile. Default is null.
stringAllowed values: "SLIM", "ATHLETIC", "AVERAGE", "FEW_EXTRA_POUNDS", "CURVY", "FULL_PLUS_SIZE", "MUSCULAR"
personality stringPersonality of the profile.
Type:stringAllowed values: "SUPPORTIVE", "TEASING", "CONFIDENT", "GEEKY", "POETIC", "HIGH_ENERGY", "INTELLECTUAL", "ROMANTIC", "SARCASTIC", "POSSESSIVE", "NATURAL", "APPRECIATIVE", "PASSIONATE"
#pictures array
List of public picture URLs. All URLs must be HTTPS
Type:array#Array items
Type:string#privatePictures array
List of private picture URLs. All URLs must be HTTPS
Type:array#Array items
Type:stringexpiresAt stringAn ISO-8601 formatted date. By default, set to one week after profile creation. Purges profile data when reached; fresh data is fetched on next use. Avoid setting durations shorter than 24 hours. Use the version parameter for user profile updates.
Type:stringformat: "date-time"language stringrequiredThe language used to generate the suggestions.
Type:stringAllowed values: "EN", "EN_GB", "FR", "FR_BE", "RO", "NL", "ES", "DE", "DE_CH", "DE_AT", "IT", "ES_LATAM", "BG", "HE", "JA", "NL_BE", "EN_AU", "PT_PT", "PT_BR", "SV_SE", "DA_DK", "FI_FI", "PL_PL", "LT_LT", "NB_NO", "NN_NO", "SL_SI", "HU", "HU_HU", "CS_CZ", "EL_GR", "EL_GR_LATIN", "EL_GR_GREEK", "HR_HR", "TR_TR", "EN_IE", "AF_ZA", "ZU_ZA", "LV_LV", "SK_SK", "GA_IE", "SR_RS", "ET_EE", "EN_CA", "FR_CA", "RU_RU", "UA_UA", "HI_IN", "HI_IN_LATIN"
#messages arrayrequired
A list of message describing the history of the conversation
Type:array#Array items
Type:objectid stringrequiredThe unique identifier of the message. This is used by our system to deduplicate messages.
Type:stringsender stringrequiredThe sender of the message. Possible values are USER and PERSONA.
USERrepresents a user message ;PERSONArepresents a message sent by a persona (the profile for which we are going to generate content).
stringAllowed values: "USER", "PERSONA"
#pictureUrls array
The URL of the image associated with the message. This will be analyzed if the vision is enabled for the current request.
Type:arraypattern: "^https?://.*"#videoUrls array
The URLs of the videos associated with the message. These will be analyzed if the vision is enabled for the current request.
Type:arraypattern: "^https?://.*"#audioUrls array
The URLs of the voice messages the user sent with this message. These will be transcribed and analysed, and the persona replies to what was actually said. Inbound only: the persona does not send voice messages back.
Type:arraypattern: "^https?://.*"audioLevelsDb objectMeasured loudness of each voice message, in dBFS, keyed by its URL. Optional and partial — send what you can measure.
Not required: a level you do not send is measured server-side instead. Sending it saves that round-trip, and is worth doing if measuring is cheap for you — the browser and iOS both give it away while recording.
What it is for: recognising a recording that captured nothing (a muted or unplugged mic) without asking a model, and telling the model how loud the file actually is. A missing level is read as unknown, never as silence.
Type:objectsticker stringA text description of a sticker sent alongside the message. Our chat models will react to it naturally.
Type:stringminLength: 0 maxLength: 160text stringMessage's text content, can be null if the message does not contains text.
stringminLength: 0 maxLength: 512Illustrative example
{
"userProfile": {
"id": "<string>",
"gender": "WOMAN",
"version": "2025-01-01T12:34:20Z",
"firstName": "<string>",
"nickname": "<string>",
"description": "<string>",
"birthdate": "1990-05-14",
"countryCode": "FR",
"city": "<string>",
"postalCode": "<string>",
"timeZone": "Europe/Paris",
"features": {
"ethnicity": "ASIAN",
"height": 0,
"weight": 0,
"eyesColor": "BLACK",
"hairColor": "BLACK",
"hairLength": "AVERAGE",
"maritalStatus": "SINGLE",
"job": "<string>",
"working": null,
"interests": [
"TAILORING"
],
"bdsmInterests": [
"BDSM_BLOOD_PLAY"
],
"sexualInterests": [
"ANAL"
],
"lookingFor": [
"MAN"
],
"sexualOrientation": "HETEROSEXUAL",
"childrenCount": 0,
"wantsChildren": "YES",
"surgeryStatus": "UNKNOWN",
"unitSystem": "METRIC",
"livingWith": "ALONE",
"education": "NO_EDUCATION",
"religion": "NO_RELIGION",
"smoking": "NEVER",
"bodyShape": "SLIM",
"sports": [
"SOCCER"
],
"musicGenres": [
"POP"
]
},
"personality": "SUPPORTIVE",
"mainPictureUrl": "https://example.org/images/public.jpg",
"pictures": [
"https://example.org/images/public.jpg"
],
"privatePictures": [
"https://example.org/images/private.jpg"
],
"expiresAt": "2025-01-01T12:34:20Z",
"children": [
{
"name": "<string>",
"gender": "WOMAN",
"age": 0
}
],
"pets": [
{
"name": "<string>",
"sex": "MALE",
"age": 0,
"breed": "<string>",
"type": "<string>"
}
]
},
"personaProfile": {
"id": "<string>",
"gender": "WOMAN",
"version": "2025-01-01T12:34:20Z",
"firstName": "<string>",
"nickname": "<string>",
"description": "<string>",
"birthdate": "1990-05-14",
"countryCode": "FR",
"city": "<string>",
"postalCode": "<string>",
"timeZone": "Europe/Paris",
"features": {
"ethnicity": "ASIAN",
"height": 0,
"weight": 0,
"eyesColor": "BLACK",
"hairColor": "BLACK",
"hairLength": "AVERAGE",
"maritalStatus": "SINGLE",
"job": "<string>",
"working": null,
"interests": [
"TAILORING"
],
"bdsmInterests": [
"BDSM_BLOOD_PLAY"
],
"sexualInterests": [
"ANAL"
],
"lookingFor": [
"MAN"
],
"sexualOrientation": "HETEROSEXUAL",
"childrenCount": 0,
"wantsChildren": "YES",
"surgeryStatus": "UNKNOWN",
"unitSystem": "METRIC",
"livingWith": "ALONE",
"education": "NO_EDUCATION",
"religion": "NO_RELIGION",
"smoking": "NEVER",
"bodyShape": "SLIM",
"sports": [
"SOCCER"
],
"musicGenres": [
"POP"
]
},
"personality": "SUPPORTIVE",
"mainPictureUrl": "https://example.org/images/public.jpg",
"pictures": [
"https://example.org/images/public.jpg"
],
"privatePictures": [
"https://example.org/images/private.jpg"
],
"expiresAt": "2025-01-01T12:34:20Z",
"children": [
{
"name": "<string>",
"gender": "WOMAN",
"age": 0
}
],
"pets": [
{
"name": "<string>",
"sex": "MALE",
"age": 0,
"breed": "<string>",
"type": "<string>"
}
]
},
"language": "EN",
"messages": [
{
"id": "<string>",
"sender": "USER",
"date": "2023-04-25T10:00:00Z",
"pictureUrls": [
"<string>"
],
"videoUrls": [
"<string>"
],
"audioUrls": [
"<string>"
],
"audioLevelsDb": {},
"poke": false,
"gifts": [
{
"name": "Champagne & Roses",
"tier": "LOW"
}
],
"sticker": "<string>",
"text": "<string>"
}
]
}