Skip to main content

Remote Config - Config Rollout

Endpoint

/i/remote-config/add-complete-config

Overview

Applies experiment rollout config by creating/updating parameters and optionally creating one condition in a single request.

Authentication

Countly API supports three authentication methods:

  1. api_key=YOUR_API_KEY
  2. auth_token=YOUR_AUTH_TOKEN
  3. countly-token: YOUR_AUTH_TOKEN

Permissions

Requires remote_config Create permission.

Request Parameters

ParameterTypeRequiredDescription
api_keyStringYes (or use auth_token)API key for authentication.
auth_tokenStringNoAuth token as query parameter or countly-token header.
app_idStringYesApp id.
configString (JSON Object)YesRollout payload.

Config Structure (config)

FieldTypeRequiredDescription
parametersArrayYesParameter rollout entries.
conditionObjectNoOptional single condition to be created and attached.

parameters[] Structure

FieldTypeRequiredDescription
parameter_keyStringYesMust match ^[a-zA-Z_][a-zA-Z0-9_]*$.
exp_valueAnyYesWinning/rolled-out value.
default_valueAnyConditionallyRequired when creating a new parameter with rollout condition.
descriptionStringNoDescription for new parameter creation.

condition Structure

FieldTypeRequiredDescription
condition_nameStringYesMust match ^[a-zA-Z0-9 ]+$.
conditionObjectYesCondition query object (stored as JSON string).

Configuration Impact

SettingDefaultAffectsUser-visible impact
remote-config.maximum_allowed_parameters2000Validation limitRollout fails when app is at parameter capacity.
remote-config.conditions_per_paramaeters20Validation limitRollout fails when existing parameter would exceed condition limit.

Response

Success Response

{}

Response Fields

No fields are returned on success for this endpoint.

Error Responses

  • 400
{
"result": "Invalid config"
}
  • 400
{
"result": "Invalid parameter: condition_name"
}
  • 400
{
"result": "Invalid parameter: parameter_key"
}
  • 500
{
"result": "Condition already exists or parameters limit reached"
}
  • 500
{
"result": "Maximum conditions per parameter reached"
}
  • 500
{
"result": "Error while adding the config."
}

Behavior/Processing

  • Existing parameters are updated by parameter_key.
  • New parameters are inserted when key does not exist.
  • If condition is provided, it is created once and linked to affected parameters as a top-priority condition value.
  • Emits system log action: rc_rollout.

Database Collections

CollectionUsed forData touched by this endpoint
countly_out.remoteconfig_parameters{appId}Parameter storageReads existing keys, inserts new parameters, updates existing parameters.
countly_out.remoteconfig_conditions{appId}Condition storageOptionally inserts one rollout condition.
countly.systemlogsAudit trailReceives rc_rollout action.

Examples

Roll out values with a new condition

/i/remote-config/add-complete-config?api_key=YOUR_API_KEY&app_id=6991c75b024cb89cdc04efd2&config={"parameters":[{"parameter_key":"checkout_flow","exp_value":"variant_b","default_value":"variant_a","description":"Checkout rollout"}],"condition":{"condition_name":"New Users","condition":{"up.nc":{"$eq":1}}}}

Roll out values without creating a condition

/i/remote-config/add-complete-config?api_key=YOUR_API_KEY&app_id=6991c75b024cb89cdc04efd2&config={"parameters":[{"parameter_key":"checkout_flow","exp_value":"variant_b"}]}

Limitations

  • Supports at most one condition object per call.
  • Requires at least one parameter in config.parameters.

Last Updated

2026-03-05