Convert API (2.0.0)

Download OpenAPI specification:Download

Move your app forward with the Convert API. The Convert API allows you to manage your Convert Experiences projects using code. The REST API is an interface for managing and extending functionality of Convert. For example, instead of creating and maintaining projects using the Convert Experiences web dashboard you can create an experiment programmatically. Additionally, if you prefer to run custom analysis on experiment results you can leverage the API to pull data from Convert Experiences into your own workflow. If you do not have a Convert account already, sign up for a free developer account at https://www.convert.com/api/.

Convert API V1 is still available and documentation can be found here but using it is highly discouraged as it will be phased out in the future

API KEY Authentication

When using API keys, Convert API uses the Hash-based message authorization code (HMAC). Instead of having passwords that need to be sent over, we actually use Signing Method for API request validation. When you send HTTP requests to Convert, you sign the requests so that Convert can identify who sent them. So every request should contain Signature, calculated with the help of a Secret Key, Request URL, Request payload, Request Expiration time.

Changing any request value (or time expires) invalidates the signature.

Three headers have to be sent with each request in order for the request to be authenticated correctly by Convert API:

  • `Convert-Application-ID``: This is the ID you get from your account corresponding to the application created inside Convert App.
  • `Expires``: This is a UNIX timestamp after which the request signing expires. The closer in future the timestamp is, the sooner the request signature would be invalidated and the more secure would be
  • Authorization: The value of this one is as follows: Convert-HMAC-SHA256 Signature=[generated_hash]; The [generated_hash] is a request signature calculated applying sha256 hashing algorithm on ApplicationID, ExpiresTimestamp, RequestURL, RequestBody.

What could go wrong with authorization of the request? APP ID and APP Secret are right, but it is still UNAUTHORIZED!

  • Check your system time - the time of the system where signature is generated
  • Check the request duration between client and API and provide larger expiration time if it takes longer so that signature does not expire before reaching validation on Convert's servers
  • Make sure that stringified payload and Sign String are correct and do not contain additional spaces. For Javascript just use JSON.stringify(request) for request payload. For php use additional flags for json_encode: json_encode($request, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)).
  • Make sure you are using HMAC SHA256 to calculate the signature and provide this method (Convert-HMAC-SHA256) in the Authorization header value
  • Make sure that nothing changes the payload after signature generation but before sending it1

Example of the signature generation in Javascript:

var SignString  = ApplicationID + "\n" + ExpiresTimestamp + "\n"  + RequestURL + "\n" + RequestBody;
var hash = CryptoJS.HmacSHA256(SignString, ApplicationSecretKey);
var hashInHex = CryptoJS.enc.Hex.stringify(hash);
var Authorization = "Convert-HMAC-SHA256 Signature=" + hashInHex;

For the above example, the Authorization header would be "Authorization: Convert-HMAC-SHA256 Signature=${Authorization}"

Cookie Authentication

In order to use the Convert app, user has two options to authenticate requests:

  • Provide authorization token with each request works best for backend systems
  • Authenticate once using username/password/IDP provider and than send session token together with each request These endpoints will handle second case.

IMPORTANT: currently this is available only for Convert.com's own clients, all other third party clients need to authenticate using API KEY Authentication

Authentication Flow

Returns either the authentication cookie and user's data either request for more authentication data. The flow starts by user providing username/password after which, authentication is either successfully, either it needs more data, eg MFA code if user has MFA auth enabled

Request Body schema: application/json

A JSON object containing the login and password.

username
string
requestType
required
string
object (PasswordAuthData)

Data sent with every auth request

Responses

Request samples

Content type
application/json
Example
{
  • "username": "string",
  • "requestType": "initiatePasswordAuth",
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "auth-code": "NEW_PASSWORD_REQUIRED",
  • "message": "string",
  • "data": {
    }
}

Forgot Password

Sends email with password reset link to the given email if an account is found being registered in the system

Request Body schema: application/json

A JSON object containing the login of the user requesting password reset

username
string

The username that requests the password reset

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Confirm Password Reset

Endpoint used to complete password reset process, providing the code received by the user upon requesting it

Request Body schema: application/json

A JSON object containing the login of the user requesting password reset

authSub
string

The user internal ID that is sent from the system, part of password reset link, to user's email

code
required
string

Password reset code that is sent from the system, part of password reset link, to user's email

newPassword
required
string

New user password as provided. Maximum length is 99 characters

confirmNewPassword
required
string

New user's password confirmation, should match newPassword. Maximum length is 99 characters

token
string

Password reset token that is sent from the system, part of password reset link, to user's email

Responses

Request samples

Content type
application/json
{
  • "authSub": "string",
  • "code": "string",
  • "newPassword": "string",
  • "confirmNewPassword": "string",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "auth-code": "NEW_PASSWORD_REQUIRED",
  • "message": "string",
  • "data": {
    }
}

Logout

Endpoint used to invalidate authenticated sessions

Authorizations:
cookieAuthentication
Request Body schema: application/json

A JSON object containing the logout challenge name.

requestType
string
Enum: "currentSession" "otherSessions" "allSessions"

Responses

Request samples

Content type
application/json
{
  • "requestType": "currentSession"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Authentication Status

Endpoint used to check success of authentication status

Authorizations:
cookieAuthentication

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Forgot Password

Sends email with password reset link to the given email if an account is found being registered in the system

Request Body schema: application/json

A JSON object containing the login of the user requesting password reset

username
string

The username that requests the password reset

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Optional Fields

Each response returned by API endpoints can have fields that are not returned by default, for improved performance, in many use cases where those fields would not be needed.

Important: Object returned as a response of a created/update operation would include also the optional fields of that object.

Those requests which can return optional fields specify the list of possible values for those fields names in an include parameter, described either as part of the URL, either as part of the request body.

Example: The getExperiencesList endpoint has an include parameter described as part of the requestBody which would allow the return of some fields which would otherwise not be returned.

Fields mentioned in the include parameter can belong to Expandable Fields in which case that respective field would be expanded by default Example: include=['variations.changes'] for a getExperience operation , variations.changes is an expandable field of that response, which would than be expanded by default

Expandable Fields

Each response returned by API endpoints can have fields that reference other objects, which are not returned in full by default. For example, the getExperience operation returns and Experience object which contains a project field. By default, this is a string and represents the ID of the referenced project object.

In some use cases, more data related to the respective object might be needed. The Convert API offers the ability to expand certain fields into a more detailed object identified by the ID that would be sent by default.

The expanded object is the same object that the get[Object] operation would return, not having though any of the Optional fields

User

Authenticated user related endpoints

AccessRoles List

returns a list of access roles together with their permissions that are applied system wide

Authorizations:
requestSigningcookieAuthentication

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get User

Get authenticated user's data Note: This is only available for users authenticated via Cookie Authentication

Authorizations:
requestSigningcookieAuthentication

Responses

Response samples

Content type
application/json
{
  • "profileData": {
    },
  • "preferences": {
    },
  • "isSudo": true,
  • "mfa_backup_codes": [ ]
}

Update User

Updates user's profile data, except preferences which are handled through separate /user/preferences endpoint

Authorizations:
requestSigningcookieAuthentication
Request Body schema: application/json

User profile properties that can be updated

firstName
string <= 200 characters

User's first name

lastName
string <= 200 characters

User's last name

currentPassword
string <= 25 characters

Current user's password, needed in order to proceed with password change

newPassword
string <= 25 characters

New user password as provided; if both newPassword and confirmPassword are given, password will be validated and eventually updated

confirmPassword
string <= 25 characters

New user's password confirmation, should match newPassword

email
string <email> <= 100 characters

User's email address. currentPassword field should be sent along with this field.

any

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "currentPassword": "string",
  • "newPassword": "string",
  • "confirmPassword": "string",
  • "email": "user@example.com",
  • "mfa": {
    }
}

Response samples

Content type
application/json
{
  • "profileData": {
    },
  • "preferences": {
    },
  • "isSudo": true,
  • "mfa_backup_codes": [ ]
}

Confirm Email

Endpoint used to complete the email change process, providing the code received by the user upon requesting it

Authorizations:
requestSigningcookieAuthentication
Request Body schema: application/json

Request for confirming user email's change

code
required
string

The security code received via email, to the new email address

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "profileData": {
    },
  • "preferences": {
    },
  • "isSudo": true,
  • "mfa_backup_codes": [ ]
}

Update User Preferences

Updates user's preferences like persistent display options, notifications, in app settings etc

Authorizations:
requestSigningcookieAuthentication
Request Body schema: application/json

A JSON object containing user's preferences data

object
object
object or null
notificationsSeen
Array of strings
Items Value: "TODO-define-it"
object
mfaEnabled
boolean

Flag indicating whether user has MFA auth enabled or not

Responses

Request samples

Content type
application/json
{
  • "editorSettings": {
    },
  • "displaySettings": {
    },
  • "uiSettings": {
    },
  • "notificationsSeen": [
    ],
  • "generalSettings": {
    },
  • "mfaEnabled": true
}

Response samples

Content type
application/json
{
  • "profileData": {
    },
  • "preferences": {
    },
  • "isSudo": true,
  • "mfa_backup_codes": [ ]
}

Get MFA Secret

Get authenticated user's MFA secret needed to create an account in an authenticator app like Google Authenticator It can be used to generate a QR code which is easier read by authenticator apps

Authorizations:
requestSigningcookieAuthentication

Responses

Response samples

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

Demo Project

Accepts Demo projects to be visible by this user, endpoint used for Convert UI

Authorizations:
requestSigningcookieAuthentication

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Accounts

Account is the entity that contains all data. An account is owned by an user and in which more other users can have different permissions, account wide or at project level

List of accounts

Returns a list of all the accounts the authenticated user has access to. In case of authenticating through API keys, user has access to only one account, which is the one connected to the API key In case of authenticating through username/password, user can have access to multiple accounts

Authorizations:
requestSigningcookieAuthentication

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Billing Plans List

Returns the list of active billing plans that an account can subscribe to

Authorizations:
requestSigningcookieAuthentication

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Account Live Data

Returns the last 100 tracking events for the given account.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account to be retrieved

Request Body schema: application/json

Filter Projects Live Data list by projects & methods

event_types
Array of strings or null (LiveDataEventTypes)
Enum: "view_experience" "conversion" "transaction"
projects
Array of integers or null

List of projects id to get data by

expand
Array of strings or null (LiveDataExpandFields)
Enum: "custom_segments" "experiences" "experiences.variation" "conversion.goals" "project"

Specify fields that would be expanded

Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "event_types": [
    ],
  • "projects": [
    ],
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Account Change History

Returns the historic list of changes the authenticated user has access to;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

Filter Projects history list by projects & methods

onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

methods
Array of strings or null (ChangeHistoryMethods)
Enum: "api" "app"
projects
Array of integers or null

List of projects id to get data by

objects
Array of strings or null (ChangeHistoryObjectTypes)
Enum: "account" "audience" "feature" "collaborator" "domain" "goal" "hypothesis" "experience" "report" "change" "variation" "project" "tag"

List of objects to get data by

sort_by
string or null
Default: "timestamp"
Enum: "timestamp" "project_id" "event" "object"

A value to sort history list by specific field(s)

Defaults to timestamp if not provided

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "page": 1,
  • "sort_direction": "asc",
  • "results_per_page": 30,
  • "methods": [
    ],
  • "projects": [
    ],
  • "objects": [
    ],
  • "sort_by": "timestamp"
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Account active & completed experiences

Get a list of active and completed experiences from all projects inside an account, which match the filters provided

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json
onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

projects
Array of integers or null

Project IDs list to be used to filter experiences

sort_by
string or null
Default: "id"
Enum: "id" "conversions" "improvement" "name" "start_time" "end_time" "status" "project_id" "primary_goal"

A value used to sort experiences by specific field

Defaults to id if not provided

search
string or null

A search string that would be used to search against Experience's name and description

type
Array of strings or null (ExperienceTypes)
Enum: "a/b" "a/a" "mvt" "split_url" "multipage" "deploy" "a/b_fullstack" "feature_rollout"

The type of the experiences to be returned; either of the below can be provided

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

include
Array of strings (ExperienceIncludeFields)
Items Enum: "alerts" "goals" "stats" "variations" "variations.changes" "min_running_timestamp" "max_running_timestamp" "audiences" "locations"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceExpandFields)
Items Enum: "project" "audiences" "goals" "locations" "variations" "variations.changes" "tags"

Specifies the list of fields which would be expanded in the response. Otherwise, only their id would be returned. Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "projects": [
    ],
  • "sort_by": "id",
  • "search": "string",
  • "type": [
    ],
  • "page": 1,
  • "include": [
    ],
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Account Details

Returns Accounts details

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

query Parameters
include
Array of strings (AccountDetailsIncludeFields)
Items Value: "stats"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Account Details

Update given account details and returns updated Accounts details

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

A JSON object containing account details to be updated

accountType
string

Type of the account. Main accounts can create sub-accounts. All the billing quotas of the parent account will be the max sum that child accounts can get. For example, if the parent account has 20M Tested Users included, and this has two sub-accounts, the sum of the two sub-accounts quotas of tested visitors cannot be more than 20M Tested Users.

name
string <= 200 characters

Account friendly name

object

Various Account level settings that can be controlled by the user

object

Billing related data and settings

Responses

Request samples

