POST
/v1/organizations/{organizationId}/projects/{projectId}/environments/{environmentId}/agents/{agentPrincipalId}/releasesActivate an immutable Agent Version for new Test work
Conditionally append or reuse an Agent Release using the current release ETag, making the selected Version active for new Test work.
Authentication
Send an API key as a Bearer token in the Authorization header.
Parameters
Request body
Required.
application/jsonobject- unknown properties allowed
false
agentVersionIdrequiredstringThe immutable Agent Version to activate.All of- maximum length
64
A Cantora Agent Version identifier, prefixed with `agent_version_`.- pattern
^agent_version_[\s\S]+$
- maximum length
reasonrequiredstringWhy this Agent Version is being activated or restored.- maximum length
500 - minimum length
1
- maximum length
sourcerequired- AgentVersionSourceThe source revision and automation run that requested this activation.
Activate the Agent Version in Test
{
"agentVersionId": "agent_version_00000000000000000000000000000001",
"reason": "Activate the first tested support Agent Version.",
"source": {
"repository": "example.invalid/acme/support-agent",
"commit": "0000000000000000000000000000000000000000",
"path": "cantora/support-agent.json",
"workflow": "publish-support-agent",
"run": "example-1"
}
}Responses
200ActivatedAgentReleaseapplication/jsonAgent Release activated
{
"outcome": "created",
"release": {
"agentReleaseId": "agent_release_00000000000000000000000000000001",
"organizationId": "org_00000000000000000000000000000002",
"projectId": "proj_00000000000000000000000000000001",
"environmentId": "env_00000000000000000000000000000001",
"agentPrincipalId": "principal_00000000000000000000000000000003",
"agentDefinitionId": "agentdef_00000000000000000000000000000001",
"agentVersionId": "agent_version_00000000000000000000000000000001",
"precedingAgentReleaseId": null,
"generation": 1,
"releaseEtag": "\"1\"",
"reason": "Activate the first tested support Agent Version.",
"createdByPrincipalId": "principal_00000000000000000000000000000002",
"source": {
"repository": "example.invalid/acme/support-agent",
"commit": "0000000000000000000000000000000000000000",
"path": "cantora/support-agent.json",
"workflow": "publish-support-agent",
"run": "example-1"
},
"createdAt": "2026-01-15T18:30:00.000Z"
}
}400The request path, headers, query, or JSON body did not satisfy the published schema401Unauthorizedapplication/json403Forbiddenapplication/json404NotFoundapplication/json409Conflictapplication/json412PreconditionFailedapplication/jsonReusable schemas
ActivatedAgentReleaseJsonEncoding
object- unknown properties allowed
false
outcomerequiredstringWhether this activation created a new Agent Release or reused the current one.- allowed values
"created", "reused"
- allowed values
releaserequired- AgentReleaseJsonEncodingThe Agent Release selected by the activation.
UnauthorizedJsonEncoding
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"Unauthorized"
- allowed values
reasonrequiredstringA safe explanation of why the credential was rejected.
ForbiddenJsonEncoding
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"Forbidden"
- allowed values
permissionrequiredstringThe permission required by the refused operation.
NotFoundJsonEncoding
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"NotFound"
- allowed values
resourcerequiredstringThe resource type relevant to the error.idrequiredstringThe identifier supplied for the resource that was not found.
ConflictJsonEncoding
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"Conflict"
- allowed values
resourcerequiredstringThe resource type relevant to the error.reasonrequiredstringA safe explanation of the state conflict.
PreconditionFailedJsonEncoding
object- unknown properties allowed
false
_tagrequiredstringThe stable machine-readable error type.- allowed values
"PreconditionFailed"
- allowed values
resourcerequiredstringThe resource type relevant to the error.- allowed values
"agent", "agentDefinition", "agentConfiguration"
- allowed values
currentAgentReleaseIdrequired- The current Agent Release identifier, or null before the first activation.Any of
stringAll of- maximum length
64
A Cantora Agent Release identifier, prefixed with `agent_release_`.- pattern
^agent_release_[\s\S]+$
null - maximum length
currentEtagrequiredstringThe current strong ETag required for the next conditional activation.All of- maximum length
12
The current strong Agent Release ETag, including its double quotes.- pattern
^"(?:0|[1-9][0-9]{0,9})"$
- maximum length
AgentVersionSource
object- unknown properties allowed
false
repositoryrequiredstringThe source repository identifier.All of- minimum length
1
- maximum length
500
- minimum length
commitrequiredstringThe immutable source revision.All of- minimum length
1
- maximum length
500
- minimum length
pathrequiredstringThe path within the source repository.All of- minimum length
1
- maximum length
500
- minimum length
workflowrequiredstringThe source automation workflow identifier.All of- minimum length
1
- maximum length
500
- minimum length
runrequiredstringThe source automation run identifier.All of- minimum length
1
- maximum length
500
- minimum length
AgentReleaseJsonEncoding
object- unknown properties allowed
false
agentReleaseIdrequiredstringThe immutable Agent Release identifier.All of- maximum length
64
A Cantora Agent Release identifier, prefixed with `agent_release_`.- pattern
^agent_release_[\s\S]+$
- maximum length
organizationIdrequiredstringThe Organization identifier.All of- maximum length
64
A Cantora Organization identifier, prefixed with `org_`.- pattern
^org_[\s\S]+$
- maximum length
projectIdrequiredstringThe Project identifier.All of- maximum length
64
A Cantora Project identifier, prefixed with `proj_`.- pattern
^proj_[\s\S]+$
- maximum length
environmentIdrequiredstringThe Environment identifier.All of- maximum length
64
A Cantora Environment identifier, prefixed with `env_`.- pattern
^env_[\s\S]+$
- maximum length
agentPrincipalIdrequiredstringThe Environment Agent Principal identifier.All of- maximum length
64
A Cantora Principal identifier, prefixed with `principal_`.- pattern
^principal_[\s\S]+$
- maximum length
agentDefinitionIdrequiredstringThe Agent Definition identifier.All of- maximum length
64
A Cantora Agent Definition identifier, prefixed with `agentdef_`.- pattern
^agentdef_[\s\S]+$
- maximum length
agentVersionIdrequiredstringThe immutable Agent Version identifier.All of- maximum length
64
A Cantora Agent Version identifier, prefixed with `agent_version_`.- pattern
^agent_version_[\s\S]+$
- maximum length
precedingAgentReleaseIdrequired- The preceding Agent Release identifier, or null for the first activation.Any of
stringAll of- maximum length
64
A Cantora Agent Release identifier, prefixed with `agent_release_`.- pattern
^agent_release_[\s\S]+$
null - maximum length
generationrequiredintegerThe monotonically increasing Agent Release generation.All of- greater than
0
- greater than
releaseEtagrequiredstringThe strong ETag for the Agent's current release generation.All of- maximum length
12
The current strong Agent Release ETag, including its double quotes.- pattern
^"(?:0|[1-9][0-9]{0,9})"$
- maximum length
reasonrequiredstringThe human-readable reason supplied for the activation or rollback.createdByPrincipalIdrequiredstringThe Principal that created this immutable record.All of- maximum length
64
A Cantora Principal identifier, prefixed with `principal_`.- pattern
^principal_[\s\S]+$
- maximum length
sourcerequired- AgentVersionSourceThe source revision and automation provenance.
createdAtrequiredstringWhen the resource was created, in UTC.- format
date-time
- format