Skip to main content

Fetch Active Experiments

Enterprise

This endpoint is part of Countly Enterprise. To get access, contact sales or compare versions. Existing customers can reach the support portal with questions.

Endpoint

/o/sdk?method=ab_fetch_experiments

Overview

Fetch active experiments (documents with status missing or status="running") with variant parameters. If the request context includes params.app_user.ab, the response includes currentVariant for matching experiments.

Authentication

Authentication Methods:

  • App Key (parameter): app_key=YOUR_APP_KEY

Permissions

  • No additional permissions required

Request Parameters

ParameterTypeRequiredDescription
app_keyStringYesApplication key
device_idStringNoDevice identifier used by SDK context to resolve current user

Examples

Example 1: Fetch Active Experiments

Request:

curl "https://your-server.com/o/sdk?method=ab_fetch_experiments" \
-d "app_key=YOUR_APP_KEY" \
-d "device_id=DEVICE_ID"

Response

Success Response

[
{
"id": "5d4472152de8f07336f3b352",
"name": "My test experiment",
"description": "Experiment description",
"currentVariant": "Control group",
"variants": {
"Control group": {
"button_text": "q"
},
"Variant A": {
"button_text": "w"
}
}
}
]

Response Fields

FieldTypeDescription
idStringExperiment ObjectId
nameStringExperiment name
descriptionStringExperiment description
currentVariantString or nullUser's assigned variant name, if available
variantsObjectVariant name to parameter/value map

Error Responses

  • Query error payload:
{
"result": "Error while fetching ab-testing variants."
}

Behavior

  • Handles /o/sdk?method=ab_fetch_experiments and reads experiments from countly_out.ab_testing_experiments{appId}.
  • Includes experiments whose status is missing or exactly running; draft and completed experiments are not returned.
  • Converts each experiment into an SDK-facing object with id, name, description, currentVariant, and a variants object.
  • variants is keyed by variant name. Each variant value is an object mapping every parameter name in that variant to its configured value.
  • If the SDK request resolved an app user and params.app_user.ab contains an assignment for the experiment, currentVariant is set from that assigned variant_index; otherwise it is null.
  • On database errors, returns Error while fetching ab-testing variants..
Implementation details

Database Collections

CollectionUsed forData touched by this endpoint
countly_out.ab_testing_experiments{appId}Primary:Experiment definitions and variants.
params.app_user.abRelated request contextCurrent variant is resolved from SDK user assignments when available.