Content type
application/json
Example
{
  • "accountType": "main",
  • "name": "string",
  • "settings": {
    },
  • "billing": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create Sub Account

Create a sub-account under the main account identified by the given account_id

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the parent account under which the sub-account is being created.

Request Body schema: application/json

A JSON object containing sub account details to be updated

name
required
string <= 200 characters

Account friendly name

object

Various Account level settings that can be controlled by the user

required
object
userName
required
string

Name of the user that would own this account.

userEmail
required
string

Email of the user that would own this account. If the an user exists with that email, the respective user would be used. Otherwise, a new user would get created.

sendUserEmail
boolean
Default: false

Flag indicating whether an email to be sent or not to the user, notifying them that an account was created for them by main account.

An email with a complete sign-up link would be sent regardless if the user does not exist into the system and gets created.

customEmailText
string <= 1024 characters

Custom text to be appended to the email that gets sent to the user if sendUserEmail = true

Responses

Request samples

Content type
application/json
{
  • "accountType": "main",
  • "name": "string",
  • "settings": {
    },
  • "billing": {
    },
  • "userName": "string",
  • "userEmail": "string",
  • "sendUserEmail": false,
  • "customEmailText": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Account Addons

Request account addons

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account for which the addons will be requested

Request Body schema: application/json

A JSON object containing a list of addons to be requested

addon
required
string (AccountAddonsTypes)
Enum: "one_time_convert_launch" "conversionXl_mini_course" "convert_remote_1h" "goodUi_annual_solo"
collaborator_email
string <= 100 characters

Collaborator's email in case this addon is requested for a collaborator

collaborator_name
string <= 200 characters

Collaborator's name in case this addon is requested for a collaborator

Responses

Request samples

Content type
application/json
{
  • "addon": "one_time_convert_launch",
  • "collaborator_email": "string",
  • "collaborator_name": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Payment Setup

Starts a stripe payment setup session and returns the token needed on frontend to complete the necessary authorisation.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account for which the payment setup will be started

Request Body schema: application/json

A JSON object containing required parameters

object or null (StartPaymentSetupRequestData)

Responses

Request samples

Content type
application/json
{ }

Response samples

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

AI content

AI text variants

Creates variants of a given text using Generative AI, according to the provided parametrs

Authorizations:
cookieAuthentication
path Parameters
account_id
required
integer

ID of the account under which the api call executes

Request Body schema: application/json
required
object

List of parameters to customize how the AI engine generates the results

content
required
string

Content to re-write

openAI_Key
string

OpenAi access key. When provided, a larger context content can be used (up to the model's limit - we will call GPT-4 mode of openAi)

context_content
string

Content to be added to the AI language model in order to improve accuracy of the generation. When no openAI_Key key is provided, this is gonna be trimmed to the first 200 words

previousResponses
Array of strings

List of previous responses that have been received from the endpoint, in order to generate a different variant.

principle_class
required
any

Framework model from which principles used for text generation are selected

principle
required
string (CialdiniPrinciples)
Enum: "reciprocity" "commitment_and_consistency" "social_proof" "authority" "unity" "scarcity" "sympathy"

One of Robert Cialdini's principles.

Responses

Request samples

Content type
application/json
Example
{
  • "parameters": {
    },
  • "content": "string",
  • "openAI_Key": "string",
  • "context_content": "string",
  • "previousResponses": [
    ],
  • "principle_class": "cialdini",
  • "principle": "reciprocity"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Collaborators

Convert Experiences organizes customer data into Accounts(which are billable entities) and gives Users access to accounts under different roles. By default the user that initially setups an account, will get access to that account as the owner of it. Other users can be invited to get access to specific/all projects inside that account becoming this way Collaborators of that Account

Users Accesses

Returns the list of users collaborating in the account

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

query Parameters
expand
Array of strings (AccountUserAccessesExpandFields)
Items Value: "accesses.project"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Update User Accesses

Update given accesses of an user inside the account.

When updating pending accesses, email needs to be provided to identify the user receiving them. A new message would be sent to user's email each time pending access are updated.

When updating active accesses, user_id needs to be provided to identify the user receiving them.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

Account User accesses that can be updated

Any of
user_id
string or null

The ID of the User in case the access invitation was accepted by the user; null otherwise

first_name
string <= 200 characters

Collaborator's first name

last_name
string <= 200 characters

Collaborator's last name

Array of objects

List of projects the user can access

custom_message
string <= 200 characters

Custom message to be sent to invitee

expand
Array of strings (AccountUserAccessesExpandFields)
Items Value: "accesses.project"

Specifies the list of fields which would be expanded in the response. Otherwise, only their id would be returned. Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "first_name": "string",
  • "last_name": "string",
  • "accesses": [
    ],
  • "custom_message": "string",
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Add User Accesses

Add's user accesses in the given account

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

Account User accesses that will be created

first_name
string <= 200 characters

Collaborator's first name

last_name
string <= 200 characters

Collaborator's last name

required
Array of objects

List of projects the user can access

email
required
string <= 100 characters

Collaborator's email

custom_message
string <= 200 characters

Custom message to be sent to invitee

expand
Array of strings (AccountUserAccessesExpandFields)
Items Value: "accesses.project"

Specifies the list of fields which would be expanded in the response. Otherwise, only their id would be returned. Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "first_name": "string",
  • "last_name": "string",
  • "accesses": [
    ],
  • "email": "string",
  • "custom_message": "string",
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete User Accesses

Deletes given accesses of an user inside the account

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

Account User accesses to be deleted

One of
user_id
string or null

The ID of the User in case the access invitation was accepted by the user; null otherwise

Array of objects

List of projects the user can access

Responses

Request samples

Content type
application/json
Example
{
  • "user_id": "string",
  • "accesses": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Check Partner

Checks if partner is a valid one for extended API access

Authorizations:
requestSigningcookieAuthentication
Request Body schema: application/json

Request to verify a partner's validity

email
string <= 100 characters

Partner's email

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "email": "string",
  • "allowed": true,
  • "alreadyGranted": true
}

Accept Invitation

Endpoint used to accept collaborators invitation. New user account will be created if provided hash token is valid. A temporary password will be sent to the email which was used for an invitation.

Request Body schema: application/json

A JSON object containing the hash token sent to user email

hash
string <= 200 characters

The hash token sent to user who has been invited to be a collaborator

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

API Keys

API Keys are used to authenticate requests from Server side applications that access this API

API Keys List

Returns a list of API keys defined to access one or more projects in the given account

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create API Key

Creates an API key and return it back to the client

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

Create API Key schema

name
string <= 100 characters

Name of the API key - used for easier identification in the system

projects
Array of numbers or null

List of project ID's this key has access to. If no projects given, the key has access to all projects in the given account

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "projects": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "projects": [
    ],
  • "key_id": "string",
  • "key_secret": "string"
}

Delete API Key

Deletes an API key

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

key_id
required
string

ID of the API key to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Projects

Once you start using Convert Experiences, you will have a growing number of experiences to manage. Projects help you keep everything organized across multiple sites. Each project has its own tracking code, set of experiences, and set of collaborators. For example, if you run experiences on multiple domains, you can assign a unique project for each domain. Read here some things you need to know about how a project behaves.

Projects List

The Projects endpoint returns the list of all projects that belong to the given account and to which the authenticated user has access to

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

Filter Projects list by search & status

onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

status
Array of strings or null
Enum: "active" "inactive"

Filters projects by their status

search
string or null <= 200 characters

A search string that would be used to search against Project's name and description

only
Array of integers or null <= 100 items

Only retrieve projects with the given ids.

except
Array of integers <= 100 items

Except projects with the given ids.

sort_by
string or null
Default: "id"
Enum: "id" "active_tests" "project_name" "project_type" "status" "used_visitors"

A value to sort projects by specific field(s)

Defaults to id if not provided

project_type
Array of strings or null
Default: ["web"]
Enum: "web" "fullstack"

Filters projects by their type.

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

include
Array of strings (ProjectsListIncludeField)
Items Enum: "global_javascript" "domains" "stats.usage" "stats.active_experiences_count" "stats.experiences_count" "stats.segments_count" "stats.active_segments_count" "stats.active_goals_count" "stats.google_analytics" "default_goals" "default_audiences" "default_locations"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

expand
Array of strings (ProjectsListExpandFields)
Items Enum: "default_goals" "default_audiences" "default_locations"

Specifies the list of fields to be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "status": [
    ],
  • "search": "string",
  • "only": [
    ],
  • "except": [
    ],
  • "sort_by": "id",
  • "project_type": [
    ],
  • "page": 1,
  • "include": [
    ],
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Project Change History

Returns the historic list of changes the authenticated user has access to under specific project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

Request Body schema: application/json

Filter Project history list by project entities & methods

onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

methods
Array of strings or null (ChangeHistoryMethods)
Enum: "api" "app"
objects
Array of strings or null (ChangeHistoryObjects)
Enum: "audience" "feature" "domain" "goal" "hypothesis" "experience" "tag"
audiences
Array of integers or null <= 100 items

List of audiences id to get data by

goals
Array of integers or null <= 100 items

List of goals id to get data by

hypotheses
Array of integers or null <= 100 items

List of hypotheses id to get data by

domains
Array of integers or null <= 100 items

List of domains id to get data by

tags
Array of integers or null <= 100 items

List of tags id to get data by

experiences
Array of integers or null <= 100 items

List of experiences id to get data by

sort_by
string or null
Default: "timestamp"
Enum: "timestamp" "project_id" "event" "object"

A value to sort history list by specific field(s)

Defaults to timestamp if not provided

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "page": 1,
  • "sort_direction": "asc",
  • "results_per_page": 30,
  • "methods": [
    ],
  • "objects": [
    ],
  • "audiences": [
    ],
  • "goals": [
    ],
  • "hypotheses": [
    ],
  • "domains": [
    ],
  • "tags": [
    ],
  • "experiences": [
    ],
  • "sort_by": "timestamp"
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Project

This returns a project looking it up by its ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

query Parameters
include
Array of strings (ProjectIncludeFields)
Items Enum: "global_javascript" "domains" "stats.usage" "stats.active_experiences_count" "stats.experiences_count" "stats.segments_count" "stats.active_segments_count" "stats.active_goals_count" "stats.google_analytics" "default_goals" "default_audiences" "default_locations"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

expand
Array of strings (ProjectExpandFields)
Items Enum: "default_goals" "default_audiences" "default_locations"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Response samples

Content type
application/json
{
  • "global_javascript": "string",
  • "name": "string",
  • "project_type": "web",
  • "reporting_settings": {
    },
  • "settings": {
    },
  • "integrations_settings": {
    },
  • "status": "active",
  • "cname_domains": [
    ],
  • "environments": {
    },
  • "default_goals": [
    ],
  • "default_audiences": [
    ],
  • "default_locations": [
    ],
  • "id": 0,
  • "accessRole": "owner",
  • "owner_email": "string",
  • "account_id": 0,
  • "created_at": 0,
  • "modified_at": 0,
  • "tracking_snippet": "string",
  • "type": "own",
  • "stats": {
    },
  • "domains": [
    ],
  • "sdk_key": "string"
}

Create Project

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

Request Body schema: application/json

Create Project schema

global_javascript
string or null

The global javascript code that will be loaded on all pages where the tracking script is installed, prior do processing any of experiences, goals, audiences etc.

name
required
string <= 200 characters

Name of the project.

project_type
string
Default: "web"
Enum: "web" "fullstack"

Value which describes project product type.

object

Project settings used for reporting

object

General project's settings

object

This holds project wide settings used by integrations

status
string (ProjectStatuses)
Enum: "active" "inactive" "suspended"

The project's status, one of the following.

Array of objects <= 1 items

List of domains that are cName-d to Convert servers and which are used to send tracking requests through

object
Default: {"live":"Live","staging":"Staging"}

A user-defined key-value object which describes environments available for the project. Only for "fullstack" project.

Array of integers or SimpleGoal (object) (SimpleGoalExpandable)

List of default goals for this project

Array of integers or SimpleAudience (object) (SimpleAudienceExpandable)

List of default audiences for this project

Array of integers or SimpleLocation (object) (SimpleLocationExpandable)

List of default locations for this project

Array of objects (DomainToCreate)

The list of websites included in this project.

include
Array of strings (ProjectsListIncludeField)
Items Enum: "global_javascript" "domains" "stats.usage" "stats.active_experiences_count" "stats.experiences_count" "stats.segments_count" "stats.active_segments_count" "stats.active_goals_count" "stats.google_analytics" "default_goals" "default_audiences" "default_locations"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

expand
Array of strings (ProjectsListExpandFields)
Items Enum: "default_goals" "default_audiences" "default_locations"

Specifies the list of fields to be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "global_javascript": "string",
  • "name": "string",
  • "project_type": "web",
  • "reporting_settings": {
    },
  • "settings": {
    },
  • "integrations_settings": {
    },
  • "status": "active",
  • "cname_domains": [
    ],
  • "environments": {
    },
  • "default_goals": [
    ],
  • "default_audiences": [
    ],
  • "default_locations": [
    ],
  • "domains": [
    ],
  • "include": [
    ],
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "global_javascript": "string",
  • "name": "string",
  • "project_type": "web",
  • "reporting_settings": {
    },
  • "settings": {
    },
  • "integrations_settings": {
    },
  • "status": "active",
  • "cname_domains": [
    ],
  • "environments": {
    },
  • "default_goals": [
    ],
  • "default_audiences": [
    ],
  • "default_locations": [
    ],
  • "id": 0,
  • "accessRole": "owner",
  • "owner_email": "string",
  • "account_id": 0,
  • "created_at": 0,
  • "modified_at": 0,
  • "tracking_snippet": "string",
  • "type": "own",
  • "stats": {
    },
  • "domains": [
    ],
  • "sdk_key": "string"
}

Update Project

Allows creation of a new project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer
Request Body schema: application/json

Update project schema

global_javascript
string or null

The global javascript code that will be loaded on all pages where the tracking script is installed, prior do processing any of experiences, goals, audiences etc.

name
string <= 200 characters

Name of the project.

project_type
string
Default: "web"
Enum: "web" "fullstack"

Value which describes project product type.

object

Project settings used for reporting

object

General project's settings

object

This holds project wide settings used by integrations

status
string (ProjectStatuses)
Enum: "active" "inactive" "suspended"

The project's status, one of the following.

Array of objects <= 1 items

List of domains that are cName-d to Convert servers and which are used to send tracking requests through

object
Default: {"live":"Live","staging":"Staging"}

A user-defined key-value object which describes environments available for the project. Only for "fullstack" project.

Array of integers or SimpleGoal (object) (SimpleGoalExpandable)

List of default goals for this project

Array of integers or SimpleAudience (object) (SimpleAudienceExpandable)

List of default audiences for this project

Array of integers or SimpleLocation (object) (SimpleLocationExpandable)

List of default locations for this project

Array of integers or DomainToCreate (object) (DomainExpandableRequest)

The list of domains included in this project. If a domain ID is provided, that domain will just be updated Otherwise the domain will be created.

Caution: Any domain not in the provided list would be deleted from the project

include
Array of strings (ProjectsListIncludeField)
Items Enum: "global_javascript" "domains" "stats.usage" "stats.active_experiences_count" "stats.experiences_count" "stats.segments_count" "stats.active_segments_count" "stats.active_goals_count" "stats.google_analytics" "default_goals" "default_audiences" "default_locations"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

expand
Array of strings (ProjectsListExpandFields)
Items Enum: "default_goals" "default_audiences" "default_locations"

Specifies the list of fields to be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "global_javascript": "string",
  • "name": "string",
  • "project_type": "web",
  • "reporting_settings": {
    },
  • "settings": {
    },
  • "integrations_settings": {
    },
  • "status": "active",
  • "cname_domains": [
    ],
  • "environments": {
    },
  • "default_goals": [
    ],
  • "default_audiences": [
    ],
  • "default_locations": [
    ],
  • "domains": [
    ],
  • "include": [
    ],
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "global_javascript": "string",
  • "name": "string",
  • "project_type": "web",
  • "reporting_settings": {
    },
  • "settings": {
    },
  • "integrations_settings": {
    },
  • "status": "active",
  • "cname_domains": [
    ],
  • "environments": {
    },
  • "default_goals": [
    ],
  • "default_audiences": [
    ],
  • "default_locations": [
    ],
  • "id": 0,
  • "accessRole": "owner",
  • "owner_email": "string",
  • "account_id": 0,
  • "created_at": 0,
  • "modified_at": 0,
  • "tracking_snippet": "string",
  • "type": "own",
  • "stats": {
    },
  • "domains": [
    ],
  • "sdk_key": "string"
}

Delete Project

Deletes an existing project from the given account.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Project Live Data

Returns the list of last 100 Live Data(tracking events) from the given project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project for which live data is returned

Request Body schema: application/json

Filter Experiences Live Data list by experiences & methods

experiences
Array of integers or null

List of experiences ids to get data by

event_types
Array of strings or null (LiveDataEventTypes)
Enum: "view_experience" "conversion" "transaction"
goals
Array of integers or null <= 20 items

List of goals id to get data by

expand
Array of strings or null (LiveDataExpandFields)
Enum: "custom_segments" "experiences" "experiences.variation" "conversion.goals" "project"

Specify fields that would be expanded

Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "experiences": [
    ],
  • "event_types": [
    ],
  • "goals": [
    ],
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Generate Debug Token

This returns a project debug token

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

SDK Keys

SDK Keys List

Returns a list of SDK keys defined to access project data in the given account

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create SDK Key

Creates an SDK key and return it back to the client

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

Request Body schema: application/json

Create SDK Key schema

name
required
string <= 100 characters

Name of the Sdk key - used for easier identification in the system

sdk_secret
string >= 64 characters

Sdk key secret. If null then sdk key can be used without authentication

has_secret
boolean
Default: true

Whether sdk key has secret to authenticate or make it public without key-secret authentication

environment
required
string

Environment where this experience will run. It has to be one of the environments defined at the project level

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "sdk_secret": "stringstringstringstringstringstringstringstringstringstringstri",
  • "has_secret": true,
  • "environment": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "sdk_key": "string",
  • "sdk_secret": "string",
  • "environment": "string"
}

Delete SDK Key

Deletes an SDK key

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

sdk_key
required
string

ID of the SDK key to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Experiences

Convert Experiences provides a couple different experiences types. A/B, Split URL, Multivariate (MVT), Deploys, A/A and Multi-page (funnel) testing. To learn more, see Six experience types in Convert Experiences.

Experiences List

Get a list of all experiences inside a project, which match the filters provided

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json
onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

goal_id
integer or null

Goal ID to be used for fetching experience's stats. Only applicable for the experiences that have access to a report. Defaults to primary experience's goal if none given.

sort_by
string or null
Default: "id"
Enum: "id" "conversions" "improvement" "name" "start_time" "end_time" "status" "primary_goal" "key"

A value used to sort experiences by specific field

Defaults to id if not provided

search
string or null <= 200 characters

A search string that would be used to search against Experience's name and description

status
Array of strings or null (ExperienceStatuses)
Enum: "draft" "active" "paused" "completed" "scheduled" "archived" "deleted"

The status of the experiences to be returned; either of the below can be provided

type
Array of strings or null (ExperienceTypes)
Enum: "a/b" "a/a" "mvt" "split_url" "multipage" "deploy" "a/b_fullstack" "feature_rollout"

The type of the experiences to be returned; either of the below can be provided

tags
Array of integers or null

The list of tag ID's used to filter the list of returned experiences

audiences
Array of integers or null

The list of audience ID's used to filter the list of returned experiences

goals
Array of integers or null

The list of goal ID's used to filter the list of returned experiences

features
Array of integers or null

The list of feature ID's used to filter the list of returned experiences

environments
Array of strings or null

The list of environments used to filter the list of returned experiences

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

include
Array of strings (ExperienceIncludeFields)
Items Enum: "alerts" "goals" "stats" "variations" "variations.changes" "min_running_timestamp" "max_running_timestamp" "audiences" "locations"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceExpandFields)
Items Enum: "project" "audiences" "goals" "locations" "variations" "variations.changes" "tags"

