Data Management (Nov 5, 2024, 1:06:06 PM)

Download OpenAPI specification:Download

Welcome to Synerise API Reference! We hope that you'll enjoy your stay here.

If you need help with our services, feel free to contact us at support@synerise.com.

Authentication

JWT

Synerise uses JSON Web Token (JWT) as the authorization method. The token is generated by the auth/login endpoint. You need to include it in the Authorization header of your requests, with a Bearer prefix. See this simplified example of a call:

curl -X GET https://api.synerise.com/v4/clients \
-H 'Accept: application/json' \
-H 'Api-Version: 4.4' \
-H 'Authorization: Bearer eyJhbGciOiJSzZXIiLCJjdGQiOjE1NTI0NjMzMjg4NjIsImF1dGgiOiJINHNJQUFBQUFBQUFBSXVPQlFBcHUwd05BZ0FBQUE9PSIsIm5tZSI' \
-H 'Content-Type: application/json'

Remember to include a space between Bearer and the token.

The token is valid for one hour (unless configured differently). You can request a refreshed key for the session by using the auth/refresh endpoint before the current token expires.

You can verify your JWT signature by using the public key.

Security Scheme Type HTTP
HTTP Authorization Scheme bearer

TrackerKey

Authorization by tracker key sent in a token query parameter. This may be the same key as used in the tracking code of the website. For details, see this article: https://help.synerise.com/developers/web/installation-and-configuration/#creating-a-tracking-code.

Security Scheme Type API Key
Query parameter name: token

Authorization

Methods to authorize and obtain JWT token required by our API endpoints

Log in as User

Authenticate as a User.

Note: To perform operations within a Workspace, you must select a Workspace.

  • This method does not require a Synerise authorization token.
Request Body schema: application/json
username
required
string

The login (email address) of the user

password
required
string

The user's password

deviceId
string

Identifier of user's current device

externalProviderToken
string
externalProviderType
string
Value: "GOOGLE"

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "password": "string",
  • "deviceId": "string",
  • "externalProviderToken": "string",
  • "externalProviderType": "GOOGLE"
}

Response samples

Content type
application/json
{
  • "consumer": {
    },
  • "token": "string"
}

Verify User multi-factor authentication

Authenticate as a User with multi-factor authentication.

Note: To perform operations within a Workspace, you must select a Workspace.


  • API consumer who can use this method: Synerise User

  • This method is available to all authenticated users, before and after multi-factor authentication is confirmed.

Authorizations:
query Parameters
mfaType
required
string
Enum: "TOTP_AUTHENTICATOR" "EMAIL"

Type of multi-factor authentication

Request Body schema: application/json
verificationCode
required
string

Multi-factor verification code

deviceId
string
externalProviderToken
string
externalProviderType
string
Value: "GOOGLE"

Responses

Request samples

Content type
application/json
{
  • "verificationCode": "string",
  • "deviceId": "string",
  • "externalProviderToken": "string",
  • "externalProviderType": "GOOGLE"
}

Response samples

Content type
application/json
{
  • "consumer": {
    },
  • "token": "string"
}

Select Workspace

After logging in as a User, select a Workspace where you want to perform operations.


  • API consumer who can use this method: Synerise User

  • This method is available to all fully-authenticated users (multifactor confirmation required, if enabled).

Authorizations:
path Parameters
businessProfileUUID
required
string <uuid>

UUID of the workspace

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/uauth/auth/login/user/profile/%7BbusinessProfileUUID%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "consumer": {
    },
  • "token": "string"
}

Get Workspaces

Retrieve a list of Workspaces available to the user.


  • API consumer who can use this method: Synerise User

  • This method is available to all fully-authenticated users (multifactor confirmation required, if enabled).

Authorizations:

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/uauth/business-profile/ 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Get current Workspace

Retrieve information about the currently selected workspace.


  • API consumer who can use this method: Synerise User

  • This method is available to all fully-authenticated users (multifactor confirmation required, if enabled).

Authorizations:

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/uauth/business-profile/current 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "selected": true,
  • "data": {
    }
}

Log in as Workspace

Obtain a new Workspace JWT Token.

  • This method does not require a Synerise authorization token.
Request Body schema: application/json
apiKey
required
string

Workspace API key

WARNING: Workspace API keys can be used to access all customer data and manage the workspace. They should only be used for server-to-server communication in integrations. DO NOT use workspace API keys in your mobile applications or websites.

Responses

Request samples

Content type
application/json
{
  • "apiKey": "64c09614-1b2a-42f7-804d-f647243eb1ab"
}

Response samples

Content type
application/json
{
  • "token": "string"
}

Refresh a Profile token

Retrieve a refreshed JWT Token to prolong the session.

The current token must still be active at the time of the request.


  • API consumers who can use this method: Profile (formerly client), Anonymous profile (formerly client)

  • This method does not require a Synerise authorization token.

Authorizations:
Request Body schema: application/json
apiKey
required
string

Profile (formerly "Client") API key

Responses

Request samples

Content type
application/json
{
  • "apiKey": "string"
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "expiration": 1649283173,
  • "created": 1649277173668,
  • "origin": "SYNERISE",
  • "customId": "card123",
  • "realm": "client"
}

Authenticate as Profile

Obtain a new JWT for a Profile. If an account for the Profile does not exist and the identityProvider is different than SYNERISE, this request creates an account.

  • This method does not require a Synerise authorization token.
Request Body schema: application/json
apiKey
required
string

Profile (formerly "Client") API key

identityProvider
required
string
Enum: "SYNERISE" "FACEBOOK" "OAUTH" "APPLE" "GOOGLE" "UNKNOWN"

The identity provider.

identityProviderToken
string

Third-party authentication token used to authenticate with the Identity Provider. Required if identityProvider is different than SYNERISE.

email
string

Profile email. Required if identityProvider is SYNERISE and email is the unique identifier (default setting).

customId
any

Profile customId. Required if identityProvider is SYNERISE and customId is the unique identifier (see https://hub.synerise.com/docs/settings/configuration/non-unique-emails/).

password
string

Profile password. Required if identityProvider is SYNERISE.

uuid
string

Profile UUID. Required if identityProvider is SYNERISE.

deviceId
string

Unique Android or iOS device ID

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "apiKey": "string",
  • "identityProvider": "SYNERISE",
  • "identityProviderToken": "string",
  • "email": "string",
  • "customId": null,
  • "password": "string",
  • "uuid": "string",
  • "deviceId": "string",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJSUzUxMiJ9.eyJzdinvalidwYmZkM2FkNDg2ZjQ3ZGRiMjE5MSIsImF1ZCI6IkFQSSIsInJsbSI6ImFub255bW91c19jbGllbnQiLCJjdGQiOjE1NTMwMDQxNTkxNTEsImVtbCI6IjYyMjM3NmY4LTAwMDAtMjIyMi1kN2Y5LTA3MGZhOTU2ZTk2M0Bhbm9ueW1vdXMuaW52YWxpZCIsImF1dGgiOiJINHNJQUFBQUFBQUFBSXVPQlFBcHUwd05BZ0FBQUE9PSIsImlzcyI6IlN5bmVyaXNlIiwiYnBpIjo0OCwiY2xJZCI6NDMzMjMwMjg4LCJleHAiOjE1NTMwMDcxNTksImFwayI6IjVBRUFBM0Q1LUUxNDctQzdFQi1ENTlFLUJDRjUwMTA5QTNEMSJ9.QOmSqrneR4mJFv4JdxTYsw_wGcDawDsVQuB-GVTcPPwijiP7lQ_Jzqq2Mypg1BS6WFlfGB8fzqCY9iMF_TdtjmoB4xBrY95ylU8L9qto-9Cw5x5TURkfxq31eryiHe2IteRAEtoVzYg2_s9QhlH6ANVcFOVp8dMno0V9bfMYfeSQa3FkjEbxFsseHkMOiADmp9-tOGtLXO942Ir-2W_Hz3Utlpt4erz0dVJBw8a-mFavPA8EEDWR7ACJNocrVHFkS3wFISh3LqLn6KkXiowaynKlJOEHGctuahzKmF3ZOJ1BvGgKohxF9OXvQs9IdmCfWhYsLr5Q2p04TJJ-MyvTipuggKVioh8mHmOFdfnN-Zused6tXzhZtKPUWTmM8cBKoAOBHExxcMQ8SVSjxnw_7_eLKm7S2wNpu0V-tiPZPCH4wYZXtWBYjmfy0V9ydjXnNunXfgxKixLeFNnONUXxEuqPLvM_xAuonQBXVN4nYrgJv8p8U6_ZlGMPjJq1szfcuBZnzI34LSEWx_nSof0XC5Czm8iG_ihG8naivNWS8h-Q-qKMP_3PPFsLSH4Egh03pH93EJUuNAeSO4RGfUX1wzMvrv1nBC1SM660uFMbq-wkplFBbKnHKMYe-qRs1-lZPG5PwPWJJdpGqOUzbnoMOJYmiq06OHHVQyJSkcEHLCk"
}

Authenticate Profile with a server

Obtain a new JWT for a Profile. This method is designed to be used from a backend server that handles login requests and communicates with Synerise to execute them.
If an account for the Profile does not exist and the identityProvider is different than SYNERISE, this request creates an account.


  • API consumer who can use this method: Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: SAUTH_SERVER_LOGIN_CLIENT_CREATE

Request Body schema: application/json
ipAddress
required
string

The IP address of the client device that is logging in.

apiKey
required
string

Profile (formerly "Client") API key

identityProvider
required
string
Enum: "SYNERISE" "FACEBOOK" "OAUTH" "APPLE" "GOOGLE" "UNKNOWN"

The identity provider.

identityProviderToken
string

Third-party authentication token used to authenticate with the Identity Provider. Required if identityProvider is different than SYNERISE.

email
string

Profile email. Required if identityProvider is SYNERISE and email is the unique identifier (default setting).

customId
any

Profile customId. Required if identityProvider is SYNERISE and customId is the unique identifier (see https://hub.synerise.com/docs/settings/configuration/non-unique-emails/).

password
string

Profile password. Required if identityProvider is SYNERISE.

uuid
string

Profile UUID. Required if identityProvider is SYNERISE.

deviceId
string

Unique Android or iOS device ID

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "ipAddress": "string",
  • "apiKey": "string",
  • "identityProvider": "SYNERISE",
  • "identityProviderToken": "string",
  • "email": "string",
  • "customId": null,
  • "password": "string",
  • "uuid": "string",
  • "deviceId": "string",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJSUzUxMiJ9.eyJzdinvalidwYmZkM2FkNDg2ZjQ3ZGRiMjE5MSIsImF1ZCI6IkFQSSIsInJsbSI6ImFub255bW91c19jbGllbnQiLCJjdGQiOjE1NTMwMDQxNTkxNTEsImVtbCI6IjYyMjM3NmY4LTAwMDAtMjIyMi1kN2Y5LTA3MGZhOTU2ZTk2M0Bhbm9ueW1vdXMuaW52YWxpZCIsImF1dGgiOiJINHNJQUFBQUFBQUFBSXVPQlFBcHUwd05BZ0FBQUE9PSIsImlzcyI6IlN5bmVyaXNlIiwiYnBpIjo0OCwiY2xJZCI6NDMzMjMwMjg4LCJleHAiOjE1NTMwMDcxNTksImFwayI6IjVBRUFBM0Q1LUUxNDctQzdFQi1ENTlFLUJDRjUwMTA5QTNEMSJ9.QOmSqrneR4mJFv4JdxTYsw_wGcDawDsVQuB-GVTcPPwijiP7lQ_Jzqq2Mypg1BS6WFlfGB8fzqCY9iMF_TdtjmoB4xBrY95ylU8L9qto-9Cw5x5TURkfxq31eryiHe2IteRAEtoVzYg2_s9QhlH6ANVcFOVp8dMno0V9bfMYfeSQa3FkjEbxFsseHkMOiADmp9-tOGtLXO942Ir-2W_Hz3Utlpt4erz0dVJBw8a-mFavPA8EEDWR7ACJNocrVHFkS3wFISh3LqLn6KkXiowaynKlJOEHGctuahzKmF3ZOJ1BvGgKohxF9OXvQs9IdmCfWhYsLr5Q2p04TJJ-MyvTipuggKVioh8mHmOFdfnN-Zused6tXzhZtKPUWTmM8cBKoAOBHExxcMQ8SVSjxnw_7_eLKm7S2wNpu0V-tiPZPCH4wYZXtWBYjmfy0V9ydjXnNunXfgxKixLeFNnONUXxEuqPLvM_xAuonQBXVN4nYrgJv8p8U6_ZlGMPjJq1szfcuBZnzI34LSEWx_nSof0XC5Czm8iG_ihG8naivNWS8h-Q-qKMP_3PPFsLSH4Egh03pH93EJUuNAeSO4RGfUX1wzMvrv1nBC1SM660uFMbq-wkplFBbKnHKMYe-qRs1-lZPG5PwPWJJdpGqOUzbnoMOJYmiq06OHHVQyJSkcEHLCk"
}

Authenticate as Profile (conditional)

Obtain a new JWT token for a Profile.

  • If the account does not exist, an account is not created.

  • If any additional conditions are required for logging in, the response is HTTP200 and lists the conditions.

  • Note that using this endpoint requires authenticating as an anonymous Profile first.

  • This method does not require a Synerise authorization token.

Authorizations:
Request Body schema: application/json
apiKey
required
string

Profile (formerly "Client") API key

identityProvider
required
string
Enum: "SYNERISE" "FACEBOOK" "OAUTH" "APPLE" "GOOGLE" "UNKNOWN"

The identity provider.

identityProviderToken
string

Third-party authentication token used to authenticate with the Identity Provider. Required if identityProvider is different than SYNERISE.

email
string

Profile email. Required if identityProvider is SYNERISE and email is the unique identifier (default setting).

customId
any

Profile customId. Required if identityProvider is SYNERISE and customId is the unique identifier (see https://hub.synerise.com/docs/settings/configuration/non-unique-emails/).

password
string

Profile password. Required if identityProvider is SYNERISE.

uuid
string

Profile UUID. Required if identityProvider is SYNERISE.

deviceId
string

Unique Android or iOS device ID

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "apiKey": "string",
  • "identityProvider": "SYNERISE",
  • "identityProviderToken": "string",
  • "email": "string",
  • "customId": null,
  • "password": "string",
  • "uuid": "string",
  • "deviceId": "string",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "conditions": [
    ],
  • "status": "SUCCESS",
  • "token": "string",
  • "expiration": 1649283173,
  • "created": 1649277173668,
  • "origin": "SYNERISE",
  • "customId": "card123",
  • "realm": "client"
}

Authenticate anonymously

Obtain a new JWT for an anonymous Profile. The token can be used and refreshed in the same way as tokens of registered Profiles.

  • This method does not require a Synerise authorization token.
Request Body schema: application/json
apiKey
required
string

Profile (formerly "Client") API key

uuid
required
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

deviceId
string

Unique iOS or Android device identifier.

Responses

Request samples

Content type
application/json
{
  • "apiKey": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "deviceId": "string"
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJSUzUxMiJ9.eyJzdinvalidwYmZkM2FkNDg2ZjQ3ZGRiMjE5MSIsImF1ZCI6IkFQSSIsInJsbSI6ImFub255bW91c19jbGllbnQiLCJjdGQiOjE1NTMwMDQxNTkxNTEsImVtbCI6IjYyMjM3NmY4LTAwMDAtMjIyMi1kN2Y5LTA3MGZhOTU2ZTk2M0Bhbm9ueW1vdXMuaW52YWxpZCIsImF1dGgiOiJINHNJQUFBQUFBQUFBSXVPQlFBcHUwd05BZ0FBQUE9PSIsImlzcyI6IlN5bmVyaXNlIiwiYnBpIjo0OCwiY2xJZCI6NDMzMjMwMjg4LCJleHAiOjE1NTMwMDcxNTksImFwayI6IjVBRUFBM0Q1LUUxNDctQzdFQi1ENTlFLUJDRjUwMTA5QTNEMSJ9.QOmSqrneR4mJFv4JdxTYsw_wGcDawDsVQuB-GVTcPPwijiP7lQ_Jzqq2Mypg1BS6WFlfGB8fzqCY9iMF_TdtjmoB4xBrY95ylU8L9qto-9Cw5x5TURkfxq31eryiHe2IteRAEtoVzYg2_s9QhlH6ANVcFOVp8dMno0V9bfMYfeSQa3FkjEbxFsseHkMOiADmp9-tOGtLXO942Ir-2W_Hz3Utlpt4erz0dVJBw8a-mFavPA8EEDWR7ACJNocrVHFkS3wFISh3LqLn6KkXiowaynKlJOEHGctuahzKmF3ZOJ1BvGgKohxF9OXvQs9IdmCfWhYsLr5Q2p04TJJ-MyvTipuggKVioh8mHmOFdfnN-Zused6tXzhZtKPUWTmM8cBKoAOBHExxcMQ8SVSjxnw_7_eLKm7S2wNpu0V-tiPZPCH4wYZXtWBYjmfy0V9ydjXnNunXfgxKixLeFNnONUXxEuqPLvM_xAuonQBXVN4nYrgJv8p8U6_ZlGMPjJq1szfcuBZnzI34LSEWx_nSof0XC5Czm8iG_ihG8naivNWS8h-Q-qKMP_3PPFsLSH4Egh03pH93EJUuNAeSO4RGfUX1wzMvrv1nBC1SM660uFMbq-wkplFBbKnHKMYe-qRs1-lZPG5PwPWJJdpGqOUzbnoMOJYmiq06OHHVQyJSkcEHLCk"
}

