Create an immutable Optimization Campaign

POST/v1/optimization-campaigns

Pins the exact published base, trusted baseline Evaluation, producer, Test Plan, Assurance Policy, budgets, convergence criteria, and publication policy. Creation does not start work.

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

Body schema

Content type: application/json · Required

FieldTypeRequiredDescription
contractobjectYes
contract.schemaVersioncomputer_agents_optimization_campaign_v1Yes
contract.namestringYesHuman-readable name.
contract.projectIdstringNoProject ID.
contract.objectiveobjectYes
contract.objective.statementstringYes
contract.objective.metricaverage_score | pass_rateYes
contract.objective.targetnumberYes
contract.objective.minimumImprovementnumberYes
contract.objective.maximumRegressionnumberYes
contract.targetobjectYes
contract.target.kindfunction | metronomeYes
contract.target.resourceKeystringYes
contract.target.resourceIdstringYes
contract.target.baseVersionIdstringYes
contract.target.baseFingerprintstringYes
contract.producerobjectYes
contract.producer.kindagentYes
contract.producer.adapterIdstringYes
contract.producer.agentIdstringYesAgent ID.
contract.producer.agentVersionIdstringYes
contract.producer.environmentIdstringYesComputer ID.
contract.evidenceobjectYes
contract.evidence.evaluationIdstringYes
contract.evidence.evaluationVersionIdstringYes
contract.evidence.baselineEvaluationRunIdstringYes
contract.evidence.testPlanIdstringYes
contract.evidence.testPlanVersionIdstringYes
contract.evidence.assurancePolicyIdstringYes
contract.evidence.assurancePolicyVersionIdstringYes
contract.evidence.environmentIdstringNoComputer ID.
contract.limitsobjectYes
contract.limits.maximumAttemptsintegerYes
contract.limits.plateauAttemptsintegerYes
contract.limits.maximumTotalCostUsdnumberYes
contract.limits.maximumDurationMinutesintegerYes
contract.limits.maximumTransientRetriesintegerYes
contract.publicationobjectYes
contract.publication.modemanual | auto_on_targetYes
contract.publication.deployAfterPromotionbooleanYes
contract.idempotencyKeystringYes

What the API returns

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

200Existing idempotent campaign
None.
201Campaign created without starting execution
None.
400Invalid closed-schema campaign contract
None.
409Stale base
None.
Create an immutable Optimization Campaign
Loading...
Response 200
Loading...
See the ACP quickstart and SDK flow