POST /api/v2/buyer/campaigns/{campaignId}/creatives/validate
Runs a dry-run validation of a creative manifest against one or more ADCP agent format specs using validate_input. Returns per-target results — pass, fail with slot-level violations, or unvalidatable for nondeterministic formats. No assets are stored, so use this before Create creative manifest to catch format mismatches early. Targets default to the manifest’s format_id when omitted.
Request
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
campaignId | string | Yes | Path param — owning campaign |
manifest | object | Yes | ADCP creative manifest. format_id is { agent_url, id }; assets is a map keyed by asset_id |
targets | array | No | Validation targets. Each is { kind, id } where kind is canonical, product, or third_party_format. Defaults to the manifest format_id |
Response
results are in request order. result_kind is validated_pass, validated_fail (with violations), or unvalidatable_nondeterministic for formats the agent cannot pre-flight. violations[].retry_with is an advisory corrected input shape.
Errors
400 VALIDATION_ERROR— missingmanifest, manifestformat_idwithoutagent_urlandid, or a target missingkind/id.404 NOT_FOUND—campaignIddoes not exist or is not visible to the authenticated customer.
Related
Creative overview
Manifest fields and format coverage
Create creative manifest
Create the manifest after it validates