Events

Record Profile actions and retrieve them for use within your applications

Create a transaction

Create a transaction record in the database.

For each transaction, a transaction.charge event is generated automatically. In addition, each item in the products array produces a product.buy event.

All monetary values must use the same currency and be greater than or equal to zero. discountAmount must be greater than zero or omitted.


  • API consumer who can use this method: Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_TRANSACTION_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
required
object

You must provide at least one of those profile identifiers.

object or null

How much the total cost decreased

object

Any custom parameters

orderId
required
string

ID of the transaction. If you want to be able to overwrite this transaction in the future, you use eventSalt. If you send a transaction with the same orderId multiple times, the system generates multiple transaction events.

required
object

Payment details

required
Array of objects[ items ]

A list of items in the transaction.

Each item creates a product.buy event. The UUID of that event is generated from a combination of:

  • the UUID of the transaction.charge event created by the transaction
  • the position of the item in this array. This has an effect on updating transaction events.

This means that when you update a transaction (a transaction can only be updated if it has an eventSalt and the same timestamp as the original), you must keep the original order of items in the array. Otherwise, you may accidentally overwrite a product.buy event with another item's event. The system does NOT recognize the item by SKU in this case.

Example:

  1. You create a transaction with items A, B, and C (in that order).
  2. You update the transaction and the items are now A, B, D, and C (in that order).
  3. Because item D took the position of C in the event, it has the same UUID as C had earlier. The event of D overwrites the event of C, and C is generated as a new event.

Additionally, because events can't be deleted from the database, cancelled items remain as events in a Profile's history. You can use a custom free-form property to tag items as cancelled. This way, you can keep cancelled items in products when updating a transaction without breaking the order of items. You can also use the property to filter cancelled items out in Analytics.

recordedAt
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

required
object

Transaction revenue (amount after taxation). This field is not calculated automatically by the backend, you must provide the value by summing up the results of finalUnitPrice * quantity from all items in the products array.

required
object

If you want to display the price before taxation, use this object. If you only want to display the price after taxation, set the values to the same as in revenue.

source
required
string
Enum: "WEB_DESKTOP" "WEB_MOBILE" "MOBILE_APP" "POS" "MOBILE" "DESKTOP"

Source of the event.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.

Responses

Request samples

Content type
application/json
{
  • "client": {
    },
  • "discountAmount": {
    },
  • "metadata": { },
  • "orderId": "be466362-71e9-4bdd-ad11-bfacead5276b",
  • "paymentInfo": {
    },
  • "products": [
    ],
  • "recordedAt": "2019-02-07T09:53:56.999+00:00",
  • "revenue": {
    },
  • "value": {
    },
  • "source": "MOBILE",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00"
}

Response samples

Content type
application/json
{
  • "timestamp": "2020-10-28T12:14:45.364+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "JSON parse error: Missing property: 'currency'; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Missing property: 'currency'\n at [Source: (PushbackInputStream); line: 13, column: 14] (through reference chain: com.synerise.api.endpoint.transactions.domain.model.IdentifiedTransactionData[\"products\"]->java.util.ArrayList[0]->com.synerise.api.endpoint.transactions.domain.model.ProductData[\"finalUnitPrice\"])",
  • "path": "/transactions"
}

Batch add or update transactions

Enqueue a number of add/update operations in the Synerise application database.

For each transaction, a transaction.charge event is generated automatically. In addition, each item in the products array produces a product.buy event.

If you don't have some information about a transaction, don't insert a null-value parameter - omit the parameter entirely. Sending a null value deletes an attribute (if it's a custom attribute) or sets it to null/default value (if the attribute is Synerise-native).

The body contains an array of objects to update. The objects are the same as in the Update transaction and Create transaction endpoints.

All monetary values must use the same currency and be greater than or equal to zero. discountAmount must be greater than zero or omitted.


  • API consumer who can use this method: Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BATCH_TRANSACTION_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json

An array of transactions to post or update

Array
required
object

You must provide at least one of those profile identifiers.

object or null

How much the total cost decreased

object

Any custom parameters

orderId
required
string

ID of the transaction. If you want to be able to overwrite this transaction in the future, you use eventSalt. If you send a transaction with the same orderId multiple times, the system generates multiple transaction events.

required
object

Payment details

required
Array of objects[ items ]

A list of items in the transaction.

Each item creates a product.buy event. The UUID of that event is generated from a combination of:

  • the UUID of the transaction.charge event created by the transaction
  • the position of the item in this array. This has an effect on updating transaction events.

This means that when you update a transaction (a transaction can only be updated if it has an eventSalt and the same timestamp as the original), you must keep the original order of items in the array. Otherwise, you may accidentally overwrite a product.buy event with another item's event. The system does NOT recognize the item by SKU in this case.

Example:

  1. You create a transaction with items A, B, and C (in that order).
  2. You update the transaction and the items are now A, B, D, and C (in that order).
  3. Because item D took the position of C in the event, it has the same UUID as C had earlier. The event of D overwrites the event of C, and C is generated as a new event.

Additionally, because events can't be deleted from the database, cancelled items remain as events in a Profile's history. You can use a custom free-form property to tag items as cancelled. This way, you can keep cancelled items in products when updating a transaction without breaking the order of items. You can also use the property to filter cancelled items out in Analytics.

recordedAt
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

required
object

Transaction revenue (amount after taxation). This field is not calculated automatically by the backend, you must provide the value by summing up the results of finalUnitPrice * quantity from all items in the products array.

required
object

If you want to display the price before taxation, use this object. If you only want to display the price after taxation, set the values to the same as in revenue.

source
required
string
Enum: "WEB_DESKTOP" "WEB_MOBILE" "MOBILE_APP" "POS" "MOBILE" "DESKTOP"

Source of the event.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2020-10-28T12:24:24.444Z",
  • "path": "/transactions",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Get Profile events as Workspace Deprecated

This endpoint is deprecated. Use /activities-api/events/by/{identifierType} instead.

Retrieve a list of events saved in a Profile.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_LISTING_BY_CLIENT_EVENTS_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

query Parameters
time[from]
string <date-time>

Start of the time range to query. UTC time in ISO 8601 (for example, 2020-10-19T13:47:53Z). If no value is provided, the results are returned starting with the oldest entry in the database.

time[to]
string <date-time>

End of the time range to query. UTC time in ISO 8601 (for example, 2020-10-19T13:47:53Z). If no value is provided, the current time applies.

action
string
Example: action=transaction.charge

Filter events by action type. For example, to retrieve completed transactions, enter transaction.charge

limit
integer [ 1 .. 500 ]

The number of events to retrieve

header Parameters
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/v4/events/by-client/%7BclientId%7D?time%5Bfrom%5D=SOME_STRING_VALUE&time%5Bto%5D=SOME_STRING_VALUE&action=transaction.charge&limit=SOME_INTEGER_VALUE' 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

Application started

Send a 'client application started' event.

This endpoint is available from API version 4.1.2.

When you send an event to this endpoint, the action field is set to client.applicationStarted by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_APPLICATION_STARTED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
required
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Profile account registered

Send a 'profile account registered' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to client.register by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_REGISTERED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Profile logged in

Send a 'profile logged in' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to client.login by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_LOGGED_IN_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Profile logged out

Send a 'profile logged out' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to client.logout by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_LOGGED_OUT_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Item added to cart

Send an 'item added to cart' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to product.addToCart by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_ADDED_TO_CART_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
required
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile who generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2018-06-07T09:55:20.563Z",
  • "message": "Some fields did not pass validation",
  • "path": "/events/added-to-cart",
  • "errors": [
    ]
}

Item removed from cart

Send an 'item removed from cart' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to product.removeFromCart by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_REMOVED_FROM_CART_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
required
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile who generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Product added to favorites

Send an 'item added to favorites' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to product.addToFavorite by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_ADDED_TO_FAVORITES_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Item viewed

Send an 'item viewed' event.

When you send an event to this endpoint, the action field is set to product.view by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_PRODUCT_VIEW_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Profile assigned to company

Send a 'profile assigned to company' event.

When you send an event to this endpoint, the action field is set to client.assignToCompany by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User, Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_ASSIGNED_TO_COMPANY_EVENTS_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
required
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Profile logged location

Send an event when a profile submits its location.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to client.location by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_APPEARED_IN_LOCATION_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Push notification received

Record a 'push notification was received' event. It is used for push message interaction tracking.

This endpoint is available from API version 4.1.2.

When you send an event to this endpoint, the action field is set to push.receiveInBackground by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_PUSH_RECIVED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Push notification viewed

Record a 'push notification was viewed' event. It is used for push message interaction tracking.

When you send an event to this endpoint, the action field is set to push.view by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_PUSH_VIEWED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Push notification clicked

Send a 'Push notification was clicked' event. It's used for push message interaction tracking.

When you send an event to this endpoint, the action field is set to push.click by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_PUSH_CLICKED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Push notifications cancelled

Send a 'push notifications cancelled' event. It's used for push message interaction tracking.

When you send an event to this endpoint, the action field is set to push.cancel by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_PUSH_CANCELLED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Transaction cancelled

Send a 'transaction cancelled' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to transaction.cancel by the backend.


  • API consumer who can use this method: Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_CANCELLED_TRANSACTION_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Timer hit

Send a 'timer' event.

Timers are used for analytics. For example, if you send a event when a profiles starts doing something and another one when they finish, you can collect data about average activity time.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to client.hitTimer by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_HIT_TIMER_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Search requested

Send a 'search requested' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to client.search by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_SEARCHED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Content shared

Send a 'content shared' event.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to client.shared by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_SHARED_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Recommendation viewed Deprecated

This endpoint is deprecated. Use the AI Events endpoints instead.

Send a 'recommendation was viewed' event.

When you send an event to this endpoint, the action field is set to recommendation.view by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_RECOMENDATION_SEEN_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile who generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Recommendation clicked Deprecated

Send a 'recommendation clicked' event. This endpoint is deprecated. Use the AI Events endpoints instead.

When you send an event to this endpoint, the action field is set to recommendation.click by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_RECOMMENDATION_CLICK_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile who generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Mobile app screen visited

Send a 'screen in a mobile app was visited' event. This can be used for mobile screen usage tracking.

If you don't have a value for a field, omit that field. Do not send null values.

When you send an event to this endpoint, the action field is set to screen.view by the backend.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_VISITED_SCREEN_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Custom event

Send a custom event.

WARNING: This endpoint doesn't create product.buy events from transaction.charge events! Use Create a transaction or Batch add or update transactions instead.

If you don't have a value for a field, omit that field. Do not send null values.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_CUSTOM_EVENTS_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
action
required
string

For custom events, enter your own action name. For pre-defined events, omit this field.
The action name can be up to 32 characters long and must match the following regular expression (ECMA flavor): ^[a-zA-Z0-9\.\-_]+$

object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00",
  • "action": "context.action",
  • "params": { }
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Batch send events

Send a batch of events as an array of objects. You can send up to a 1000 events and the size of the request can't be more than 1 MB.

WARNING: This endpoint doesn't create product.buy events from transaction.charge events! Use Create a transaction or Batch add or update transactions instead.

If you don't have a value for a field, omit that field. Do not send null values.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BATCH_EVENTS_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json

IMPORTANT: In a request, all events must use the same type of profile identifier. For example, if you want to send some events identified by email and others by customId, you must send them in separate batches.

Array (<= 1000 items)
Any of
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.
type
required
string

The type of event. If custom event, use custom.

If other type, use the value that corresponds to the single event's endpoint.(for example, "content shared" events, which use the /v4/events/shared endpoint when sent as single events, have the type set to shared).

action
required
string

For custom events, enter your own action name. For pre-defined events, omit this field.
The action name can be up to 32 characters long and must match the following regular expression (ECMA flavor): ^[a-zA-Z0-9\.\-_]+$

object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

If you want to send a date/time param for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the params that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Get server time

Get current server time, needed to send events with a correct timestamp.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client)

  • This method does not require a Synerise authorization token.

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/v4/server/time 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z"
}

Recommendation viewed

A recommendation was displayed to a customer.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_RECOMMENDATION_VIEW_EVENT_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
required
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile who generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.

Responses

Request samples

