Acquia Lift Data Management API documentation version v1
https://{liftWebURL}/rest/{account_id}
Anonymous Key Config
Anonymous Key Config API is used to return the public access key for the customer's API user
Returns the public access key for the customer whose account identifier is provided in the request path
get /config/anonymous_key
Returns the public access key for the customer whose account identifier is provided in the request path
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/anonymous_key_config_response.json",
"title": "Anonymous Key Config Response",
"type": "object",
"properties": {
"public_access_key": {
"description": "Public Access Key",
"type": "string",
"maxLength": 20
}
},
"required": ["public_access_key"]
}
Example:
{
"public_access_key" : "LvmeBYwZCSY6CKB7mRNW"
}
HTTP status code 404
Returned when no enabled anonymous user is found for the given account
Authenticate
Authenticate is a function used to authenticate and return a public access key for a user
Returns the public access key for the user provided in the Basic Authentication
get /authenticate
Returns the public access key for the user provided in the Basic Authentication
Supports Basic Authentication
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/authenticate_response.json",
"title": "Authenticate Response",
"type": "object",
"properties": {
"public_access_key": {
"description": "Public Access Key",
"type": "string",
"maxLength": 20
}
},
"required": ["public_access_key"]
}
Example:
{
"public_access_key" : "LvmeBYwZCSY6CKB7mRNW"
}
HTTP status code 401
Returned when request username/password doesn't match any record
Secured by basic
Capture
Capture API accepts captures and returns segments matched by the captures
post /capture
See details here: https://docs.acquia.com/lift/omni/rest_api
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/capture_payload.json",
"properties": {
"touch_identifier": {
"type": "string",
"maxLength": 22,
"description": "Internal identifier for the touch, if this field is left empty, lift will generate a touch identifier and include it in the response"
},
"identity": {
"type": "string",
"maxLength": 200,
"description": "Visitor's primary identity information."
},
"identity_source": {
"type": "string",
"maxLength": 200,
"description": "Type of visitor's primary identity information. Specific string (account, email, facebook, twitter, tracking, name) or custom identifier type."
},
"do_not_track": {
"type": "boolean",
"default": false,
"description": "Flag to indicate whether the person should not be tracked"
},
"return_segments": {
"type": "boolean",
"default": false,
"description": "Flag to indicate whether the response should include matched segment information"
},
"site_id": {
"type": "string",
"maxLength": 20,
"description": "The customer site matching external_site_id in the configuration database. Used for filtering segments to evaluate and the default site_id for captures. If not specified then the last capture is used to calculate the site_id for filtering segments."
},
"captures": {
"type": "array",
"items": {
"title": "Capture",
"type": "object",
"required": ["event_name", "event_source"],
"patternProperties": {
"^(person|event)_udf([1-9]|[1-4][0-9]|50)$": {
"type": "string",
"maxLength": 1000,
"description": "Custom fields for person/event"
},
"^(touch)_udf([1-9]|1[0-9]|20)$": {
"type": "string",
"maxLength": 1000,
"description": "Custom fields for touch"
}
},
"properties": {
"event_name": {
"type": "string",
"maxLength": 200,
"description": "Event name corresponding to the captured information - the event type matching this event name must match the master list of events created in Acquia Lift Web"
},
"event_source": {
"type": "string",
"maxLength": 200,
"description": "Source of the event - can be used to pass event data from tools you have set up to send data to Acquia Lift Web (the default Acquia Lift Web value is web; depending on your website's configuration, examples may include csrtool1 and promo1)"
},
"event_date": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\\s(0[0-9]|1[0-9]|2[0-4]):[0-5][0-9]:[0-5][0-9]:[0-9]$"
},
"identities": {
"type": "object",
"items": {
"title": "Map<String,String>",
"patternProperties": {
".{1,}": {"type": "string", "maxLength": 200}
}
},
"uniqueItems": true,
"description": "Additional identity information, with identities as keys and identity sources as values (examples include \"identities\":{\"john.smith@acquia.com\":\"email\", \"John Smith\":\"name\"})"
},
"url": {
"type": "string",
"maxLength": 2000,
"description": "Event's URL"
},
"site_id": {
"type": "string",
"maxLength": 20,
"description": "The customer site matching external_site_id in the configuration database."
},
"referral_url": {
"type": "string",
"maxLength": 4000,
"description": "Referrer's URL"
},
"content_title": {
"type": "string",
"maxLength": 200,
"description": "Page title"
},
"user_agent": {
"type": "string",
"maxLength": 2000,
"description": "Visitor's user agent"
},
"platform": {
"type": "string",
"maxLength": 50,
"description": "Visitor's platform"
},
"ip_address": {
"type": "string",
"maxLength": 45,
"description": "Visitor's IP address (supports both IPv4 and IPv6 addresses)"
},
"persona": {
"type": "string",
"maxLength" : 1000,
"description" : "User-defined category into which a visitor fits, based on their viewing of particular content"
},
"engagement_score": {
"type": "integer",
"description": "The number that you have chosen to signify the importance of a visitor's interest in an event"
},
"personalization_name": {
"type": "string",
"maxLength": 1000,
"description": "Name of personalization associated with an event"
},
"personalization_machine_name": {
"type": "string",
"maxLength": 1000,
"description": "Machine name of personalization associated with an event"
},
"personalization_chosen_variation": {
"type": "string",
"maxLength": 1000,
"description": "The variation (decision) chosen for an event"
},
"personalization_audience_name": {
"type": "string",
"maxLength": 1000,
"description": "The name of the audience"
},
"personalization_decision_policy": {
"type": "string",
"maxLength": 1000,
"description": "The decision policy used - for example, explore or target"
},
"personalization_goal_name": {
"type": "string",
"maxLength": 1000,
"description": "The name of the goal reached"
},
"personalization_goal_value": {
"type": "string",
"maxLength": 1000,
"description": "The value of the goal reached"
},
"decision_slot_id": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Slot Id"
},
"decision_slot_name": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Slot Name"
},
"decision_rule_id": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Rule Id"
},
"decision_rule_name": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Rule Name"
},
"decision_content_id": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Content Id"
},
"decision_content_name": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Content Name"
},
"decision_goal_id": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Goal Id"
},
"decision_goal_name": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Goal Name"
},
"decision_goal_value": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Goal Value"
},
"decision_view_mode": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision View Mode"
},
"decision_policy": {
"type": "string",
"required": false,
"maxLength": 1000,
"description": "Decision Policy"
},
"capture_identifier": {
"type": "string",
"maxLength": 22,
"description": "Unique identifier for the capture"
},
"client_timezone": {
"type": "string",
"maxLength": 100,
"description": "Client time zone"
},
"javascript_version": {
"type": "string",
"maxLength": 10,
"description": "version of the javascript that generated the capture"
},
"post_id": {
"type": "string",
"maxLength": 22,
"description": "post id of an article"
},
"content_id": {
"type": "string",
"maxLength": 22,
"description": "content id of an article"
},
"content_type": {
"type": "string",
"maxLength": 200,
"description": "Content-type to which a piece of visitor-viewed content belongs"
},
"content_section": {
"type": "string",
"maxLength": 1000,
"description": "content section of an article"
},
"content_keywords": {
"type": "string",
"maxLength": 1000,
"description": "content keywords of an article"
},
"author": {
"type": "string",
"maxLength": 1000,
"description": "author of an article"
},
"page_type": {
"type": "string",
"maxLength": 200,
"description": "Category of page the visitor viewed (examples include article page, tag page, and home page)"
},
"thumbnail_url": {
"type": "string",
"maxLength": 1000,
"description": "thumbnail URL of an article"
},
"published_date": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\\s(0[0-9]|1[0-9]|2[0-4]):[0-5][0-9]:[0-5][0-9]:[0-9]$",
"description": "publish date of an article"
}
},
"additionalProperties": true
},
"minItems": 1,
"uniqueItems": true
}
}
}
Example:
{
"touch_identity": "eGlhb2dlbGFpd2FuYQ==",
"identity": "test@example.com",
"identity_source": "email",
"returnSegments": true,
"captures": [
{
"event_name": "Content View",
"event_source": "web",
"event_date": "2016-01-22 10:20:21:1",
"identities": {
"dG9vTG9uZyB0byBkZWNvZGUNCg==": "tracking",
"lift customer": "name"
},
"person_udf50": "c3RvcHRyeWluZw=="
},
{
"event_name": "Content View",
"event_source": "web",
"event_date": "2016-01-22 10:20:31:1",
"identities": {
"test2@example.com": "email",
"lift customer": "name"
},
"engagment_score": 50,
"person_udf50": "aWxpa2V5b3VyaGF0"
}
]
}
HTTP status code 201
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/capture_response.json",
"title": "Segments",
"description": "Segments calculated by imported captures",
"type": "object",
"required" : [ "touch_identifier", "identifier", "identifier_source" ],
"properties":{
"error":{
"type": "string",
"description": "when errors occur in the captures, return the error message"
},
"touch_identifier":{
"type": "string",
"maxLength": 22,
"description": "Internal identifier for the touch. If touch_identifier is not passed in the request, value of this field will be generated"
},
"identifier": {
"type": "string",
"maxLength": 200,
"description": "Visitor's primary identity information."
},
"identifier_source": {
"type": "string",
"maxLength": 200,
"description": "Type of visitor's primary identity information. Specific string (account, email, facebook, twitter, tracking) or custom identifier type. This will be tracking if no identifier is passed in the request"
},
"matched_segments":{
"type": "array",
"items": {
"type": "object",
"required" : [ "id", "name", "description" ],
"properties": {
"id": {
"type": "integer",
"description": "Matched segment tracking id"
},
"name": {
"type": "string",
"maxLength": 200,
"description": "Matched segment name"
},
"description": {
"type": "string",
"maxLength": 4000,
"description": "Matched segment description"
}
}
}
}
}
}
Example:
{
"touch_identifier": "fM2RzZmdhNHczIDVxMjM=",
"identity": "vDS4dc29tZWlkZW50aWZlcg",
"identity_source": "tracking",
"matched_segment": [
{
"id": "10092",
"name": "Anonymous Visitor",
"description": "Tracks whether a visitor to the site is anonymous"
},
{
"id": "10096",
"name": "Interested Visitor",
"description": "If the new user clicks on the aboutus section of the site, then they are an interested visitor learning more about the service."
}
]
}
HTTP status code 400
Body
Type: application/json
Example:
{
"error": "this is an error message."
}
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
Capture Config
Capture configuration settings
Get the capture configuration settings that define how visitor data is collected.
get /config/capture
Get the capture configuration settings that define how visitor data is collected.
See details here: https://docs.acquia.com/lift/omni/rest_api
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/config_capture.json",
"description": "Capture Config",
"type": "object",
"properties": {
"activity_level": {
"description": "Activity level of tracking a visitor. None indicates that no captures should be sent, capture only indicates that no offers/recommendations should be returned.",
"type": "string",
"enum": [ "none", "capture_only", "full" ]
},
"tracking_time": {
"description": "Maximum time in seconds to track a visitor (ie. expiry date of person tracking identifier cookie = current date + tracking_time).",
"type": "number"
},
"third_party_cookie_enabled": {
"description": "Indicates that the customer is using the third party cookies to track visitors across customer's domains.",
"type": "boolean"
},
"first_party_cookie_base_domain_enabled": {
"description": "Indicates that the Lift cookies should be created on the base domain.",
"type": "boolean"
},
"shared_machine_identity_source": {
"description": "Visitor identity source that can be hashed to create the person tracking identifier. The person tracking identifier will be a combination of a randomly generated identifier and a hashed visitor identifier.",
"type": "string"
}
},
"required": ["activity_level", "tracking_time", "third_party_cookie_enabled", "first_party_cookie_base_domain_enabled"]
}
Example:
// Standard Example
{
"activity_level": "full",
"tracking_time": 63072000,
"third_party_cookie_enabled": false,
"first_party_cookie_base_domain_enabled": false
}
// Example of third party cookie enabled, base domain enabled and tracking_time set to 6 months
{
"activity_level": "full",
"tracking_time": 15768000,
"third_party_cookie_enabled": true,
"first_party_cookie_base_domain_enabled": true
}
// Example of shared machine identifier source set to email
{
"activity_level": "full",
"tracking_time": 63072000,
"third_party_cookie_enabled": false,
"first_party_cookie_base_domain_enabled": false,
"shared_machine_identity_source": "email"
}
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
Customer Sites
Customer Sites API is used to create, retrieve, update or delete a customer site.
Get a list of all customer sites.
Create/Update a customer site. When POST'ing a customer site with the same identifier, it will update that existing customer site.
get /customer_sites
Get a list of all customer sites.
See details here: https://docs.acquia.com/lift/omni/rest_api
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/customer_sites.json",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Customer Site UID.",
"type": "string",
"maxLength": 20
},
"name": {
"description": "Name of the customer site.",
"type": "string",
"maxLength": 50
},
"url": {
"description": "URL of the customer site.",
"type": "string",
"maxLength": 2000
}
},
"required": ["id", "name"]
}
}
Example:
[{
"id": "lift_web",
"name": "Lift Web",
"url": "http://lift.acquia.com"
}, {
"id": "content_hub",
"name": "Content Hub"
}]
HTTP status code 400
If an invalid customer site is passed in the site_id parameter
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
post /customer_sites
Create/Update a customer site. When POST'ing a customer site with the same identifier, it will update that existing customer site.
See details here: https://docs.acquia.com/lift/omni/rest_api
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/customer_sites.json",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Customer Site UID.",
"type": "string",
"maxLength": 20
},
"name": {
"description": "Name of the customer site.",
"type": "string",
"maxLength": 50
},
"url": {
"description": "URL of the customer site.",
"type": "string",
"maxLength": 2000
}
},
"required": ["id", "name"]
}
}
Example:
[{
"id": "lift_web",
"name": "Lift Web",
"url": "http://lift.acquia.com"
}, {
"id": "content_hub",
"name": "Content Hub"
}]
HTTP status code 201
Body
Type: application/json
Schema:
{
"$schema":"http://json-schema.org/draft-04/schema#",
"id":"schemas/customer_sites_response.json",
"type":"array",
"items":{
"type":"object",
"properties":{
"status":{
"description":"Customer site post status. SUCCESS if succeeded, FAILURE otherwise",
"type":"string",
"maxLength":10
},
"errors":{
"description":"List of errors for the customer site post.",
"type":"array",
"items":{
"description":"Error object containing information on why the post failed",
"type":"object",
"properties":{
"code":{
"description":"Error code",
"type":"string",
"maxLength":100
},
"message":{
"description":"Human readable error message",
"type":"string",
"maxLength":200
}
}
},
"minItems":0
},
"item":{
"description":"Customer site object that was passed to the api",
"type":"object",
"properties":{
"id": {
"description": "Customer Site UID.",
"type": "string",
"maxLength": 20
},
"name": {
"description": "Name of the customer site.",
"type": "string",
"maxLength": 50
},
"url": {
"description": "URL of the customer site.",
"type": "string",
"maxLength": 2000
}
}
}
},
"required":[
"status",
"item"
]
}
}
Example:
[{
"status": "SUCCESS",
"item": {
"id": "lift_web",
"name": "Lift Web",
"url": "http://lift.acquia.com"
}
},{
"status": "FAILURE",
"errors": [
{
"code": "INVALID_NAME",
"message": "Customer Site name is mandatory"
}
],
"item": {
"id": "content_hub",
"name": ""
}
}]
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
An individual customer site.
Get a customer site
Delete an individual customer_site
get /customer_sites/{site_id}
Get a customer site
See details here: https://docs.acquia.com/lift/omni/rest_api
URI Parameters
- site_id: required (string)
The external_site_id of the customer site.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/customer_site.json",
"type": "object",
"properties": {
"id": {
"description": "Customer Site UID.",
"type": "string",
"maxLength": 20
},
"name": {
"description": "Name of the customer site.",
"type": "string",
"maxLength": 50
},
"url": {
"description": "URL of the customer site.",
"type": "string",
"maxLength": 2000
}
},
"required": ["id", "name"]
}
Example:
{
"id": "lift_web",
"name": "Lift Web",
"url": "http://lift.acquia.com"
}
HTTP status code 404
Customer site not found
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
delete /customer_sites/{site_id}
Delete an individual customer_site
See details here: https://docs.acquia.com/lift/omni/rest_api
URI Parameters
- site_id: required (string)
The external_site_id of the customer site.
HTTP status code 200
Customer site deleted deleted
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
Event Import Status
Get call with the event_import_id to retrieve the status of event import
id returned by event import api
get /event_import_status/{event_import_id}
See details here: https://docs.acquia.com/lift/omni/rest_api
URI Parameters
- event_import_id: required (string)
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/event_import_status_response.json",
"type": "object",
"description": "event import status",
"properties": {
"EventImportID": {
"type": "string"
},
"totalNumberOfLines": {
"type": "string"
},
"numberOfRejectedLines": {
"type": "number"
},
"numberOfProcessedLines": {
"type": "number"
},
"rejectedLines": {
"type": "array",
"minItems": 0,
"uniqueItems": true
}
}
}
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
Events
Events API is used to create, update or delete events
Event name
Delete an event
Creates or updates an event
delete /events/{event_name}
Delete an event
See details here: https://docs.acquia.com/lift/omni/rest_api
URI Parameters
- event_name: required (string)
Query Parameters
- site_id: (string)
The optional event's customer site matching external_site_id in configuration database
HTTP status code 200
Event deleted
HTTP status code 400
If an invalid customer site is passed in the site_id parameter
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
put /events/{event_name}
Creates or updates an event
See details here: https://docs.acquia.com/lift/omni/rest_api
URI Parameters
- event_name: required (string)
Query Parameters
- descriptive_name: (string)
The optional event's descriptive name. If not provided, the event name will be used as the descriptive name.
- site_id: (string)
The optional event's customer site matching external_site_id in configuration database
- type: (string)
The optional event's type (examples include CAMPAIGN_ACTION, CAMPAIGN_CLICK_THROUGH, CAMPAIGN_CONVERSION, and OTHER)
HTTP status code 200
Event created or updated
HTTP status code 400
If an invalid customer site is passed in the site_id parameter
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
Goals
A goal is a desired outcome. It is the motivation for running a personalization campaign that is used to measure the effectiveness of a campaign and provide feedback into the decision algorithms
Get a list of all goals, optionally filtered. See the query parameters for a list of filter options.
Create/Update a new goal. When POST'ing a goal with the same identifier, it will update that existing goal.
get /goals
Get a list of all goals, optionally filtered. See the query parameters for a list of filter options.
See details here: https://docs.acquia.com/lift/omni/rest_api
Query Parameters
- site_id: (string)
The optional customer site matching external_site_id in configuration database
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/goals.json",
"title": "Goals",
"type": "array",
"items": {
"title": "Goal",
"type": "object",
"properties": {
"id": {
"description": "Goal UID.",
"type": "string",
"maxLength": 100
},
"name": {
"description": "Human readable name of the goal.",
"type": "string",
"maxLength": 200
},
"description": {
"description": "Description of the goal.",
"type": "string",
"maxLength": 4000
},
"rule_ids": {
"description": "One of more rule identifiers.",
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,128}$"
},
"minItems": 1,
"uniqueItems": true
},
"event_names": {
"description": "One or more event names.",
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"minItems": 1,
"uniqueItems": true
},
"global": {
"description": "Indicates whether goal is global.",
"type": "boolean"
},
"site_ids": {
"description": "Optional list of site ids. Required if global is false.",
"type": "array",
"items": {
"type": "string",
"maxLength": 20,
"description": "The customer site matching external_site_id in configuration database."
},
"minItems": 1,
"uniqueItems": true
},
"value": {
"description": "Empty or numeric value (float).",
"type": "string"
}
},
"required": ["id", "name", "description", "event_names", "global"]
}
}
Example:
[{
"id": "pDX4dc29tZWlkZW50aWZlcg",
"name": "Purchase",
"description": "Winter promotion",
"rule_ids": [
"rule-1",
"rule-2"
],
"event_names": [
"purchase"
],
"site_ids": [
"us",
"ca"
],
"value": "100"
}, {
"id": "kZW50aWZlcg9tZWlkZW50lcg",
"name": "Subscribe",
"description": "Mailing list",
"rule_ids": [
"rule-3",
"rule-4"
],
"event_names": [
"form_submit"
],
"site_ids": [
"us",
"ca"
],
"value": "50"
}]
HTTP status code 400
If an invalid customer site is passed in the site_id parameter
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
post /goals
Create/Update a new goal. When POST'ing a goal with the same identifier, it will update that existing goal.
See details here: https://docs.acquia.com/lift/omni/rest_api
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/goals.json",
"title": "Goals",
"type": "array",
"items": {
"title": "Goal",
"type": "object",
"properties": {
"id": {
"description": "Goal UID.",
"type": "string",
"maxLength": 100
},
"name": {
"description": "Human readable name of the goal.",
"type": "string",
"maxLength": 200
},
"description": {
"description": "Description of the goal.",
"type": "string",
"maxLength": 4000
},
"rule_ids": {
"description": "One of more rule identifiers.",
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,128}$"
},
"minItems": 1,
"uniqueItems": true
},
"event_names": {
"description": "One or more event names.",
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"minItems": 1,
"uniqueItems": true
},
"global": {
"description": "Indicates whether goal is global.",
"type": "boolean"
},
"site_ids": {
"description": "Optional list of site ids. Required if global is false.",
"type": "array",
"items": {
"type": "string",
"maxLength": 20,
"description": "The customer site matching external_site_id in configuration database."
},
"minItems": 1,
"uniqueItems": true
},
"value": {
"description": "Empty or numeric value (float).",
"type": "string"
}
},
"required": ["id", "name", "description", "event_names", "global"]
}
}
Example:
[{
"id": "pDX4dc29tZWlkZW50aWZlcg",
"name": "Purchase",
"description": "Winter promotion",
"rule_ids": [
"rule-1",
"rule-2"
],
"event_names": [
"purchase"
],
"site_ids": [
"us",
"ca"
],
"value": "100"
}, {
"id": "kZW50aWZlcg9tZWlkZW50lcg",
"name": "Subscribe",
"description": "Mailing list",
"rule_ids": [
"rule-3",
"rule-4"
],
"event_names": [
"form_submit"
],
"site_ids": [
"us",
"ca"
],
"value": "50"
}]
HTTP status code 201
Body
Type: application/json
Schema:
{
"$schema":"http://json-schema.org/draft-04/schema#",
"id":"schemas/goalspostresult.json",
"title":"Goals",
"type":"array",
"items":{
"title":"GoalPostResult",
"type":"object",
"properties":{
"status":{
"description":"Goal post status. SUCCESS if succeeded, FAILURE otherwise",
"type":"string",
"maxLength":10
},
"errors":{
"description":"List of errors for the goal post.",
"type":"array",
"items":{
"description":"Error object containing information on why the post failed",
"type":"object",
"properties":{
"code":{
"description":"Error code",
"type":"string",
"maxLength":100
},
"message":{
"description":"Human readable error message",
"type":"string",
"maxLength":200
}
}
},
"minItems":0
},
"item":{
"description":"Goal object that was passed to the api",
"type":"object",
"properties":{
"id":{
"description":"Goal UID.",
"type":"string",
"maxLength":100
},
"name":{
"description":"Human readable name of the goal.",
"type":"string",
"maxLength":200
},
"description":{
"description":"Description of the goal.",
"type":"string",
"maxLength":4000
},
"rule_ids":{
"description":"One of more rule identifiers.",
"type":"array",
"items":{
"type":"string",
"pattern":"^[a-z0-9_-]{1,128}$"
},
"minItems":0,
"uniqueItems":true
},
"event_names":{
"description":"One or more event names.",
"type":"array",
"items":{
"type":"string",
"maxLength":200
},
"minItems":0,
"uniqueItems":true
},
"global": {
"description": "Indicates whether goal is global.",
"type": "boolean"
},
"site_ids": {
"description": "List of site ids.",
"type":"array",
"items":{
"type":"string",
"maxLength":20,
"description":"The customer site matching external_site_id in configuration database."
},
"minItems":0,
"uniqueItems":true
},
"value":{
"description":"Empty or numeric value (float).",
"type":"string"
}
}
}
},
"required":[
"status",
"item"
]
}
}
Example:
[{
"status": "SUCCESS",
"item": {
"id": "pDX4dc29tZWlkZW50aWZlcg",
"name": "Purchase",
"description": "Winter promotion",
"rule_ids": [
"rule-1",
"rule-2"
],
"event_names": [
"purchase"
],
"global": "true",
"value": "100"
}
},{
"status": "FAILURE",
"errors": [
{
"code": "DUPLICATED_NAME",
"message": "Goal with the same name already exists"
},
{
"code": "INVALID_SITE_ID",
"message": "Invalid site provided"
}
],
"item": {
"id": "kZW50aWZlcg9tZWlkZW50lcg",
"name": "Subscribe",
"description": "Mailing list",
"rule_ids": [
"rule-3",
"rule-4"
],
"event_names": [
"form_submit"
],
"global": "false",
"site_ids": [
"us",
"ca"
],
"value": "50"
}
}]
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
An individual goal.
Get a goal
Delete an individual goal
get /goals/{goal_id}
Get a goal
See details here: https://docs.acquia.com/lift/omni/rest_api
URI Parameters
- goal_id: required (string)
The UID of the goal
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/goal.json",
"title": "Goal",
"type": "object",
"properties": {
"id": {
"description": "Goal UID.",
"type": "string",
"maxLength": 100
},
"name": {
"description": "Human readable name of the goal.",
"type": "string",
"maxLength": 200
},
"description": {
"description": "Description of the goal.",
"type": "string",
"maxLength": 4000
},
"rule_ids": {
"description": "One of more rule identifiers.",
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9_-]{1,128}$"
},
"minItems": 0,
"uniqueItems": true
},
"event_names": {
"description": "One or more event names.",
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"minItems": 1,
"uniqueItems": true
},
"global": {
"description": "Indicates whether goal is global.",
"type": "boolean"
},
"site_ids": {
"description": "Optional list of site ids. Required if global is false.",
"type": "array",
"items": {
"type": "string",
"maxLength": 20,
"description": "The customer site matching external_site_id in the configuration database."
},
"minItems": 0,
"uniqueItems": true
},
"value": {
"description": "Empty or numeric value (float).",
"type": "string"
}
},
"required": ["id", "name", "description", "event_names", "global"]
}
Example:
{
"id": "pDX4dc29tZWlkZW50aWZlcg",
"name": "Purchase",
"description": "Winter promotion",
"rule_ids": [
"rule-1",
"rule-2"
],
"event_names": [
"purchase"
],
"global": "false",
"site_ids": [
"us",
"ca"
],
"value": "100"
}
HTTP status code 404
Goal not found
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
delete /goals/{goal_id}
Delete an individual goal
See details here: https://docs.acquia.com/lift/omni/rest_api
URI Parameters
- goal_id: required (string)
The UID of the goal
HTTP status code 200
Goal deleted
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.
Segments
A segment is a group of persons that match a set of criteria
Get a list of all segments, optionally filtered. If the optional See the query parameters for a list of filter options.
get /segments
Get a list of all segments, optionally filtered. If the optional See the query parameters for a list of filter options.
See details here: https://docs.acquia.com/lift/omni/rest_api
Query Parameters
- site_id: (string)
The optional customer site matching external_site_id in configuration database (If an empty string is passed then only global customer sites will be returned)
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/segments_v1.json",
"title": "Segments",
"type": "array",
"items": {
"title": "Segment Tracking Id",
"type": "string"
}
}
Example:
[ "Anyone", "CanadaVisitors", "DeveloperPersona" ]
Type: application/vnd.acquia.lift-v2+json
Schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "schemas/segments_v2.json",
"title": "Segments",
"type": "array",
"items": {
"title": "Segment",
"type": "object",
"properties": {
"id": {
"description": "Segment tracking id",
"type": "string",
"maxLength": 100
},
"name": {
"description": "Human readable name of the segment.",
"type": "string",
"maxLength": 100
},
"description": {
"description": "Human readable description of the segment.",
"type": "string",
"maxLength": 3000
},
"site_ids": {
"description": "Optional list of customer sites.",
"type": "array",
"items": {
"type": "string",
"maxLength": 20,
"description": "The customer site matching external_site_id in configuration database."
},
"minItems": 0,
"uniqueItems": true
}
},
"required": ["id", "name"]
}
}
Example:
[
{
"id" : "Anyone",
"name": "All Visitors",
"site_ids" : [ "CORP", "CUST" ]
},
{
"id" : "CanadaVisitors",
"name" : "Canadian Visitors",
"description" : "All visitors in Canada",
"site_ids" : [ "CUST" ]
},
{
"id" : "DeveloperPersona",
"name" : "Software Developer Visitors"
}
]
HTTP status code 400
If an invalid customer site is passed in the site_id parameter
Secured by lift_web_hmac
Headers
- Authorization: (string)
Lift Web HMAC access token in this format: Authorization : HMAC {access_key_id}:{signature}
HTTP status code 200
Request succeeded successfully
HTTP status code 401
Bad or expired token. This can happen if the user revoked or expired an access token. To fix, you should re-authenticate the user.
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won't help here.