Get one Optimization Campaign with attempts and events

GET/v1/optimization-campaigns/{campaignId}

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
campaignIdpathstringYesDurable Optimization Campaign ID
Query parameters
None.

Body schema

This endpoint does not require a request body.

None.

What the API returns

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

200Durable campaign stateapplication/json
FieldTypeRequiredDescription
campaignobjectYes
campaign.idstringYesUnique identifier.
campaign.userIdstringNoUser ID.
campaign.organizationIdstringNo
campaign.createdByUserIdstringNo
campaign.projectIdstringNoProject ID.
campaign.namestringYesHuman-readable name.
campaign.contractobjectYes
campaign.contract.schemaVersioncomputer_agents_optimization_campaign_v1Yes
campaign.contract.namestringYesHuman-readable name.
campaign.contract.projectIdstringNoProject ID.
campaign.contract.objectiveobjectYes
campaign.contract.objective.statementstringYes
campaign.contract.objective.metricaverage_score | pass_rateYes
campaign.contract.objective.targetnumberYes
campaign.contract.objective.minimumImprovementnumberYes
campaign.contract.objective.maximumRegressionnumberYes
campaign.contract.targetobjectYes
campaign.contract.target.kindfunction | metronomeYes
campaign.contract.target.resourceKeystringYes
campaign.contract.target.resourceIdstringYes
campaign.contract.target.baseVersionIdstringYes
campaign.contract.target.baseFingerprintstringYes
campaign.contract.producerobjectYes
campaign.contract.producer.kindagentYes
campaign.contract.producer.adapterIdstringYes
campaign.contract.producer.agentIdstringYesAgent ID.
campaign.contract.producer.agentVersionIdstringYes
campaign.contract.producer.environmentIdstringYesComputer ID.
campaign.contract.evidenceobjectYes
campaign.contract.evidence.evaluationIdstringYes
campaign.contract.evidence.evaluationVersionIdstringYes
campaign.contract.evidence.baselineEvaluationRunIdstringYes
campaign.contract.evidence.testPlanIdstringYes
campaign.contract.evidence.testPlanVersionIdstringYes
campaign.contract.evidence.assurancePolicyIdstringYes
campaign.contract.evidence.assurancePolicyVersionIdstringYes
campaign.contract.evidence.environmentIdstringNoComputer ID.
campaign.contract.limitsobjectYes
campaign.contract.limits.maximumAttemptsintegerYes
campaign.contract.limits.plateauAttemptsintegerYes
campaign.contract.limits.maximumTotalCostUsdnumberYes
campaign.contract.limits.maximumDurationMinutesintegerYes
campaign.contract.limits.maximumTransientRetriesintegerYes
campaign.contract.publicationobjectYes
campaign.contract.publication.modemanual | auto_on_targetYes
campaign.contract.publication.deployAfterPromotionbooleanYes
campaign.contract.idempotencyKeystringYes
campaign.contractFingerprintstringYes
campaign.objectiveFingerprintstringYes
campaign.targetKindfunction | metronomeYes
campaign.targetResourceIdstringYes
campaign.baseVersionIdstringYes
campaign.baseFingerprintstringYes
campaign.baselineEvaluationRunIdstringYes
campaign.baselineScorenumberYes
campaign.baselinePassRatenumberYes
campaign.statusdraft | queued | producing | evaluating | awaiting_assurance | ready_to_promote | releasing | completed | plateaued | failed | cancelledYesCurrent lifecycle status.
campaign.attemptCountintegerYes
campaign.bestCandidateIdstringNo
campaign.bestCandidateVersionIdstringNo
campaign.bestScorenumberNo
campaign.costUsdnumberYes
campaign.idempotencyKeystringYes
campaign.startedAtstringNoISO 8601 timestamp.
campaign.completedAtstringNoISO 8601 timestamp.
campaign.cancelledAtstringNo
campaign.createdAtstringYesISO 8601 timestamp.
campaign.updatedAtstringYesISO 8601 timestamp.
campaign.attemptsobject[]No
campaign.attempts[].idstringYesUnique identifier.
campaign.attempts[].campaignIdstringYes
campaign.attempts[].attemptNumberintegerYes
campaign.attempts[].statusqueued | producing | evaluating | awaiting_assurance | accepted | promoted | rejected | failed | cancelledYesCurrent lifecycle status.
campaign.attempts[].producerRequestobjectYes
campaign.attempts[].producerRequest.schemaVersioncomputer_agents_optimization_campaign_producer_request_v1Yes
campaign.attempts[].producerRequest.campaignIdstringYes
campaign.attempts[].producerRequest.attemptIdstringYes
campaign.attempts[].producerRequest.attemptNumberintegerYes
campaign.attempts[].producerRequest.targetobjectYes
campaign.attempts[].producerRequest.target.kindfunction | metronomeYes
campaign.attempts[].producerRequest.target.resourceKeystringYes
campaign.attempts[].producerRequest.target.resourceIdstringYes
campaign.attempts[].producerRequest.target.baseVersionIdstringYes
campaign.attempts[].producerRequest.target.baseFingerprintstringYes
campaign.attempts[].producerRequest.objectiveobjectYes
campaign.attempts[].producerRequest.objective.statementstringYes
campaign.attempts[].producerRequest.objective.metricaverage_score | pass_rateYes
campaign.attempts[].producerRequest.objective.targetnumberYes
campaign.attempts[].producerRequest.objective.minimumImprovementnumberYes
campaign.attempts[].producerRequest.objective.maximumRegressionnumberYes
campaign.attempts[].producerRequest.objectiveFingerprintstringYes
campaign.attempts[].producerRequest.producerobjectYes
campaign.attempts[].producerRequest.producer.kindagentYes
campaign.attempts[].producerRequest.producer.adapterIdstringYes
campaign.attempts[].producerRequest.producer.agentIdstringYesAgent ID.
campaign.attempts[].producerRequest.producer.agentVersionIdstringYes
campaign.attempts[].producerRequest.producer.environmentIdstringYesComputer ID.
campaign.attempts[].producerRequest.constraintsobjectYes
campaign.attempts[].producerRequest.constraints.candidateMustRemainSavedtrueYes
campaign.attempts[].producerRequest.constraints.networkAccessfalseYes
campaign.attempts[].producerRequest.constraints.secretsAccessfalseYes
campaign.attempts[].producerRequest.constraints.maximumSourceSnapshotBytesintegerYes
campaign.attempts[].producerRequest.constraints.maximumCandidateResponseBytesintegerYes
campaign.attempts[].candidateIdstringNo
campaign.attempts[].candidateVersionIdstringNo
campaign.attempts[].candidateFingerprintstringNo
campaign.attempts[].testRunIdstringNo
campaign.attempts[].evaluationRunIdstringNo
campaign.attempts[].assuranceRunIdstringNo
campaign.attempts[].acceptanceFingerprintstringNo
campaign.attempts[].scorenumberNo
campaign.attempts[].passRatenumberNo
campaign.attempts[].improvementnumberNo
campaign.attempts[].costUsdnumberYes
campaign.attempts[].errorstringNo
campaign.attempts[].startedAtstringNoISO 8601 timestamp.
campaign.attempts[].completedAtstringNoISO 8601 timestamp.
campaign.attempts[].createdAtstringYesISO 8601 timestamp.
campaign.attempts[].updatedAtstringYesISO 8601 timestamp.
campaign.eventsobject[]No
campaign.events[].idstringYesUnique identifier.
campaign.events[].typestringYes
campaign.events[].actorUserIdstringYes
campaign.events[].payloadobjectYes
campaign.events[].createdAtstringYesISO 8601 timestamp.
404Campaign not found
None.
Get one Optimization Campaign with attempts and events
Loading...
Response 200
Loading...
See the ACP quickstart and SDK flow