Content type
application/json
{
  • "params": {
    },
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00"
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Search result clicked

An item in a search result was clicked or tapped.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_ITEM_SEARCH_CLICK_EVENT_CREATE

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
required
object

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Aside from the required parameters (if any exist), all events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile who generated the event.
  • Some params are reserved for system use. If you send them in the params object, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId
label
required
string non-empty

This parameter is required, but not saved in the database. It can't be used in Analytics, Automations, and so on.

required
object

You must provide at least one of those profile identifiers.

time
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

eventSalt
string

When an event has an eventSalt, it can be overwritten by sending another event.

eventSalt must be unique in a workspace. An example of creating a salt is by generating a UUID or concatenating the profile ID, event's name, and timestamp, including milliseconds. This creates a value whose possibility of being duplicated is practically zero.

To overwrite an event with another one, the new event MUST:

  • have the same eventSalt as the original event
  • have the same date and time as the original event (If the date and time don't match the original event, event salt doesn't have any effect.)
  • belong to the same clientId as the original event
  • have the same action (event name) as the original event

IMPORTANT:

  • DO NOT send the same eventSalt to different profiles!
  • DO NOT send the same eventSalt with a different action!
  • Pay attention to timezones - more details in the description of the time property (in v4/transactions events, it's called recordedAt).
  • If you send a future time in an event, it is rejected and the current time is assigned automatically. This means it's impossible to use event salt with future times.
  • Overwriting an event by using the event salt doesn't trigger automations.
  • An event without an eventSalt can't be overwritten. The parameter cannot be added to an event at a later time.
  • The parameter can't be retrieved later. You must keep track of the values that you send.

Responses

Request samples

Content type
application/json
{
  • "params": {
    },
  • "label": "Human-readable label",
  • "client": {
    },
  • "time": "2019-02-07T09:53:56.999+00:00",
  • "eventSalt": "972346context.action2019-02-07T09:53:56.999+00:00"
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

AI Events

Event logging for the AI engine

Batch upload AI events

Upload a batch of events to the AI engine. A request can only include events of one type.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BATCH_EVENTS_CREATE

Authorizations:
Request Body schema: application/json
eventType
string
Enum: "item.search.click" "product.search.click" "recommendation.click" "recommendation.view"

A request can only include events of the same type.

Array of item.search.click (object) or recommendation.view (object) or recommendation.click (object) or product.search.click (object)[ items ]

An array of events

Responses

Request samples

Content type
application/json
{
  • "eventType": "item.search.click",
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Item clicked in search

Upload an item.search.click event to the AI engine.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_ITEM_SEARCH_CLICK_EVENT_CREATE

Authorizations:
Request Body schema: application/json
correlationId
required
string

correlationId of the request which this event relates to, for example a recommendation or search request (the parameter is included in the response to that request).

clientUUID
required
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

position
required
integer

Position of the clicked item in the result list (count starts with 1)

searchType
required
string
Enum: "full-text-search" "autocomplete"

Type of the search

item
required
string

itemId (also called sku, productId, and retailer_part_no in other APIs and SDKs) of the item

EventTimestamp
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

property name*
any

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "correlationId": "string",
  • "clientUUID": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "position": 0,
  • "searchType": "full-text-search",
  • "item": "string",
  • "EventTimestamp": "2019-02-07T09:53:56.999+00:00",
  • "property1": null,
  • "property2": null
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Product clicked in search Deprecated

Upload a product.search.click event to the AI engine.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_PRODUCT_SEARCH_CLICK_EVENT_CREATE

Authorizations:
Request Body schema: application/json
correlationId
required
string

correlationId of the request which this event relates to, for example a recommendation or search request (the parameter is included in the response to that request).

clientUUID
required
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

position
required
integer

Position of the clicked item in the result list (count starts with 1)

searchType
required
string
Enum: "full-text-search" "autocomplete"

Type of the search

productId
required
string

itemId (also called sku, productId, and retailer_part_no in other APIs and SDKs) of the item

EventTimestamp
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

property name*
any

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "correlationId": "string",
  • "clientUUID": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "position": 0,
  • "searchType": "full-text-search",
  • "productId": "string",
  • "EventTimestamp": "2019-02-07T09:53:56.999+00:00",
  • "property1": null,
  • "property2": null
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Item clicked in recommendation

Upload a recommendation.click event to the AI engine.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_RECOMMENDATION_CLICK_EVENT_CREATE

Authorizations:
Request Body schema: application/json
correlationId
required
string

correlationId of the request which this event relates to, for example a recommendation or search request (the parameter is included in the response to that request).

clientUUID
required
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

item
required
string

itemId (also called sku, productId, and retailer_part_no in other APIs and SDKs) of the item

campaignId
string

ID of the campaign related to the event

sessionId
string

ID of the user session

EventTimestamp
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

property name*
any

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "correlationId": "string",
  • "clientUUID": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "item": "string",
  • "campaignId": "string",
  • "sessionId": "string",
  • "EventTimestamp": "2019-02-07T09:53:56.999+00:00",
  • "property1": null,
  • "property2": null
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Recommendation viewed

Upload a recommendation.view event to the AI engine.


  • API consumers who can use this method: Workspace (formerly Business Profile), Profile (formerly client), Anonymous profile (formerly client), Web SDK tracker, AI API key (legacy)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_RECOMMENDATION_VIEW_EVENT_CREATE

Authorizations:
Request Body schema: application/json
correlationId
required
string

correlationId of the request which this event relates to, for example a recommendation or search request (the parameter is included in the response to that request).

clientUUID
required
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

items
required
Array of strings >= 0 items

An array of items included in the recommendation. The items are identified by their itemId (also called sku, productId, and retailer_part_no in other APIs and SDKs)

EventTimestamp
string

Time when the event occurred, in ISO 8601.

This time isn't affected and doesn't affect the timezone of your workspace - you can send events with a timezone different than that of the workspace. Synerise calculates the times into UTC standard when saving events in the database.

If not defined, the backend inserts the time of receiving the event.

A time with a "Z" at the end (for example, 2022-10-14T12:02:06Z) denotes a time in the UTC standard.

If you want to send time in a different timezone, you can do this by appending {+|-}hh:mm at the end of the string.

Note that if the timezone is ahead (+) of UTC, the UTC time is calculated by subtraction. When the timezone is behind (-) UTC, the UTC time is calculated by addition.
For example:

  • if your timezone is UTC+1, append +01:00. When you send 2022-10-14T15:00:000+01:00, it is saved in the database as 2022-10-14T14:00:000Z
  • if your timezone is UTC-8, append -08:00. When you send 2022-10-14T22:00:000-08:00, it is saved in the database as 2022-10-15T06:00:000Z (note that the date also changes between timezones in this example)

IMPORTANT: If you send an event with a future time, the parameter is rejected and the time of receiving the event is saved as the occurrence time. For example, if your timezone is UTC+1 and you send the event at 15:00 local time, future times are:

  • later than 15:00 local time
  • later than 14:00 UTC

When you retrieve an event, its time is always shown as UTC. The original time string that you sent (even if it was a future time and was rejected) can be retrieved with the activities endpoints, as snr-original-time.

campaignId
string

ID of the campaign related to the event

property name*
any

Additional parameters. Remember that you can use event enrichment to add the data automatically from a catalog.

Events accept custom, free-form parameters, with the following restrictions:

WARNING:

  • If you want to send the email param, it must be exactly the same as the email of the profile which generated the event.
  • Some params are reserved for system use. If you send them, they are ignored or overwritten with system-assigned values:
    modifiedBy
    apiKey
    eventUUID
    ip
    time
    businessProfileId

Responses

Request samples

Content type
application/json
{
  • "correlationId": "string",
  • "clientUUID": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "items": [
    ],
  • "EventTimestamp": "2019-02-07T09:53:56.999+00:00",
  • "campaignId": "string",
  • "property1": null,
  • "property2": null
}

Response samples

Content type
application/json
{
  • "timestamp": "2018-06-07T07:28:26.078+00:00",
  • "status": 400,
  • "error": "Bad Request",
  • "message": "Version header content is invalid",
  • "path": "/path_of_the_endpoint"
}

Activities

Manage activity descriptions and icons, get Profile activities from all your touchpoints

Get profile's own events

As a profile, retrieve a list of your own events.


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
query Parameters
actions
string
Example: actions=page.visit

A comma-separated list of actions (or a single action) that will be included in the response

dateFrom
number

Lower value of the time range, as a Unix timestamp in milliseconds.

dateTo
number

Upper limit of the time range to fetch, as a Unix timestamp in milliseconds.

limit
number [ 1 .. 1000 ]

The maximum number of events to retrieve

raw
boolean
Default: false

When true, the response returns raw data. If raw data is not available, processed data from event storage (like from "raw": false) is returned instead.

pageToken
string

The token of the page to retrieve. You can check the tokens of the next/previous page in the response to this endpoint. If not provided, the first page is retrieved.

sortBy
string
Default: "time:desc"
Enum: "time:desc" "time:asc"

Sorting order. time:desc (default) returns newest events first.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/activities-api/events?actions=SOME_STRING_VALUE&dateFrom=SOME_NUMBER_VALUE&dateTo=SOME_NUMBER_VALUE&limit=SOME_NUMBER_VALUE&raw=SOME_BOOLEAN_VALUE&pageToken=SOME_STRING_VALUE&sortBy=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "meta": {
    },
  • "data": [
    ]
}

Get a single activity Deprecated

Retrieve the details of a single activity.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
path Parameters
identifierType
required
string
Enum: "id" "uuid" "email" "custom_identify"

Profile identifier type

Request Body schema: application/json
identifierValue
required
string

Value of the selected profile identifier

required
Event storage data request (object) or Raw data request (if not available, data from event storage is returned) (object)

Identification of the event to retrieve

Responses

Request samples

Content type
application/json
{
  • "identifierValue": "string",
  • "additionalData": {
    }
}

Response samples

Content type
application/json
Example
{
  • "action": "page.visit",
  • "eventUUID": "482af443-7f6f-4b80-b4ac-a7db5a2f543a",
  • "unique": 1245924049,
  • "createDate": 1667563770404,
  • "label": "string",
  • "params": {
    }
}

Update icon mapping

Modify an existing icon mapping


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
path Parameters
iconID
required
number

ID of the icon

Request Body schema: application/json

Updated mapping data

action
string

Action name. Can be up to 32 characters long and must match the following regular expression: ^[a-zA-Z0-9\.\-_]+$

icon
string

URL of the icon

Responses

Request samples

Content type
application/json
{
  • "action": "page.visit",
  • "icon": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Get icon mappings

Retrieve a list of existing event-icon mappings


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/activities-api/icons 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Add icon mapping

For each event, you can add a custom icon that's displayed in the Synerise Web Application


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
Request Body schema: application/json

Icon details

action
string

Action name. Can be up to 32 characters long and must match the following regular expression: ^[a-zA-Z0-9\.\-_]+$

icon
string

URL of the icon

Responses

Request samples

Content type
application/json
{
  • "action": "page.visit",
  • "icon": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "businessProfileId": 0,
  • "action": "page.visit",
  • "icon": "string"
}

Get profile events as a workspace/Synerise user

Retrieve a list of events for the single profile.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
path Parameters
identifierType
required
string
Enum: "id" "uuid" "email" "custom_identify"

Profile identifier type

query Parameters
pageToken
string

The token of the page to retrieve. You can check the tokens of the next/previous page in the response to this endpoint. If not provided, the first page is retrieved.

Request Body schema: application/json
identifierValue
required
string

Value of the identifier selected in identifierType

required
object

Pagination, date filters, and other optional parameters

Responses

Request samples

Content type
application/json
{
  • "identifierValue": "string",
  • "additionalData": {
    }
}

Response samples

Content type
application/json
{
  • "meta": {
    },
  • "data": [
    ]
}

Get profile activities Deprecated

Retrieve a list of activities from a single profile.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
path Parameters
clientId
required
number
Example: 434428563

The ID of the profile

query Parameters
dateFrom
number

Lower value of the time range, as a Unix timestamp in milliseconds. Defaults to current time minus 2 hours.

dateTo
number

Upper limit of the time range to fetch, as a Unix timestamp in milliseconds. Defaults to current time.

actions
string
Example: actions=page.visit

A comma-separated list of actions (or a single action) that will be included in the response

limit
number [ 1 .. 1000 ]

The maximum number of events to retrieve

raw
boolean
Default: false

When true, the response returns raw data. If raw data is not available, processed data from event storage (like from "raw": false) is returned instead.

format
string
Default: "json"
Enum: "json" "csv"

The format of the retrieved data

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/activities-api/activities/%7BclientId%7D?dateFrom=SOME_NUMBER_VALUE&dateTo=SOME_NUMBER_VALUE&actions=SOME_STRING_VALUE&limit=SOME_NUMBER_VALUE&raw=SOME_BOOLEAN_VALUE&format=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Get workspace activities Deprecated

Retrieve a list of activities from the workspace.
Only data from the last 6 hours is available, even if the dateFrom parameter points to further in the past.
If you want to retrieve the activities of a single profile, use the Get profile activities method.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
query Parameters
dateFrom
number

Lower value of the time range, as a Unix timestamp in milliseconds. Defaults to current time minus 2 hours.

dateTo
number

Upper limit of the time range to fetch, as a Unix timestamp in milliseconds. Defaults to current time.

limit
number [ 1 .. 1000 ]

The maximum number of events to retrieve

raw
boolean
Default: false

When true, the response returns raw data. If raw data is not available, processed data from event storage (like from "raw": false) is returned instead.

format
string
Default: "json"
Enum: "json" "csv"

The format of the retrieved data

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/activities-api/activities?dateFrom=SOME_NUMBER_VALUE&dateTo=SOME_NUMBER_VALUE&limit=SOME_NUMBER_VALUE&raw=SOME_BOOLEAN_VALUE&format=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Update label mapping

Modify an existing label mapping


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
path Parameters
labelId
required
number

ID of the mapping

Request Body schema: application/json

Updated information

action
string

Action name. Can be up to 32 characters long and must match the following regular expression: ^[a-zA-Z0-9\.\-_]+$

label
string

Event name shown in a Profile card. Can include jinja inserts, which are returned unprocessed. This description is not used when searching for events in Analytics or for Automation trigger purposes.

Responses

Request samples

Content type
application/json
{
  • "action": "page.visit",
  • "label": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "businessProfileId": 0,
  • "action": "page.visit",
  • "label": "string"
}

Get label mappings

Retrieve a list of existing event-label mappings


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/activities-api/labels 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Add label mapping

For each event, you can add a custom, human-readable label that's displayed in the Synerise Web Application


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
Request Body schema: application/json

Details of the label mapping

action
string

Action name. Can be up to 32 characters long and must match the following regular expression: ^[a-zA-Z0-9\.\-_]+$

label
string

Event name shown in a Profile card. Can include jinja inserts, which are returned unprocessed. This description is not used when searching for events in Analytics or for Automation trigger purposes.

Responses

Request samples

Content type
application/json
{
  • "action": "page.visit",
  • "label": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "businessProfileId": 0,
  • "action": "page.visit",
  • "label": "string"
}

Get description mappings

Retrieve a list of existing event-description mappings


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/activities-api/descriptions 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Add description mapping

For each event, you can add a custom, human-readable description that's displayed in the Synerise Web Application


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
Request Body schema: application/json

Details of the description mapping

action
string

Action name. Can be up to 32 characters long and must match the following regular expression: ^[a-zA-Z0-9\.\-_]+$

description
string

Event description shown in a Profile card. Can include jinja inserts, which are returned unprocessed. This description is not used when searching for events in Analytics or for Automation trigger purposes.

Responses

Request samples

Content type
application/json
{
  • "action": "page.visit",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "businessProfileId": 0,
  • "action": "page.visit",
  • "description": "string"
}

Update description mapping

Modify an existing description mapping


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ACTIVITIES_API_ACTIVITIES_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_ACTIVITIES

Authorizations:
path Parameters
descriptionId
required
number

ID of the mapping

Request Body schema: application/json

Updated information

action
string

Action name. Can be up to 32 characters long and must match the following regular expression: ^[a-zA-Z0-9\.\-_]+$

description
string

Event description shown in a Profile card. Can include jinja inserts, which are returned unprocessed. This description is not used when searching for events in Analytics or for Automation trigger purposes.

Responses

Request samples

Content type
application/json
{
  • "action": "page.visit",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "businessProfileId": 0,
  • "action": "page.visit",
  • "description": "string"
}

Schema Builder

Flexible, re-usable data templates

Get all schemas

Retrieve a paginated list of schemas from the current Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_SCHEMA_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
query Parameters
limit
required
number

Number of entries per page

page
required
number

Selected page. The first page has the index 1.

name
string

Searches for a given string in schema names. The search is not case-sensitive.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/boxes-v2/schemas?limit=SOME_NUMBER_VALUE&page=SOME_NUMBER_VALUE&name=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create schema

Create a new schema.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_SCHEMA_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
Request Body schema: application/json

Structure of the schema

schemaName
required
string

Name of the schema

any
required
object

The fields define the data that can be entered into a record.

required
Array of Input field (object) or Columns layout (object) or Table layout (object) (Layout) [ items ]

The graphical layout of the schema. The layouts are displayed according to their order in the array.

tags
Array of strings

Tags assigned to the schema

Responses

Request samples

Content type
application/json
{
  • "schemaName": "firstSchema",
  • "primaryKey": {
    },
  • "fields": {
    },
  • "layout": [
    ],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "businessProfileId": 48,
  • "primaryKey": {
    },
  • "schemaName": "firstSchema",
  • "schemaId": "86403a7d-1120-491a-a789-3d328d91193d",
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "layout": [
    ],
  • "relations": {
    },
  • "tags": [
    ],
  • "permissionStatus": "private"
}

Get schema

Retrieve the details of a single schema.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_SCHEMA_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/boxes-v2/schemas/%7BschemaId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "businessProfileId": 48,
  • "primaryKey": {
    },
  • "schemaName": "firstSchema",
  • "schemaId": "86403a7d-1120-491a-a789-3d328d91193d",
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "layout": [
    ],
  • "relations": {
    },
  • "tags": [
    ],
  • "permissionStatus": "private"
}

Update schema

Update an existing schema.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_SCHEMA_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

Request Body schema: application/json

Structure of the schema

schemaName
required
string

Name of the schema

any
required
object

The fields define the data that can be entered into a record.

required
Array of Input field (object) or Columns layout (object) or Table layout (object) (Layout) [ items ]

The graphical layout of the schema. The layouts are displayed according to their order in the array.

tags
Array of strings

Tags assigned to the schema

Responses

Request samples

Content type
application/json
{
  • "schemaName": "firstSchema",
  • "primaryKey": {
    },
  • "fields": {
    },
  • "layout": [
    ],
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "businessProfileId": 48,
  • "primaryKey": {
    },
  • "schemaName": "firstSchema",
  • "schemaId": "86403a7d-1120-491a-a789-3d328d91193d",
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "layout": [
    ],
  • "relations": {
    },
  • "tags": [
    ],
  • "permissionStatus": "private"
}

Delete schema

Delete a schema. This operation is irreversible.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_SCHEMA_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/boxes-v2/schemas/%7BschemaId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Get all schema projections

Retrieve a paginated list of schema projections (simplified data of schemas) from the current Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_SCHEMA_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
query Parameters
limit
required
number

Number of entries per page

page
required
number

Selected page. The first page has the index 1.

name
string

Searches for a given string in schema names. The search is not case-sensitive.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/boxes-v2/schemas/projections?limit=SOME_NUMBER_VALUE&page=SOME_NUMBER_VALUE&name=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get all predefined schemas

Retrieve a paginated list of predefined schemas.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_PREDEFINED_SCHEMA_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
query Parameters
limit
required
number

Number of entries per page

page
required
number

Selected page. The first page has the index 1.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/boxes-v2/predefined-schemas?limit=SOME_NUMBER_VALUE&page=SOME_NUMBER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get predefined schema

Retrieve the details of a single predefined schema.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_PREDEFINED_SCHEMA_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/boxes-v2/predefined-schemas/%7BschemaId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "businessProfileId": 48,
  • "primaryKey": {
    },
  • "schemaName": "firstSchema",
  • "schemaId": "86403a7d-1120-491a-a789-3d328d91193d",
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "layout": [
    ],
  • "relations": {
    },
  • "tags": [
    ],
  • "permissionStatus": "private"
}

Get all records

Retrieve all records from the schema.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_RECORD_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

query Parameters
limit
required
number

Number of entries per page

page
required
number

Selected page. The first page has the index 1.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/boxes-v2/records/%7BschemaId%7D?limit=SOME_NUMBER_VALUE&page=SOME_NUMBER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create record

Create a new record. A record creates a database entry according to a schema.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_RECORD_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

Request Body schema: application/json

The record to create

required
object

Fields and their values. Each field is an array of value objects (even if the field type requires only a single value).

Responses

Request samples

Content type
application/json
{
  • "fields": {
    }
}

Response samples

Content type
application/json
{
  • "schemaId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "recordId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "businessProfileId": 48,
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "relations": {
    },
  • "permissionStatus": "private"
}

Get record

Retrieve the details of a single record.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_RECORD_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

recordId
required
string <uuid>

UUID of the record

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/boxes-v2/records/%7BschemaId%7D/%7BrecordId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "schemaId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "recordId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "businessProfileId": 48,
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "relations": {
    },
  • "permissionStatus": "private"
}

Update record

Update a record.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_RECORD_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

recordId
required
string <uuid>

UUID of the record

Request Body schema: application/json

Record to update

required
object

Fields and their values. Each field is an array of value objects (even if the field type requires only a single value).

Responses

Request samples

Content type
application/json
{
  • "fields": {
    }
}

Response samples

Content type
application/json
{
  • "schemaId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "recordId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "businessProfileId": 48,
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "relations": {
    },
  • "permissionStatus": "private"
}

Delete record

Delete a record. This operation is irreversible.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_RECORD_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

recordId
required
string <uuid>

UUID of the record

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/boxes-v2/records/%7BschemaId%7D/%7BrecordId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Relative update of record

Relative update allows you to easily change the value in a record without updating the entire record. Currently, only numeric values can be changed.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_RECORD_RELATIVE_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

recordId
required
string <uuid>

UUID of the record

Request Body schema: application/json

Record to be updated

required
object

Responses

Request samples

Content type
application/json
{
  • "actions": {
    }
}

Response samples

Content type
application/json
{
  • "schemaId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "recordId": "10c681d9-5afc-4ea1-ac97-dd1d22c7b045",
  • "businessProfileId": 48,
  • "createdAt": "2020-07-07T09:03:13.390101Z",
  • "createdBy": 1234,
  • "modifiedAt": "2020-07-07T09:03:13.390101Z",
  • "modifiedBy": 1234,
  • "deletedAt": "2020-07-07T09:03:13.390101Z",
  • "deletedBy": 1234,
  • "fields": {
    },
  • "relations": {
    },
  • "permissionStatus": "private"
}

Get documentation list

Get a list of paths to schemas documentations.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_DOCUMENTATION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
query Parameters
limit
required
number

Number of entries per page

page
required
number

Selected page. The first page has the index 1.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/boxes-v2/documentation?limit=SOME_NUMBER_VALUE&page=SOME_NUMBER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get schema documentation

Retrieve an OpenAPIv3 file with documentation for a single schema.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: BOXES_DOCUMENTATION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_SCHEMA_BUILDER

Authorizations:
path Parameters
schemaId
required
string

UUID of the schema

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/boxes-v2/documentation/%7BschemaId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Catalogs

Store items in catalogs

Get all items as CSV file


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

query Parameters
delimiter
string

The delimiter to use in csv. You can use ; or ,. Default: ,

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/csv?delimiter=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "status": 0,
  • "error": "string",
  • "message": "string",
  • "timestamp": "string"
}

