Core RESTful API (beta)

Base URL = https://dc-api.ematicsolutions.com:8084/v2

Replace dc with the correct Ematic API key suffix. For example: sg1

Methods

log

logCart

POST /log/cart

Log cart

Parameters

Parameter In Type Required Format Description
Authorization header string true ematic-apikey=xxx,esp-apikey=yyyy ematic apikey, esp apikey
body body log true object No description

Body parameter

{
  "email": "string",
  "clientEnv": {
    "deviceHeight": 0,
    "deviceWidth": 0,
    "viewportHeight": 0,
    "viewportWidth": 0,
    "country": "string",
    "language": "string",
    "currency": "string",
    "device_uid": "string",
    "device_model": "string",
    "device_os_family": "string",
    "device_os_version": "string"
  },
  "products": [
    {
      "experiment_id": 0,
      "client_product_id": "string",
      "client_category_id": "string",
      "price_number": 0,
      "price": "string",
      "name": "string",
      "description": "string",
      "brand_name": "string",
      "image_url": "string",
      "link": "string",
      "misc1": "string",
      "misc2": "string",
      "misc3": "string"
    }
  ]
}

Responses

Status Meaning Description
201 Created created
400 Bad Request bad request
401 Unauthorized unauthorized

Example responses

{
  "message": "string"
}
{
  "message": "missing apikeys"
}
{
  "message": "invalid apikeys"
}

Code samples

HTTP

POST https://dc-api.ematicsolutions.com:8084/v2/log/cart HTTP/1.1
Host: dc-api.ematicsolutions.com:8084
Content-Type: application/json
Accept: application/json
Authorization: string

JavaScript