Specifies the list of fields which would be expanded in the response. Otherwise, only their id would be returned. Read more in the section related to Expanding Fields

only
Array of integers or null <= 100 items

Only retrieve experiences with the given ids.

except
Array of integers <= 100 items

Except experiences with the given ids.

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "goal_id": 0,
  • "sort_by": "id",
  • "search": "string",
  • "status": [
    ],
  • "type": [
    ],
  • "tags": [
    ],
  • "audiences": [
    ],
  • "goals": [
    ],
  • "features": [
    ],
  • "environments": [
    ],
  • "page": 1,
  • "include": [
    ],
  • "expand": [
    ],
  • "only": [
    ],
  • "except": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Experience

Get an experience with a given ID from a given project ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience to be retrieved

query Parameters
include
Array of strings (ExperienceIncludeFields)
Items Enum: "alerts" "goals" "stats" "variations" "variations.changes" "min_running_timestamp" "max_running_timestamp" "audiences" "locations"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceExpandFields)
Items Enum: "project" "audiences" "goals" "locations" "variations" "variations.changes" "tags"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "project": 0,
  • "alerts": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "multipage_pages": [
    ],
  • "customizations": [
    ],
  • "stats": {
    },
  • "variations": [
    ],
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "screenshots_info": [
    ],
  • "environments": [
    ]
}

Get Experience by Key

Get an experience with a given key from a given project ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_key
required
string

The key of the experience to be retrieved

query Parameters
include
Array of strings (ExperienceIncludeFields)
Items Enum: "alerts" "goals" "stats" "variations" "variations.changes" "min_running_timestamp" "max_running_timestamp" "audiences" "locations"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceExpandFields)
Items Enum: "project" "audiences" "goals" "locations" "variations" "variations.changes" "tags"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "project": 0,
  • "alerts": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "multipage_pages": [
    ],
  • "customizations": [
    ],
  • "stats": {
    },
  • "variations": [
    ],
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "screenshots_info": [
    ],
  • "environments": [
    ]
}

Create Experience

Creates an experience inside a give project ID.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

query Parameters
include
Array of strings (ExperienceIncludeFields)
Items Enum: "alerts" "goals" "stats" "variations" "variations.changes" "min_running_timestamp" "max_running_timestamp" "audiences" "locations"

Specifies the list of optional objects which would be included in the response.

Read more in the section related to Expanding Fields

expand
Array of strings (ExperienceExpandFields)
Items Enum: "project" "audiences" "goals" "locations" "variations" "variations.changes" "tags"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json
description
string <= 500 characters

The description given by the user for the experience. It could be for instance a memo on what the experience is willing to achieve

start_time
integer or null

The timestamp of the moment when the experience was first started, in UTC time (it's 0 if it wasn't started yet)

end_time
integer or null

The timestamp of the moment when the experience was stopped, in UTC time (it's 0 if it wasn't stopped yet)

global_js
string

Global Experience's JavaScript that will run for this experience before its changes are applied

global_css
string

Global Experience's StyleSheet that will run for this experience before its changes are applied

name
required
string <= 100 characters

Experience's name

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

primary_goal
integer

ID of primary goal attached to this experience, all automations on reporting(if available) will be computed based on this goal

objective
string or null <= 5000 characters

Experience's objective

object (ExperienceSettings)

Experience's settings list

object or null

The set of rules that decide on which pages is the experiment firing, in case locations is not being used; Both Include and exclude can contain same type of rules. Out of all possible rule elements available only the following subset is allowed for Site Area: url, url_with_query,query_string, page_tag_page_type, page_tag_category_id, page_tag_category_name, page_tag_product_sku, page_tag_product_name, page_tag_product_price, page_tag_customer_id, page_tag_v1, page_tag_v2, page_tag_v3, page_tag_v4"

status
required
string (ExperienceStatuses)
Enum: "draft" "active" "paused" "completed" "scheduled" "archived" "deleted"
traffic_distribution
number decimal places <= 2 [ 0 .. 100 ]

Traffic distribution percentage

type
required
string (ExperienceTypes)
Enum: "a/b" "a/a" "mvt" "split_url" "multipage" "deploy" "a/b_fullstack" "feature_rollout"

Describes experience's type. "a/b_fullstack", "feature_rollout" experiences can be created only under fullstack projects type.

url
required
string <uri> <= 2048 characters

The URL loaded inside the Visual Editor in order to create changes visually.

version
number

Experience's version number

Array of ExperienceIntegrationBaidu (object) or ExperienceIntegrationClicktale (object) or ExperienceIntegrationClicky (object) or ExperienceIntegrationCnzz (object) or ExperienceIntegrationCrazyegg (object) or ExperienceIntegrationEconda (object) or ExperienceIntegrationEulerian (object) or ExperienceIntegrationGoogleAnalytics (any) or ExperienceIntegrationGosquared (object) or ExperienceIntegrationHeapanalytics (object) or ExperienceIntegrationHotjar (object) or ExperienceIntegrationMixpanel (object) or ExperienceIntegrationMouseflow (object) or ExperienceIntegrationPiwik (object) or ExperienceIntegrationSegmentio (object) or ExperienceIntegrationSitecatalyst (object) or ExperienceIntegrationWoopra (object) or ExperienceIntegrationYsance (object)

List of integrations that this experience's data is sent to

environments
Array of strings

List of environments where this experience will run. It has to be one of the environments defined at the project level

Array of objects (MultipageExperiencePage)

Only for multipage experience type. This is an array of "Pages" on which this experience is gonna apply changes. The change corresponding to each page will be found inside variations[].changes array.

Important:

  • Client needs to pass back ID received in a previous get call. If this is a new page to be attached to the experience, the client needs to generate a two chars string ID, which must be unique in the list of pages IDs for this experience.
  • Providing a page in this array and not having a change connected to it for every variation of this experience, will trigger an error. Vice-versa, having a change inside any of the variations of this experience referencing a page non existing in this array, will generate an error as well
  • This is the full list of pages connected to this experience, omitting any existing page connected previously will remove it from the experience
audiences
Array of integers (ExperienceCreateUpdateAudiences)

The list of audiences IDs for which this experience is supposed to run

locations
Array of integers (ExperienceCreateUpdateLocations)

The list of locations IDs on which this experience is supposed to run

goals
Array of integers (ExperienceCreateUpdateGoals)

The list of goals connected to this experience; experience of type deploy does not have goals attached. Primary goal can not be deleted, only replaced by another one;

Array of integers or TagToCreate (object) (TagExpandableRequest)

The list of tags connected to this experience

Array of objects (ExperienceUserCustomizations) <= 10 items

The list of user defined variables to customize UI

Array of objects (ExperienceVariationCreate)

The list of variations of this experience Note: This list is final, any variations not passed in the list which were previously connected to the experience will get deleted

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "environments": [
    ],
  • "multipage_pages": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "customizations": [
    ],
  • "variations": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "project": 0,
  • "alerts": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "multipage_pages": [
    ],
  • "customizations": [
    ],
  • "stats": {
    },
  • "variations": [
    ],
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "screenshots_info": [
    ],
  • "environments": [
    ]
}