Add items from CSV

Upload items to a catalog from a CSV file


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Request Body schema: multipart/form-data
itemKey
required
string

The name of the CSV column that contains unique identifiers

file
required
string <binary>

CSV file

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/items/upload 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'content-type: multipart/form-data'

Response samples

Content type
application/json
true

Get catalogs

Retrieve all catalogs from the Workspace. You can filter and sort the results.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
query Parameters
searchBy
string

A search string. You can search the catalogs by their name or the first or last name of the author.

orderBy
string
Enum: "id" "author" "lastModified" "creationDate"

The parameter to order the results by. Order is always ascending.

offset
integer

The offset for the search. For example, if your limit is 10 and you want to retrieve the third page of items, set the offset to 20. Items with indexes 20 to 29 are returned (the first item on the first page has the index 0).

limit
integer

The maximum number of items to include in the response. offset must be defined.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/catalogs/bags?searchBy=SOME_STRING_VALUE&orderBy=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metaData": {
    }
}

Add catalog

Create a new, empty catalog.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
Request Body schema: application/json
name
string

Catalog name.
IMPORTANT: The catalog name shouldn't contain spaces ( ). A catalog with spaces in the name can't be referenced with Jinjava.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metaData": {
    }
}

Delete catalogs


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
Request Body schema: application/json
Array
string

Catalog ID

Responses

Request samples

Content type
application/json
[
  • 1199,
  • 1200,
  • 1201
]

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metaData": {
    }
}

Get catalog keys

Retrieve the list of keys from a catalog.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/keys 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metaData": {
    }
}

Get catalog info

Retrieve the metadata of a catalog


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metaData": {
    }
}

Delete catalog

Delete a single catalog. This operation is irreversible.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": true,
  • "metaData": {
    }
}

Get items from catalog

Retrieve the entries from a single catalog.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

query Parameters
itemKey
string

Filter by the value of the unique identifier of the item (exact match)

searchBy
string

A search string. The search takes all key values into account.

offset
integer

The offset for the search. For example, if your limit is 10 and you want to retrieve the third page of items, set the offset to 20. Items with indexes 20 to 29 are returned (the first item on the first page has the index 0).

limit
integer

The maximum number of items to include in the response. offset must be defined.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/items?itemKey=SOME_STRING_VALUE&searchBy=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metaData": {
    }
}

Add item

Add a single item to the catalog.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_ITEM_BATCH_CATALOG_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Request Body schema: application/json

JSON object with any number of key/value pairs

itemKey
required
string

The value of the unique key of the item.

IMPORTANT: This value is not visible in the Synerise Portal. If you want it to be visible in the Catalogs UI, you must add it again as a parameter in the value object. If you do this and then download the catalog as CSV, the key will be included twice: in the item_key column (used by the backend to store unique keys) and in another column, as a regular parameter.

required
object

Properties of the item. Can be an empty object.

Responses

Request samples

Content type
application/json
{
  • "itemKey": "1357",
  • "value": {
    }
}

Response samples

Content type
application/json
true

Batch add items

Add a number of items at once.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_ITEM_BATCH_CATALOG_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Request Body schema: application/json

JSON object with any number of key/value pairs

Array
itemKey
required
string

The value of the unique key of the item.

IMPORTANT: This value is not visible in the Synerise Portal. If you want it to be visible in the Catalogs UI, you must add it again as a parameter in the value object. If you do this and then download the catalog as CSV, the key will be included twice: in the item_key column (used by the backend to store unique keys) and in another column, as a regular parameter.

required
object

Properties of the item. Can be an empty object.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
true

Update enrichment fields

Change enrichment fields for given mapping


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_MAPPING_CATALOG_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Request Body schema: application/json
action
string
paramKey
string
enrichmentFields
Array of strings

Responses

Request samples

Content type
application/json
{
  • "action": "string",
  • "paramKey": "string",
  • "enrichmentFields": [
    ]
}

Response samples

Content type
application/json
0

Enable filtering

Enable filtering for a catalog on selected fields


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Request Body schema: application/json
fields
Array of strings

Responses

Request samples

Content type
application/json
{
  • "fields": [
    ]
}

Response samples

Content type
application/json
0

Disable filtering

Disable filtering for a catalog on selected fields


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Responses

Request samples

curl --request PATCH 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/disable/filtering 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
0

Get single item by itemKey

Retrieve a single item from a catalog by using the item key (unique identifier of an item in the catalog, for example a product's SKU) of the entry in the Synerise database.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

itemKey
required
string

itemKey parameter of the item to retrieve

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/items/itemKey/%7BitemKey%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metaData": {
    }
}

Delete single item by itemKey

Delete a single item by itemKey (unique identifier of an item in the catalog, for example a product's SKU).


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

itemKey
required
string

itemKey parameter of the item to delete

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/items/itemKey/%7BitemKey%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": true,
  • "metaData": {
    }
}

Get single item by database ID

Retrieve a single item from a catalog by using the ID of the entry in the Synerise database. If you want retrieve an item by its unique identifier in the catalog, use this endpoint.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

itemId
required
integer

ID of the item. This is the ID of the entry in the Synerise database, not the unique identifier that you're using in your catalog. The itemId is available in the id field of the catalog item when you retrieve items from a catalog:

{
    "creationDate": "2020-09-30T11:31:16.314Z",
    "id": 73753, // this is the itemId
    "itemKey": "uniqueValue",
    "lastModified": null,
    "value": "{\"exampleKey\":\"uniqueValue\",\"exampleKey2\":\"exampleValue\"}",
    "bag": {
        "author": "authorName",
        "creationDate": "2020-09-30T10:52:31.264Z",
        "id": 1053, // this is the ID of the catalog
        "lastModified": "2020-09-30T11:41:11.808Z",
        "name": "sampleCatalog"
    }
},

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/items/%7BitemId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metaData": {
    }
}

Update single item by database ID

Update a single item from a catalog by using the ID of the entry in the Synerise database.

When updating, send all properties of the item, even if you're not changing them. If you omit an existing property, it is removed from the item entirely.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

itemId
required
integer

ID of the item. This is the ID of the entry in the Synerise database, not the unique identifier that you're using in your catalog. The itemId is available in the id field of the catalog item when you retrieve items from a catalog:

{
    "creationDate": "2020-09-30T11:31:16.314Z",
    "id": 73753, // this is the itemId
    "itemKey": "uniqueValue",
    "lastModified": null,
    "value": "{\"exampleKey\":\"uniqueValue\",\"exampleKey2\":\"exampleValue\"}",
    "bag": {
        "author": "authorName",
        "creationDate": "2020-09-30T10:52:31.264Z",
        "id": 1053, // this is the ID of the catalog
        "lastModified": "2020-09-30T11:41:11.808Z",
        "name": "sampleCatalog"
    }
},
Request Body schema: application/json

JSON object with any number of key/value pairs

property name*
any

The properties of the catalog item

Responses

Request samples

Content type
application/json
{
  • "property1": null,
  • "property2": null
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metaData": {
    }
}

Delete single item by database ID

Delete a single item by ID.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

itemId
required
integer

ID of the item. This is the ID of the entry in the Synerise database, not the unique identifier that you're using in your catalog. The itemId is available in the id field of the catalog item when you retrieve items from a catalog:

{
    "creationDate": "2020-09-30T11:31:16.314Z",
    "id": 73753, // this is the itemId
    "itemKey": "uniqueValue",
    "lastModified": null,
    "value": "{\"exampleKey\":\"uniqueValue\",\"exampleKey2\":\"exampleValue\"}",
    "bag": {
        "author": "authorName",
        "creationDate": "2020-09-30T10:52:31.264Z",
        "id": 1053, // this is the ID of the catalog
        "lastModified": "2020-09-30T11:41:11.808Z",
        "name": "sampleCatalog"
    }
},

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/catalogs/bags/%7BcatalogId%7D/items/%7BitemId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": true,
  • "metaData": {
    }
}

Get all items

Retrieve all items from all catalogs in the Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
query Parameters
offset
integer

The offset for the search. For example, if your limit is 10 and you want to retrieve the third page of items, set the offset to 20. Items with indexes 20 to 29 are returned (the first item on the first page has the index 0).

limit
integer

The maximum number of items to include in the response. offset must be defined.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/catalogs/items?offset=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metaData": {
    }
}

Add mapping

Add a new mapping. Mappings can be used to enrich events with data from catalogs.

For example, you can map the product's SKU from the "product.buy" event to the column in the catalog that includes the SKU. Whenever someone purchases an item with that SKU, you can extract data from the catalog (for example, the product's brand and category) and show that additional in the event log in the Synerise GUI.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_MAPPING_CATALOG_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
catalogId
required
integer

ID of the catalog

Request Body schema: application/json
action
string

The action field of the event

paramKey
string

The parameter in the event that corresponds to the catalog column with the unique identifiers

Responses

Request samples

Content type
application/json
{
  • "action": "transaction.charge",
  • "paramKey": "sku"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metaData": {
    }
}

Get all mappings

Retrieve all mappings from the Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_MAPPING_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/catalogs/mappings 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metaData": {
    }
}

Delete mapping

Delete a single mapping.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CATALOGS_MAPPING_CATALOG_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
path Parameters
bpActionParamKey
required
string

The unique identifier of the mapping

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/catalogs/mappings/%7BbpActionParamKey%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": true,
  • "metaData": {
    }
}

Get single item by unique key

Retrieve a single item from a catalog by using the value of the unique identifier (key) in the catalog. If you want retrieve an item by its ID in the Synerise database, use this endpoint.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ITEMS_COLLECTOR_CATALOG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_CATALOGS

Authorizations:
query Parameters
catalogName
required
string

Name of the catalog

key
required
string

Value of the unique identifier of the item in the catalog. When you retrieve an item using this endpoint, the identifier is in the itemKey field.

{
    "creationDate": "2020-09-30T11:31:16.314Z",
    "id": 73753,
    "itemKey": "uniqueValue", // this is the value of the key
    "lastModified": null,
    "value": "{\"exampleKey\":\"uniqueValue\",\"exampleKey2\":\"exampleValue\"}",
    "bag": {
        "author": "authorName",
        "creationDate": "2020-09-30T10:52:31.264Z",
        "id": 1053,
        "lastModified": "2020-09-30T11:41:11.808Z",
        "name": "sampleCatalog"
    }
},

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/catalogs/itemDetail?catalogName=SOME_STRING_VALUE&key=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metaData": {
    }
}

Asset tags

Use tags with resources such as promotions

Get all directories

Gets all tag directories from the Workspace.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/tags-collector/directories

Response samples

Content type
application/json
[
  • {
    }
]

Create directory

Creates a directory.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

Request Body schema: application/json
name
required
string

Name of the directory

object

Free-form parameters

type
string

HashID of the directory type

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "params": {
    },
  • "type": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "hash": "string",
  • "name": "string",
  • "params": {
    },
  • "type": {
    }
}

Get directory types

Gets all directory types.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/tags-collector/directories/types

Response samples

Content type
application/json
[
  • {
    }
]

Create directory type

Creates a directory type.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

Request Body schema: application/json
name
required
string

Name of the directory type

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "hash": "string",
  • "name": "string"
}

Delete directory

Deletes a directory.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
directoryHash
required
string

Hash ID of the directory

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/tags-collector/directories/%7BdirectoryHash%7D

Update directory

Updates a directory.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
directoryHash
required
string

Hash ID of the directory

Request Body schema: application/json
name
string

Name of the directory

object

Free-form parameters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "params": {
    }
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "hash": "string",
  • "name": "string",
  • "params": {
    },
  • "type": {
    }
}

Get tags from directory

Retrieve tags from a directory.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
directoryHash
required
string

Hash ID of the directory

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/tags-collector/directories/%7BdirectoryHash%7D/tags

Response samples

Content type
application/json
[
  • {
    }
]

Assign tags to directory

Assign tags to a directory.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
directoryHash
required
string

Hash ID of the directory

Request Body schema: application/json
Array
string

Hash ID of a tag

Responses

Request samples

Content type
application/json
[
  • "string"
]

Unassign tags from directory

Unassign tags from a directory. This does not delete the tags or the directory.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
directoryHash
required
string

Hash ID of the directory

Request Body schema: application/json
Array
string

Hash ID of a tag

Responses

Request samples

Content type
application/json
[
  • "string"
]

Update directory type

Update the type of a directory.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_DIRECTORY_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
directoryHash
required
string

Hash ID of the directory

Request Body schema: application/json
directoryTypeHash
string

HashID of the directory type

Responses

Request samples

