DOC
/docs
Flag configuration
GET
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId
Get config

Returns the environment-specific config, rules, and experiment summary.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

{
  "config": {
    "id": 77,
    "flagId": 12,
    "environmentId": 1,
    "enabled": true,
    "defaultValue": true,
    "rules": [],
    "experiment": null
  }
}
PUT
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId
Create or replace config

Creates or updates the environment-specific flag config.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer &lt;admin-jwt&gt;

{ "enabled": true, "defaultValue": true, "rolloutPercentage": 25, "experimentEnabled": false }

Response

{
  "config": {
    "id": 77,
    "enabled": true,
    "defaultValue": true,
    "rolloutPercentage": 25,
    "experimentEnabled": false
  }
}
DOC
/docs
Rules

Rules are evaluated by priority and can target groups, attributes, or percentages.

GET
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/rules
List rules

Lists all rules for a flag config ordered by priority.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

{
  "rules": [
    {
      "id": 5,
      "ruleType": "group",
      "groupId": 2,
      "resultValue": true
    }
  ]
}
POST
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/rules
Create rule

Adds a group, attribute, or percentage rule to the config.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer &lt;admin-jwt&gt;

{
  "name": "Premium users",
  "priority": 10,
  "ruleType": "attribute",
  "attributeKey": "plan",
  "operator": "eq",
  "comparisonValue": "premium",
  "resultValue": true
}

Response

{
  "rule": {
    "id": 5,
    "name": "Premium users",
    "ruleType": "attribute",
    "resultValue": true
  }
}
PATCH
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/rules/:ruleId
Update rule

Updates rule matching fields, priority, enabled state, or result value.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer &lt;admin-jwt&gt;

{ "enabled": false }

Response

{
  "rule": {
    "id": 5,
    "enabled": false
  }
}
DELETE
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/rules/:ruleId
Delete rule

Removes a targeting rule.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

204 No Content
DOC
/docs
Experiments
GET
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment
Get experiment

Returns the experiment, variants, and attached conversion events.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

{
  "experiment": {
    "id": 4,
    "name": "Checkout test",
    "status": "draft",
    "variants": []
  }
}
POST
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment
Create experiment

Creates a draft experiment for a flag config.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer &lt;admin-jwt&gt;

{ "name": "Checkout test" }

Response

{
  "experiment": {
    "id": 4,
    "name": "Checkout test",
    "status": "draft"
  }
}
POST
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/start
Start experiment

Starts a draft experiment after at least two variants exist.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

{
  "experiment": {
    "id": 4,
    "status": "running"
  }
}
POST
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/stop
Stop experiment

Stops a running experiment.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

{
  "experiment": {
    "id": 4,
    "status": "stopped"
  }
}
GET
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/results
Experiment results

Returns exposure and conversion results for the experiment.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

{
  "experimentId": 4,
  "status": "running",
  "startedAt": "2026-09-01T10:00:00.000Z",
  "stoppedAt": null,
  "events": [
    {
      "eventId": 7,
      "eventKey": "checkout-completed",
      "variants": [
        {
          "variantId": 11,
          "variantKey": "control",
          "variantName": "Control",
          "uniqueExposures": 120,
          "conversions": 8,
          "conversionRate": 0.06666666666666667
        }
      ]
    }
  ]
}
DOC
/docs
Variants and conversion events
GET
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/variants
List variants

Lists variants for the experiment.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

{
  "variants": [
    {
      "id": 11,
      "key": "control",
      "allocationPercentage": 50,
      "isControl": true
    }
  ]
}
POST
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/variants
Create variant

Adds a variant to a draft experiment.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer &lt;admin-jwt&gt;

{ "key": "treatment", "name": "Treatment", "value": true, "allocationPercentage": 50 }

Response

{
  "variant": {
    "id": 12,
    "key": "treatment",
    "value": true,
    "allocationPercentage": 50
  }
}
PATCH
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/variants/:variantId
Update variant

Updates variant metadata. Allocation and value cannot change while the experiment is running.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer &lt;admin-jwt&gt;

{ "name": "Updated treatment" }

Response

{
  "variant": {
    "id": 12,
    "name": "Updated treatment"
  }
}
DELETE
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/variants/:variantId
Delete variant

Deletes a variant from a draft experiment.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

204 No Content
POST
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/events
Attach conversion event

Attaches a conversion event to the experiment.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer &lt;admin-jwt&gt;

{ "eventId": 7 }

Response

{
  "experiment": {
    "id": 4,
    "conversionEvents": [
      {
        "id": 7,
        "key": "checkout-completed"
      }
    ]
  }
}
DELETE
/admin/applications/:applicationId/environments/:environmentId/flags/:flagId/experiment/events/:eventId
Detach conversion event

Removes a conversion event from the experiment.

Request

X-Tenant-ID: tenant-uuid
Authorization: Bearer <admin-jwt>

Response

204 No Content