Clone Experience

Creates an identical copy of an existing experience identified through experience_id inside a give project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience to be cloned

query Parameters
include
Array of strings (ExperienceIncludeFields)
Items Enum: "alerts" "goals" "stats" "variations" "variations.changes" "min_running_timestamp" "max_running_timestamp" "audiences" "locations"

Specifies the list of optional objects which would be included in the response.

Read more in the section related to Expanding Fields

expand
Array of strings (ExperienceExpandFields)
Items Enum: "project" "audiences" "goals" "locations" "variations" "variations.changes" "tags"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "project": 0,
  • "alerts": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "multipage_pages": [
    ],
  • "customizations": [
    ],
  • "stats": {
    },
  • "variations": [
    ],
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "screenshots_info": [
    ],
  • "environments": [
    ]
}

Update Experience

Updates an existing experience identified by experience ID inside a given project ID.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the updated experience

query Parameters
include
Array of strings (ExperienceIncludeFields)
Items Enum: "alerts" "goals" "stats" "variations" "variations.changes" "min_running_timestamp" "max_running_timestamp" "audiences" "locations"

Specifies the list of optional objects which would be included in the response.

Read more in the section related to Expanding Fields

expand
Array of strings (ExperienceExpandFields)
Items Enum: "project" "audiences" "goals" "locations" "variations" "variations.changes" "tags"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json
description
string <= 500 characters

The description given by the user for the experience. It could be for instance a memo on what the experience is willing to achieve

start_time
integer or null

The timestamp of the moment when the experience was first started, in UTC time (it's 0 if it wasn't started yet)

end_time
integer or null

The timestamp of the moment when the experience was stopped, in UTC time (it's 0 if it wasn't stopped yet)

global_js
string

Global Experience's JavaScript that will run for this experience before its changes are applied

global_css
string

Global Experience's StyleSheet that will run for this experience before its changes are applied

name
string <= 100 characters

Experience's name

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

primary_goal
integer

ID of primary goal attached to this experience, all automations on reporting(if available) will be computed based on this goal

objective
string or null <= 5000 characters

Experience's objective

object (ExperienceSettings)

Experience's settings list

object or null

The set of rules that decide on which pages is the experiment firing, in case locations is not being used; Both Include and exclude can contain same type of rules. Out of all possible rule elements available only the following subset is allowed for Site Area: url, url_with_query,query_string, page_tag_page_type, page_tag_category_id, page_tag_category_name, page_tag_product_sku, page_tag_product_name, page_tag_product_price, page_tag_customer_id, page_tag_v1, page_tag_v2, page_tag_v3, page_tag_v4"

status
string (ExperienceStatuses)
Enum: "draft" "active" "paused" "completed" "scheduled" "archived" "deleted"
traffic_distribution
number decimal places <= 2 [ 0 .. 100 ]

Traffic distribution percentage

type
string (ExperienceTypes)
Enum: "a/b" "a/a" "mvt" "split_url" "multipage" "deploy" "a/b_fullstack" "feature_rollout"

Describes experience's type. "a/b_fullstack", "feature_rollout" experiences can be created only under fullstack projects type.

url
string <uri> <= 2048 characters

The URL loaded inside the Visual Editor in order to create changes visually.

version
number

Experience's version number

Array of ExperienceIntegrationBaidu (object) or ExperienceIntegrationClicktale (object) or ExperienceIntegrationClicky (object) or ExperienceIntegrationCnzz (object) or ExperienceIntegrationCrazyegg (object) or ExperienceIntegrationEconda (object) or ExperienceIntegrationEulerian (object) or ExperienceIntegrationGoogleAnalytics (any) or ExperienceIntegrationGosquared (object) or ExperienceIntegrationHeapanalytics (object) or ExperienceIntegrationHotjar (object) or ExperienceIntegrationMixpanel (object) or ExperienceIntegrationMouseflow (object) or ExperienceIntegrationPiwik (object) or ExperienceIntegrationSegmentio (object) or ExperienceIntegrationSitecatalyst (object) or ExperienceIntegrationWoopra (object) or ExperienceIntegrationYsance (object)

List of integrations that this experience's data is sent to

environments
Array of strings

List of environments where this experience will run. It has to be one of the environments defined at the project level

Array of objects (MultipageExperiencePage)

Only for multipage experience type. This is an array of "Pages" on which this experience is gonna apply changes. The change corresponding to each page will be found inside variations[].changes array.

Important:

  • Client needs to pass back ID received in a previous get call. If this is a new page to be attached to the experience, the client needs to generate a two chars string ID, which must be unique in the list of pages IDs for this experience.
  • Providing a page in this array and not having a change connected to it for every variation of this experience, will trigger an error. Vice-versa, having a change inside any of the variations of this experience referencing a page non existing in this array, will generate an error as well
  • This is the full list of pages connected to this experience, omitting any existing page connected previously will remove it from the experience
audiences
Array of integers (ExperienceCreateUpdateAudiences)

The list of audiences IDs for which this experience is supposed to run

locations
Array of integers (ExperienceCreateUpdateLocations)

The list of locations IDs on which this experience is supposed to run

goals
Array of integers (ExperienceCreateUpdateGoals)

The list of goals connected to this experience; experience of type deploy does not have goals attached. Primary goal can not be deleted, only replaced by another one;

Array of integers or TagToCreate (object) (TagExpandableRequest)

The list of tags connected to this experience

Array of objects (ExperienceUserCustomizations) <= 10 items

The list of user defined variables to customize UI

Array of objects (ExperienceVariationUpdate)

The list of variations of this experience

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "environments": [
    ],
  • "multipage_pages": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "customizations": [
    ],
  • "variations": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "project": 0,
  • "alerts": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "multipage_pages": [
    ],
  • "customizations": [
    ],
  • "stats": {
    },
  • "variations": [
    ],
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "screenshots_info": [
    ],
  • "environments": [
    ]
}

Delete Experience

Deletes an existing experience from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience to be delete

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Experience Live Data

The Experience Live Data endpoint returns the list of last 100 Live Data events connected to the given experience: views, conversions, revenue;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the experience is stored

experience_id
required
integer

ID of the Experience

Request Body schema: application/json

Filter Experience Live Data list by methods

event_types
Array of strings or null (LiveDataEventTypes)
Enum: "view_experience" "conversion" "transaction"
goals
Array of integers or null <= 20 items

List of goals id to get data by

expand
Array of strings or null (LiveDataExpandFields)
Enum: "custom_segments" "experiences" "experiences.variation" "conversion.goals" "project"

Specify fields that would be expanded

Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "event_types": [
    ],
  • "goals": [
    ],
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Experience Change History

The Experience History endpoint returns the list of past changes done to the given experience

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the Experience

Request Body schema: application/json

Filter Experience history list by methods

onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

methods
Array of strings or null (ChangeHistoryMethods)
Enum: "api" "app"
sort_by
string or null
Default: "timestamp"
Enum: "timestamp" "event" "object"

A value to sort history list by specific field(s)

Defaults to timestamp if not provided

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "methods": [
    ],
  • "sort_by": "timestamp",
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "page": 1
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Trigger Screenshots

Trigger screenshots for the give variations of this experience

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the Experience

Request Body schema: application/json
variations
Array of numbers

List of variations for which the screenshots are triggered. If omitted, screenshots are gonna be triggered for all experience's variations.

Responses

Request samples

Content type
application/json
{
  • "variations": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Experience Variations

Each Experience has one or more Variations which are presented to different groups of visitor in order to monitor the results of different changes or to personalize visitor's experience

Update Variation

Updates an existing experience variation

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the updated experience

variation_id
required
integer

The ID of the variation to be updated

Request Body schema: application/json
name
string <= 200 characters

Variation name

description
string or null <= 2000 characters

Variation description

is_baseline
boolean

Flag indicating whether this variation is the baseline or not

traffic_distribution
number decimal places <= 2 [ 0 .. 100 ]

Traffic distribution percentage, a float between 0 and 100. To use it, all variations should have it, otherwise traffic_distribution will be recalculated

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

status
string (ExperienceVariationStatuses)
Enum: "stopped" "running"
Array of ExperienceChangeId (object) or ExperienceChangeAdd (any) or ExperienceChangeUpdate (any)

An array of changes that this variation would apply. Empty array will remove changes.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "is_baseline": true,
  • "traffic_distribution": 100,
  • "key": "string",
  • "status": "stopped",
  • "changes": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "is_baseline": true,
  • "traffic_distribution": 100,
  • "key": "string",
  • "status": "stopped",
  • "changes": [
    ]
}

Delete Variation

Deletes an existing experience's variation identified by variation_id that belongs to an experience ID inside a given project ID;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience to which the variation belongs

variation_id
required
integer

The ID of the variation to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Variation screenshot

Returns the variation's screenshot image, base64 encoded;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience to which the variation belongs

variation_id
required
integer

The ID of the variation to be deleted

query Parameters
size
string
Value: "thumb"

The size of the returned image, if omitted will return full size

force_download
boolean

Flag used to force download instead of inline response

Responses

Response samples

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

Upload Variation screenshot

Uploads a screenshot image for the variation and eturns the variation's screenshot image, base64 encoded;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience to which the variation belongs

variation_id
required
integer

The ID of the variation to be deleted

query Parameters
size
string
Value: "thumb"

The size of the returned image, if omitted will return full size

force_download
boolean

Flag used to force download instead of inline response

Request Body schema: multipart/form-data
image
required
string <binary>

Responses

Response samples

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

Convert Variation

Converts an existing experience's variation identified by variation_id to an experience

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience to which the variation belongs

variation_id
required
integer

The ID of the variation to be converted

Request Body schema: application/json
experience_type
string
Enum: "a/b" "deploy"

Type of the experience to be converted to

Responses

Request samples

Content type
application/json
{
  • "experience_type": "a/b"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "project": 0,
  • "alerts": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "multipage_pages": [
    ],
  • "customizations": [
    ],
  • "stats": {
    },
  • "variations": [
    ],
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "screenshots_info": [
    ],
  • "environments": [
    ]
}

Experience Sections

Convert Experience's Sections provides API to update Sections of an experience.

Sections List

Get a list of all sections of a multivariate experience

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience of which to return sections list

query Parameters
include
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create Section

Creates a section inside a given multivariate experience.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the experience where section will be created

query Parameters
include
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json

IMPORTANT:

  • Adding or removing sections to/from an experience will trigger re-generation of Experience's variations. Doing this while running an experiment could cause certain variation's data to be lost or even could cause the whole experiment to become statistically invalid.
  • Client needs to pass section's id field as retrieved from a previous get request; If this is a new section to be created, the id has to be generated as a max two characters string, unique amongst the ID's of this experience's sections.
  • Client needs to pass each version's id field as retrieved from a previous get request; If this is a new version to be created, the id has to be generated as a max two characters string, unique amongst the ID's of all the versions connected to this experience.
id
string [ 1 .. 2 ] characters ^[0-9a-z]{1,2}$

Section's unique ID

name
string <= 200 characters

Name of the section

required
Array of objects (SectionVersionCreate)

Version definition.

Each Multivariate experience is made of a list of Sections and a list of Versions Than, variations of a Multivariate experience are made of all possible combinations of versions, takin one from each section.

Example: Experience has Section A and Section B. Section A has Version 1 and Version 2, Section B has Version 3 and Version 4 The resulting experience's variations will be the following:

  1. Section A - Version 1 + Section B - Version 3
  2. Section A - Version 2 + Section B - Version 3
  3. Section A - Version 1 + Section B - Version 4
  4. Section A - Version 1 + Section B - Version 4

Responses

Request samples

