Create an evaluation run

POST/v1/evaluations/{evaluationId}/runs

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
evaluationIdpathstringYes—
Query parameters
None.

Body schema

Content type: application/json · Required

FieldTypeRequiredDescription
idstringNoUnique identifier.
runIdstringNo—
run_idstringNo—
targetobjectNoThe platform resource evaluated by this run. Agent, Function, and Metronome targets require `id`. A service_topology requires `entrypoint` and one or more uniquely-keyed `resources`; the complete topology is pinned before dispatch and the entrypoint is invoked. Agent resources require immutable `versionId` values and a Metronome entrypoint so the runtime can enforce and attest their exact versions. A direct Agent target also requires `environmentId`; when `versionId` is omitted, the control plane pins the latest published Agent version or rejects the run before dispatch. An explicitly requested saved Function or Metronome `versionId` is eligible only when it belongs to a registered immutable Optimization Candidate; ordinary saved drafts are rejected. Saved Function candidates execute only through the networkless Evaluation sandbox and never through the live deployment. An unpublished saved Agent version additionally requires `candidateAuthority`, bound to the completed Agent Optimization job that owns that exact version.
target.kindagent | function | metronome | service_topologyYes—
target.idstringNoUnique identifier.
target.targetIdstringNo—
target.versionIdstringNo—
target.candidateAuthorityobjectNoCanonical authority for evaluating an unpublished saved Agent version. The Evaluation service verifies that the completed Agent Optimization job owns the exact candidate version and carries a successful, evidence-bound publication decision before dispatch.
target.candidateAuthority.kindagent_optimization_jobYes—
target.candidateAuthority.idstringYesUnique identifier.
target.environmentIdstringNoComputer ID.
target.invocationobjectNo—
target.invocation.methodGET | POST | PUT | PATCH | DELETENo—
target.invocation.pathstringNoWorkspace-relative file path.
target.invocation.timeoutMsintegerNo—
target.entrypointstringNo—
target.resourcesobject[]No—
target.resources[].keystringYes—
target.resources[].kindagent | function | metronomeYes—
target.resources[].idstringYesUnique identifier.
target.resources[].versionIdstringNo—
target.resources[].candidateAuthorityobjectNoCanonical authority for evaluating an unpublished saved Agent version. The Evaluation service verifies that the completed Agent Optimization job owns the exact candidate version and carries a successful, evidence-bound publication decision before dispatch.
target.resources[].candidateAuthority.kindagent_optimization_jobYes—
target.resources[].candidateAuthority.idstringYesUnique identifier.
agentIdstringNoAgent ID.
environmentIdstringNoComputer ID.
computerIdstringNo—
versionIdstringNo—
labelstringNo—
purposediagnostic | development | optimization | release | external_validationNo—
metadataobjectNoFree-form metadata object.
runobjectNoExecution configuration metadata. Version and dataset binding fields are server-owned and cannot be overridden.
queueWhenCapacityUnavailablebooleanNoPersist the Evaluation run in Batches when runtime capacity is unavailable. Defaults to true on local appliances and false on cloud deployments.
queue_when_capacity_unavailablebooleanNoLegacy alias for queueWhenCapacityUnavailable.

What the API returns

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

