Core Concepts
What Brand Intelligence does
Adobe Brand Intelligence (ABI) validates creative assets against your organization's brand guidelines. You submit assets - images, documents, layouts - and ABI checks each one against a set of brand rules (colour palette, typography, logo usage, and so on). For each asset, ABI returns a list of violations with severity levels and human-readable messages.
Validation runs against organization-level brand guidelines and optionally against campaign-specific guidelines when a campaignId is provided.
Async invocation model
Validation is asynchronous. You submit a batch of items and receive an invocationId immediately; ABI processes each item in the background and you poll for results.
POST /api/abi/skills/ra → 202 Accepted { invocationId }
GET /api/abi/skills/ra/{invocationId} → invocation status + counts
GET /api/abi/skills/ra/{invocationId}/items → per-asset results
This design keeps the API responsive for large batches.
Asset sources
Each item you submit declares an itemSource telling ABI where to read the asset from:
blob- the asset lives in ABI's own storage. Upload it first viaPOST /api/abi/storage/temp, then reference the returneditemIdas the item'ssourceRef. See Quickstart for the full upload flow.web- the asset is already reachable at a public URL. SetsourceRefto that URL directly; no upload step is needed.
Resource hierarchy
Invocation
└── Items (one per submitted entry)
└── Violations (reviewer feedback + pipeline findings on the item)
Invocation - represents a single validation run. Created by POST /api/abi/skills/ra. Tracks overall status and aggregate counts (successCount, failureCount).
Item - represents one submitted entry within an invocation. Contains a result.summaryText and a result.violations list.
Violation - a single finding on an item. Violations are either generated by the validation pipeline (violationSource: system) or created by your application on behalf of a human reviewer (violationSource: user).
Invocation lifecycle
An invocation moves through the following states:
pendingqueuedrunningcompletedsuccessCount / failureCount for the outcome.failedcancelledOnce an invocation reaches completed, failed, or cancelled it will not change state again. Poll until you see one of these terminal states before processing results.
Item status values
Each item within an invocation moves through its own status independently, mirroring the invocation's own lifecycle:
pendingqueuedrunningcompletedfailedcancelledValidation results
Each item's detail (GET /api/abi/skills/ra/{invocationId}/items/{itemId}) contains a result object with:
-
summaryText- a human-readable narrative of the validation outcome. -
violations- list of individual findings. Each violation includes:violationId- unique identifier for this finding.violationSource-system(pipeline-generated) oruser(reviewer-authored).violationSummary- human-readable description of the finding.assetAttributions- regions within the submitted asset that triggered the finding, each with aregionsarray (bounding box in normalised 0–1 coordinates).corpusAttributions- chunks from the brand guidelines corpus the finding was assessed against, each with adocumentUrlandchunkUrlpointing to the guideline source.reviewStatus-accepted,rejected, ornullif no reviewer feedback has been recorded yet.
An item with an empty violations array is fully compliant. See Review Feedback for how to accept, reject, or add violations.
See the API Reference for the full RaItemViolation schema.
Pagination
GET /api/abi/skills/invocations (list your invocations across tenants/campaigns) supports cursor-based pagination. Pass limit (1–100, default 50) and start query parameters. The response includes a page.next field; when it is null, you have reached the last page. You can also filter by skill.
Authentication
Every request requires an IMS Bearer token in the Authorization header. Tokens are valid for 24 hours. See Authentication for setup instructions.