Content type
application/json
{
  • "id": "st",
  • "name": "string",
  • "versions": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Update Section

Updates an existing experience section identified by section ID & experience ID inside a given project ID. Use it to update Multivariate experience sections.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the given experience

section_id
required
string

The ID of the updated section

query Parameters
include
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json

IMPORTANT:

  • Adding or removing sections to/from an experience will trigger re-generation of Experience's variations. Doing this while running an experiment could cause certain variation's data to be lost or even could cause the whole experiment to become statistically invalid.
  • Client needs to pass section's id field as retrieved from a previous get request; If this is a new section to be created, the id has to be generated as a max two characters string, unique amongst the ID's of this experience's sections.
  • Client needs to pass each version's id field as retrieved from a previous get request; If this is a new version to be created, the id has to be generated as a max two characters string, unique amongst the ID's of all the versions connected to this experience.
id
string [ 1 .. 2 ] characters ^[0-9a-z]{1,2}$

Section's unique ID

name
string <= 200 characters

Name of the section

required
Array of objects (SectionVersionUpdate)

Version definition.

Each Multivariate experience is made of a list of Sections and a list of Versions Than, variations of a Multivariate experience are made of all possible combinations of versions, takin one from each section.

Example: Experience has Section A and Section B. Section A has Version 1 and Version 2, Section B has Version 3 and Version 4 The resulting experience's variations will be the following:

  1. Section A - Version 1 + Section B - Version 3
  2. Section A - Version 2 + Section B - Version 3
  3. Section A - Version 1 + Section B - Version 4
  4. Section A - Version 1 + Section B - Version 4

Responses

Request samples

Content type
application/json
{
  • "id": "st",
  • "name": "string",
  • "versions": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Update Sections

Use it to update Multivariate experience sections. If some sections or versions won't be in the request, they will be removed from the given experience. Order of sections, versions, changes is also important so it has to be maintained.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the exeprience for which to update sections

query Parameters
include
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceSectionIncludeFields)
Items Enum: "versions" "versions.changes"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json
Array of objects (UpdateSectionRequestData)

List of sections to update

The passed list of sections is the final one, any section previously connected to this experience, that is not in this list, will be deleted from the experience. Any section passed here that is not available in the current saved experience will be created and connected to the experience.

IMPORTANT:

  • Adding or removing sections to/from an experience will trigger re-generation of Experience's variations. Doing this while running an experiment could cause certain variation's data to be lost or even could cause the whole experiment to become statistically invalid.
  • Client needs to pass section's id field as retrieved from a previous get request; If this is a new section to be created, the id has to be generated as a max two characters string, unique amongst the ID's of this experience's sections.
  • Client needs to pass each version's id field as retrieved from a previous get request; If this is a new version to be created, the id has to be generated as a max two characters string, unique amongst the ID's of all the versions connected to this experience.

Responses

Request samples

Content type
application/json
{
  • "sections": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Section Versions

Convert Experience's Versions provides API to update Versions inside an experience's Section

Add Version

Adds a version inside an existing experience section identified by section ID & experience ID inside a given project ID.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the given experience

section_id
required
string

The ID of the section under which to create the version

query Parameters
include
Array of strings (ExperienceSectionVersionIncludeFields)
Items Value: "changes"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceSectionVersionExpandFields)
Items Value: "changes"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json

IMPORTANT:

  • Adding or removing versions to/from an experience's section will trigger re-generation of Experience's variations. Doing this while running an experiment could cause certain variation's data to be lost or even could cause the whole experiment to become statistically invalid.
  • Client needs to pass version's id field as retrieved from a previous get request; If this is a new version to be created, the id has to be generated as a max two characters string, unique amongst the ID's of this experience's versions under the given sectionId.
id
string [ 1 .. 2 ] characters ^[0-9a-z]{1,2}$

Version's unique ID

name
string <= 200 characters

Version's name

Array of ExperienceChangeAdd (any)

List of changes to apply. If ID of a change is not provided, the change is gonna be created. Otherwise the change would be updated

Responses

Request samples

Content type
application/json
{
  • "id": "st",
  • "name": "string",
  • "changes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Version

Update a version inside an existing experience section, identified by experience ID, section ID, version ID, inside a given project ID.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the given experience

section_id
required
string

The ID of the section under which the updated version exists

version_id
required
string

The ID of the updated version

query Parameters
include
Array of strings (ExperienceSectionVersionIncludeFields)
Items Value: "changes"

Array parameter that would mention extra fields to be included into the response; otherwise those fields would be excluded by default

Read more in the section related to Optional Fields

expand
Array of strings (ExperienceSectionVersionExpandFields)
Items Value: "changes"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json

Updating a given version inside a a give section of an experience

id
string [ 1 .. 2 ] characters ^[0-9a-z]{1,2}$

Version's unique ID

name
string <= 200 characters

Version's name

Array of ExperienceChangeId (object) or ExperienceChangeUpdate (any) or ExperienceChangeAdd (any)

List of changes to apply. If ID of a change is not provided, the change is gonna be created. Empty array will remove changes. Otherwise the change would be updated

Responses

Request samples

Content type
application/json
{
  • "id": "st",
  • "name": "string",
  • "changes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Version

Delete a version inside an existing experience section, identified by experience ID, section ID, version ID, inside a given project ID.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

The ID of the given experience

section_id
required
string

The ID of the section under which the updated version exists

version_id
required
string

The ID of the updated version

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Version Changes

Each Experience's Variation has one or more Changes; a change represent the actual modification that is applied to a visitor. It can be a piece of javascript or CSS code for web experiences or it can be a string value for example in case of a fullstack experience.

Get Change

Returns an experience change including the data that the respective change holds

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

change_id
required
integer

ID of the experience change to get/update

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "type": "richStructure",
  • "data": {
    }
}

Update Change

Update an experience change and returns its data

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

change_id
required
integer

ID of the experience change to get/update

Request Body schema: application/json
One of
type
required
string
required
object

This contains all data of this change, any code, settings etc

This is sent by default in the following requests responses: getExperienceChange;

All other responses that return this field, will only return it if "include" request parameter contains its name

Data object structure will correspond to the "type" field

Responses

Request samples

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

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "type": "richStructure",
  • "data": {
    }
}

Experiences Reports

Specification for different reports data that can be retrieved for experiences

Report Settings

Returns per experience report settings

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Aggregated Report

Returns the full aggregated report for the given experience; data for all the goals connected to that experience will be returned

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

Request Body schema: application/json
goals
Array of integers

A list of goal Id's for which to return the reporting data. If no ID is provided, the list of goals attached to the experience is being used;

metrics
Array of strings (MetricTypes)
Items Enum: "conversion_rate" "avg_revenue_visitor" "avg_products_ordered_visitor"

The list of metrics to return. If not provided, all available metrics will be returned.

utc_offset
integer (UTC_Offset) [ -43200 .. 50400 ]
Default: 0

Offset in seconds, from UTC time, for the give timezone

start_time
number or null

Unix timestamp when reporting period should start, provided in the given utc_time_offset

end_time
number or null

Unix timestamp when reporting period should end, provided in the given utc_time_offset

object (ReportingSegmentsFilters)

A list of segments used to filter the report

any (SE_ProcSettings)

Stats Engine Processing settings

Responses

Request samples

Content type
application/json
{
  • "goals": [
    ],
  • "metrics": [
    ],
  • "utc_offset": 0,
  • "start_time": 0,
  • "end_time": 0,
  • "segments": {
    },
  • "stats_engine_processing": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Daily Report

Returns the full daily report for the given experience

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

Request Body schema: application/json
goal
number

Goal's ID for which to return the reporting data

report_type
string (DailyReportTypes)
Enum: "cumulative" "non_cumulative"

Type of the report to be returned.

metric
string (DailyReportMetrics)
Enum: "conversion_rate" "avg_revenue_per_visitor" "avg_products_ordered_per_visitor"

Metric used to calculate the report

object

A list of segments used to filter the report

utc_offset
integer (UTC_Offset) [ -43200 .. 50400 ]
Default: 0

Offset in seconds, from UTC time, for the give timezone

start_time
number or null

Unix timestamp when reporting period should start, provided in the given utc_time_offset

end_time
number or null

Unix timestamp when reporting period should end, provided in the given utc_time_offset

any (SE_ProcSettings)

Stats Engine Processing settings

Responses

Request samples

Content type
application/json
{
  • "goal": 0,
  • "report_type": "cumulative",
  • "metric": "conversion_rate",
  • "segments": {
    },
  • "utc_offset": 0,
  • "start_time": 0,
  • "end_time": 0,
  • "stats_engine_processing": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Reset Report

Reset Experience's report

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Export Report

Generates an export for the the report of the given experience and returns back a link where the export can be downloaded from.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

Request Body schema: application/json
report_type
string
Default: "csv_aggregated"
Enum: "csv_aggregated" "csv_daily"

Type of the exported report:

  • csv_aggregated - export in CSV format the number of visitors and metrics values aggregated per variation for the whole reported period
  • csv_daily - export in CSV format the number of visitors and metrics values per day, per variation for the whole reported period
data_type
string
Default: "non_cumulative"
Enum: "cumulative" "non_cumulative"

Type of data the exported report (csv_daily only)

goals
Array of integers

A list of goal Id's for which to return the reporting data. If no ID is provided, the list of goals attached to the experience is being used. Max 10 goals at one time available for csv_daily type.

utc_offset
integer (UTC_Offset) [ -43200 .. 50400 ]
Default: 0

Offset in seconds, from UTC time, for the give timezone

start_time
number or null

Unix timestamp when reporting period should start, provided in the given utc_time_offset

end_time
number or null

Unix timestamp when reporting period should end, provided in the given utc_time_offset

object (ReportingSegmentsFilters)

A list of segments used to filter the report

any (SE_ProcSettings)

Stats Engine Processing settings

Responses

Request samples

Content type
application/json
{
  • "report_type": "csv_aggregated",
  • "data_type": "cumulative",
  • "goals": [
    ],
  • "utc_offset": 0,
  • "start_time": 0,
  • "end_time": 0,
  • "segments": {
    },
  • "stats_engine_processing": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Export Experience Raw Data

Generates an export of raw tracking data of the given experience and returns back a link where the export can be downloaded from.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

experience_id
required
integer

ID of the experience

Request Body schema: application/json
events
Array of strings (ExportExperienceRawDataEvents)
Items Enum: "view_experience" "conversion" "transaction"

List of events to export

goals
Array of integers

A list of goal Id's for which to return the tracking data. If no ID is provided, the list of goals attached to the experience is being used.

utc_offset
integer (UTC_Offset) [ -43200 .. 50400 ]
Default: 0

Offset in seconds, from UTC time, for the give timezone

start_time
number or null

Unix timestamp when reporting period should start, provided in the given utc_time_offset

end_time
number or null

Unix timestamp when reporting period should end, provided in the given utc_time_offset

object (ReportingSegmentsFilters)

A list of segments used to filter the report

any (SE_ProcSettings)

Stats Engine Processing settings

Responses

Request samples

Content type
application/json
{
  • "events": [
    ],
  • "goals": [
    ],
  • "utc_offset": 0,
  • "start_time": 0,
  • "end_time": 0,
  • "segments": {
    },
  • "stats_engine_processing": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Goals

Goals measure how well your site fulfills your target objectives. A goal represents a completed activity, called a conversion, that contributes to the success of your business. Examples of goals include making a purchase (for an ecommerce site), completing a game level (for a mobile gaming site), or submitting a contact information form (for a marketing or lead generation site). Read more information about Goals.

Goals List

The Goals endpoint returns the list of all Goals stored under the given project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json
onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

status
Array of strings or null (GoalStatuses)
Enum: "active" "archived"

List of goal statuses to be returned

is_default
boolean or null

A value that would be used to filter by default or not default goals. if not provided, all goals will be returned

search
string or null <= 200 characters

A search string that would be used to search against Goal's name and description

tracking
string or null
Enum: "tracked" "not_tracked" null

A value that would be used to filter by tracked or not tracked goals

usage
string or null
Enum: "used" "not_used" null

A value that would be used to filter by using in at least one experiment

goal_type
Array of strings or null (GoalTypes)
Enum: "advanced" "visits_page" "revenue" "clicks_link" "submits_form" "clicks_element" "dom_interaction" "scroll_percentage" "ga_import" "code_trigger"

List of goal types to be returned

experiences
Array of integers or null <= 100 items

List of experiences to be returned

sort_by
string or null
Default: "id"
Enum: "id" "goal_tracking_status" "name" "times_used" "type" "key" "status"

A value to sort audiences by specific field

Defaults to id if not provided

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

include
Array of strings (GoalOptionalFields)
Items Enum: "triggering_rule" "stats"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

only
Array of integers or null <= 100 items

Only retrieve goals with the given ids.

except
Array of integers <= 100 items

Except goals with the given ids.

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "status": [
    ],
  • "is_default": true,
  • "search": "string",
  • "tracking": "tracked",
  • "usage": "used",
  • "goal_type": [
    ],
  • "experiences": [
    ],
  • "sort_by": "id",
  • "page": 1,
  • "include": [
    ],
  • "only": [
    ],
  • "except": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Goal

Returns a goal by ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

goal_id
required
integer

ID of the goal to be retrieved

query Parameters
include
Array of strings (GoalOptionalFields)
Items Enum: "triggering_rule" "stats"

Specifies the list of optional fields which would be included in the response. Otherwise, the fields that can be passed through this parameter would not be included in the response.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "is_system": true,
  • "stats": {
    },
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "advanced"
}

Get Goal by Key

Returns a goal by Key

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

goal_key
required
string

Key of the goal to be retrieved

query Parameters
include
Array of strings (GoalOptionalFields)
Items Enum: "triggering_rule" "stats"

Specifies the list of optional fields which would be included in the response. Otherwise, the fields that can be passed through this parameter would not be included in the response.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "is_system": true,
  • "stats": {
    },
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "advanced"
}

Create Goal

Creates a new goal into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the goal is to be stored

Request Body schema: application/json

Goal request object to create goal data.

Any of
name
required
string <= 100 characters

A name given to the goal to identify it easily

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

description
string <= 500 characters

A given description for the goal to easily identify it later

required
object or null

This one describes a logical rule that is being used inside the app for triggering goals, matching audiences etc

selected_default
boolean

Describes whether this goal is selected as default or not when creating a new experience.

status
string (GoalStatuses)
Enum: "active" "archived"

List of possible goal statuses

type
required
any

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "dom_interaction",
  • "settings": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "is_system": true,
  • "stats": {
    },
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "advanced"
}

Update Goal

Updates an existing Goal stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

goal_id
required
integer

ID of the goal to be updated

Request Body schema: application/json

Goal request object to update goal data.

Any of
name
string <= 100 characters

A name given to the goal to identify it easily

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

description
string <= 500 characters

A given description for the goal to easily identify it later

object or null

This one describes a logical rule that is being used inside the app for triggering goals, matching audiences etc

selected_default
boolean

Describes whether this goal is selected as default or not when creating a new experience.

status
string (GoalStatuses)
Enum: "active" "archived"

List of possible goal statuses

type
any

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "dom_interaction",
  • "settings": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "is_system": true,
  • "stats": {
    },
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "advanced"
}

Delete Goal

Deletes an existing goal from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

goal_id
required
integer

ID of the goal to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Clone Goal

Creates an identical copy of an existing goal identified through goal_id inside a give project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

goal_id
required
integer

ID of the goal to be deleted

query Parameters
include
Array of strings (GoalOptionalFields)
Items Enum: "triggering_rule" "stats"

Specifies the list of optional fields which would be included in the response. Otherwise, the fields that can be passed through this parameter would not be included in the response.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "is_system": true,
  • "stats": {
    },
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "advanced"
}