Content type
application/json
{
  • "directoryTypeHash": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "hash": "string",
  • "name": "string",
  • "params": {
    },
  • "type": {
    }
}

Get tag list

Gets a paginated list of tags that can be assigned to assets, for example promotions.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_TAG_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

query Parameters
page
integer
Default: 0

Page to retrieve

size
integer
Default: 10

Limit of items per page

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/tags-collector/tags?page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE'

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Delete multiple tags

Deletes multiple tag definitions.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_TAG_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

Request Body schema: application/json
Array
string

HashID of a tag

Responses

Request samples

Content type
application/json
[
  • "string"
]

Delete tag

Deletes a tag definition.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_TAG_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
tagHash
required
string

HashID of a tag

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/tags-collector/tags/%7BtagHash%7D

Update tag

Updates a tag definition.


  • API consumers who can use this method: Synerise User, Profile (formerly client), Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: TAGS_COLLECTOR_TAG_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ASSETS_TAGS

path Parameters
tagHash
required
string

HashID of a tag

Request Body schema: application/json
color
string or null

Hex code of the tag color

description
string

Description of the tag

directory
string or null

Hash ID of the directory where the tag is assigned

icon
string or null

URL of the tag's icon

priority
integer
Default: 0

Tag priority. Lower values mean higher priority.

value
string

Name of the tag

Responses

Request samples

Content type
application/json
{
  • "color": "string",
  • "description": "string",
  • "directory": "string",
  • "icon": "string",
  • "priority": 0,
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "authorId": 0,
  • "color": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "directory": {
    },
  • "hash": "string",
  • "icon": "string",
  • "priority": 0,
  • "value": "string"
}

Profile tags

Tags that can be attributed to Profiles

Create a tag

Create a new tag that can be assigned to profiles. If you try to create a tag that already exists, the response is the existing tag.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_TAGS_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_TAGS

Authorizations:
Request Body schema: application/json
name
required
string

Name of the tag

color
string

Display color of the tag; hexadecimal value

Responses

Request samples

Content type
application/json
{
  • "name": "nice tag",
  • "color": "#0768ff"
}

Response samples

Content type
application/json
{
  • "businessProfileId": 100005,
  • "id": 645,
  • "name": "nice tag",
  • "color": "#0768ff"
}

Get all tags

Retrieve all tags that can be assigned to profiles.

This endpoint is available from version 4.1.0


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_TAGS_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_TAGS

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/v4/clients/tags 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Update a tag

Update a tag. This method currently only allows modifying the color field.

If the tag has been already deleted, the response is a 404 error.

Important: This method doesn't update global tags (not related to any workspace). If you try to update a global tag, the response is a 404 error.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_TAGS_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_TAGS

Authorizations:
path Parameters
tagID
required
integer
Example: 645

ID of the tag

Request Body schema: application/json
color
string

Display color of the tag; hexadecimal value

Responses

Request samples

Content type
application/json
{
  • "color": "#0768ff"
}

Response samples

Content type
application/json
{
  • "businessProfileId": 100005,
  • "id": 645,
  • "name": "nice tag",
  • "color": "#0768ff"
}

Remove a tag

Remove a tag definition from the workspace.

If the tag has been already deleted, the response is a 404 error.

Important: This method does not remove global tag (not related to any workspace). In this case, the response is a 404 error.

Note: After removing a tag definition, the tag is still cached for a while. In that time, it is still possible for a while to remove or add this tag in profiles.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_TAGS_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_TAGS

Authorizations:
path Parameters
tagID
required
integer
Example: 645

ID of the tag

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/v4/tags/%7BtagID%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "error": "string",
  • "status": 0,
  • "timestamp": "string",
  • "path": "string",
  • "message": "string",
  • "errors": [
    ]
}

Get profile tags

Retrieve a list of tags assigned to a profile.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_TAGS_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_TAGS

Authorizations:
path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/v4/clients/%7BclientId%7D/tags 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Assign tag to profile

Assign a tag to a profile.


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_ASSIGN_TAGS_EXECUTE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_TAGS

path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

tagID
required
integer
Example: 645

ID of the tag

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/v4/clients/%7BclientId%7D/tags/%7BtagID%7D

Response samples

Content type
application/json
{
  • "clientId": 0,
  • "id": 73,
  • "tagId": 645
}

Remove tag from profile


  • API consumers who can use this method: Workspace (formerly Business Profile), Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_ASSIGN_TAGS_EXECUTE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_TAGS

path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

tagID
required
integer
Example: 645

ID of the tag

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/v4/clients/%7BclientId%7D/tags/%7BtagID%7D

Response samples

Content type
application/json
{
  • "error": "string",
  • "status": 0,
  • "timestamp": "string",
  • "path": "string",
  • "message": "string",
  • "errors": [
    ]
}

Profile management

Manage Profile details

List profiles

Retrieve a list of Profiles. You can filter, sort, and paginate the results.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_LIST_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
query Parameters
sortBy
string
Enum: "firstName" "lastName" "lastActivityDate" "email" "city" "phone"
Example: sortBy=firstName

Profile attribute by which the list will be sorted

sortOrder
string
Enum: "ASC" "DESC"

Sorting order

pageIndex
integer <int32> >= 1

Number of pages to retrieve

pageSize
integer <int32> >= 1

Number of entries on a page

filters[anonymous]
boolean

When set to true, only anonymous profiles are listed

filters[firstName]
string
Example: filters[firstName]=John

Filter profiles by first name

filters[lastName]
string
Example: filters[lastName]=Smith

Filter profiles by last name

filters[email]
string
Example: filters[email]=person@example.com

Filter profiles by email

filters[phone]
string
Example: filters[phone]=123456789

Filter profiles by phone

header Parameters
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/v4/clients?sortBy=firstName&sortOrder=SOME_STRING_VALUE&pageIndex=SOME_INTEGER_VALUE&pageSize=SOME_INTEGER_VALUE&filters%5Banonymous%5D=SOME_BOOLEAN_VALUE&filters%5BfirstName%5D=John&filters%5BlastName%5D=Smith&filters%5Bemail%5D=person%40example.com&filters%5Bphone%5D=123456789' 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
[
  • {
    }
]

Create a Profile

Create a new profile in the Synerise application database. If you don't have some information about the profile, don't insert a null-value parameter - omit the parameter entirely.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_CLIENT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_MANAGEMENT

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json

In the request body, you must provide at least one of those identifiers:

  • email
    If non-unique emails are enabled, email is NOT an identifier.
  • phone
    Phone is treated as an identifier only if no other identifier is provided. If this is the case and non-unique emails are disabled, an anonymous profile is created with a randomized email placeholder.
  • customId
  • uuid
email
string

