A/B Test
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
Field | Type | Required | Description |
---|---|---|---|
experimentKey | number | O | Experiment key for the A/B test to distribute |
user | User object | O | User to distribute |
User Object
Field | Type | Required | Description |
---|---|---|---|
id | string | X | Default identifier |
userId | string | X | User ID (can use Hackle integrated identifier) |
deviceId | string | X | Device ID (can use Hackle integrated identifier) |
identifiers | object | X | Custom identifiers key(string)-value(string) Pair |
properties | object | X | User 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
Field | Type | Description |
---|---|---|
variation | string | Distribution group (A, B, C, D, ...) |
reason | string | Reason for distribution |
parameters | object | Parameters 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.
Updated 6 months ago