var headers = {
  'Authorization':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://dc-api.ematicsolutions.com:8084/v2/log/cart',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

Python

import requests
headers = {
  'Authorization': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.post('https://dc-api.ematicsolutions.com:8084/v2/log/cart', params={

}, headers = headers)

print r.json()

Java

URL obj = new URL("https://dc-api.ematicsolutions.com:8084/v2/log/cart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

logBrowse

POST /log/browse

Log browse

Parameters

Parameter In Type Required Format Description
Authorization header string true ematic-apikey=xxx,esp-apikey=yyyy ematic apikey, esp apikey
body body log true object No description

Body parameter

{
  "email": "string",
  "clientEnv": {
    "deviceHeight": 0,
    "deviceWidth": 0,
    "viewportHeight": 0,
    "viewportWidth": 0,
    "country": "string",
    "language": "string",
    "currency": "string",
    "device_uid": "string",
    "device_model": "string",
    "device_os_family": "string",
    "device_os_version": "string"
  },
  "products": [
    {
      "experiment_id": 0,
      "client_product_id": "string",
      "client_category_id": "string",
      "price_number": 0,
      "price": "string",
      "name": "string",
      "description": "string",
      "brand_name": "string",
      "image_url": "string",
      "link": "string",
      "misc1": "string",
      "misc2": "string",
      "misc3": "string"
    }
  ]
}

Responses

Status Meaning Description
201 Created created
400 Bad Request bad request
401 Unauthorized unauthorized

Example responses

{
  "message": "string"
}
{
  "message": "missing apikeys"
}
{
  "message": "invalid apikeys"
}

Code samples

HTTP

POST https://dc-api.ematicsolutions.com:8084/v2/log/browse HTTP/1.1
Host: dc-api.ematicsolutions.com:8084
Content-Type: application/json
Accept: application/json
Authorization: string

JavaScript

var headers = {
  'Authorization':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://dc-api.ematicsolutions.com:8084/v2/log/browse',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

Python

import requests
headers = {
  'Authorization': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.post('https://dc-api.ematicsolutions.com:8084/v2/log/browse', params={

}, headers = headers)

print r.json()

Java

URL obj = new URL("https://dc-api.ematicsolutions.com:8084/v2/log/browse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

logCheckout

POST /log/checkout

Log checkout

Parameters

Parameter In Type Required Format Description
Authorization header string true ematic-apikey=xxx,esp-apikey=yyyy ematic apikey, esp apikey
body body log true object No description

Body parameter

{
  "email": "string",
  "clientEnv": {
    "deviceHeight": 0,
    "deviceWidth": 0,
    "viewportHeight": 0,
    "viewportWidth": 0,
    "country": "string",
    "language": "string",
    "currency": "string",
    "device_uid": "string",
    "device_model": "string",
    "device_os_family": "string",
    "device_os_version": "string"
  },
  "products": [
    {
      "experiment_id": 0,
      "client_product_id": "string",
      "client_category_id": "string",
      "price_number": 0,
      "price": "string",
      "name": "string",
      "description": "string",
      "brand_name": "string",
      "image_url": "string",
      "link": "string",
      "misc1": "string",
      "misc2": "string",
      "misc3": "string"
    }
  ]
}

Responses

Status Meaning Description
201 Created created
400 Bad Request bad request
401 Unauthorized unauthorized

Example responses

{
  "message": "string"
}
{
  "message": "missing apikeys"
}
{
  "message": "invalid apikeys"
}

Code samples

HTTP

POST https://dc-api.ematicsolutions.com:8084/v2/log/checkout HTTP/1.1
Host: dc-api.ematicsolutions.com:8084
Content-Type: application/json
Accept: application/json
Authorization: string

JavaScript

var headers = {
  'Authorization':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://dc-api.ematicsolutions.com:8084/v2/log/checkout',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

Python

import requests
headers = {
  'Authorization': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.post('https://dc-api.ematicsolutions.com:8084/v2/log/checkout', params={

}, headers = headers)

print r.json()

Java

URL obj = new URL("https://dc-api.ematicsolutions.com:8084/v2/log/checkout");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

logConversion

POST /log/conversion

Log conversion

Parameters

Parameter In Type Required Format Description
Authorization header string true ematic-apikey=xxx,esp-apikey=yyyy ematic apikey, esp apikey
body body log true object No description

Body parameter

{
  "email": "string",
  "clientEnv": {
    "deviceHeight": 0,
    "deviceWidth": 0,
    "viewportHeight": 0,
    "viewportWidth": 0,
    "country": "string",
    "language": "string",
    "currency": "string",
    "device_uid": "string",
    "device_model": "string",
    "device_os_family": "string",
    "device_os_version": "string"
  },
  "products": [
    {
      "experiment_id": 0,
      "client_product_id": "string",
      "client_category_id": "string",
      "price_number": 0,
      "price": "string",
      "name": "string",
      "description": "string",
      "brand_name": "string",
      "image_url": "string",
      "link": "string",
      "misc1": "string",
      "misc2": "string",
      "misc3": "string"
    }
  ]
}

Responses

Status Meaning Description
201 Created created
400 Bad Request bad request
401 Unauthorized unauthorized

Example responses

{
  "message": "string"
}
{
  "message": "missing apikeys"
}
{
  "message": "invalid apikeys"
}

Code samples

HTTP

POST https://dc-api.ematicsolutions.com:8084/v2/log/conversion HTTP/1.1
Host: dc-api.ematicsolutions.com:8084
Content-Type: application/json
Accept: application/json
Authorization: string

JavaScript

var headers = {
  'Authorization':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://dc-api.ematicsolutions.com:8084/v2/log/conversion',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

Python

import requests
headers = {
  'Authorization': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.post('https://dc-api.ematicsolutions.com:8084/v2/log/conversion', params={

}, headers = headers)

print r.json()

Java

URL obj = new URL("https://dc-api.ematicsolutions.com:8084/v2/log/conversion");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

logBatchMode

POST /log/batch

Log batch mode

Parameters

Parameter In Type Required Format Description
Authorization header string true ematic-apikey=xxx,esp-apikey=yyyy ematic apikey, esp apikey
body body logBatch true object No description

Body parameter

{
  "email": "string",
  "clientEnv": {
    "deviceHeight": 0,
    "deviceWidth": 0,
    "viewportHeight": 0,
    "viewportWidth": 0,
    "country": "string",
    "language": "string",
    "currency": "string",
    "device_uid": "string",
    "device_model": "string",
    "device_os_family": "string",
    "device_os_version": "string"
  },
  "batch": [
    {
      "action": "cart",
      "products": [
        {
          "experiment_id": 0,
          "client_product_id": "string",
          "client_category_id": "string",
          "price_number": 0,
          "price": "string",
          "name": "string",
          "description": "string",
          "brand_name": "string",
          "image_url": "string",
          "link": "string",
          "misc1": "string",
          "misc2": "string",
          "misc3": "string"
        }
      ]
    }
  ]
}

Responses

Status Meaning Description
201 Created created
400 Bad Request bad request
401 Unauthorized unauthorized

Example responses

{
  "message": "string"
}
{
  "message": "missing apikeys"
}
{
  "message": "invalid apikeys"
}

Code samples

HTTP

POST https://dc-api.ematicsolutions.com:8084/v2/log/batch HTTP/1.1
Host: dc-api.ematicsolutions.com:8084
Content-Type: application/json
Accept: application/json
Authorization: string

JavaScript

var headers = {
  'Authorization':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://dc-api.ematicsolutions.com:8084/v2/log/batch',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

Python

import requests
headers = {
  'Authorization': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.post('https://dc-api.ematicsolutions.com:8084/v2/log/batch', params={

}, headers = headers)

print r.json()

Java

URL obj = new URL("https://dc-api.ematicsolutions.com:8084/v2/log/batch");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

subscribe

createSubscription

POST /subscribe

Create subscription

For now, only email subscriptions are supported
Use subscribe_email_addr to subscribe email address.

Parameters

Parameter In Type Required Format Description
Authorization header string true ematic-apikey=xxx,esp-apikey=yyyy ematic apikey, esp apikey
subscribe body body subscribe true undefined No description

Body parameter

{
  "uuid": "string",
  "email": "string",
  "subscribe_email_addr": "string",
  "clientEnv": {
    "deviceHeight": 0,
    "deviceWidth": 0,
    "viewportHeight": 0,
    "viewportWidth": 0,
    "country": "string",
    "language": "string",
    "currency": "string",
    "device_uid": "string",
    "device_model": "string",
    "device_os_family": "string",
    "device_os_version": "string"
  },
  "first_name": "string",
  "last_name": "string"
}

Responses

Status Meaning Description
200 OK Subscription exists
201 Created Successful subscription(s)
400 Bad Request bad request
401 Unauthorized unauthorized
500 Internal Server Error Error has occured

Example responses

{
  "message": "string"
}
{
  "message": "string",
  "coupon": "string"
}
{
  "message": "string"
}
{
  "message": "invalid apikeys"
}
{
  "message": "string",
  "esp_code": "string",
  "mandrill_code": "string"
}

Code samples

HTTP

POST https://dc-api.ematicsolutions.com:8084/v2/subscribe HTTP/1.1
Host: dc-api.ematicsolutions.com:8084
Content-Type: application/json
Accept: application/json
Authorization: string

JavaScript

var headers = {
  'Authorization':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://dc-api.ematicsolutions.com:8084/v2/subscribe',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

Python

import requests
headers = {
  'Authorization': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.post('https://dc-api.ematicsolutions.com:8084/v2/subscribe', params={

}, headers = headers)

print r.json()

Java

URL obj = new URL("https://dc-api.ematicsolutions.com:8084/v2/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

cancelSubscription

DELETE /subscribe

Cancel subscription

For now, only email subscriptions are supported
Use unsubscribe_email_addr to unsubscribe email address.

Parameters

Parameter In Type Required Format Description
Authorization header string true ematic-apikey=xxx,esp-apikey=yyyy ematic apikey, esp apikey
unsubscribe body body unsubscribe true undefined No description

Body parameter

{
  "uuid": "string",
  "email": "string",
  "unsubscribe_email_addr": "string",
  "clientEnv": {
    "deviceHeight": 0,
    "deviceWidth": 0,
    "viewportHeight": 0,
    "viewportWidth": 0,
    "country": "string",
    "language": "string",
    "currency": "string",
    "device_uid": "string",
    "device_model": "string",
    "device_os_family": "string",
    "device_os_version": "string"
  }
}

Responses

Status Meaning Description
200 OK User is not subscribed
204 No Content Successfuly unsubscribed
400 Bad Request bad request
401 Unauthorized unauthorized
500 Internal Server Error Error has occured

Example responses

{
  "message": "string"
}
{
  "message": "string"
}
{
  "message": "invalid apikeys"
}
{
  "message": "string",
  "esp_code": "string"
}

Code samples

HTTP

DELETE https://dc-api.ematicsolutions.com:8084/v2/subscribe HTTP/1.1
Host: dc-api.ematicsolutions.com:8084
Content-Type: application/json
Accept: application/json
Authorization: string

JavaScript

var headers = {
  'Authorization':'string',
  'Accept':'application/json',
  'Content-Type':'application/json'

};

$.ajax({
  url: 'https://dc-api.ematicsolutions.com:8084/v2/subscribe',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

Python

import requests
headers = {
  'Authorization': 'string',
  'Accept': 'application/json',
  'Content-Type': 'application/json'
}

r = requests.delete('https://dc-api.ematicsolutions.com:8084/v2/subscribe', params={

}, headers = headers)

print r.json()

Java

URL obj = new URL("https://dc-api.ematicsolutions.com:8084/v2/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());