The profile's e-mail address.

  • Must match the pattern (ECMA flavor): /^(([^<>()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

By default, email is a unique identifier.

If non-unique emails are enabled, this field should not be used. It is no longer an identifier. The configuration of non-unique emails includes creating an email parameter for communication.

phone
string

Phone number of the profile

  • Must match the pattern (ECMA flavor): /(^\+[0-9 \-()/]{6,19}$)|(^[0-9 \-()/]{6,20}$)/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/
customId
string

A custom ID for the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

firstName
string

Profile's first name.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
lastName
string

Profile's last name

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
displayName
string

Currently unused

uuid
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

avatarUrl
string or null

URL of the profile's avatar picture

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
birthDate
string

Date of birth in the profile. Must be in yyyy-mm-dd format and later than 1900-01-01.
IMPORTANT: Months and days must be zero-padded. For example: May 3, 1993 is 1993-05-03.

company
string

Profiles's company

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
city
string

Profile's city of residence.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
address
string

Profile's street address.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
zipCode
string

Profile's zip code

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
province
string

Profile's province of residence

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
countryCode
string

Code of profile's country of residence in accordance with the ISO 3166 format

sex
string
Enum: "FEMALE" "MALE" "NOT_SPECIFIED" "OTHER"

Profile's sex

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "avatarUrl": "string",
  • "birthDate": "1987-10-24",
  • "company": "string",
  • "city": "string",
  • "address": "string",
  • "zipCode": "string",
  • "province": "string",
  • "countryCode": "PL",
  • "sex": "FEMALE",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2019-03-18T13:15:39.84Z",
  • "path": "/clients",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Create a company profile in CRM

Create a new profile that is marked as a company in the Synerise application database.

You must provide at least one of those identifiers: email, phone, customId, uuid.

Sending a null value deletes an attribute (if it's a custom attribute) or sets it to null/default value (if the attribute is Synerise-native).


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_CLIENT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_MANAGEMENT

Authorizations:
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json

In the request body, you must provide at least one of those identifiers:

  • email
    If non-unique emails are enabled, email is NOT an identifier.
  • phone
    Phone is treated as an identifier only if no other identifier is provided. If this is the case and non-unique emails are disabled, an anonymous profile is created with a randomized email placeholder.
  • customId
  • uuid
email
string

The profile's e-mail address.

  • Must match the pattern (ECMA flavor): /^(([^<>()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

By default, email is a unique identifier.

If non-unique emails are enabled, this field should not be used. It is no longer an identifier. The configuration of non-unique emails includes creating an email parameter for communication.

phone
string

Phone number of the profile

  • Must match the pattern (ECMA flavor): /(^\+[0-9 \-()/]{6,19}$)|(^[0-9 \-()/]{6,20}$)/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/
customId
string

A custom ID for the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

firstName
string

Profile's first name.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
lastName
string

Profile's last name

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
displayName
string

Currently unused

uuid
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

avatarUrl
string or null

URL of the profile's avatar picture

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
birthDate
string

Date of birth in the profile. Must be in yyyy-mm-dd format and later than 1900-01-01.
IMPORTANT: Months and days must be zero-padded. For example: May 3, 1993 is 1993-05-03.

company
string

Profiles's company

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
city
string

Profile's city of residence.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
address
string

Profile's street address.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
zipCode
string

Profile's zip code

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
province
string

Profile's province of residence

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
countryCode
string

Code of profile's country of residence in accordance with the ISO 3166 format

sex
string
Enum: "FEMALE" "MALE" "NOT_SPECIFIED" "OTHER"

Profile's sex

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "avatarUrl": "string",
  • "birthDate": "1987-10-24",
  • "company": "string",
  • "city": "string",
  • "address": "string",
  • "zipCode": "string",
  • "province": "string",
  • "countryCode": "PL",
  • "sex": "FEMALE",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2019-03-18T13:15:39.84Z",
  • "path": "/clients",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Delete a company profile

Delete a company profile from the database.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_ID_CLIENT_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

header Parameters
Accept
required
string
Value: "application/json"
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/v4/company-clients/%7BclientId%7D 
  --header 'Accept: SOME_STRING_VALUE' 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2020-10-29T13:08:16.235Z",
  • "path": "/exampleEndpoint",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Merge profiles by customId

Moves profile UUIDs to a single profile (which must already exist) and removes the profiles that were merged.

The event history of the source profiles is moved to the target profile.

The attributes (data from the attributes object) that don't exist in the target profile are copied to the target profile. If an attribute already exists in the target profile, the value from the source profile is lost.

The properties and tags of the source profiles are lost, even if they don't have a value in the target profile.

WARNING: This operation is irreversible. Use it carefully.

WARNING: You should not try to merge more than 10-20 profiles at once.

For more details, see the Developer Guide.


  • API consumer who can use this method: Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_MERGEBYCUSTOMID_CLIENT_UPDATE

Authorizations:
path Parameters
sourceCustomIDs
required
string
Example: customIdExample,customIdExample2,customIdExample3,customIdExample4,customIdExample5

Comma-delimited string with custom IDs of the profiles to merge

targetCustomID
required
string
Example: customIdExample

The custom ID of the profile to merge the sourceCustomIDs into

header Parameters
Accept
required
string
Value: "application/json"
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/v4/clients/merge/from/custom-ids/%7BsourceCustomIDs%7D/to/custom-id/%7BtargetCustomID%7D 
  --header 'Accept: SOME_STRING_VALUE' 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "clientId": 0,
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "company": "string",
  • "address": "string",
  • "city": "string",
  • "province": "string",
  • "zipCode": "string",
  • "countryCode": "PL",
  • "birthDate": "1987-10-24",
  • "sex": "FEMALE",
  • "avatarUrl": "string",
  • "anonymous": false,
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ],
  • "previousClients": [
    ],
  • "lastActivityDate": "2019-03-19T14:05:39Z"
}

Merge profiles by clientId

Moves profile UUIDs to a single profile (which must already exist) and removes the profiles that were merged.

The event history of the source profiles is moved to the target profile.

The attributes (data from the attributes object) that don't exist in the target profile are copied to the target profile. If an attribute already exists in the target profile, the value from the source profile is lost.

The properties and tags of the source profiles are lost, even if they don't have a value in the target profile.

WARNING: This operation is irreversible. Use it carefully.

WARNING: You should not try to merge more than 10-20 profiles at once.

For more details, see the Developer Guide.


  • API consumer who can use this method: Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_MERGE_BY_ID_CLIENT_UPDATE

Authorizations:
path Parameters
fromClientIds
required
string
Example: 434428563,33322211,232212342

Comma-delimited string with client IDs of the profiles to merge

toClientId
required
integer <int64>
Example: 434428563

The ID of the profile to merge the fromClientIds into

header Parameters
Accept
required
string
Value: "application/json"
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/v4/clients/merge/from/ids/%7BfromClientIds%7D/to/id/%7BtoClientId%7D 
  --header 'Accept: SOME_STRING_VALUE' 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "clientId": 0,
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "company": "string",
  • "address": "string",
  • "city": "string",
  • "province": "string",
  • "zipCode": "string",
  • "countryCode": "PL",
  • "birthDate": "1987-10-24",
  • "sex": "FEMALE",
  • "avatarUrl": "string",
  • "anonymous": false,
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ],
  • "previousClients": [
    ],
  • "lastActivityDate": "2019-03-19T14:05:39Z"
}

Batch add or update profiles

Enqueue a number of add/update operations in the Synerise application database.

If you don't have some information about a profile, don't insert a null-value parameter - omit the parameter entirely. Sending a null value deletes an attribute (if it's a custom attribute) or sets it to null/default value (if the attribute is Synerise-native).

The body contains an array of objects to update. The objects are the same as in the Create a Profile and Update a Profile endpoints.

IMPORTANT: The request body cannot contain more than 1000 items or exceed 1 MB in size.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BATCH_CLIENT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_MANAGEMENT

Authorizations:
header Parameters
Accept
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json

Each profile must have at least one of the following identifiers:

  • email
    If non-unique emails are enabled, email is NOT an identifier.
  • phone
    Phone number is treated as an identifier only if no other identifier is provided. Then, if a profile with this phone number does not exist and non-unique emails are disabled, an anonymous profile is created.
  • customId
  • uuid
  • clientId (can be used only when updating an existing profile)
Array ([ 1 .. 1000 ] items)
clientId
integer <int64>

This ID can be used only for updating an existing profile.

If a profile does not exist and clientId is the only provided identifier, the operation returns HTTP 202 and a profile is not created. If another identifier is provided, a profile is created with that identifier and a clientId generated by the system.

email
string

The profile's e-mail address.

  • Must match the pattern (ECMA flavor): /^(([^<>()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

By default, email is a unique identifier.

If non-unique emails are enabled, this field should not be used. It is no longer an identifier. The configuration of non-unique emails includes creating an email parameter for communication.

phone
string

Phone number of the profile

  • Must match the pattern (ECMA flavor): /(^\+[0-9 \-()/]{6,19}$)|(^[0-9 \-()/]{6,20}$)/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/
customId
string

A custom ID for the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

firstName
string

Profile's first name.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
lastName
string

Profile's last name

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
displayName
string

Currently unused

uuid
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

avatarUrl
string or null

URL of the profile's avatar picture

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
birthDate
string

Date of birth in the profile. Must be in yyyy-mm-dd format and later than 1900-01-01.
IMPORTANT: Months and days must be zero-padded. For example: May 3, 1993 is 1993-05-03.

company
string

Profiles's company

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
city
string

Profile's city of residence.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
address
string

Profile's street address.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
zipCode
string

Profile's zip code

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
province
string

Profile's province of residence

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
countryCode
string

Code of profile's country of residence in accordance with the ISO 3166 format

sex
string
Enum: "FEMALE" "MALE" "NOT_SPECIFIED" "OTHER"

Profile's sex

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Get profile data

Retrieve profile data by profile ID.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_ID_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

header Parameters
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/v4/clients/%7BclientId%7D 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "clientId": 0,
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "company": "string",
  • "address": "string",
  • "city": "string",
  • "province": "string",
  • "zipCode": "string",
  • "countryCode": "PL",
  • "birthDate": "1987-10-24",
  • "sex": "FEMALE",
  • "avatarUrl": "string",
  • "anonymous": false,
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ],
  • "previousClients": [
    ],
  • "lastActivityDate": "2019-03-19T14:05:39Z"
}

Update a profile (identify by ID)

Change the details of a profile in the Synerise application database.

Sending a null value deletes an attribute (if it's a custom attribute) or sets it to null/default value (if the attribute is Synerise-native).

The attributes object can be used to add custom attributes of your choice. For example, "hasDog":true.

The tags array contains custom tags of your choice.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_ID_CLIENT_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
email
string

The profile's e-mail address.

  • Must match the pattern (ECMA flavor): /^(([^<>()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

By default, email is a unique identifier.

If non-unique emails are enabled, this field should not be used. It is no longer an identifier. The configuration of non-unique emails includes creating an email parameter for communication.

phone
string

Phone number of the profile

  • Must match the pattern (ECMA flavor): /(^\+[0-9 \-()/]{6,19}$)|(^[0-9 \-()/]{6,20}$)/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/
customId
string

A custom ID for the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

firstName
string

Profile's first name.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
lastName
string

Profile's last name

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
displayName
string

Currently unused

uuid
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

avatarUrl
string or null

URL of the profile's avatar picture

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
birthDate
string

Date of birth in the profile. Must be in yyyy-mm-dd format and later than 1900-01-01.
IMPORTANT: Months and days must be zero-padded. For example: May 3, 1993 is 1993-05-03.

company
string

Profiles's company

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
city
string

Profile's city of residence.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
address
string

Profile's street address.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
zipCode
string

Profile's zip code

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
province
string

Profile's province of residence

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
countryCode
string

Code of profile's country of residence in accordance with the ISO 3166 format

sex
string
Enum: "FEMALE" "MALE" "NOT_SPECIFIED" "OTHER"

Profile's sex

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "avatarUrl": "string",
  • "birthDate": "1987-10-24",
  • "company": "string",
  • "city": "string",
  • "address": "string",
  • "zipCode": "string",
  • "province": "string",
  • "countryCode": "PL",
  • "sex": "FEMALE",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2019-03-21T08:37:34.526Z",
  • "path": "/clients/1234",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Delete a profile

Delete a profile from the database.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_ID_CLIENT_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientId
required
integer <int64>
Example: 434428563

The ID of the profile

header Parameters
Accept
required
string
Value: "application/json"
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/v4/clients/%7BclientId%7D 
  --header 'Accept: SOME_STRING_VALUE' 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2020-10-29T13:08:16.235Z",
  • "path": "/exampleEndpoint",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Update a profile (identify by email)

Change the details of a profile in the Synerise application database.

Sending a null value deletes an attribute (if it's a custom attribute) or sets it to null/default value (if the attribute is Synerise-native).

The attributes object can be used to add custom attributes of your choice. For example, "hasDog":true.

The tags array contains custom tags of your choice.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_EMAIL_CLIENT_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientEmail
required
string
Example: clientemail@synerise.com

The profile's email address

  • Must match the pattern (ECMA flavor): /^(([^<>()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  • The value can't include any characters that match the patternn (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/
header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
email
string

The profile's e-mail address.

  • Must match the pattern (ECMA flavor): /^(([^<>()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

By default, email is a unique identifier.

If non-unique emails are enabled, this field should not be used. It is no longer an identifier. The configuration of non-unique emails includes creating an email parameter for communication.

phone
string

Phone number of the profile

  • Must match the pattern (ECMA flavor): /(^\+[0-9 \-()/]{6,19}$)|(^[0-9 \-()/]{6,20}$)/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/
customId
string

A custom ID for the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

firstName
string

Profile's first name.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
lastName
string

Profile's last name

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
displayName
string

Currently unused

uuid
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

avatarUrl
string or null

URL of the profile's avatar picture

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
birthDate
string

Date of birth in the profile. Must be in yyyy-mm-dd format and later than 1900-01-01.
IMPORTANT: Months and days must be zero-padded. For example: May 3, 1993 is 1993-05-03.

company
string

Profiles's company

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
city
string

Profile's city of residence.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
address
string

Profile's street address.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
zipCode
string

Profile's zip code

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
province
string

Profile's province of residence

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
countryCode
string

Code of profile's country of residence in accordance with the ISO 3166 format

sex
string
Enum: "FEMALE" "MALE" "NOT_SPECIFIED" "OTHER"

Profile's sex

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "avatarUrl": "string",
  • "birthDate": "1987-10-24",
  • "company": "string",
  • "city": "string",
  • "address": "string",
  • "zipCode": "string",
  • "province": "string",
  • "countryCode": "PL",
  • "sex": "FEMALE",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2019-03-21T08:37:34.526Z",
  • "path": "/clients/by-email/client@synerise.com",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Update a profile (identify by customId)

Change the details of a profile in the Synerise application database.

Sending a null value deletes an attribute (if it's a custom attribute) or sets it to null/default value (if the attribute is Synerise-native).

The attributes object can be used to add custom attributes of your choice. For example, "hasDog":true.

The tags array contains custom tags of your choice.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_CUSTOM_ID_CLIENT_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
customId
required
string
Example: customIdExample

The custom ID of the profile

header Parameters
Api-Version
required
string
Value: "4.4"
Request Body schema: application/json
email
string

The profile's e-mail address.

  • Must match the pattern (ECMA flavor): /^(([^<>()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

By default, email is a unique identifier.

If non-unique emails are enabled, this field should not be used. It is no longer an identifier. The configuration of non-unique emails includes creating an email parameter for communication.

phone
string

Phone number of the profile

  • Must match the pattern (ECMA flavor): /(^\+[0-9 \-()/]{6,19}$)|(^[0-9 \-()/]{6,20}$)/
  • The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/
customId
string

A custom ID for the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

firstName
string

Profile's first name.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
lastName
string

Profile's last name

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
displayName
string

Currently unused

uuid
string

UUID of the Profile. It is a unique identifier.

The value can't include any characters that match the pattern (ECMA flavor): /([\uD800-\uDBFF][\uDC00-\uDFFF])|([\r\n\u2028\u2029\u00AD]|[\uFE00-\uFE0F]|[\u0000])/

avatarUrl
string or null

URL of the profile's avatar picture

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
birthDate
string

Date of birth in the profile. Must be in yyyy-mm-dd format and later than 1900-01-01.
IMPORTANT: Months and days must be zero-padded. For example: May 3, 1993 is 1993-05-03.

company
string

Profiles's company

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
city
string

Profile's city of residence.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
address
string

Profile's street address.

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
zipCode
string

Profile's zip code

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
province
string

Profile's province of residence

The value:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)
countryCode
string

Code of profile's country of residence in accordance with the ISO 3166 format

sex
string
Enum: "FEMALE" "MALE" "NOT_SPECIFIED" "OTHER"

Profile's sex

object

This object contains the marketing agreements of the Profile.

You can also pass the values as strings ("true";"True"/"false";"False") or integers (1 for true and 0 for false).

object

This object contains custom attributes that can have any name (except for reserved attributes, see warning below) and data type, as required by your integration.

The attribute names can't include any characters that match the pattern (ECMA flavor): /[\r\n\u2028\u2029\u00AD\u0000\uFE00-\uFE0F]/

String values:

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

If you want to send a date/time attribute for use in analytics, take the following into account:

  • The date/time should be formatted according to ISO 8601.
  • The time zone of the workspace affects dates/times in the attributes that DON'T have a defined timezone. Example:
    • 2023-10-09T12:00:00 doesn't have a timezone indicator and will be considered as a time in the workspace's time zone.
    • 2023-10-09T12:00:00+02:00 has a timezone indicator (+02:00), so the timezone of the workspace doesn't affect it.
    • 2023-10-09T12:00:00Z is a time in the UTC time zone (denoted by the Z at the end), so the timezone of the workspace doesn't affect it.

WARNING: Some attributes are reserved and cannot be sent. If you send them, they are ignored.

Click to expand the list of reserved attributes email
clientId
phone
customId
uuid
firstName
lastName
displayName
company
address
city
province
zipCode
countryCode
birthDate
sex
avatarUrl
anonymous
agreements
tags
businessProfileId
time
ip
source
newsletter_agreement
custom_identify
firstname
lastname
created
updated
last_activity_date
birthdate
external_avatar_url
displayname
receive_smses
receive_push_messages
receive_webpush_messages
receive_btooth_messages
receive_rfid_messages
receive_wifi_messages
confirmation_hash
ownerId
zipCode
anonymous_type
country_id
geo_loc_city
geo_loc_country
geo_loc_as
geo_loc_country_code
geo_loc_isp
geo_loc_lat
geo_loc_lon
geo_loc_org
geo_loc_query
geo_loc_region
geo_loc_region_name
geo_loc_status
geo_loc_timezone
geo_loc_zip
club_card_id
type
confirmed
facebookId
status
tags
Array of strings

Tags can be used to group profiles.

Tag names (strings):

  • can't include variation selectors ([\uFE00-\uFE0F]), unless there are other characters in the string.
  • can't include the "null" control character (\u0000)

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "avatarUrl": "string",
  • "birthDate": "1987-10-24",
  • "company": "string",
  • "city": "string",
  • "address": "string",
  • "zipCode": "string",
  • "province": "string",
  • "countryCode": "PL",
  • "sex": "FEMALE",
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2019-03-21T08:37:34.526Z",
  • "path": "/clients/by-customid/customId1234",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Delete a profile (identify by customId)

Delete a profile from the database.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_ID_CLIENT_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
customId
required
string
Example: customIdExample

The custom ID of the profile

header Parameters
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/v4/clients/by-custom-id/%7BcustomId%7D 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "error": "Bad Request",
  • "status": 400,
  • "timestamp": "2020-10-29T13:08:16.235Z",
  • "path": "/exampleEndpoint",
  • "message": "Some fields did not pass validation",
  • "errors": [
    ]
}

Fetch profile data

Get the details of a single profile. If no profile is found, HTTP 404 is returned.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: API_BY_IDENTIFIER_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
identifierType
required
string
Enum: "by-custom-id" "by-phone" "by-uuid" "by-email"
Example: by-email

The type of profile identifier to use for the request

identifierValue
required
string
Example: address@domain.com

The value of the selected identifier

header Parameters
Content-Type
required
string
Value: "application/json"
Api-Version
required
string
Value: "4.4"

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/v4/clients/%7BidentifierType%7D/%7BidentifierValue%7D 
  --header 'Api-Version: SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "clientId": 0,
  • "email": "string",
  • "phone": "+48111222333",
  • "customId": "string",
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "firstName": "string",
  • "lastName": "string",
  • "displayName": "string",
  • "company": "string",
  • "address": "string",
  • "city": "string",
  • "province": "string",
  • "zipCode": "string",
  • "countryCode": "PL",
  • "birthDate": "1987-10-24",
  • "sex": "FEMALE",
  • "avatarUrl": "string",
  • "anonymous": false,
  • "agreements": {
    },
  • "attributes": {
    },
  • "tags": [
    ],
  • "previousClients": [
    ],
  • "lastActivityDate": "2019-03-19T14:05:39Z"
}

Create profile export task for segmentation

Create an export task. The data is later retrieved using this endpoint. The data is materialized at the time of export's creation, not at the time of retrieval.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CLIENT_EXPORTER_REPORT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: SETTINGS_EXPORT

Authorizations:
Request Body schema: application/json

Segmentation request body

name
required
string

The name of the export

fields
required
Array of strings

An array of fields from the profile to include in the export

agreementFilter
required
string
Enum: "NONE" "RECOGNIZED" "ANONYMOUS"

Filter exported profiles by status: only anonymous, only recognized, or no filter

segmentationHash
required
string

Segmentation (UUID) to export profiles from

expressions
Array of strings

An array of expressions (expression UUIDs) whose results will be included in the export. In the export results, the result of the analysis is identified by the UUID.

aggregates
Array of strings

An array of aggregates (aggregate UUIDs) whose results will be included in the export. In the export results, the result of the analysis is identified by the UUID.

excludedIds
required
Array of integers <= 0 items [ items ]

Necessary for backwards compatibility. Send empty array.

Responses

Request samples

Content type
application/json
{
  • "name": "Sample export",
  • "fields": [
    ],
  • "agreementFilter": "NONE",
  • "segmentationHash": "a0640816-8092-4a17-b41e-cd9e1230a3c7",
  • "expressions": [
    ],
  • "aggregates": [
    ],
  • "excludedIds": [ ]
}

Response samples

Content type
application/json
{
  • "taskId": 546,
  • "columnOrder": [
    ],
  • "estimatedCount": 6743,
  • "ttl": "2h"
}

Retrieve export data

Retrieve data from an export created before. The data is materialized at the time of export's creation, not at the time of retrieval.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CLIENT_EXPORTER_REPORT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: SETTINGS_EXPORT

Authorizations:
path Parameters
taskId
required
integer
Example: 546

The ID of the export task to retrieve the results from

query Parameters
limit
integer <= 10000

The limit of results retrieved. Used for pagination.

offset
integer

The index of the first result to retrieve. The first result has the index 0. Used for pagination.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/client-exporter/v2/export/clients/task/%7BtaskId%7D?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Get Profile details

Retrieve the details of a Profile.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_DETAILS_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientId
required
integer

Profile ID

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/crm/v1/clients/%7BclientId%7D/contacts 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "base": {
    },
  • "tags": [
    ]
}

Update Profile

Update a Profile.

Sending a null value deletes an attribute (if it's a custom attribute) or sets it to null/default value (if the attribute is Synerise-native).


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_CLIENT_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_MANAGEMENT

Authorizations:
path Parameters
clientId
required
integer

Profile ID

Request Body schema: application/json
id
integer

ID of the Profile

uuid
string

UUID of the Profile

anonymous_type
string

If the Profile is anonymous, this field defines how they are identified

email
string

Profile's e-mail address

firstname
string

Profile's first name

lastName
string

Profile's last name

custom_identify
string

A custom ID for the Profile

company
string

Profile's company

phone
string

Profile's phone number

address
string

Profile's street address

birthdate
string

Profile's date of birth

city
string

Profile's city of residence

zipCode
string

Profile's zip code

province
string

Profile's province of residence

country_id
string

ID of the Profile's country of residence

countryCode
string

Code of Profile's country of residence

avatarUrl
string or null

URL of the Profile's avatar picture

sex
string
Enum: "FEMALE" "MALE" "UNDEFINED"

Profile's sex

last_activity_date
string <date>

Date of Profile's last activity

created
string <date>

Date when the Profile was created

updated
string <date>

Date when the Profile account was last updated

deletedAt
string <date>

Date when the Profile account was deleted

tags
Array of strings

Custom tags. They can be used, for example, to group Profiles.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "anonymous_type": "UUID",
  • "email": "string",
  • "firstname": "string",
  • "lastName": "string",
  • "custom_identify": "string",
  • "company": "string",
  • "phone": "string",
  • "address": "string",
  • "birthdate": "string",
  • "city": "string",
  • "zipCode": "string",
  • "province": "string",
  • "country_id": "string",
  • "countryCode": "PL",
  • "avatarUrl": "string",
  • "sex": "FEMALE",
  • "last_activity_date": "2019-08-24",
  • "created": "2019-08-24",
  • "updated": "2019-08-24",
  • "deletedAt": "2019-08-24",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "base": {
    },
  • "tags": [
    ]
}

List Profiles

Retrieve a list of profiles. You can sort and filter the results.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
query Parameters
limit
integer <int32>
Default: 25

The maximum number of items to retrieve. This can be used for pagination.

offset
integer <int32>
Default: 0

The ID of the first item to retrieve. This is used for pagination. For example, to retrieve items starting at number 11, set offset to 10.

recognized
string
Default: "NONE"
Enum: "RECOGNIZED" "true" "ANONYMOUS" "false" "NONE"

Filter the results by Profile's anonymity status. true is the same as RECOGNIZED. false is the same as ANONYMOUS. When set to NONE, no filter is applied.

search
stringfield:value
Example: search=firstName:John

Filter the results by parameter values. field is the name of a field in the Profile.

If you enter a simple string (not a field:value pattern), the search will take the following parameters into account: email, first name, last name, UUID, custom parameters.

sortBy
stringfield:orderType

Choose a parameter to sort the results. field is the name of a field in the Profile. orderType can be ASC or DESC.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/crm/v1/list?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE&recognized=SOME_STRING_VALUE&search=firstName%3AJohn&sortBy=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "customers": [
    ],
  • "all": 0,
  • "limit": 0,
  • "offset": 0,
  • "matching": 0
}

Get autocomplete suggestions

Get autocomplete suggestions for a Profile search. The suggestions are ordered by relevance.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_AUTOCOMPLETE_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
query Parameters
field
required
string
Example: field=lastName

The field to get suggestions from

prefix
required
string

Prefix that triggers this autocomplete rule

limit
integer
Default: 10

The maximum number of suggestions to retrieve

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/crm/v1/autocomplete?field=lastName&prefix=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "entries": [
    ]
}

Update Profile identified as company

Update a company Profile. Do not send null-values for already existing fields that you do not want to change, they will be overwritten.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_CLIENT_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_MANAGEMENT

Authorizations:
path Parameters
clientId
required
integer

Profile ID

Request Body schema: application/json
id
integer

ID of the Profile

uuid
string

UUID of the Profile

anonymous_type
string

If the Profile is anonymous, this field defines how they are identified

email
string

Profile's e-mail address

firstname
string

Profile's first name

lastName
string

Profile's last name

custom_identify
string

A custom ID for the Profile

company
string

Profile's company

phone
string

Profile's phone number

address
string

Profile's street address

birthdate
string

Profile's date of birth

city
string

Profile's city of residence

zipCode
string

Profile's zip code

province
string

Profile's province of residence

country_id
string

ID of the Profile's country of residence

countryCode
string

Code of Profile's country of residence

avatarUrl
string or null

URL of the Profile's avatar picture

sex
string
Enum: "FEMALE" "MALE" "UNDEFINED"

Profile's sex

last_activity_date
string <date>

Date of Profile's last activity

created
string <date>

Date when the Profile was created

updated
string <date>

Date when the Profile account was last updated

deletedAt
string <date>

Date when the Profile account was deleted

tags
Array of strings

Custom tags. They can be used, for example, to group Profiles.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "uuid": "07243772-008a-42e1-ba37-c3807cebde8f",
  • "anonymous_type": "UUID",
  • "email": "string",
  • "firstname": "string",
  • "lastName": "string",
  • "custom_identify": "string",
  • "company": "string",
  • "phone": "string",
  • "address": "string",
  • "birthdate": "string",
  • "city": "string",
  • "zipCode": "string",
  • "province": "string",
  • "country_id": "string",
  • "countryCode": "PL",
  • "avatarUrl": "string",
  • "sex": "FEMALE",
  • "last_activity_date": "2019-08-24",
  • "created": "2019-08-24",
  • "updated": "2019-08-24",
  • "deletedAt": "2019-08-24",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "base": {
    },
  • "tags": [
    ]
}

Identify Profile as a company

Identifies a Profile as a company.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_CLIENT_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_MANAGEMENT

Authorizations:
path Parameters
clientId
required
integer

Profile ID

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/crm/v1/company-clients/%7BclientId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "base": {
    },
  • "tags": [
    ]
}

Get details of Profile identified as company

Retrieve the details of a company Profile.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_DETAILS_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientId
required
integer

Profile ID

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/crm/v1/company-clients/%7BclientId%7D/contacts 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "base": {
    },
  • "tags": [
    ]
}

List Profiles identified as companies

Retrieve a detailed list of Profiles that are identified as companies.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
query Parameters
limit
integer <int32>
Default: 25

The maximum number of items to retrieve. This can be used for pagination.

offset
integer <int32>
Default: 0

The ID of the first item to retrieve. This is used for pagination. For example, to retrieve items starting at number 11, set offset to 10.

recognized
string
Default: "NONE"
Enum: "RECOGNIZED" "true" "ANONYMOUS" "false" "NONE"

Filter the results by Profile's anonymity status. true is the same as RECOGNIZED. false is the same as ANONYMOUS. When set to NONE, no filter is applied.

sortBy
stringfield:orderType

Choose a parameter to sort the results. field is the name of a field in the Profile. orderType can be ASC or DESC.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/crm/v1/company-clients?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE&recognized=SOME_STRING_VALUE&sortBy=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "customers": [
    ],
  • "all": 0,
  • "limit": 0,
  • "offset": 0,
  • "matching": 0
}

List Profiles from company

Retrieve a list of Profiles assigned to a company.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permissions required: CRM_LIST_CLIENT_READ, CRM_DETAILS_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
path Parameters
clientId
required
integer

Profile ID

query Parameters
limit
integer <int32>
Default: 25

The maximum number of items to retrieve. This can be used for pagination.

offset
integer <int32>
Default: 0

The ID of the first item to retrieve. This is used for pagination. For example, to retrieve items starting at number 11, set offset to 10.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/crm/v1/company-clients/%7BclientId%7D/relations?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "customers": [
    ],
  • "all": 0,
  • "limit": 0,
  • "offset": 0,
  • "matching": 0
}

Get Profile's company

Retrieve the company that a Profile is assigned to.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_DETAILS_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
path Parameters
clientId
required
integer

Profile ID

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/crm/v1/clients/%7BclientId%7D/company 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
"string"

Gets company identifier attribute

Retrieve the name of the attribute that is used to identify company-type Profiles.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/crm/v1/company-clients-identifier 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
"string"

Get Profiles from local segmentation

Retrieve a list of Profiles from a local (ad-hoc) segmentation.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_FROM_LOCAL_SEGMENTATION_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
path Parameters
UUID
required
string <uuid>

Local segmentation UUID

query Parameters
limit
integer <int32>
Default: 25

The maximum number of items to retrieve. This can be used for pagination.

offset
integer <int32>
Default: 0

The ID of the first item to retrieve. This is used for pagination. For example, to retrieve items starting at number 11, set offset to 10.

recognized
string
Default: "NONE"
Enum: "RECOGNIZED" "true" "ANONYMOUS" "false" "NONE"

Filter the results by Profile's anonymity status. true is the same as RECOGNIZED. false is the same as ANONYMOUS. When set to NONE, no filter is applied.

search
stringfield:value
Example: search=firstName:John

Filter the results by parameter values. field is the name of a field in the Profile.

If you enter a simple string (not a field:value pattern), the search will take the following parameters into account: email, first name, last name, UUID, custom parameters.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/crm/v1/segmentations/local/%7BUUID%7D/clients?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE&recognized=SOME_STRING_VALUE&search=firstName%3AJohn' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "customers": [
    ],
  • "all": 0,
  • "limit": 0,
  • "offset": 0,
  • "matching": 0
}

Get Profiles from segmentation

Retrieve a list of Profiles from a segmentation. Unlike ad-hoc segmentations, these are available from the Analytics > Segmentations menu.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_FROM_SEGMENTATION_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the segmentation

query Parameters
limit
integer <int32>
Default: 25

The maximum number of items to retrieve. This can be used for pagination.

offset
integer <int32>
Default: 0

The ID of the first item to retrieve. This is used for pagination. For example, to retrieve items starting at number 11, set offset to 10.

recognized
string
Default: "NONE"
Enum: "RECOGNIZED" "true" "ANONYMOUS" "false" "NONE"

Filter the results by Profile's anonymity status. true is the same as RECOGNIZED. false is the same as ANONYMOUS. When set to NONE, no filter is applied.

search
stringfield:value
Example: search=firstName:John

Filter the results by parameter values. field is the name of a field in the Profile.

If you enter a simple string (not a field:value pattern), the search will take the following parameters into account: email, first name, last name, UUID, custom parameters.

sortBy
stringfield:orderType

Choose a parameter to sort the results. field is the name of a field in the Profile. orderType can be ASC or DESC.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/crm/v1/segmentations/%7BUUID%7D/clients?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE&recognized=SOME_STRING_VALUE&search=firstName%3AJohn&sortBy=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "customers": [
    ],
  • "all": 0,
  • "limit": 0,
  • "offset": 0,
  • "matching": 0
}

Create local segmentation

Create a new local segmentation. Local segmentations are set up ad-hoc when you're using filters on the list of Profiles in CRM.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_FROM_LOCAL_SEGMENTATION_CLIENT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
query Parameters
recognized
string
Default: "NONE"
Enum: "RECOGNIZED" "true" "ANONYMOUS" "false" "NONE"

Filter the results by Profile's anonymity status. true is the same as RECOGNIZED. false is the same as ANONYMOUS. When set to NONE, no filter is applied.

Request Body schema: application/json

The body of this request contains a request to the analytics service.

object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
"e1ba2639-bab9-4951-a21b-1488b085b7b6"

Create materialization Deprecated

A segmentation's results change in real-time due to constant Profile activity.

A materialization allows you to take a "snapshot" of the segmentation that can be used for further work. The materialization includes the Profiles that the segmentation returned at the time this request was received.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_FROM_MATERIALIZATION_CLIENT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
Request Body schema: application/json
segment
string

UUID of the segmentation

Responses

Request samples

Content type
application/json
{
  • "segment": "string"
}

Response samples

Content type
application/json
{
  • "materializationId": 0,
  • "expiration": "2019-08-24T14:15:22Z",
  • "count": 0
}

List Profiles from a materialization Deprecated

You can retrieve the list of Profiles from a materialization.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_LIST_FROM_MATERIALIZATION_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_LIST

Authorizations:
path Parameters
materializationId
required
integer

ID of the materialization

query Parameters
limit
integer <int32>
Default: 25

The maximum number of items to retrieve. This can be used for pagination.

offset
integer <int32>
Default: 0

The ID of the first item to retrieve. This is used for pagination. For example, to retrieve items starting at number 11, set offset to 10.

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/crm/v1/clients/list/%7BmaterializationId%7D?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "materializationId": 0,
  • "customers": [
    ],
  • "offset": 0,
  • "limit": 0
}

Get Profile's last activity date

Retrieve the date of a Profile's last activity.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: CRM_DETAILS_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_INFO

Authorizations:
path Parameters
clientId
required
integer

Profile ID

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/crm/v1/clients/%7BclientId%7D/last-activity 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "last_activity_date": "2019-08-24T14:15:22Z"
}

Get all Profile notes

Retrieve all notes associated with a single profile.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: NOTES_SERVICE_ALL_NOTES_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_NOTES

Authorizations:
path Parameters
clientId
required
integer <int64>

Profile ID

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/notes-service/by-id/%7BclientId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Create a new note in the profile


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: NOTES_SERVICE_NOTE_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_NOTES

Authorizations:
path Parameters
clientId
required
integer <int64>

Profile ID

Request Body schema: application/json
subject
string

The title of the note

body
string

Text of the note

Responses

Request samples

Content type
application/json
{
  • "subject": "Note 1",
  • "body": "<h1>NOTE 1</h1>\\n<p>Some text</p>\\n<ul>\\n<li>1</li>\\n<li>2</li>\\n<li>3</li>\\n</ul>\\n<blockquote>Lorem ipsum in quote</blockquote>\\n<p><strong>Lorem ipsum in bold</strong></p>\\n"
}

Response samples

Content type
application/json
{
  • "body": "<h1>NOTE 1</h1>\\n<p>Some text</p>\\n<ul>\\n<li>1</li>\\n<li>2</li>\\n<li>3</li>\\n</ul>\\n<blockquote>Lorem ipsum in quote</blockquote>\\n<p><strong>Lorem ipsum in bold</strong></p>\\n",
  • "created": 1564646611.556,
  • "createdBy": "example@example.com",
  • "id": "69b0e925-086a-4964-b8dc-4c9e58213cf5",
  • "subject": "Note 1",
  • "updated": 1564646618.556,
  • "updatedBy": "example@example.com",
  • "userId": 11405
}

Get note

Retrieve a single note


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: NOTES_SERVICE_NOTE_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_NOTES

Authorizations:
path Parameters
clientId
required
integer <int64>

Profile ID

noteId
required
string

Note UUID

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/notes-service/by-id/%7BclientId%7D/%7BnoteId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Response samples

Content type
application/json
{
  • "body": "<h1>NOTE 1</h1>\\n<p>Some text</p>\\n<ul>\\n<li>1</li>\\n<li>2</li>\\n<li>3</li>\\n</ul>\\n<blockquote>Lorem ipsum in quote</blockquote>\\n<p><strong>Lorem ipsum in bold</strong></p>\\n",
  • "created": 1564646611.556,
  • "createdBy": "example@example.com",
  • "id": "69b0e925-086a-4964-b8dc-4c9e58213cf5",
  • "subject": "Note 1",
  • "updated": 1564646618.556,
  • "updatedBy": "example@example.com",
  • "userId": 11405
}

Update note

You can update an existing note.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: NOTES_SERVICE_NOTE_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_NOTES

Authorizations:
path Parameters
clientId
required
integer <int64>

Profile ID

noteId
required
string

Note UUID

Request Body schema: application/json
subject
string

The title of the note

body
string

Text of the note

Responses

Request samples

Content type
application/json
{
  • "subject": "Note 1",
  • "body": "<h1>NOTE 1</h1>\\n<p>Some text</p>\\n<ul>\\n<li>1</li>\\n<li>2</li>\\n<li>3</li>\\n</ul>\\n<blockquote>Lorem ipsum in quote</blockquote>\\n<p><strong>Lorem ipsum in bold</strong></p>\\n"
}

Response samples

Content type
application/json
{
  • "body": "<h1>NOTE 1</h1>\\n<p>Some text</p>\\n<ul>\\n<li>1</li>\\n<li>2</li>\\n<li>3</li>\\n</ul>\\n<blockquote>Lorem ipsum in quote</blockquote>\\n<p><strong>Lorem ipsum in bold</strong></p>\\n",
  • "created": 1564646611.556,
  • "createdBy": "example@example.com",
  • "id": "69b0e925-086a-4964-b8dc-4c9e58213cf5",
  • "subject": "Note 1",
  • "updated": 1564646618.556,
  • "updatedBy": "example@example.com",
  • "userId": 11405
}

Delete note

You can delete a note. This operation is irreversible.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: NOTES_SERVICE_NOTE_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: CLIENT_NOTES

Authorizations:
path Parameters
clientId
required
integer <int64>

Profile ID

noteId
required
string

Note UUID

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/notes-service/by-id/%7BclientId%7D/%7BnoteId%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_'

Log out a Profile

Log out a Profile when authenticated as a Synerise User or a Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: SAUTH_LOGOUT_CLIENT_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: SETTINGS_CUSTOMERS_IAM

path Parameters
clientID
required
string
Example: 434428563

The ID of the Profile

Request Body schema: application/json
action
string
Enum: "LOGOUT" "LOGOUT_WITH_SESSION_CLEARING"

Responses

Request samples

Content type
application/json
{
  • "action": "LOGOUT"
}

Response samples

Content type
application/json
{
  • "error": "string",
  • "message": "string",
  • "errors": [
    ],
  • "status": 0,
  • "timestamp": "string",
  • "path": "string",
  • "traceId": "string"
}

Analytics: Expressions

Create your own indicators based on mathematical formulas or calculations for profiles and events and use them as derived attributes

Get expressions

Retrieve a list of all expressions in the workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_LIST_EXPRESSION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CLIENT_ANALYTICS_PREVIEW

Authorizations:
query Parameters
filter
string
Default: "NONE"
Enum: "NONE" "CLIENT" "EVENT"

You can filter the results by expression type. NONE equals to "no filter".

offset
integer <int64>

Offset for pagination. The first item of the first page has the offset of 0.

page
integer <int32>

The number of the page to retrieve. The first page has the index 0. The indexes of the retrieved items are calculated from this parameter and the page size sent in size.

size
integer <int32>
Default: 20

The size of a page. The indexes of the retrieved items are calculated from this parameter and the page number sent in page.

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions?filter=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Add expression

Create a new expression.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
required
Event expression (object) or Profile attribute expression (object) (Expression)

Structure of the analysis

isVisibleForClientProfile
required
boolean

When set to true, information about this analysis can be shown in a profile's card. In the Synerise CRM, only aggregates, segmentations, and expressions can be shown.

Responses

Request samples

Content type
application/json
{
  • "analysis": {
    },
  • "isVisibleForClientProfile": true
}

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Delete expressions

Delete a number of expressions. This operation is irreversible.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
query Parameters
ids
required
string <uuid>

A list of expressions to delete, identified by UUID

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request DELETE 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions?ids=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Search expressions

Retrieve a list of expressions that include a specified string in the title. Note that this is a POST request.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
query Parameters
offset
integer <int64>

Offset for pagination. The first item of the first page has the offset of 0.

page
integer <int32>

The number of the page to retrieve. The first page has the index 0. The indexes of the retrieved items are calculated from this parameter and the page size sent in size.

size
integer <int32>
Default: 20

The size of a page. The indexes of the retrieved items are calculated from this parameter and the page number sent in page.

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
title
required
string

A string to search for in the titles of analytics

Responses

Request samples

Content type
application/json
{
  • "title": "string"
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Get expression projections

Retrieve a summary of all expressions in the Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CAMPAIGNS_RECOMMENDATIONS

Authorizations:
query Parameters
filter
string
Default: "NONE"
Enum: "NONE" "CLIENT" "EVENT"

You can filter the results by expression type. NONE equals to "no filter".

namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/projections?filter=SOME_STRING_VALUE&namespaceName=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
[
  • {
    }
]

Get expression

Retrieve the details of a single expression.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/%7BUUID%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "payload": {
    }
}

Update expression

Update an existing expression.

WARNING: The analysis object sent in this call overwrites the existing one. Any values (including params and filters) that are not included in the request body are deleted or set to default values.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
required
Event expression (object) or Profile attribute expression (object) (Expression)

Structure of the analysis

isVisibleForClientProfile
required
boolean

When set to true, information about this analysis can be shown in a profile's card. In the Synerise CRM, only aggregates, segmentations, and expressions can be shown.

Responses

Request samples

Content type
application/json
{
  • "analysis": {
    },
  • "isVisibleForClientProfile": true
}

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Delete expression

Delete an expression. This operation is irreversible.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/%7BUUID%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Duplicate expression

Create a copy of an existing expression.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/%7BUUID%7D/duplicate 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Preview expression

Preview the result of an expression in context of a profile. This request does not save the analysis in the database.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
clientId
required
integer

Profile ID

query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
required
Event expression (object) or Profile attribute expression (object) (Expression)

Structure of the analysis

isVisibleForClientProfile
required
boolean

When set to true, information about this analysis can be shown in a profile's card. In the Synerise CRM, only aggregates, segmentations, and expressions can be shown.

Responses

Request samples

Content type
application/json
{
  • "analysis": {
    },
  • "isVisibleForClientProfile": true
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "clientId": 0,
  • "expressionId": "98a623dd-0690-4acb-bbad-b1eda4955cc3",
  • "result": "string",
  • "title": "string",
  • "variables": [
    ]
}

Calculate profile card expressions

Calculate the results of expressions visible on a profile card.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CLIENT_ANALYTICS_PREVIEW

Authorizations:
path Parameters
clientId
required
integer

Profile ID

query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/clients/%7BclientId%7D/calculate?namespaceName=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Calculate expressions from card as profile

Calculate the results of expressions visible on a profile card in context of the currently authenticated profile.


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CLIENT_ANALYTICS_PREVIEW

Authorizations:
query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/clients/calculate?namespaceName=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Calculate expression for profile

Calculate the results of an existing expression in context of a single profile.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
clientId
required
integer

Profile ID

UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/%7BUUID%7D/client/%7BclientId%7D/calculate 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "clientId": 0,
  • "expressionId": "98a623dd-0690-4acb-bbad-b1eda4955cc3",
  • "result": "string",
  • "title": "string",
  • "variables": [
    ]
}

Calculate expression for profile with parameter override


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
clientId
required
integer

Profile ID

UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
Absolute (object) or Relative to current (object) or Relative/patterned (object) or Absolute/patterned (object)

Details of the date filter. The analysis results are calculated from data that matches the filter.

object

This object defines how to aggregate the data in an analysis.

object

Profile filter. This allows you to limit the calculation to profiles which match certain criteria.

Array of objects[ items ]

A list of dynamically modifiable variables that occur in this analysis

Responses

Request samples

Content type
application/json
{
  • "dateFilter": {
    },
  • "aggregateDataBy": {
    },
  • "filter": {
    },
  • "variables": [
    ]
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "clientId": 0,
  • "expressionId": "98a623dd-0690-4acb-bbad-b1eda4955cc3",
  • "result": "string",
  • "title": "string",
  • "variables": [
    ]
}

Calculate expression as profile

Calculate the results of an expression in context of the currently authenticated profile.


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/expressions/%7BUUID%7D/client/calculate 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "clientId": 0,
  • "expressionId": "98a623dd-0690-4acb-bbad-b1eda4955cc3",
  • "result": "string",
  • "title": "string",
  • "variables": [
    ]
}

Calculate expression as profile with parameter override

Calculate the results of a previously defined expression with custom filters.

This operation does not modify the original expression in any way.


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_EXPRESSION_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
Absolute (object) or Relative to current (object) or Relative/patterned (object) or Absolute/patterned (object)

Details of the date filter. The analysis results are calculated from data that matches the filter.

object

This object defines how to aggregate the data in an analysis.

object

Profile filter. This allows you to limit the calculation to profiles which match certain criteria.

Array of objects[ items ]

A list of dynamically modifiable variables that occur in this analysis

Responses

Request samples

Content type
application/json
{
  • "dateFilter": {
    },
  • "aggregateDataBy": {
    },
  • "filter": {
    },
  • "variables": [
    ]
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "clientId": 0,
  • "expressionId": "98a623dd-0690-4acb-bbad-b1eda4955cc3",
  • "result": "string",
  • "title": "string",
  • "variables": [
    ]
}

Analytics: Aggregates

Analyze event occurrences in a Profile context

Get aggregates

Retrieve a list of all aggregates in the Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_LIST_AGGREGATE_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CLIENT_ANALYTICS_PREVIEW

Authorizations:
query Parameters
offset
integer <int64>

Offset for pagination. The first item of the first page has the offset of 0.

page
integer <int32>

The number of the page to retrieve. The first page has the index 0. The indexes of the retrieved items are calculated from this parameter and the page size sent in size.

size
integer <int32>
Default: 20

The size of a page. The indexes of the retrieved items are calculated from this parameter and the page number sent in page.

sort
string
Enum: "name,asc" "name,desc" "isPredefinedAnalytic,asc" "isPredefinedAnalytic,desc" "isDynamicAnalytic,asc" "isDynamicAnalytic,desc" "created,asc" "created,desc" "title,asc" "title,desc"

Sorting order

namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates?offset=SOME_INTEGER_VALUE&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE&sort=SOME_STRING_VALUE&namespaceName=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Add aggregate

Create a new aggregate analysis.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_CREATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
required
object (Aggregate)

Structure of the analysis

isVisibleForClientProfile
required
boolean

When set to true, information about this analysis can be shown in a profile's card. In the Synerise CRM, only aggregates, segmentations, and expressions can be shown.

Responses

Request samples

Content type
application/json
{
  • "aggregate": {
    },
  • "isVisibleForClientProfile": true
}

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Delete aggregates

Delete a number of aggregates. This operation is irreversible.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
query Parameters
ids
required
string <uuid>

A list of aggregates to delete, identified by UUID

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request DELETE 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates?ids=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Search aggregates

Retrieve a list of aggregates that include a specified string in the title. Note that this is a POST request.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FILTER_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
query Parameters
offset
integer <int64>

Offset for pagination. The first item of the first page has the offset of 0.

page
integer <int32>

The number of the page to retrieve. The first page has the index 0. The indexes of the retrieved items are calculated from this parameter and the page size sent in size.

size
integer <int32>
Default: 20

The size of a page. The indexes of the retrieved items are calculated from this parameter and the page number sent in page.

sort
string
Enum: "name,asc" "name,desc" "isPredefinedAnalytic,asc" "isPredefinedAnalytic,desc" "isDynamicAnalytic,asc" "isDynamicAnalytic,desc" "created,asc" "created,desc" "title,asc" "title,desc"

Sorting order

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
title
required
string

A string to search for in the titles of analytics

Responses

Request samples

Content type
application/json
{
  • "title": "string"
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Get aggregate projections

Retrieve a summary of all aggregates in the Workspace.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_PROJECTION_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CAMPAIGNS_RECOMMENDATIONS

Authorizations:
query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/projections?namespaceName=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
[
  • {
    }
]

Get aggregate

Retrieve the details of a single aggregate.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/%7BUUID%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "createdBy": {
    },
  • "modifiedBy": {
    },
  • "aggregate": {
    },
  • "name": "string",
  • "description": "string",
  • "deleted": true,
  • "isVisibleForClientProfile": true,
  • "variables": [
    ],
  • "isDynamicAnalytic": true,
  • "isPredefinedAnalytic": true,
  • "analyticVersion": "string"
}

Update aggregate

Update an existing aggregate.

WARNING: The aggregate object sent in this call overwrites the existing one. Any values (including params and filters) that are not included in the request body are deleted or set to default values.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
required
object (Aggregate)

Structure of the analysis

isVisibleForClientProfile
required
boolean

When set to true, information about this analysis can be shown in a profile's card. In the Synerise CRM, only aggregates, segmentations, and expressions can be shown.

Responses

Request samples

Content type
application/json
{
  • "aggregate": {
    },
  • "isVisibleForClientProfile": true
}

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Delete aggregate

Delete an aggregate. This operation is irreversible.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_DELETE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request DELETE 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/%7BUUID%7D 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Duplicate aggregate

Create a copy of an existing aggregate.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_UPDATE

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/%7BUUID%7D/duplicate 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json
{
  • "httpStatus": 0,
  • "errorCode": "string",
  • "message": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "traceId": "string",
  • "help": "string"
}

Preview aggregate for profile

Preview the result of an aggregate in context of a single profile. This request does not save the analysis in the database.


  • API consumer who can use this method: Synerise User

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
clientId
required
integer

Profile ID

query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
required
object (Aggregate)

Structure of the analysis

isVisibleForClientProfile
required
boolean

When set to true, information about this analysis can be shown in a profile's card. In the Synerise CRM, only aggregates, segmentations, and expressions can be shown.

Responses

Request samples

Content type
application/json
{
  • "aggregate": {
    },
  • "isVisibleForClientProfile": true
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "aggregateId": "71d8973e-d665-45f6-9260-c96cc190809b",
  • "aggregateUuid": "0beb7c8a-c781-42f8-b3ae-f2a33b0e6342",
  • "clientId": 0,
  • "title": "string",
  • "result": "string",
  • "variables": [
    ],
  • "dateFilter": {
    }
}

Calculate profile card aggregates

Calculate the results of aggregates visible on a profile card.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CLIENT_ANALYTICS_PREVIEW

Authorizations:
path Parameters
clientId
required
integer

Profile ID

query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/clients/%7BclientId%7D/calculate?namespaceName=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Calculate Profile card aggregates as Profile

Calculate the results of aggregates visible on a profile card in context of the currently authenticated profile


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission groups which allow access to this method: ANALYTICS, CLIENT_ANALYTICS_PREVIEW

Authorizations:
query Parameters
namespaceName
string

Currently unused

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request GET 
  --url 'https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/clients/calculate?namespaceName=SOME_STRING_VALUE' 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "content": [
    ],
  • "pagination": {
    }
}

Calculate aggregate for profile

Calculate the results of an existing aggregate in context of a single profile.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

clientId
required
integer

Profile ID

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/%7BUUID%7D/client/%7BclientId%7D/calculate 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "aggregateId": "71d8973e-d665-45f6-9260-c96cc190809b",
  • "aggregateUuid": "0beb7c8a-c781-42f8-b3ae-f2a33b0e6342",
  • "clientId": 0,
  • "title": "string",
  • "result": "string",
  • "variables": [
    ],
  • "dateFilter": {
    }
}

