Skip to main content

Release-control API

Release resources share a common envelope. data is provider-neutral but intentionally schemaless so LaunchDarkly-specific and newly introduced fields round-trip without loss.

{
"key": "checkout-ramp",
"name": "Checkout ramp",
"description": "Metric-protected progressive delivery",
"environment_key": "production",
"flag_key": "checkout-guarded-release",
"status": "draft",
"data": {"autoRollback":true,"metrics":["checkout-completion"]}
}

Use the resource kind in the route:

GET /api/orgs/{org}/projects/{projectID}/control/{kind}
POST /api/orgs/{org}/projects/{projectID}/control/{kind}
PUT /api/orgs/{org}/projects/{projectID}/control/{kind}/{resourceID}
DELETE /api/orgs/{org}/projects/{projectID}/control/{kind}/{resourceID}

Kinds are guarded-rollouts, experiments, workflows, release-pipelines, metrics, and integration-configs. List endpoints accept environment, status, and flag_key query filters. Keys are unique per project, environment, and kind. Create/update requires writer access; delete requires admin access.

Runtime endpoints:

GET /api/orgs/{org}/projects/{projectID}/contexts?environment=production&q=acme
GET /api/orgs/{org}/projects/{projectID}/live-events?environment=production&page=1

Contexts include kind, key, attributes, anonymity, application/version, first/last seen, and evaluation count. Live events include event type, flag, context, variation, value, reason, source, occurrence time, and raw payload.

Store dates as RFC 3339 UTC. Treat unknown JSON fields as forward-compatible and preserve them when updating a migrated record.