Objetivo
Esta guía explica cómo gestionar el ciclo de vida de un feature flag usando la Automation API. Configure el primer flag completando los siguientes pasos:- Cree un feature flag usando el endpoint create a new feature flag.
- Añada una regla de rollout al entorno de desarrollo usando el endpoint update a feature flag configuration.
- Actualice la regla de rollout usando el endpoint update a single rule by ID.
Requisitos
Requisitos previos
Antes de usar la Automation API, asegúrese de que dispone de la siguiente información:Token de acceso
La Automation API requiere un token de acceso. Obtenga un token siguiendo las instrucciones de Obtaining an access token.siteCode
Encuentre elsiteCode navegando a Admin > Projects en la esquina inferior izquierda.

1. Crear un feature flag
Cree un feature flag llamadotest_feature_flag_post, por ejemplo, con la variable test_variable.
Como esta solicitud no especifica environmentConfigurations, el sistema genera automáticamente las configuraciones para los entornos development, staging y production.
Endpoint:
POST https://api.kameleoon.com/feature-flags
curl -L -X POST 'https://api.kameleoon.com/feature-flags' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
"featureKey": "test_feature_flag_post",
"name": "test_feature_flag_post",
"siteCode": "pzllysfw2f",
"description": "",
"tags": [],
"variables": [
{
"key": "test_variable",
"type": "STRING",
"value": "test"
}
],
"variations": [
{
"name": "On",
"key": "on",
"variables": [
{
"key": "test_variable",
"type": "STRING",
"value": "test"
}
]
},
{
"name": "Off",
"key": "off",
"variables": [
{
"key": "test_variable",
"type": "STRING",
"value": "test"
}
]
}
],
"attributionWindow": 604800000,
"archived": false
}
'
{
"id": 13134,
"siteCode": "pzllysfw2f",
"featureKey": "test_feature_flag_post",
"name": "test_feature_flag_post",
"description": "",
"tags": [],
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
],
"variations": [
{
"name": "On",
"key": "on",
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
]
},
{
"name": "Off",
"key": "off",
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
]
}
],
"secondaryGoalIds": [],
"attributionWindow": 604800000,
"health": "HEALTHY",
"dateCreated": "2025-12-17T10:42:14",
"dateModified": "2025-12-17T10:42:14",
"dateContentModified": "2025-12-17T10:42:14",
"environmentConfigurations": [
{
"environmentKey": "production",
"featureEnabled": false,
"defaultVariationKey": "off",
"rolloutRules": [],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
},
{
"environmentKey": "staging",
"featureEnabled": false,
"defaultVariationKey": "off",
"rolloutRules": [],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
},
{
"environmentKey": "development",
"featureEnabled": true,
"defaultVariationKey": "on",
"rolloutRules": [],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
}
],
"createdById": 34255,
"archived": false
}
2. Actualizar el feature flag
Actualice el feature flag para añadir una regla de rollout de tipoTARGETED_DELIVERY al entorno development con la siguiente configuración:


PATCH https://api.kameleoon.com/feature-flags/:siteCode/:featureKey
curl -L -X PATCH 'https://api.kameleoon.com/feature-flags/pzllysfw2f/test_feature_flag_post' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
"environmentConfigurations": [
{
"environmentKey": "development",
"featureEnabled": true,
"defaultVariationKey": "on",
"rolloutRules": [
{
"name": "test rollout rule",
"type": "TARGETED_DELIVERY",
"variations": [],
"trafficAllocations": [
{
"variationKey": "on",
"exposition": 59.0
}
],
"reallocationTimestamp": null,
"release": {
"releaseFrom": "2025-12-11T11:58:01",
"releaseTo": "2025-12-13T11:58:01",
"timeZone": "Europe/Paris"
},
"state": "ACTIVE",
"rollbackConditions": [
{
"target": "RULE",
"criteria": "CONVERSION_RATE",
"comparisonOperator": "GREATER_THAN",
"matchValue": 20.0,
"goalId": 400899,
"visitors": 2,
"recipients": []
}
],
"segmentId": 403694,
"exposition": 59,
"variationKey": "on"
}
],
"integrations": {
"deliveryRules": [],
"experimentRules": []
}
}
]
}'
{
"id": 13134,
"siteCode": "pzllysfw2f",
"featureKey": "test_feature_flag_post",
"name": "test_feature_flag_post",
"description": "",
"tags": [],
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
],
"variations": [
{
"name": "On",
"key": "on",
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
]
},
{
"name": "Off",
"key": "off",
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
]
}
],
"secondaryGoalIds": [],
"attributionWindow": 604800000,
"health": "HEALTHY",
"dateCreated": "2025-12-17T10:42:14",
"dateModified": "2025-12-17T10:42:14",
"dateContentModified": "2025-12-17T10:42:14",
"environmentConfigurations": [
{
"environmentKey": "production",
"featureEnabled": false,
"defaultVariationKey": "off",
"rolloutRules": [],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
},
{
"environmentKey": "staging",
"featureEnabled": false,
"defaultVariationKey": "off",
"rolloutRules": [],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
},
{
"environmentKey": "development",
"featureEnabled": true,
"defaultVariationKey": "on",
"rolloutRules": [
{
"id": 20557,
"name": "test rollout rule",
"type": "TARGETED_DELIVERY",
"experimentId": 354972,
"variations": [],
"trafficAllocations": [{ "variationKey": "on", "exposition": 59.0 }],
"reallocationTimestamp": null,
"release": {
"releaseFrom": "2025-12-11T11:58:01",
"releaseTo": "2025-12-13T11:58:01",
"timeZone": "Europe/Paris"
},
"status": "PAUSED",
"state": "ACTIVE",
"rollbackConditions": [
{
"id": 648,
"target": "RULE",
"criteria": "CONVERSION_RATE",
"comparisonOperator": "GREATER_THAN",
"matchValue": 20.0,
"goalId": 400899,
"visitors": 2,
"recipients": []
}
],
"segmentId": 403694,
"exposition": 59,
"variationKey": "on"
}
],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
}
],
"createdById": 34255,
"archived": false
}
3. Actualizar la regla de rollout
Finalmente, cambie elmatchValue de rollbackConditions a 25 para la regla de rollout con ID 20557.
Endpoint:
PATCH https://api.kameleoon.com/feature-flags/rules/:ruleId
curl -L -X PATCH 'https://api.kameleoon.com/rules/20557' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
--data-raw '{
"rollbackConditions": [
{
"id": 648,
"target": "RULE",
"criteria": "CONVERSION_RATE",
"comparisonOperator": "GREATER_THAN",
"matchValue": 25.0,
"goalId": 400899,
"visitors": 2,
"recipients": []
}
]
}'
{
"id": 13134,
"siteCode": "pzllysfw2f",
"featureKey": "test_feature_flag_post",
"name": "test_feature_flag_post",
"description": "",
"tags": [],
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
],
"variations": [
{
"name": "On",
"key": "on",
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
]
},
{
"name": "Off",
"key": "off",
"variables": [
{ "key": "test_variable", "type": "STRING", "value": "test" }
]
}
],
"secondaryGoalIds": [],
"attributionWindow": 604800000,
"health": "HEALTHY",
"dateCreated": "2025-12-17T10:42:14",
"dateModified": "2025-12-17T10:42:14",
"dateContentModified": "2025-12-17T10:42:14",
"environmentConfigurations": [
{
"environmentKey": "production",
"featureEnabled": false,
"defaultVariationKey": "off",
"rolloutRules": [],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
},
{
"environmentKey": "staging",
"featureEnabled": false,
"defaultVariationKey": "off",
"rolloutRules": [],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
},
{
"environmentKey": "development",
"featureEnabled": true,
"defaultVariationKey": "on",
"rolloutRules": [
{
"id": 20557,
"name": "test rollout rule",
"type": "TARGETED_DELIVERY",
"experimentId": 354972,
"variations": [],
"trafficAllocations": [{ "variationKey": "on", "exposition": 59.0 }],
"reallocationTimestamp": null,
"release": {
"releaseFrom": "2025-12-11T11:58:01",
"releaseTo": "2025-12-13T11:58:01",
"timeZone": "Europe/Paris"
},
"status": "PAUSED",
"state": "ACTIVE",
"rollbackConditions": [
{
"id": 648,
"target": "RULE",
"criteria": "CONVERSION_RATE",
"comparisonOperator": "GREATER_THAN",
"matchValue": 25.0,
"goalId": 400899,
"visitors": 2,
"recipients": []
}
],
"segmentId": 403694,
"exposition": 59,
"variationKey": "on"
}
],
"integrations": { "deliveryRules": [], "experimentRules": [] },
"dateModified": "2025-12-17T10:42:14"
}
],
"createdById": 34255,
"archived": false
}