202Evaluation run created or durably deferred to Batchesapplication/json
FieldTypeRequiredDescription
runobjectYes—
run.idstringYesUnique identifier.
run.checkpointCountintegerNoNumber of durably accepted cases; not a quality score.
run.summaryViewbooleanNoTrue for compact run listings without case payloads or evidence.
run.totalCountintegerNo—
run.scoredCountintegerNo—
run.passedCountintegerNo—
run.failedCountintegerNo—
run.errorCountintegerNo—
run.skippedCountintegerNo—
run.missingCountintegerNo—
run.evaluationIdstringNo—
run.targetTypeagent | function | metronome | service_topology | noneNo—
run.targetIdstringNo—
run.targetVersionIdstringNo—
run.targetVersionNumberintegerNo—
run.targetInvocationobjectNo—
run.targetInvocation.methodGET | POST | PUT | PATCH | DELETENo—
run.targetInvocation.pathstringNoWorkspace-relative file path.
run.targetInvocation.timeoutMsintegerNo—
run.agentIdstringNoAgent ID.
run.environmentIdstringNoComputer ID.
run.versionIdstringNo—
run.purposediagnostic | development | optimization | release | external_validationNo—
run.statusqueued | running | completed | completed_with_errors | failed | cancelledYesCurrent lifecycle status.
run.averageScorenumberNo—
run.passRatenumberNo—
run.costUsdnumberNo—
run.runFingerprintstringNo—
run.evidenceobjectNo—
run.evidence.schemaVersioncomputer_agents_evaluation_run_evidence_v2Yes—
run.evidence.runIdstringYes—
run.evidence.evaluationobjectYes—
run.evidence.evaluation.idstringYesUnique identifier.
run.evidence.evaluation.versionIdstringYes—
run.evidence.evaluation.versionNumberintegerYes—
run.evidence.evaluation.purposediagnostic | development | optimization | release | external_validationYes—
run.evidence.evaluation.evaluationFingerprintstringYes—
run.evidence.evaluation.datasetFingerprintstringYes—
run.evidence.targetobjectYes—
run.evidence.target.bindingStatuscontrol_plane_pinned | legacy_unverifiedYes—
run.evidence.target.agentIdstringYesAgent ID.
run.evidence.target.agentVersionIdstringYes—
run.evidence.target.agentVersionNumberintegerYes—
run.evidence.target.agentVersionStatusstringYes—
run.evidence.target.targetTypeagent | function | metronome | service_topology | noneYes—
run.evidence.target.targetIdstringYes—
run.evidence.target.targetVersionIdstringYes—
run.evidence.target.targetVersionNumberintegerYes—
run.evidence.target.targetFingerprintstringYes—
run.evidence.executionContextobjectYes—
run.evidence.executionContext.environmentIdstringYesComputer ID.
run.evidence.statuscompleted | completed_with_errors | failed | cancelledYesCurrent lifecycle status.
run.evidence.metricsobjectYes—
run.evidence.metrics.totalCountintegerYes—
run.evidence.metrics.reportedCountintegerYes—
run.evidence.metrics.scoredCountintegerYes—
run.evidence.metrics.passedCountintegerYes—
run.evidence.metrics.failedCountintegerYes—
run.evidence.metrics.errorCountintegerYes—
run.evidence.metrics.skippedCountintegerYes—
run.evidence.metrics.missingCountintegerYes—
run.evidence.metrics.averageScorenumberYes—
run.evidence.metrics.passRatenumberYes—
run.evidence.costobjectYes—
run.evidence.cost.usdnumberYes—
run.evidence.cost.legacyComputeTokensnumberYes—
run.evidence.evaluatorobjectYes—
run.evidence.evaluator.evaluatorFingerprintstringYes—
run.evidence.evaluator.systemFingerprintstringYes—
run.evidence.generatedAtstringYes—
run.evidence.resultSetFingerprintstringYes—
run.evidence.reportFingerprintstringYes—
run.evidence.provenanceobjectYes—
run.evidence.provenance.schemaVersioncomputer_agents_evaluation_run_evidence_provenance_v1Yes—
run.evidence.provenance.sourceexecution_worker | api_client | computer_agents_thread | legacy_importYes—
run.evidence.provenance.trustLevelself_reported | verified_workerYes—
run.evidence.provenance.verificationStatusunverified | verifiedYes—
run.evidence.provenance.executorobjectYes—
run.evidence.provenance.executor.kindstringYes—
run.evidence.provenance.executor.idstringYesUnique identifier.
run.evidence.provenance.attestationobjectYes—
run.evidence.provenance.attestation.schemaVersioncomputer_agents_evaluation_execution_attestation_v1Yes—
run.evidence.provenance.attestation.attestationIdstringYes—
run.evidence.provenance.attestation.workerIdstringYes—
run.evidence.provenance.attestation.dispatchIdstringYes—
run.evidence.provenance.attestation.workerAssertionIdstringYes—
run.evidence.provenance.attestation.credentialIdstringYes—
run.evidence.provenance.attestation.claimAttemptintegerYes—
run.evidence.provenance.attestation.runIdstringYes—
run.evidence.provenance.attestation.evaluationIdstringYes—
run.evidence.provenance.attestation.evaluationVersionIdstringYes—
run.evidence.provenance.attestation.evaluationFingerprintstringYes—
run.evidence.provenance.attestation.datasetFingerprintstringYes—
run.evidence.provenance.attestation.targetTypeagent | function | metronome | service_topology | noneYes—
run.evidence.provenance.attestation.targetIdstringYes—
run.evidence.provenance.attestation.targetVersionIdstringNo—
run.evidence.provenance.attestation.targetAgentIdstringNo—
run.evidence.provenance.attestation.targetAgentVersionIdstringNo—
run.evidence.provenance.attestation.targetFingerprintstringYes—
run.evidence.provenance.attestation.environmentIdstringNoComputer ID.
run.evidence.provenance.attestation.resultSetFingerprintstringYes—
run.evidence.provenance.attestation.reportFingerprintstringYes—
run.evidence.provenance.attestation.issuedAtstringYes—
run.evidence.provenance.attestation.verifiedAtstringYes—
run.evidence.resultsobject[]Yes—
run.evidence.results[].caseIdstringYes—
run.evidence.results[].namestringNoHuman-readable name.
run.evidence.results[].statuspassed | failed | error | skippedYesCurrent lifecycle status.
run.evidence.results[].scorenumberNo—
run.evidence.results[].outputobjectNo—
run.evidence.results[].explanationstringNo—
run.evidence.results[].errorstringNo—
run.evidence.results[].durationMsintegerNo—
run.evidence.results[].evaluatorobjectNo—
run.evidence.results[].metadataobjectNoFree-form metadata object.
run.evidence.fingerprintstringYes—
run.evidence.signatureobjectNo—
run.evidence.signature.schemaVersioncomputer_agents_evaluation_evidence_signature_v1Yes—
run.evidence.signature.providergoogle_cloud_kmsYes—
run.evidence.signature.keyVersionstringYes—
run.evidence.signature.algorithmstringYes—
run.evidence.signature.signedFingerprintstringYes—
run.evidence.signature.signaturestringYes—
run.evidence.signature.signedAtstringYes—
run.evidenceSchemaVersionstringNo—
run.evidenceFingerprintVerifiedbooleanNo—
run.evidenceSourcestringNo—
run.evidenceTrustLevelstringNo—
run.evidenceVerificationStatusstringNo—
run.evidenceProvenanceVerifiedbooleanNo—
run.evidenceAttestationIdstringNo—
run.evidenceSignatureStatusunsigned | kms_signed | invalidNo—
run.evidenceSignatureKeyVersionstringNo—
run.evidenceSignatureAlgorithmstringNo—
run.createdAtstringNoISO 8601 timestamp.
run.updatedAtstringNoISO 8601 timestamp.
run.completedAtstringNoISO 8601 timestamp.
Create an evaluation run
Loading...
Response 202
Loading...
See the ACP quickstart and SDK flow