Skip to main content

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 a queued 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

Files up to the per-category maximums above are uploaded with a presigned URL. See Uploads.

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}
The 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:
Severity levels:
  • CRITICAL
  • MAJOR
  • MINOR
  • INFO
Issue statuses:
  • OPEN
  • ACKNOWLEDGED
  • AWAITING_HUMAN_INPUT
  • RESOLVED
  • DISMISSED

Enriched issues

For a flat list of issues enriched with their rule-graph context, call: GET /api/submissions/{submission_id}/assets/{asset_id}/issues
Each enriched issue carries the underlying rule-graph constructs that produced it, including contributors and evidence. These are not “people mentioned in the media” — they are nodes in the rule graph (contributing factors) and the supporting evidence the analysis attached to each, used to explain why the issue fired.

Topics

To group related issues, the API clusters them into topics using AI: GET /api/submissions/{submission_id}/assets/{asset_id}/topics
A topic groups two or more related issues. Issues that do not cluster appear in 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 through previousSubmissionId. 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
Each version increments versionNumber within a shared versionGroupId. Previous versions remain accessible. List all versions of a submission’s assets with: GET /api/submissions/{submission_id}/versions