What is an asset?
An asset is a single media file (video, audio, image, or document) that you submit for processing. Each asset within a submission is processed independently and generates its own results.Asset lifecycle
An asset begins as a file in blob storage, becomes part of a submission, waits in aqueued state for a free review slot, is analyzed, and ends in one of three terminal states: compliant (no issues found), in_review (issues found and awaiting your review), or failed. The queued state is non-terminal — an asset stays queued only until capacity frees up, then moves to processing.
These are the values of processingStatus, which you read from assets[] on the submission status response:
Supported formats
Asset results
Once an asset finishes processing, you can retrieve its detailed result. There is no/results suffix — the asset detail is the asset endpoint itself.
GET /api/submissions/{submission_id}/assets/{asset_id}
issues array contains IssueResponse objects. startedAt and completedAt are when this asset actually entered and left review — null while it is still queued, and re-stamped by a retry. completedAt is set for any terminal outcome, so on a failed asset it is the failure time.
Issues
Each issue describes a compliance or quality concern found during analysis:sidekickId and sidekickName tell you which check raised the issue. A
submission runs every sidekick your workspace has enabled, so on a
multi-sidekick run this is what separates a brand objection from a legal one.
Both are null together when no sidekick raised the issue — a person did, or
the run predates attribution being recorded.
The name is resolved from the catalogue rather than from the sidekicks your
workspace currently has enabled, so an issue raised by a sidekick you have
since turned off still tells you which one found it.
Severity levels:
CRITICALMAJORMINORINFO
OPENACKNOWLEDGEDAWAITING_HUMAN_INPUTRESOLVEDDISMISSED
Enriched issues
For a flat list of issues enriched with their rule-graph context, call: GET/api/submissions/{submission_id}/assets/{asset_id}/issues
Topics
To group related issues, the API clusters them into topics using AI: GET/api/submissions/{submission_id}/assets/{asset_id}/topics
orphanIssues — this is normal, not an error.
The
/issues and /topics endpoints return 404 if the asset has not finished processing yet, and 502 if the underlying analysis blob fails to load from storage.Versioning
To create a new version of an asset, submit a new submission whose asset references the original throughpreviousSubmissionId. This is useful when:
- The original file was incomplete or had audio issues
- You want a fresh analysis with newer processing models
- Processing previously failed and you want to retry against a corrected file
versionNumber within a shared versionGroupId. Previous versions remain accessible. List all versions of a submission’s assets with:
GET /api/submissions/{submission_id}/versions