Calculate aggregate for profile with period conditions

Calculate the results of an aggregate in context of a single profile. The results can be date-filtered and aggregated in time periods.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_HISTOGRAM_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

clientId
required
integer

Profile ID

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
Array of objects[ items ]

A list of dynamically modifiable variables that occur in this analysis

Absolute (object) or Relative to current (object) or Relative/patterned (object) or Absolute/patterned (object)

Details of the date filter. The analysis results are calculated from data that matches the filter.

object

This object defines how to aggregate the data in an analysis.

Responses

Request samples

Content type
application/json
{
  • "variables": [
    ],
  • "dateFilter": {
    },
  • "aggregateDataBy": {
    }
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "items": [
    ],
  • "metadata": {
    }
}

Calculate aggregate as profile with period conditions

Calculate the results of an aggregate in context of the currently authenticated profile. The results can be date-filtered and aggregated in time periods.


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_HISTOGRAM_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
Array of objects[ items ]

A list of dynamically modifiable variables that occur in this analysis

Absolute (object) or Relative to current (object) or Relative/patterned (object) or Absolute/patterned (object)

Details of the date filter. The analysis results are calculated from data that matches the filter.

object

This object defines how to aggregate the data in an analysis.

Responses

Request samples

Content type
application/json
{
  • "variables": [
    ],
  • "dateFilter": {
    },
  • "aggregateDataBy": {
    }
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "items": [
    ],
  • "metadata": {
    }
}

