Bundles
POST
/v1/orgs/{org_id}/projects/{project_id}/envs/{env_name}/bundles/{version}/activateActivate Bundle
Activate a specific bundle version (rollback).
Bearer token or X-API-Keyscope: bundle:publishoperation_id: bundles.activate
Authentication
Send either Authorization: Bearer <token> or X-API-Key: <token>. The caller must hold the "bundle:publish" role on the organization. CI token — create via POST /v1/orgs/{org_id}/tokens/ci. Project-scoped, allows the bundle lifecycle. Requests without a valid credential are rejected with 401.
SDK install
pip install znyx-sdknpm install @znyx/sdkCode samples
Request
curl -X POST "$ZNYX_API_URL/v1/orgs/00000000-0000-0000-0000-000000000000/projects/00000000-0000-0000-0000-000000000000/envs/prod/bundles/42/activate" \ -H "Authorization: Bearer $ZNYX_TOKEN"
Response
application/json
Successful Response
{
"id": "string",
"version": 0,
"policy_hash": "string",
"is_active": false,
"published_by": null,
"published_at": "string",
"scope_count": 0
}Schema: object
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| org_id#path | string | required | - |
| project_id#path | string | required | - |
| env_name#path | string | required | - |
| version#path | integer | required | - |
Header parameters
| Name | Type | Required | Description |
|---|---|---|---|
| X-API-Key#header | string | null | optional | - |
| authorization#header | string | null | optional | - |
Responses
| Status | Description |
|---|---|
| 200 | Successful Response |
| 422 | Validation Error |
Response schema
idrequiredstring
versionrequiredinteger
policy_hashrequiredstring
is_activerequiredboolean
published_byrequiredstring | null
published_atrequiredstring
scope_countinteger
Errors & what triggers them
| Code | Trigger | Fix |
|---|---|---|
| 403 | Token lacks `bundle:publish` scope. | - |
| 404 | Bundle version does not exist in this environment. | - |
Notes & examples
When to use this
- Incident response — the new bundle broke something, jump back to the last known good version without re-uploading anything.
- A/B testing — keep two versions published, flip between them.
- Manual promotion — if your CI publishes to dev but you want to activate in prod by hand.
Runtimes polling /v1/bundles/latest will see the change within the poll interval (30-60s typically).
What gets audited
Every activate call writes an audit event with the acting token's prefix and the version numbers (from → to). If you're in a regulated industry, this is what you show the auditor during the change-management review.
Related
POST .../bundles/publish— create a new version.POST .../envs/{source}/promote— promote the current active from dev→staging→prod.GET .../bundles— list all versions to pick one.