Hypotheses

A hypothesis is an assumption that a proposed change in your website would lead to visitors taking the action that you want them to. Read more information about Hypotheses.

Hypotheses List

The Hypotheses endpoint returns the list of all hypotheses stored under the given project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json
onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

sort_by
string or null
Default: "id"
Enum: "id" "name" "score" "start_date" "status"

A value to sort hypotheses by specific field(s)

Defaults to id if not provided

scoreMax
integer or null
Default: 5
Enum: 0 1 2 3 4 5

The maximum score for hypotheses which you would like to retrieve

scoreMin
integer or null
Default: 0
Enum: 0 1 2 3 4 5

The minimum score for hypotheses which you would like to retrieve

search
string or null <= 200 characters

A search string that would be used to search against hypotheses's name or description

status
Array of strings or null (HypothesisStatuses)
Enum: "applied" "archived" "completed" "draft"

The status of the hypotheses you'd like to be returned; one of the below can be provided

tags
Array of integers or null

The list of tag ID's used to filter the list of returned hypotheses

only
Array of integers or null <= 100 items

Only retrieve hypotheses with the given ids.

except
Array of integers <= 100 items

Except hypotheses with the given ids.

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

expand
Array of strings (HypothesesExpandFields)
Items Enum: "project" "tags"

Specifies the list of fields which would be expanded in the response. Otherwise, only their id would be returned. Read more in the section related to Expanding Fields

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "sort_by": "id",
  • "scoreMax": 0,
  • "scoreMin": 0,
  • "search": "string",
  • "status": [
    ],
  • "tags": [
    ],
  • "only": [
    ],
  • "except": [
    ],
  • "page": 1,
  • "expand": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Hypothesis

Returns a hypothesis by ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the hypothesis is stored

hypothesis_id
required
integer

ID of the hypothesis to be retrieve

query Parameters
expand
Array of strings (HypothesesExpandFields)
Items Enum: "project" "tags"

Specifies the list of fields which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "project": 0,
  • "prioritization_score": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Create Hypothesis

Creates a new Hypothesis into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the hypothesis is to be stored

Request Body schema: application/json
name
required
string <= 100 characters

A name given to the hypothesis to identify it easily

objective
string <= 5000 characters

A given description for the hypothesis to easily identify it later

status
required
string (HypothesisStatuses)
Enum: "applied" "archived" "completed" "draft"

Hypothesis status

start_date
string or null <date> <= 10 characters

The date in format YYYY-MM-DD. Can be a past date when you or your colleagues actually came up to this hypothesis

end_date
string or null <date> <= 10 characters

The date in format YYYY-MM-DD. Can be the date when you expect that the hypothesis is turned into an experience

summary
string <= 500 characters

Summary of your hypothesis

created_at
integer

The timestamp when hypothesis was created, in UTC time

prioritization_score_type
required
string

A given description of prioritizing model

required
object (PIE_Attributes)

Attributes according to selected prioritization score type

Array of integers or TagToCreate (object) or null (TagExpandableRequest)

The list of tags connected to this hypothesis

Responses

Request samples

Content type
application/json
Example
{
  • "name": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "project": 0,
  • "prioritization_score": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Update

Updates an existing Hypothesis stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the hypothesis is to be updated

hypothesis_id
required
integer

ID of the hypothesis to be updated

query Parameters
expand
Array of strings (HypothesesExpandFields)
Items Enum: "project" "tags"

Specifies the list of objects which would be expanded in the response. Otherwise, only their id would be returned.

Read more in the section related to Expanding Fields

Request Body schema: application/json
name
string <= 100 characters

A name given to the hypothesis to identify it easily

objective
string <= 5000 characters

A given description for the hypothesis to easily identify it later

status
string (HypothesisStatuses)
Enum: "applied" "archived" "completed" "draft"

Hypothesis status

start_date
string or null <date> <= 10 characters

The date in format YYYY-MM-DD. Can be a past date when you or your colleagues actually came up to this hypothesis

end_date
string or null <date> <= 10 characters

The date in format YYYY-MM-DD. Can be the date when you expect that the hypothesis is turned into an experience

summary
string <= 500 characters

Summary of your hypothesis

created_at
integer

The timestamp when hypothesis was created, in UTC time

prioritization_score_type
string

A given description of prioritizing model

object (PIE_Attributes)

Attributes according to selected prioritization score type

Array of integers or TagToCreate (object) or null (TagExpandableRequest)

The list of tags connected to this hypothesis

Responses

Request samples

Content type
application/json
Example
{
  • "name": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "project": 0,
  • "prioritization_score": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Update Hypothesis Status

Updates an existing Hypothesis's status stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the hypothesis is stored

hypothesis_id
required
integer

ID of the hypothesis to be updated

Request Body schema: application/json
status
string (HypothesisStatuses)
Enum: "applied" "archived" "completed" "draft"

Hypothesis status

Responses

Request samples

Content type
application/json
{
  • "status": "applied"
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "project": 0,
  • "prioritization_score": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Delete Hypothesis

Deletes an existing hypothesis from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project from which the hypothesis is to be deleted

hypothesis_id
required
integer

ID of the hypothesis to be deleted

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "name": "string",
  • "project": 0,
  • "prioritization_score": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Locations

Locations let you target your experiences in the ways that are important to your business.

Locations List

The locations endpoint returns the list of all locations stored under the given project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json
onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

status
Array of strings or null (LocationStatuses)
Enum: "active" "archived"

List of Location statuses to be returned

is_default
boolean or null

It indicates wherever retrieved locations are default or not

If not provided, it will return all locations. If not provided, it will return all locations

search
string or null <= 200 characters

a search string that would be used to search against Location's name or description

sort_by
string or null
Default: "id"
Enum: "id" "name" "usage" "status" "key"

A value to sort Location by specific field

Defaults to id if not provided

usage
string or null
Enum: "used" "not_used" null

It indicates wherever retrieved locations are used or not inside experiences

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

include
Array of strings (LocationIncludeFields)
Items Enum: "rules" "stats.experiences_usage"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

only
Array of integers or null <= 100 items

Only retrieve location with the given ids.

except
Array of integers <= 100 items

Except locations with the given ids.

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "status": [
    ],
  • "is_default": true,
  • "search": "string",
  • "sort_by": "id",
  • "usage": "used",
  • "page": 1,
  • "include": [
    ],
  • "only": [
    ],
  • "except": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Location

Returns a Location by ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the Location is stored

location_id
required
integer

ID of the Location to be retrieved

query Parameters
include
Array of strings (LocationIncludeFields)
Items Enum: "rules" "stats.experiences_usage"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "rules": {
    }
}

Create Location

Creates a new location into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the location is to be stored

Request Body schema: application/json
description
string <= 500 characters

A description given to the location in order to easily identify it

status
string (LocationStatuses)
Default: "active"
Enum: "active" "archived"

List of possible location statuses

name
required
string <= 100 characters

a name given to the location in order to easily identify it

selected_default
boolean

Describes whether this location is selected as default or not when creating a new experience.

required
object or null

This one describes a logical rule that is being used inside the app for matching locations

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "selected_default": true,
  • "rules": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "rules": {
    }
}

Update Location

Updates an existing location stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the location is stored

location_id
required
integer

ID of the location to be updated

Request Body schema: application/json
description
string <= 500 characters

A description given to the location in order to easily identify it

status
string (LocationStatuses)
Default: "active"
Enum: "active" "archived"

List of possible location statuses

name
string <= 100 characters

a name given to the location in order to easily identify it

selected_default
boolean

Describes whether this location is selected as default or not when creating a new experience.

object or null

This one describes a logical rule that is being used inside the app for matching locations

Responses

Request samples

Content type
application/json
{
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "selected_default": true,
  • "rules": {
    }
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "rules": {
    }
}

Delete Location

Deletes an existing location from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

location_id
required
integer

ID of the location to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Locations Presets

Returns the list of locations presets

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Clone Location

Creates an identical copy of an existing location identified through location_id inside a give project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

location_id
required
integer

ID of the location to be deleted

query Parameters
include
Array of strings (LocationIncludeFields)
Items Enum: "rules" "stats.experiences_usage"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "rules": {
    }
}

Audiences

Audiences let you segment your users in the ways that are important to your business. You can segment by event (e.g., session_start or level_up) and by user property (e.g., Browser/OS, Geo, Language), and combine events, parameters, and properties to include practically any subset of users. Read more information about Audiences.

Audiences List

The audiences endpoint returns the list of all audiences stored under the given project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json
onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

status
Array of strings or null (AudienceStatuses)
Enum: "active" "archived"

List of audience statuses to be returned

search
string or null <= 200 characters

a search string that would be used to search against audience's name or description

is_default
boolean or null

A flag to filter audiences by default status

If set to true, only default audiences will be returned, if not set, all audiences will be returned

sort_by
string or null
Default: "id"
Enum: "id" "type" "name" "usage" "status" "key"

A value to sort audiences by specific field

Defaults to id if not provided

type
string or null
Enum: "segmentation" "permanent" "transient"
experiences
Array of integers or null <= 100 items

List of experiences to be returned

usage
string or null
Enum: "used" "not_used" null

It indicates wherever retrieved audiences are used or not inside experiences

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

include
Array of strings (AudienceIncludeFields)
Items Enum: "rules" "stats.experiences_usage"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

only
Array of integers or null <= 100 items

Only retrieve audiences with the given ids.

except
Array of integers <= 100 items

Except audiences with the given ids.

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "status": [
    ],
  • "search": "string",
  • "is_default": true,
  • "sort_by": "id",
  • "type": "segmentation",
  • "experiences": [
    ],
  • "usage": "used",
  • "page": 1,
  • "include": [
    ],
  • "only": [
    ],
  • "except": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Audience

Returns an audience by ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the audience is stored

audience_id
required
integer

ID of the audience to be retrieved

query Parameters
include
Array of strings (AudienceIncludeFields)
Items Enum: "rules" "stats.experiences_usage"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "type": "permanent",
  • "rules": {
    }
}

Create Audience

Creates a new audience into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the audience is to be stored

Request Body schema: application/json
description
string <= 500 characters

A description given to the audience in order to easily identify it

status
string (AudienceStatuses)
Enum: "active" "archived"

List of possible audience statuses

name
required
string <= 100 characters

a name given to the audience in order to easily identify it

selected_default
boolean

Describes whether this audience is selected as default or not when creating a new experience.

type
required
string (AudienceTypesNoUrl)

Type of the Audience. Can be one of the following: segmentation, permanent, transient. For full-stack projects, transient and segmentation are the only valid options.

  • permanent - A permanent audience is one that is checked only at the time the user is being bucketed into the experience
  • transient - A transient audience is one that is checked every time the user is being bucketed into the experience
  • segmentation - A segmentation audience is one that is checked one every run until it gets matched. After getting matched, it is placed as a segment on user profile/cookie
required
object or null

This one describes a logical rule that is being used inside the app for triggering goals, matching audiences etc

Responses

Request samples

Content type
application/json
Example
{
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "selected_default": true,
  • "type": "permanent",
  • "rules": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "type": "permanent",
  • "rules": {
    }
}

Update Audience

Updates an existing audience stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the audience is stored

audience_id
required
integer

ID of the audience to be updated

Request Body schema: application/json
description
string <= 500 characters

A description given to the audience in order to easily identify it

status
string (AudienceStatuses)
Enum: "active" "archived"

List of possible audience statuses

name
string <= 100 characters

a name given to the audience in order to easily identify it

selected_default
boolean

Describes whether this audience is selected as default or not when creating a new experience.

type
string (AudienceTypesNoUrl)

Type of the Audience. Can be one of the following: segmentation, permanent, transient. For full-stack projects, transient and segmentation are the only valid options.

  • permanent - A permanent audience is one that is checked only at the time the user is being bucketed into the experience
  • transient - A transient audience is one that is checked every time the user is being bucketed into the experience
  • segmentation - A segmentation audience is one that is checked one every run until it gets matched. After getting matched, it is placed as a segment on user profile/cookie
object or null

This one describes a logical rule that is being used inside the app for triggering goals, matching audiences etc

Responses

Request samples

Content type
application/json
Example
{
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "selected_default": true,
  • "type": "permanent",
  • "rules": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "type": "permanent",
  • "rules": {
    }
}

Delete Audience

Deletes an existing audience from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

audience_id
required
integer

ID of the audience to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Audiences Presets

Returns the list of audiences presets

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Clone Audience

Creates an identical copy of an existing audience identified through audience_id inside a give project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

audience_id
required
integer

ID of the audience to be deleted

query Parameters
include
Array of strings (AudienceIncludeFields)
Items Enum: "rules" "stats.experiences_usage"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "type": "permanent",
  • "rules": {
    }
}

Domains

Domains define websites which will be used in experiences in your projects.

Domains List

The endpoint returns the list of all Domains stored under the given project

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json

Filter domains list.

onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

only
Array of integers or null <= 100 items

Only retrieve domains with the given ids.

