Create an immutable test-plan version

POST/v1/test-plans/{testPlanId}/versions

How to call this endpoint

Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.

Path, query, and header parameters

These parameters control which ACP object the endpoint acts on and how the request is processed.

Path parameters
NameLocationTypeRequiredDescription
testPlanIdpathstringYes
Query parameters
None.

Body schema

Content type: application/json · Optional

FieldTypeRequiredDescription
labelstringNo
descriptionstringNoHuman-readable description.
snapshotobjectNo
snapshot.namestringNoHuman-readable name.
snapshot.descriptionstringNoHuman-readable description.
snapshot.statusdraft | active | archivedNoCurrent lifecycle status.
snapshot.projectIdstringNoProject ID.
snapshot.targetTypeproject | workflow | function | web_app | agent | repository | customNo
snapshot.targetIdstringNo
snapshot.defaultEnvironmentIdstringNo
snapshot.definitionobjectNo
snapshot.definition.schemaVersioncomputer_agents_test_plan_v1Yes
snapshot.definition.setupobjectYes
snapshot.definition.setup.commandstringYes
snapshot.definition.setup.workingDirectorystringYes
snapshot.definition.setup.timeoutMsintegerYes
snapshot.definition.setup.envobjectYes
snapshot.definition.setup.secretRefsstring[]Yes
snapshot.definition.casesobject[]Yes
snapshot.definition.cases[].idstringYesUnique identifier.
snapshot.definition.cases[].namestringYesHuman-readable name.
snapshot.definition.cases[].descriptionstringYesHuman-readable description.
snapshot.definition.cases[].kindcommand | contract | integration | browser | agent | security | customYes
snapshot.definition.cases[].commandstringYes
snapshot.definition.cases[].workingDirectorystringYes
snapshot.definition.cases[].timeoutMsintegerYes
snapshot.definition.cases[].retriesintegerYes
snapshot.definition.cases[].envobjectYes
snapshot.definition.cases[].secretRefsstring[]Yes
snapshot.definition.cases[].requestobjectYesKind-specific structured request. Secrets must be referenced through `secretRefs`.
snapshot.definition.cases[].assertionsobject[]Yes
snapshot.definition.cases[].agentIdstringYesAgent ID.
snapshot.definition.cases[].enabledbooleanYes
snapshot.definition.cases[].tagsstring[]Yes
snapshot.definition.teardownobjectYes
snapshot.definition.teardown.commandstringYes
snapshot.definition.teardown.workingDirectorystringYes
snapshot.definition.teardown.timeoutMsintegerYes
snapshot.definition.teardown.envobjectYes
snapshot.definition.teardown.secretRefsstring[]Yes
snapshot.definition.concurrencyintegerYes
snapshot.definition.stopOnFailurebooleanYes
snapshot.definition.retryPolicyobjectYes
snapshot.definition.retryPolicy.maxAttemptsintegerYes
snapshot.definition.retryPolicy.backoffMsintegerYes
snapshot.definition.evidencePolicyobjectYes
snapshot.definition.evidencePolicy.retainLogsbooleanYes
snapshot.definition.evidencePolicy.retainScreenshotsbooleanYes
snapshot.definition.evidencePolicy.retainTracesbooleanYes
snapshot.definition.evidencePolicy.retainArtifactsbooleanYes
snapshot.definition.evidencePolicy.redactSecretsbooleanYes
snapshot.metadataobjectNoFree-form metadata object.
metadataobjectNoFree-form metadata object.

What the API returns

Each response code below includes the documented payload shape for the ACP API.

201Saved test-plan versionapplication/json
FieldTypeRequiredDescription
versionobjectYes
version.idstringYesUnique identifier.
version.testPlanIdstringYes
version.versionintegerYes
version.labelstringYes
version.descriptionstringYesHuman-readable description.
version.statussaved | publishedYesCurrent lifecycle status.
version.snapshotobjectYes
version.snapshot.namestringYesHuman-readable name.
version.snapshot.descriptionstringYesHuman-readable description.
version.snapshot.statusdraft | active | archivedYesCurrent lifecycle status.
version.snapshot.projectIdstringYesProject ID.
version.snapshot.targetTypeproject | workflow | function | web_app | agent | repository | customYes
version.snapshot.targetIdstringYes
version.snapshot.defaultEnvironmentIdstringYes
version.snapshot.definitionobjectYes
version.snapshot.definition.schemaVersioncomputer_agents_test_plan_v1Yes
version.snapshot.definition.setupobjectYes
version.snapshot.definition.setup.commandstringYes
version.snapshot.definition.setup.workingDirectorystringYes
version.snapshot.definition.setup.timeoutMsintegerYes
version.snapshot.definition.setup.envobjectYes
version.snapshot.definition.setup.secretRefsstring[]Yes
version.snapshot.definition.casesobject[]Yes
version.snapshot.definition.cases[].idstringYesUnique identifier.
version.snapshot.definition.cases[].namestringYesHuman-readable name.
version.snapshot.definition.cases[].descriptionstringYesHuman-readable description.
version.snapshot.definition.cases[].kindcommand | contract | integration | browser | agent | security | customYes
version.snapshot.definition.cases[].commandstringYes
version.snapshot.definition.cases[].workingDirectorystringYes
version.snapshot.definition.cases[].timeoutMsintegerYes
version.snapshot.definition.cases[].retriesintegerYes
version.snapshot.definition.cases[].envobjectYes
version.snapshot.definition.cases[].secretRefsstring[]Yes
version.snapshot.definition.cases[].requestobjectYesKind-specific structured request. Secrets must be referenced through `secretRefs`.
version.snapshot.definition.cases[].assertionsobject[]Yes
version.snapshot.definition.cases[].agentIdstringYesAgent ID.
version.snapshot.definition.cases[].enabledbooleanYes
version.snapshot.definition.cases[].tagsstring[]Yes
version.snapshot.definition.teardownobjectYes
version.snapshot.definition.teardown.commandstringYes
version.snapshot.definition.teardown.workingDirectorystringYes
version.snapshot.definition.teardown.timeoutMsintegerYes
version.snapshot.definition.teardown.envobjectYes
version.snapshot.definition.teardown.secretRefsstring[]Yes
version.snapshot.definition.concurrencyintegerYes
version.snapshot.definition.stopOnFailurebooleanYes
version.snapshot.definition.retryPolicyobjectYes
version.snapshot.definition.retryPolicy.maxAttemptsintegerYes
version.snapshot.definition.retryPolicy.backoffMsintegerYes
version.snapshot.definition.evidencePolicyobjectYes
version.snapshot.definition.evidencePolicy.retainLogsbooleanYes
version.snapshot.definition.evidencePolicy.retainScreenshotsbooleanYes
version.snapshot.definition.evidencePolicy.retainTracesbooleanYes
version.snapshot.definition.evidencePolicy.retainArtifactsbooleanYes
version.snapshot.definition.evidencePolicy.redactSecretsbooleanYes
version.snapshot.metadataobjectYesFunctional extension metadata only; ownership and access-control fields are deliberately excluded.
version.metadataobjectYesFree-form metadata object.
version.publishedAtstringYes
version.createdAtstringYesISO 8601 timestamp.
version.updatedAtstringYesISO 8601 timestamp.
Create an immutable test-plan version
Loading...
Response 201
Loading...
See the ACP quickstart and SDK flow