Pin a hypothesis and bounded retrospective comparison protocol

POST/v1/quality/checks/benchmark/{evaluationId}/experiments

Requires native benchmark result-read and case-management permissions. Baseline and candidate must be distinct retained outputs for identical immutable cases and source bytes. Locks measurement, reference and grader identities. Creation is idempotent for the same actor and payload. No target executes, no cloud call occurs, and imported evidence never becomes release authority.

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
idstringYesUnique identifier.
namestringYesHuman-readable name.
hypothesisstringYes
allowedChangesstringYesDescribes the change being investigated; this diagnostic protocol never executes or grants permission to modify a target
baselineMeasurementIdstringYes
candidateObservationRunIdstringYes
primaryMetricIdstringYes
minimumImprovementPercentagePointsnumberYes
minimumPairedExamplesintegerYesDeclared descriptive cohort threshold
guardrailsobject[]Yes
guardrails[].metricIdstringYes
guardrails[].maximumRegressionPercentagePointsnumberYes

What the API returns

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

200Saved protocol or identical retry receiptapplication/json
FieldTypeRequiredDescription
experimentobjectYes
experiment.schemaVersioncomputer_agents_quality_experiment_v1Yes
experiment.idstringYesUnique identifier.
experiment.namestringYesHuman-readable name.
experiment.hypothesisstringYes
experiment.allowedChangesstringYes
experiment.baselineMeasurementIdstringYes
experiment.candidateObservationRunIdstringYes
experiment.primaryMetricIdstringYes
experiment.minimumImprovementPercentagePointsnumberYes
experiment.minimumPairedExamplesintegerYes
experiment.guardrailsobject[]Yes
experiment.guardrails[].metricIdstringYes
experiment.guardrails[].maximumRegressionPercentagePointsnumberYes
experiment.evaluationIdstringYes
experiment.versionIdstringYes
experiment.purposediagnosticYes
experiment.designretained_output_comparisonYes
experiment.baselineMeasurementFingerprintstringYes
experiment.baselineObservationRunIdstringYes
experiment.baselineObservationFingerprintstringYes
experiment.candidateObservationFingerprintstringYes
experiment.populationFingerprintstringYes
experiment.populationCountintegerYes
experiment.baselineSystemLabelstringYesCaller-declared import label
experiment.candidateSystemLabelstringYesCaller-declared import label
experiment.limitsobjectYes
experiment.limits.maximumComparisons1Yes
experiment.limits.maximumCases100Yes
experiment.limits.externalCalls0Yes
experiment.createdByUserIdstringYes
experiment.createdAtstringYesISO 8601 timestamp.
experiment.fingerprintstringYes
400Invalid protocol
None.
401Authentication required
None.
403Organization or entitlement unavailable; execution credentials cannot author protocols
None.
404Benchmark evidence or case-management permission unavailable
None.
409Identity
None.
503Durable storage unavailable
None.
Pin a hypothesis and bounded retrospective comparison protocol
Loading...
Response 200
Loading...
See the ACP quickstart and SDK flow