except
Array of integers <= 100 items

Except domains with the given ids.

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "page": 1,
  • "only": [
    ],
  • "except": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Domain

Returns a domain by ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the domain is stored

domain_id
required
integer

ID of the domain to be retrieved

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "url": "string",
  • "code_installed": false
}

Get Domain By URL

Returns a domain by url

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the domain is stored

Request Body schema: application/json

Get one domain by URL

url
string <= 255 characters

URL by which to search the domain. The match can be an exact one or an wildcard one.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "url": "string",
  • "code_installed": false
}

Check Tracking Code

Checks if the tracking code is installed on the given URL and returns the domain given as parameter, with the tracking_code updated. If the given url is not part of the provided domain (via the parameters domain_id), an error will be returned

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the domain is stored

domain_id
required
integer

ID of the domain to which the given URL belongs. An error would be returned if the URL is not under this domain.

Request Body schema: application/json

Check if tracking code is installed on the given URL

url
string <= 255 characters

URL on which to check the tracking code installed. The given URL needs to be under the domain passes as parameter or otherwise an error would be returned.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 0,
  • "url": "string",
  • "code_installed": false
}

Create Domain

Creates a new Domains into the project give as parameter

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the domain is to be stored

Request Body schema: application/json
url
required
string <= 150 characters ^(http|https)://

Domain's homepage url

code_installed
boolean
Default: false

Indicating whether code installed check passed sometimes in the past.

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "code_installed": false
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "url": "string",
  • "code_installed": false
}

Update Domain

Updates an existing Domain stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the domain is to be stored

domain_id
required
integer

ID of the domain to be updated

Request Body schema: application/json
url
string <= 150 characters ^(http|https)://

Domain's homepage url

code_installed
boolean
Default: false

Indicating whether code installed check passed sometimes in the past.

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "code_installed": false
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "url": "string",
  • "code_installed": false
}

Delete Domain

Deletes an existing domain from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the domain is to be stored

domain_id
required
integer

ID of the domain to be delete

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Cdn Images

Various endpoints that allow Image Assets loaded through Convert's CDN to be managed

Get Images

This returns a list of images uploaded for the given project

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

Request Body schema: application/json

Some settings that control the images list size and contents

start_from
string

Image file name to start reading from. The list of images is read from repository starting from the provided image onwards.

max_results
integer or null [ 0 .. 100 ]
Default: 50

The number of maximum images that would be returned in the result

Responses

Request samples

Content type
application/json
{
  • "start_from": "string",
  • "max_results": 50
}

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Upload Image

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

Request Body schema: multipart/form-data
image_name
required
string <= 200 characters

The name of the image, under which it would get stored, including extension

image
required
string <binary>

Maximum image size is 5MB

Responses

Response samples

Content type
application/json
{
  • "cdn_url": "string",
  • "key": "string"
}

Delete Image

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to be retrieved

image_key
required
string

The key of the image file to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Tags

Tags define tag labels for your project.

Tags List

The endpoint returns the list of all Tags stored under the given project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json

Filter Tags list.

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

only
Array of integers or null <= 100 items

Only retrieve tags with the given ids.

except
Array of integers <= 100 items

Except tags with the given ids.

search
string or null <= 100 characters

A search string that would be used to search against Tag's name

Responses

Request samples

Content type
application/json
{
  • "results_per_page": 30,
  • "page": 1,
  • "only": [
    ],
  • "except": [
    ],
  • "search": "string"
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Tag

Returns a tag by ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the tag is stored

tag_id
required
integer

ID of the tag to be retrieve

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string"
}

Create Tag

Creates a new Tags into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the tag is to be stored

Request Body schema: application/json
name
required
string <= 100 characters

Name of the tag.

description
string <= 200 characters

More detailed description of the tag.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string"
}

Update Tag

Updates an existing Tag stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the tag is to be stored

tag_id
required
integer

ID of the tag to be updated

Request Body schema: application/json
name
string <= 100 characters

Name of the tag.

description
string <= 200 characters

More detailed description of the tag.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string"
}

Delete Tag

Deletes an existing tag from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project from which the tag is to be deleted

tag_id
required
integer

ID of the tag to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Features

Features can be created only under Fullstack Projects

Features List

The features endpoint returns the list of all features stored under the given project;

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

Request Body schema: application/json
onlyCount
boolean

When provided in requests that allow it, the response would only contain count of records and no real records' data

results_per_page
integer or null [ 0 .. 50 ]
Default: 30

A value that would be used for setting the number of records that would be returned per page.

Defaults to 30 when not sent

sort_direction
string or null
Default: "desc"
Enum: "asc" "desc"

Data sorting direction using "sort_by" field. "asc" for ascending direction, "desc" for descending direction

Defaults to desc when not sent in a request

search
string or null <= 100 characters

A search string that would be used to search against Feature's id, name, key and description

only
Array of integers or null <= 100 items

Only retrieve features with the given ids.

except
Array of integers <= 100 items

Except features with the given ids.

sort_by
string or null
Enum: "id" "name" "key" "status"

A value to sort features by specific field

Defaults to id if not provided

page
integer >= 1

Describes the page number of the fetched results. "results_per_page" results are gonna be returned for each page

Defaults to 1 when not sent

include
Array of strings (FeatureOptionalFields)
Items Value: "stats"

Specifies the list of fields to be included in the response, which otherwise would not be sent.

Responses

Request samples

Content type
application/json
{
  • "onlyCount": true,
  • "results_per_page": 30,
  • "sort_direction": "asc",
  • "search": "string",
  • "only": [
    ],
  • "except": [
    ],
  • "sort_by": "id",
  • "page": 1,
  • "include": [
    ]
}

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "extra": {
    }
}

Get Feature

Returns a feature by ID

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

feature_id
required
integer

ID of the feature to be retrieved

query Parameters
include
Array of strings (FeatureOptionalFields)
Items Value: "stats"

Specifies the list of optional fields which would be included in the response. Otherwise, the fields that can be passed through this parameter would not be included in the response.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": "active",
  • "key": "string",
  • "stats": {
    },
  • "description": "string",
  • "variables": [
    ]
}

Get Feature by Key

Returns a feature by key

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

feature_key
required
string

Key of the feature to be retrieved

query Parameters
include
Array of strings (FeatureOptionalFields)
Items Value: "stats"

Specifies the list of optional fields which would be included in the response. Otherwise, the fields that can be passed through this parameter would not be included in the response.

Read more in the section related to Optional Fields

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": "active",
  • "key": "string",
  • "stats": {
    },
  • "description": "string",
  • "variables": [
    ]
}

Create Feature

Creates a new feature into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project into which the feature is to be stored

Request Body schema: application/json
name
required
string <= 100 characters

A name given to the feature to identify it easily

status
string (FeatureStatuses)
Default: "active"
Enum: "active" "archived"

List of possible feature statuses

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified

description
string <= 200 characters

A given description for the feature to easily identify it later

required
Array of any (FeatureVariable)

An array of user-defined variables of a feature.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "active",
  • "key": "string",
  • "description": "string",
  • "variables": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": "active",
  • "key": "string",
  • "stats": {
    },
  • "description": "string",
  • "variables": [
    ]
}

Update Feature

Updates an existing feature stored into the project given as parameter.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

feature_id
required
integer

ID of the feature to be updated

Request Body schema: application/json
name
string <= 100 characters

A name given to the feature to identify it easily

status
string (FeatureStatuses)
Default: "active"
Enum: "active" "archived"

List of possible feature statuses

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified

description
string <= 200 characters

A given description for the feature to easily identify it later

Array of any (FeatureVariable)

An array of user-defined variables of a feature.

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": "active",
  • "key": "string",
  • "description": "string",
  • "variables": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "status": "active",
  • "key": "string",
  • "stats": {
    },
  • "description": "string",
  • "variables": [
    ]
}

Delete Feature

Deletes an existing feature from the given project.

Authorizations:
requestSigningcookieAuthentication
path Parameters
account_id
required
integer

ID of the account that owns the retrieved/saved data

project_id
required
integer

ID of the project to which save/retrieved data is connected

feature_id
required
integer

ID of the feature to be deleted

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Account

This object represents details of a tenant in Convert SAAS app.

id
integer

Account ID

accountType
string

Type of the account. Main accounts can create sub-accounts. All the billing quotas of the parent account will be the max sum that child accounts can get. For example, if the parent account has 20M Tested Users included, and this has two sub-accounts, the sum of the two sub-accounts quotas of tested visitors cannot be more than 20M Tested Users.

name
string <= 200 characters

Account friendly name

accessRole
string
Enum: "owner" "admin" "browse" "edit" "publish" "review"

The access role with which the user can execute operations connected to this account

object

Various Account level settings that can be controlled by the user

object

Billing related data and settings

object (BillingPlanLimitsAndCapabilities)
object or null

General usage stats for the account. Optional field, controlled using include fields

Example
{
  • "id": null,
  • "accountType": "main",
  • "name": "string",
  • "accessRole": "owner",
  • "settings": {
    },
  • "billing": {
    },
  • "limitsAndCapabilities": {
    },
  • "stats": {
    }
}

Access Role

This is the access role that defines the permissions one user has over accounts/projects.

name
string
object (RolePermissions)
{
  • "name": "string",
  • "permissions": {
    }
}

User

This object represents an user that exists in the system and which can do operations over data.

object
object (UserPreferences)

Various user's preferences

isSudo
boolean

Flag indicating whether the user operates in "sudo" mode or not

mfa_backup_codes
Array of arrays

Not implemented. List of backup codes that can be used to restore access in case of a lost device. This field is being send only in response to an enable MFA call (calling updateUserProfileData() and providing mfa parameter with subfield type=enable)

{
  • "profileData": {
    },
  • "preferences": {
    },
  • "isSudo": true,
  • "mfa_backup_codes": [ ]
}

Account Access

This defines how a user gets access to accounts(Collaborates into accounts)

first_name
string <= 200 characters

Collaborator's first name

last_name
string <= 200 characters

Collaborator's last name

Array of objects

List of projects the user can access

email
string <= 100 characters

Collaborator's email

user_id
string or null

The ID of the User in case the access invitation was accepted by the user; null otherwise

{
  • "first_name": "string",
  • "last_name": "string",
  • "accesses": [
    ],
  • "email": "string",
  • "user_id": "string"
}

API Key

This object describes an API key which is used to authenticate, same as the owner of the respective project/account

name
string <= 100 characters

Name of the API key - used for easier identification in the system

projects
Array of numbers or null

List of project ID's this key has access to. If no projects given, the key has access to all projects in the given account

key_id
string

API key ID, generated by the system upon creating the key

key_secret
string

API key Secret, generated by the system upon creating the key

{
  • "name": "string",
  • "projects": [
    ],
  • "key_id": "string",
  • "key_secret": "string"
}

Project

This object describes a project which holds together a set of Domains, Experiences, Goals, Audiences

global_javascript
string or null

The global javascript code that will be loaded on all pages where the tracking script is installed, prior do processing any of experiences, goals, audiences etc.

name
string <= 200 characters

Name of the project.

project_type
string
Default: "web"
Enum: "web" "fullstack"

Value which describes project product type.

object

Project settings used for reporting

object

General project's settings

object

This holds project wide settings used by integrations

status
string (ProjectStatuses)
Enum: "active" "inactive" "suspended"

The project's status, one of the following.

Array of objects <= 1 items

List of domains that are cName-d to Convert servers and which are used to send tracking requests through

object
Default: {"live":"Live","staging":"Staging"}

A user-defined key-value object which describes environments available for the project. Only for "fullstack" project.

Array of integers or SimpleGoal (object) (SimpleGoalExpandable)

List of default goals for this project

Array of integers or SimpleAudience (object) (SimpleAudienceExpandable)

List of default audiences for this project

Array of integers or SimpleLocation (object) (SimpleLocationExpandable)

List of default locations for this project

id
integer

Unique identifier representing a specific project in an user account. The project Id is part of the tracking snippet

accessRole
string (AccessRoleNames)
Enum: "owner" "admin" "browse" "edit" "publish" "review"

The access role with which the user can execute operations connected to this account

owner_email
string

Used only internally - An email of project owner. This field will exist only if project type is shared.

account_id
integer

The unique ID of the account under which this project is created. Account ID is also part of the tracking snippet

created_at
integer

Unix timestamp when project was created, in UTC time.

modified_at
integer

Unix timestamp when project was last modified, in UTC time.

tracking_snippet
string

The tracking code that needs to be placed on site in order to serve experiences from this project.

type
string
Enum: "own" "shared"

Used only internally - A value which describes project ownership. Can be own or shared.

object

Various stats for this project. Optional field, controlled using include fields

Array of objects (Domain)

The list of websites included in this project.

sdk_key
string or null

An autogenerated hash key used to retrieve data of fullstack project. Available only for fullstack projects type.

{
  • "global_javascript": "string",
  • "name": "string",
  • "project_type": "web",
  • "reporting_settings": {
    },
  • "settings": {
    },
  • "integrations_settings": {
    },
  • "status": "active",
  • "cname_domains": [
    ],
  • "environments": {
    },
  • "default_goals": [
    ],
  • "default_audiences": [
    ],
  • "default_locations": [
    ],
  • "id": 0,
  • "accessRole": "owner",
  • "owner_email": "string",
  • "account_id": 0,
  • "created_at": 0,
  • "modified_at": 0,
  • "tracking_snippet": "string",
  • "type": "own",
  • "stats": {
    },
  • "domains": [
    ],
  • "sdk_key": "string"
}

