Skip to main content

Enroll User in Variant

Endpoint

/i?method=ab_enroll_variant

Enterprise Only
This API is available exclusively in Countly Enterprise.

Overview

Manually enroll a user into a specific variant for the experiment that contains the given parameter key. This overrides percentage-based assignment for that user and experiment.

Authentication

Authentication Methods:

  • App Key (parameter): app_key=YOUR_APP_KEY

Permissions

  • No additional permissions required

Request Parameters

Content-Type: application/x-www-form-urlencoded

ParameterTypeRequiredDescription
app_keyStringYesApplication key
device_idStringYesDevice ID for the target user
keyStringYesExperiment parameter key to locate the experiment
variantStringYesVariant name to enroll the user into

Response

Success Response

{
"result": "Success"
}

Response Fields

FieldTypeDescription
resultStringResult message

Error Responses

  • Missing key:
{
"result": "Invalid request, key is missing"
}
  • Variant not found:
{
"result": "Variant not found"
}

Examples

Example 1: Enroll User into Variant

Request:

curl "https://your-server.com/i?method=ab_enroll_variant" \
-d "app_key=YOUR_APP_KEY" \
-d "device_id=DEVICE_ID" \
-d "key=button_color" \
-d "variant=Red Button"

Response:

{
"result": "Success"
}

Behavior/Processing

  • Dispatches from /i to the SDK ingestion handler when method=ab_enroll_variant.
  • Requires key; the handler converts it to keys=["<key>"] and fetches running experiments that contain that parameter.
  • Looks for a variant whose name matches variant and whose parameters include the requested key.
  • If a match is found, removes any existing assignment for that experiment from app_users{appId}.ab, then adds {experiment_id, variant_index} for the selected variant.
  • If no running experiment is found for the key, returns No experiments found. If the experiment exists but no matching variant/key pair exists, returns Variant not found.
  • Variant matching is exact after converting the requested variant to a string.

Database Collections

CollectionUsed forData touched by this endpoint
countly.app_users{appId}Primary:Updates the ab field for the enrolled user.

Ⓔ Enterprise

This feature is part of Countly Enterprise.

Get Access:

Already a Customer? Use support portal if you have any questions


Last Updated

2026-04-18