Skip to content
AI Image Disclosure
Esc
↑↓navigate↵open⌘Jpreview
On this page

Delivery API

Request and render AI disclosure properties through Umbraco's media Delivery API.

Umbraco’s Media Delivery API is disabled by default, even when the Content Delivery API is enabled. Enable both the parent API and its media section in appsettings.json:

{
  "Umbraco": {
    "CMS": {
      "DeliveryApi": {
        "Enabled": true,
        "Media": {
          "Enabled": true
        }
      }
    }
  }
}

See the official Media Delivery API documentation for public-access and API-key options.

Request the five scalar properties with the media item:

GET /umbraco/delivery/api/v2/media/item/{mediaId}?fields=properties[aiDisclosure,aiGenerator,aiDisclosureSource,aiDisclosureReason,aiWatermark]

A relevant response fragment contains values like:

{
  "properties": {
    "aiDisclosure": "generated",
    "aiGenerator": "gpt-image",
    "aiDisclosureSource": "C2PA",
    "aiDisclosureReason": "",
    "aiWatermark": ""
  }
}

Rendering rules

const disclosure = media.properties.aiDisclosure;

const label =
  disclosure === "generated"
    ? "Fully AI-generated"
    : disclosure === "modified"
      ? "Partially AI-modified"
      : undefined;
  • Render the fully generated / partially modified distinction from aiDisclosure, never from aiGenerator or aiDisclosureSource.
  • For the optional fallback, aiWatermark === "OpenAI SynthID detected" supports a generic AI detected label when the source is not Manual. It does not establish fully generated versus partially modified content. Keep manual editorial decisions authoritative.
  • Treat an empty or missing value as not determined, not proof that the image is non-AI.
  • Decide through editorial policy whether undetermined images need manual review.
  • Give a visible icon accompanying text or an accessible name.

The package does not expose stable frontend icon assets. Obtain the public labels from the European Commission’s official icon downloads rather than referencing hashed files from the backoffice bundle. Your public website remains in control of placement, wording, and accessibility.

Was this page helpful?