SDK Key

This object describes an SDK key which is used to get data under respective project/account

name
string <= 100 characters

Name of the Sdk key - used for easier identification in the system

sdk_key
string

Sdk key, generated by the system upon creating the key

sdk_secret
string or null

Sdk key secret. If null then sdk key can be used without authentication

environment
string

Environment where this experience will run. It has to be one of the environments defined at the project level

{
  • "name": "string",
  • "sdk_key": "string",
  • "sdk_secret": "string",
  • "environment": "string"
}

Domain

This object describes one domain part of a Project. This only applies for Web type projects

id
integer

Domain ID.

url
string <= 150 characters ^(http|https)://

Domain's homepage url

code_installed
boolean
Default: false

Indicating whether code installed check passed sometimes in the past.

{
  • "id": 0,
  • "url": "string",
  • "code_installed": false
}

Experience

id
integer

Experience's ID which identify an experience in the system

integer or Project (object) (ProjectExpandable)
Array of objects (ExperienceAlert)
Array of integers or Audience (any) (AudienceExpandable)

The list of audiences for which this experience is supposed to run

Array of integers or Location (object) (LocationExpandable)

The list of locations on which this experience is supposed to run

Array of integers or Goal (any) (GoalExpandable)

The list of goals connected to this experience; experience of type deploy does not have goals attached;

Array of integers or Tag (object) (TagExpandable)

The list of tags connected to this experience

Array of objects (MultipageExperiencePage)

Only for multipage experience type

Array of objects (ExperienceUserCustomizations) <= 10 items

The list of user defined variables to customize UI

object

Experience's condensed statistics(only for experiences that get access to a report)

Array of integers or CollapsedExperienceVariationData (object) or ExperienceVariationBaseExtended (object) (ExperienceVariation)

The list of variations of this experience.

description
string <= 500 characters

The description given by the user for the experience. It could be for instance a memo on what the experience is willing to achieve

start_time
integer or null

The timestamp of the moment when the experience was first started, in UTC time (it's 0 if it wasn't started yet)

end_time
integer or null

The timestamp of the moment when the experience was stopped, in UTC time (it's 0 if it wasn't stopped yet)

global_js
string

Global Experience's JavaScript that will run for this experience before its changes are applied

global_css
string

Global Experience's StyleSheet that will run for this experience before its changes are applied

name
string <= 100 characters

Experience's name

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

primary_goal
integer

ID of primary goal attached to this experience, all automations on reporting(if available) will be computed based on this goal

objective
string or null <= 5000 characters

Experience's objective

object (ExperienceSettings)

Experience's settings list

object or null

The set of rules that decide on which pages is the experiment firing, in case locations is not being used; Both Include and exclude can contain same type of rules. Out of all possible rule elements available only the following subset is allowed for Site Area: url, url_with_query,query_string, page_tag_page_type, page_tag_category_id, page_tag_category_name, page_tag_product_sku, page_tag_product_name, page_tag_product_price, page_tag_customer_id, page_tag_v1, page_tag_v2, page_tag_v3, page_tag_v4"

status
string (ExperienceStatuses)
Enum: "draft" "active" "paused" "completed" "scheduled" "archived" "deleted"
traffic_distribution
number decimal places <= 2 [ 0 .. 100 ]

Traffic distribution percentage

type
string (ExperienceTypes)
Enum: "a/b" "a/a" "mvt" "split_url" "multipage" "deploy" "a/b_fullstack" "feature_rollout"

Describes experience's type. "a/b_fullstack", "feature_rollout" experiences can be created only under fullstack projects type.

url
string <uri> <= 2048 characters

The URL loaded inside the Visual Editor in order to create changes visually.

version
number

Experience's version number

Array of ExperienceIntegrationBaidu (object) or ExperienceIntegrationClicktale (object) or ExperienceIntegrationClicky (object) or ExperienceIntegrationCnzz (object) or ExperienceIntegrationCrazyegg (object) or ExperienceIntegrationEconda (object) or ExperienceIntegrationEulerian (object) or ExperienceIntegrationGoogleAnalytics (any) or ExperienceIntegrationGosquared (object) or ExperienceIntegrationHeapanalytics (object) or ExperienceIntegrationHotjar (object) or ExperienceIntegrationMixpanel (object) or ExperienceIntegrationMouseflow (object) or ExperienceIntegrationPiwik (object) or ExperienceIntegrationSegmentio (object) or ExperienceIntegrationSitecatalyst (object) or ExperienceIntegrationWoopra (object) or ExperienceIntegrationYsance (object)

List of integrations that this experience's data is sent to

Array of objects

Info data about experience's variations screenshots

environments
Array of strings

List of environments where this experience will run. It has to be one of the environments defined at the project level

{
  • "id": 0,
  • "project": 0,
  • "alerts": [
    ],
  • "audiences": [
    ],
  • "locations": [
    ],
  • "goals": [
    ],
  • "tags": [
    ],
  • "multipage_pages": [
    ],
  • "customizations": [
    ],
  • "stats": {
    },
  • "variations": [
    ],
  • "description": "string",
  • "start_time": 0,
  • "end_time": 0,
  • "global_js": "string",
  • "global_css": "string",
  • "name": "string",
  • "key": "string",
  • "primary_goal": 0,
  • "objective": "string",
  • "settings": {
    },
  • "site_area": {
    },
  • "status": "draft",
  • "traffic_distribution": 100,
  • "type": "a/b",
  • "version": 0,
  • "integrations": [
    ],
  • "screenshots_info": [
    ],
  • "environments": [
    ]
}

Experience Section

Internally, every experience's variation is made by combining one Section and on Version, as if it would be a Multivariate experiment. In case of a non Multivariate experiment, the experience has only one section and therefore each version under it will correspond to one Variation

id
string [ 1 .. 2 ] characters ^[0-9a-z]{1,2}$

Section's unique ID

name
string <= 200 characters

Name of the section

Array of strings or SectionVersion (object)

Version definition.

Each Multivariate experience is made of a list of Sections and a list of Versions Than, variations of a Multivariate experience are made of all possible combinations of versions, takin one from each section.

Example: Experience has Section A and Section B. Section A has Version 1 and Version 2, Section B has Version 3 and Version 4 The resulting experience's variations will be the following:

  1. Section A - Version 1 + Section B - Version 3
  2. Section A - Version 2 + Section B - Version 3
  3. Section A - Version 1 + Section B - Version 4
  4. Section A - Version 1 + Section B - Version 4
{
  • "id": "st",
  • "name": "string",
  • "versions": [
    ]
}

Section Version

The version is an entity that lives under a section in order to group together the changes that compose the experience. In case of a non Multivariate experience, each version corresponds to one variation. in the case of a MVT experiment, one variation would be made by combining one version from each of the defined sections.

id
string [ 1 .. 2 ] characters ^[0-9a-z]{1,2}$

Version's unique ID

name
string <= 200 characters

Version's name

Array of integers or ExperienceChange (any)
Array of integers
{
  • "id": "st",
  • "name": "string",
  • "changes": [
    ],
  • "variations": [
    ]
}

Variation

A variation is the object that reference all the changes presented to a visitor through one experience.

id
integer

Variation unique ID

name
string <= 200 characters

Variation name

description
string or null <= 2000 characters

Variation description

is_baseline
boolean

Flag indicating whether this variation is the baseline or not

traffic_distribution
number decimal places <= 2 [ 0 .. 100 ]

Traffic distribution percentage, a float between 0 and 100. To use it, all variations should have it, otherwise traffic_distribution will be recalculated

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

status
string (ExperienceVariationStatuses)
Enum: "stopped" "running"
Array of integers or ExperienceChange (any)

An array of changes that this variation would apply.

{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "is_baseline": true,
  • "traffic_distribution": 100,
  • "key": "string",
  • "status": "stopped",
  • "changes": [
    ]
}

Experience Change

This object represents one change that is presented to the visitor through the experience. A change is connected to a a Version which in turn is connected to the Variation which gets presented to the user.

id
integer

The ID of the experience change

type
string
object

This contains all data of this change, any code, settings etc

This is sent by default in the following requests responses: getExperienceChange;

All other responses that return this field, will only return it if "include" request parameter contains its name

Data object structure will correspond to the "type" field

Example
{
  • "id": 0,
  • "type": "richStructure",
  • "data": {
    }
}

Goal

A goal is the object which defines how a conversion would be tracked.

id
integer

Goal ID

name
string <= 100 characters

A name given to the goal to identify it easily

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified.

description
string <= 500 characters

A given description for the goal to easily identify it later

is_system
boolean

Describes whether the goal is a system created goal or not.

object (GoalStats)
object or null

This one describes a logical rule that is being used inside the app for triggering goals, matching audiences etc

selected_default
boolean

Describes whether this goal is selected as default or not when creating a new experience.

status
string (GoalStatuses)
Enum: "active" "archived"

List of possible goal statuses

type
any
Example
{
  • "id": 0,
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "is_system": true,
  • "stats": {
    },
  • "triggering_rule": {
    },
  • "selected_default": true,
  • "status": "active",
  • "type": "advanced"
}

Audience

This object describes an Location, which can be used to target experiences.

id
integer

ID of the location as identified into the database; it won't be provide for adding a new location

description
string <= 500 characters

A description given to the location in order to easily identify it

status
string (LocationStatuses)
Default: "active"
Enum: "active" "archived"

List of possible location statuses

name
string <= 100 characters

a name given to the location in order to easily identify it

preset
boolean

Flag that indicates whether this location is a preset or not.

selected_default
boolean

Describes whether this location is selected as default or not when creating a new experience.

object

Different Location statistics

object or null

This one describes a logical rule that is being used inside the app for matching locations

{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "rules": {
    }
}

Audience

This object describes an Audience, which can be used to target experiences.

id
integer

ID of the audience as identified into the database; it won't be provide for adding a new audience

description
string <= 500 characters

A description given to the audience in order to easily identify it

status
string (AudienceStatuses)
Enum: "active" "archived"

List of possible audience statuses

name
string <= 100 characters

a name given to the audience in order to easily identify it

preset
boolean

Flag that indicates whether this audience is a preset or not.

selected_default
boolean

Describes whether this audience is selected as default or not when creating a new experience.

object

Different Audience statistics

type
string (AudienceTypesNoUrl)

Type of the Audience. Can be one of the following: segmentation, permanent, transient. For full-stack projects, transient and segmentation are the only valid options.

  • permanent - A permanent audience is one that is checked only at the time the user is being bucketed into the experience
  • transient - A transient audience is one that is checked every time the user is being bucketed into the experience
  • segmentation - A segmentation audience is one that is checked one every run until it gets matched. After getting matched, it is placed as a segment on user profile/cookie
object or null

This one describes a logical rule that is being used inside the app for triggering goals, matching audiences etc

Example
{
  • "id": 0,
  • "description": "string",
  • "status": "active",
  • "name": "string",
  • "preset": true,
  • "selected_default": true,
  • "stats": {
    },
  • "type": "permanent",
  • "rules": {
    }
}

Hypothesis

id
integer

The ID of the hypothesis

name
string <= 100 characters

A name given to the hypothesis to identify it easily

integer or Project (object) (ProjectExpandable)
prioritization_score
string

A score calculated based on prioritization score attributes

objective
string <= 5000 characters

A given description for the hypothesis to easily identify it later

status
string (HypothesisStatuses)
Enum: "applied" "archived" "completed" "draft"

Hypothesis status

start_date
string or null <date> <= 10 characters

The date in format YYYY-MM-DD. Can be a past date when you or your colleagues actually came up to this hypothesis

end_date
string or null <date> <= 10 characters

The date in format YYYY-MM-DD. Can be the date when you expect that the hypothesis is turned into an experience

summary
string <= 500 characters

Summary of your hypothesis

created_at
integer

The timestamp when hypothesis was created, in UTC time

prioritization_score_type
string

A given description of prioritizing model

object (PIE_Attributes)

Attributes according to selected prioritization score type

Array of integers or Tag (object) or null (TagExpandable)

The list of tags connected to this hypothesis

Example
{
  • "id": 0,
  • "name": "string",
  • "project": 0,
  • "prioritization_score": "string",
  • "objective": "string",
  • "status": "applied",
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "summary": "string",
  • "created_at": 0,
  • "prioritization_score_type": "PIE",
  • "prioritization_score_attributes": {
    },
  • "tags": [
    ]
}

Feature

id
integer

Feature ID

name
string <= 100 characters

A name given to the feature to identify it easily

status
string (FeatureStatuses)
Default: "active"
Enum: "active" "archived"

List of possible feature statuses

key
string <= 32 characters

A unique per project level identifier. Autogenerated based on name unless specified

object (FeatureStats)
description
string <= 200 characters

A given description for the feature to easily identify it later

Array of any (FeatureVariable)

An array of user-defined variables of a feature.

{
  • "id": 0,
  • "name": "string",
  • "status": "active",
  • "key": "string",
  • "stats": {
    },
  • "description": "string",
  • "variables": [
    ]
}

Tag

id
integer

Unique identifier representing a specific tag in an user account.

name
string <= 100 characters

Name of the tag.

description
string <= 200 characters

More detailed description of the tag.

{
  • "id": 0,
  • "name": "string",
  • "description": "string"
}

Cdn Image

cdn_url
string

Url under which the image can be loaded from the CDN

key
string

Image key used to be provided in a subsequent request as a "start_from" parameter.

{
  • "cdn_url": "string",
  • "key": "string"
}