📘

The HTTP API can only be used in a server environment.

You can use the HTTP API to check the results of A/B test distributions for users.


Authentication

Authentication is done through the SDK key. The SDK key must be sent in the HTTP header.

Depending on where you are calling the API from, set one of the Browser, App, or Server SDK keys in the header.

X-HACKLE-API-KEY: {YOUR_SDK_KEY}


Request

POST https://api.hackle.io/v1/variation

Request Body

FieldTypeRequiredDescription
experimentKeynumberOExperiment key for the A/B test to distribute
userUser objectOUser to distribute

User Object

FieldTypeRequiredDescription
idstringXDefault identifier
userIdstringXUser ID (can use Hackle integrated identifier)
deviceIdstringXDevice ID (can use Hackle integrated identifier)
identifiersobjectXCustom identifiers
key(string)-value(string) Pair
propertiesobjectXUser properties
key(string)-value(string|number|boolean) Pair

Example

curl -i -X POST \
'https://api.hackle.io/v1/variation' \
-H 'X-HACKLE-API-KEY: YOUR_SDK_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
  "experimentKey": 42,
  "user": {
    "id": "ae2182e0",
    "userId": "19285035",
    "deviceId": "ae2182e0",
    "identifiers": {
      "sessionId": "16930492542",
      "myCustomId": "ff01eae2"
    },
    "properties": {
      "grade": "GOLD",
      "age": 30,
      "isLogin": true
    }
  }
}'

Response

200 OK

In case of a successful request, it returns a 200 response and the distribution result.

Response Body

FieldTypeDescription
variationstringDistribution group (A, B, C, D, ...)
reasonstringReason for distribution
parametersobjectParameters set for the distribution group

Example

{
  "variation": "B",
  "reason": "TRAFFIC_ALLOCATED",
  "parameters": {
    "buttonText": "Purchase",
    "buttonSize": 16
  }
}

400 Bad Request

Returns a 400 status if the request information is invalid.

401 Unauthorized

Returns a 401 status if the X-HACKLE-API-KEY header is missing or the SDK key is invalid.