Calculate aggregate for profile with parameter override

In context of a single profile, calculate the results of a previously defined aggregate with custom filters.

This operation does not modify the original aggregate in any way.


  • API consumers who can use this method: Synerise User, Workspace (formerly Business Profile)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

clientId
required
integer

Profile ID

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
Absolute (object) or Relative to current (object) or Relative/patterned (object) or Absolute/patterned (object)

Details of the date filter. The analysis results are calculated from data that matches the filter.

object

This object defines how to aggregate the data in an analysis.

object

Profile filter. This allows you to limit the calculation to profiles which match certain criteria.

Array of objects[ items ]

A list of dynamically modifiable variables that occur in this analysis

Responses

Request samples

Content type
application/json
{
  • "dateFilter": {
    },
  • "aggregateDataBy": {
    },
  • "filter": {
    },
  • "variables": [
    ]
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "aggregateId": "71d8973e-d665-45f6-9260-c96cc190809b",
  • "aggregateUuid": "0beb7c8a-c781-42f8-b3ae-f2a33b0e6342",
  • "clientId": 0,
  • "title": "string",
  • "result": "string",
  • "variables": [
    ],
  • "dateFilter": {
    }
}

Calculate aggregate as profile

Calculate the results of an aggregate in context of the currently authenticated profile.


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Responses

Request samples

curl --request POST 
  --url https://api.synerise.com/analytics-backend/analytics/definitions-manager/aggregates/%7BUUID%7D/client/calculate 
  --header 'Authorization: Bearer _YOUR_JWT_TOKEN_' 
  --header 'Content-Type: SOME_STRING_VALUE'

Response samples

Content type
application/json;charset=UTF-8
{
  • "aggregateId": "71d8973e-d665-45f6-9260-c96cc190809b",
  • "aggregateUuid": "0beb7c8a-c781-42f8-b3ae-f2a33b0e6342",
  • "clientId": 0,
  • "title": "string",
  • "result": "string",
  • "variables": [
    ],
  • "dateFilter": {
    }
}

Calculate aggregate as profile with parameter override

Calculate the results of a previously defined aggregate with custom filters.

This operation does not modify the original aggregate in any way.


  • API consumer who can use this method: Profile (formerly client)

  • API key Permissions are assigned to API keys (for Profile and Workspace scopes) and dictate which operations are available when using a particular API key. In the application, you can manage those permissions in Settings > API Keys. Remember that Profile and Workspace API keys are separate entities.permission required: ANALYTICS_BACKEND_AGGREGATE_FOR_CLIENT_READ

  • User permissions are grouped and assigned to user roles. For each group, you can set separate permissions for the following operations: read, execute, create, edit, delete. In the application, they are available in Settings > Roles. To edit a role's permissions, hover over the role and click the "Permissions" button.User role permission group which allows access to this method: ANALYTICS

Authorizations:
path Parameters
UUID
required
string <uuid>

UUID of the analysis

header Parameters
Content-Type
required
string
Value: "application/json"

Mandatory header

Request Body schema: application/json
Absolute (object) or Relative to current (object) or Relative/patterned (object) or Absolute/patterned (object)

Details of the date filter. The analysis results are calculated from data that matches the filter.

object

This object defines how to aggregate the data in an analysis.

object

Profile filter. This allows you to limit the calculation to profiles which match certain criteria.

Array of objects[ items ]

A list of dynamically modifiable variables that occur in this analysis

Responses

Request samples

Content type
application/json
{
  • "dateFilter": {
    },
  • "aggregateDataBy": {
    },
  • "filter": {
    },
  • "variables": [
    ]
}

Response samples

Content type
application/json;charset=UTF-8
{
  • "aggregateId": "71d8973e-d665-45f6-9260-c96cc190809b",
  • "aggregateUuid": "0beb7c8a-c781-42f8-b3ae-f2a33b0e6342",
  • "clientId": 0,
  • "title": "string",
  • "result": "string",
  • "variables": [
    ],
  • "dateFilter": {
    }
}