List Optimization Campaigns
GET
/v1/optimization-campaignsHow 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
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| projectId | query | string | No | — |
| limit | query | integer | No | — |
| offset | query | integer | No | — |
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.
200Optimization Campaigns in the active workspaceapplication/json
| Field | Type | Required | Description |
|---|---|---|---|
| object | list | Yes | — |
| data | object[] | Yes | — |
| data[].id | string | Yes | Unique identifier. |
| data[].userId | string | No | User ID. |
| data[].organizationId | string | No | — |
| data[].createdByUserId | string | No | — |
| data[].projectId | string | No | Project ID. |
| data[].name | string | Yes | Human-readable name. |
| data[].contract | object | Yes | — |
| data[].contract.schemaVersion | computer_agents_optimization_campaign_v1 | Yes | — |
| data[].contract.name | string | Yes | Human-readable name. |
| data[].contract.projectId | string | No | Project ID. |
| data[].contract.objective | object | Yes | — |
| data[].contract.objective.statement | string | Yes | — |
| data[].contract.objective.metric | average_score | pass_rate | Yes | — |
| data[].contract.objective.target | number | Yes | — |
| data[].contract.objective.minimumImprovement | number | Yes | — |
| data[].contract.objective.maximumRegression | number | Yes | — |
| data[].contract.target | object | Yes | — |
| data[].contract.target.kind | function | metronome | Yes | — |
| data[].contract.target.resourceKey | string | Yes | — |
| data[].contract.target.resourceId | string | Yes | — |
| data[].contract.target.baseVersionId | string | Yes | — |
| data[].contract.target.baseFingerprint | string | Yes | — |
| data[].contract.producer | object | Yes | — |
| data[].contract.producer.kind | agent | Yes | — |
| data[].contract.producer.adapterId | string | Yes | — |
| data[].contract.producer.agentId | string | Yes | Agent ID. |
| data[].contract.producer.agentVersionId | string | Yes | — |
| data[].contract.producer.environmentId | string | Yes | Computer ID. |
| data[].contract.evidence | object | Yes | — |
| data[].contract.evidence.evaluationId | string | Yes | — |
| data[].contract.evidence.evaluationVersionId | string | Yes | — |
| data[].contract.evidence.baselineEvaluationRunId | string | Yes | — |
| data[].contract.evidence.testPlanId | string | Yes | — |
| data[].contract.evidence.testPlanVersionId | string | Yes | — |
| data[].contract.evidence.assurancePolicyId | string | Yes | — |
| data[].contract.evidence.assurancePolicyVersionId | string | Yes | — |
| data[].contract.evidence.environmentId | string | No | Computer ID. |
| data[].contract.limits | object | Yes | — |
| data[].contract.limits.maximumAttempts | integer | Yes | — |
| data[].contract.limits.plateauAttempts | integer | Yes | — |
| data[].contract.limits.maximumTotalCostUsd | number | Yes | — |
| data[].contract.limits.maximumDurationMinutes | integer | Yes | — |
| data[].contract.limits.maximumTransientRetries | integer | Yes | — |
| data[].contract.publication | object | Yes | — |
| data[].contract.publication.mode | manual | auto_on_target | Yes | — |
| data[].contract.publication.deployAfterPromotion | boolean | Yes | — |
| data[].contract.idempotencyKey | string | Yes | — |
| data[].contractFingerprint | string | Yes | — |
| data[].objectiveFingerprint | string | Yes | — |
| data[].targetKind | function | metronome | Yes | — |
| data[].targetResourceId | string | Yes | — |
| data[].baseVersionId | string | Yes | — |
| data[].baseFingerprint | string | Yes | — |
| data[].baselineEvaluationRunId | string | Yes | — |
| data[].baselineScore | number | Yes | — |
| data[].baselinePassRate | number | Yes | — |
| data[].status | draft | queued | producing | evaluating | awaiting_assurance | ready_to_promote | releasing | completed | plateaued | failed | cancelled | Yes | Current lifecycle status. |
| data[].attemptCount | integer | Yes | — |
| data[].bestCandidateId | string | No | — |
| data[].bestCandidateVersionId | string | No | — |
| data[].bestScore | number | No | — |
| data[].costUsd | number | Yes | — |
| data[].idempotencyKey | string | Yes | — |
| data[].startedAt | string | No | ISO 8601 timestamp. |
| data[].completedAt | string | No | ISO 8601 timestamp. |
| data[].cancelledAt | string | No | — |
| data[].createdAt | string | Yes | ISO 8601 timestamp. |
| data[].updatedAt | string | Yes | ISO 8601 timestamp. |
| data[].attempts | object[] | No | — |
| data[].attempts[].id | string | Yes | Unique identifier. |
| data[].attempts[].campaignId | string | Yes | — |
| data[].attempts[].attemptNumber | integer | Yes | — |
| data[].attempts[].status | queued | producing | evaluating | awaiting_assurance | accepted | promoted | rejected | failed | cancelled | Yes | Current lifecycle status. |
| data[].attempts[].producerRequest | object | Yes | — |
| data[].attempts[].producerRequest.schemaVersion | computer_agents_optimization_campaign_producer_request_v1 | Yes | — |
| data[].attempts[].producerRequest.campaignId | string | Yes | — |
| data[].attempts[].producerRequest.attemptId | string | Yes | — |
| data[].attempts[].producerRequest.attemptNumber | integer | Yes | — |
| data[].attempts[].producerRequest.target | object | Yes | — |
| data[].attempts[].producerRequest.target.kind | function | metronome | Yes | — |
| data[].attempts[].producerRequest.target.resourceKey | string | Yes | — |
| data[].attempts[].producerRequest.target.resourceId | string | Yes | — |
| data[].attempts[].producerRequest.target.baseVersionId | string | Yes | — |
| data[].attempts[].producerRequest.target.baseFingerprint | string | Yes | — |
| data[].attempts[].producerRequest.objective | object | Yes | — |
| data[].attempts[].producerRequest.objective.statement | string | Yes | — |
| data[].attempts[].producerRequest.objective.metric | average_score | pass_rate | Yes | — |
| data[].attempts[].producerRequest.objective.target | number | Yes | — |
| data[].attempts[].producerRequest.objective.minimumImprovement | number | Yes | — |
| data[].attempts[].producerRequest.objective.maximumRegression | number | Yes | — |
| data[].attempts[].producerRequest.objectiveFingerprint | string | Yes | — |
| data[].attempts[].producerRequest.producer | object | Yes | — |
| data[].attempts[].producerRequest.producer.kind | agent | Yes | — |
| data[].attempts[].producerRequest.producer.adapterId | string | Yes | — |
| data[].attempts[].producerRequest.producer.agentId | string | Yes | Agent ID. |
| data[].attempts[].producerRequest.producer.agentVersionId | string | Yes | — |
| data[].attempts[].producerRequest.producer.environmentId | string | Yes | Computer ID. |
| data[].attempts[].producerRequest.constraints | object | Yes | — |
| data[].attempts[].producerRequest.constraints.candidateMustRemainSaved | true | Yes | — |
| data[].attempts[].producerRequest.constraints.networkAccess | false | Yes | — |
| data[].attempts[].producerRequest.constraints.secretsAccess | false | Yes | — |
| data[].attempts[].producerRequest.constraints.maximumSourceSnapshotBytes | integer | Yes | — |
| data[].attempts[].producerRequest.constraints.maximumCandidateResponseBytes | integer | Yes | — |
| data[].attempts[].candidateId | string | No | — |
| data[].attempts[].candidateVersionId | string | No | — |
| data[].attempts[].candidateFingerprint | string | No | — |
| data[].attempts[].testRunId | string | No | — |
| data[].attempts[].evaluationRunId | string | No | — |
| data[].attempts[].assuranceRunId | string | No | — |
| data[].attempts[].acceptanceFingerprint | string | No | — |
| data[].attempts[].score | number | No | — |
| data[].attempts[].passRate | number | No | — |
| data[].attempts[].improvement | number | No | — |
| data[].attempts[].costUsd | number | Yes | — |
| data[].attempts[].error | string | No | — |
| data[].attempts[].startedAt | string | No | ISO 8601 timestamp. |
| data[].attempts[].completedAt | string | No | ISO 8601 timestamp. |
| data[].attempts[].createdAt | string | Yes | ISO 8601 timestamp. |
| data[].attempts[].updatedAt | string | Yes | ISO 8601 timestamp. |
| data[].events | object[] | No | — |
| data[].events[].id | string | Yes | Unique identifier. |
| data[].events[].type | string | Yes | — |
| data[].events[].actorUserId | string | Yes | — |
| data[].events[].payload | object | Yes | — |
| data[].events[].createdAt | string | Yes | ISO 8601 timestamp. |
| campaigns | object[] | Yes | — |
| campaigns[].id | string | Yes | Unique identifier. |
| campaigns[].userId | string | No | User ID. |
| campaigns[].organizationId | string | No | — |
| campaigns[].createdByUserId | string | No | — |
| campaigns[].projectId | string | No | Project ID. |
| campaigns[].name | string | Yes | Human-readable name. |
| campaigns[].contract | object | Yes | — |
| campaigns[].contract.schemaVersion | computer_agents_optimization_campaign_v1 | Yes | — |
| campaigns[].contract.name | string | Yes | Human-readable name. |
| campaigns[].contract.projectId | string | No | Project ID. |
| campaigns[].contract.objective | object | Yes | — |
| campaigns[].contract.objective.statement | string | Yes | — |
| campaigns[].contract.objective.metric | average_score | pass_rate | Yes | — |
| campaigns[].contract.objective.target | number | Yes | — |
| campaigns[].contract.objective.minimumImprovement | number | Yes | — |
| campaigns[].contract.objective.maximumRegression | number | Yes | — |
| campaigns[].contract.target | object | Yes | — |
| campaigns[].contract.target.kind | function | metronome | Yes | — |
| campaigns[].contract.target.resourceKey | string | Yes | — |
| campaigns[].contract.target.resourceId | string | Yes | — |
| campaigns[].contract.target.baseVersionId | string | Yes | — |
| campaigns[].contract.target.baseFingerprint | string | Yes | — |
| campaigns[].contract.producer | object | Yes | — |
| campaigns[].contract.producer.kind | agent | Yes | — |
| campaigns[].contract.producer.adapterId | string | Yes | — |
| campaigns[].contract.producer.agentId | string | Yes | Agent ID. |
| campaigns[].contract.producer.agentVersionId | string | Yes | — |
| campaigns[].contract.producer.environmentId | string | Yes | Computer ID. |
| campaigns[].contract.evidence | object | Yes | — |
| campaigns[].contract.evidence.evaluationId | string | Yes | — |
| campaigns[].contract.evidence.evaluationVersionId | string | Yes | — |
| campaigns[].contract.evidence.baselineEvaluationRunId | string | Yes | — |
| campaigns[].contract.evidence.testPlanId | string | Yes | — |
| campaigns[].contract.evidence.testPlanVersionId | string | Yes | — |
| campaigns[].contract.evidence.assurancePolicyId | string | Yes | — |
| campaigns[].contract.evidence.assurancePolicyVersionId | string | Yes | — |
| campaigns[].contract.evidence.environmentId | string | No | Computer ID. |
| campaigns[].contract.limits | object | Yes | — |
| campaigns[].contract.limits.maximumAttempts | integer | Yes | — |
| campaigns[].contract.limits.plateauAttempts | integer | Yes | — |
| campaigns[].contract.limits.maximumTotalCostUsd | number | Yes | — |
| campaigns[].contract.limits.maximumDurationMinutes | integer | Yes | — |
| campaigns[].contract.limits.maximumTransientRetries | integer | Yes | — |
| campaigns[].contract.publication | object | Yes | — |
| campaigns[].contract.publication.mode | manual | auto_on_target | Yes | — |
| campaigns[].contract.publication.deployAfterPromotion | boolean | Yes | — |
| campaigns[].contract.idempotencyKey | string | Yes | — |
| campaigns[].contractFingerprint | string | Yes | — |
| campaigns[].objectiveFingerprint | string | Yes | — |
| campaigns[].targetKind | function | metronome | Yes | — |
| campaigns[].targetResourceId | string | Yes | — |
| campaigns[].baseVersionId | string | Yes | — |
| campaigns[].baseFingerprint | string | Yes | — |
| campaigns[].baselineEvaluationRunId | string | Yes | — |
| campaigns[].baselineScore | number | Yes | — |
| campaigns[].baselinePassRate | number | Yes | — |
| campaigns[].status | draft | queued | producing | evaluating | awaiting_assurance | ready_to_promote | releasing | completed | plateaued | failed | cancelled | Yes | Current lifecycle status. |
| campaigns[].attemptCount | integer | Yes | — |
| campaigns[].bestCandidateId | string | No | — |
| campaigns[].bestCandidateVersionId | string | No | — |
| campaigns[].bestScore | number | No | — |
| campaigns[].costUsd | number | Yes | — |
| campaigns[].idempotencyKey | string | Yes | — |
| campaigns[].startedAt | string | No | ISO 8601 timestamp. |
| campaigns[].completedAt | string | No | ISO 8601 timestamp. |
| campaigns[].cancelledAt | string | No | — |
| campaigns[].createdAt | string | Yes | ISO 8601 timestamp. |
| campaigns[].updatedAt | string | Yes | ISO 8601 timestamp. |
| campaigns[].attempts | object[] | No | — |
| campaigns[].attempts[].id | string | Yes | Unique identifier. |
| campaigns[].attempts[].campaignId | string | Yes | — |
| campaigns[].attempts[].attemptNumber | integer | Yes | — |
| campaigns[].attempts[].status | queued | producing | evaluating | awaiting_assurance | accepted | promoted | rejected | failed | cancelled | Yes | Current lifecycle status. |
| campaigns[].attempts[].producerRequest | object | Yes | — |
| campaigns[].attempts[].producerRequest.schemaVersion | computer_agents_optimization_campaign_producer_request_v1 | Yes | — |
| campaigns[].attempts[].producerRequest.campaignId | string | Yes | — |
| campaigns[].attempts[].producerRequest.attemptId | string | Yes | — |
| campaigns[].attempts[].producerRequest.attemptNumber | integer | Yes | — |
| campaigns[].attempts[].producerRequest.target | object | Yes | — |
| campaigns[].attempts[].producerRequest.target.kind | function | metronome | Yes | — |
| campaigns[].attempts[].producerRequest.target.resourceKey | string | Yes | — |
| campaigns[].attempts[].producerRequest.target.resourceId | string | Yes | — |
| campaigns[].attempts[].producerRequest.target.baseVersionId | string | Yes | — |
| campaigns[].attempts[].producerRequest.target.baseFingerprint | string | Yes | — |
| campaigns[].attempts[].producerRequest.objective | object | Yes | — |
| campaigns[].attempts[].producerRequest.objective.statement | string | Yes | — |
| campaigns[].attempts[].producerRequest.objective.metric | average_score | pass_rate | Yes | — |
| campaigns[].attempts[].producerRequest.objective.target | number | Yes | — |
| campaigns[].attempts[].producerRequest.objective.minimumImprovement | number | Yes | — |
| campaigns[].attempts[].producerRequest.objective.maximumRegression | number | Yes | — |
| campaigns[].attempts[].producerRequest.objectiveFingerprint | string | Yes | — |
| campaigns[].attempts[].producerRequest.producer | object | Yes | — |
| campaigns[].attempts[].producerRequest.producer.kind | agent | Yes | — |
| campaigns[].attempts[].producerRequest.producer.adapterId | string | Yes | — |
| campaigns[].attempts[].producerRequest.producer.agentId | string | Yes | Agent ID. |
| campaigns[].attempts[].producerRequest.producer.agentVersionId | string | Yes | — |
| campaigns[].attempts[].producerRequest.producer.environmentId | string | Yes | Computer ID. |
| campaigns[].attempts[].producerRequest.constraints | object | Yes | — |
| campaigns[].attempts[].producerRequest.constraints.candidateMustRemainSaved | true | Yes | — |
| campaigns[].attempts[].producerRequest.constraints.networkAccess | false | Yes | — |
| campaigns[].attempts[].producerRequest.constraints.secretsAccess | false | Yes | — |
| campaigns[].attempts[].producerRequest.constraints.maximumSourceSnapshotBytes | integer | Yes | — |
| campaigns[].attempts[].producerRequest.constraints.maximumCandidateResponseBytes | integer | Yes | — |
| campaigns[].attempts[].candidateId | string | No | — |
| campaigns[].attempts[].candidateVersionId | string | No | — |
| campaigns[].attempts[].candidateFingerprint | string | No | — |
| campaigns[].attempts[].testRunId | string | No | — |
| campaigns[].attempts[].evaluationRunId | string | No | — |
| campaigns[].attempts[].assuranceRunId | string | No | — |
| campaigns[].attempts[].acceptanceFingerprint | string | No | — |
| campaigns[].attempts[].score | number | No | — |
| campaigns[].attempts[].passRate | number | No | — |
| campaigns[].attempts[].improvement | number | No | — |
| campaigns[].attempts[].costUsd | number | Yes | — |
| campaigns[].attempts[].error | string | No | — |
| campaigns[].attempts[].startedAt | string | No | ISO 8601 timestamp. |
| campaigns[].attempts[].completedAt | string | No | ISO 8601 timestamp. |
| campaigns[].attempts[].createdAt | string | Yes | ISO 8601 timestamp. |
| campaigns[].attempts[].updatedAt | string | Yes | ISO 8601 timestamp. |
| campaigns[].events | object[] | No | — |
| campaigns[].events[].id | string | Yes | Unique identifier. |
| campaigns[].events[].type | string | Yes | — |
| campaigns[].events[].actorUserId | string | Yes | — |
| campaigns[].events[].payload | object | Yes | — |
| campaigns[].events[].createdAt | string | Yes | ISO 8601 timestamp. |
| hasMore | boolean | Yes | — |