Skip to main content

Restricted Categories

The /v1/compliance/check-image endpoint detects image content belonging to six advertising-restricted categories and emits a dedicated compliance check for each match. Each check carries jurisdiction-aware regulatory citations and platform-policy references filtered to the request scope.

When a check fires

The image is analyzed for recognizable objects/scenes. When a detected label maps to a restricted category (case-insensitive exact-word match against the category’s matchLabels), a Restricted Category: {categoryName} check is emitted. Aggregation rules:
  • Multiple detected labels matching the same categoryone check, using the highest-confidence label in the interpolated message
  • Detected labels below 50% confidence are ignored (most signal noise lives below this threshold)
  • Match is exact-word and case-insensitive: "alcohol" matches "Alcohol" and "alcohol " but does NOT match "non-alcoholic"

The six categories

high-severity categories produce a hard block decision. medium-severity categories produce a flag (review required) — typically for regulated content that’s allowed with substantiation and disclosure.

Citations per category

Each category carries per-jurisdiction citations (US / EU / UK / China / India) and per-platform citations (Facebook, Instagram, TikTok, YouTube). Only those matching the request scope are included on the emitted check.

Alcohol & spirits

Weapons & firearms

Tobacco & smoking products

Gambling

Pharmaceutical & prescription drugs

Financial products (incl. crypto, forex, investments)

Example response check

When an image of a wine bottle is checked with jurisdictions: ["us", "uk"] and platforms: ["facebook", "tiktok"]:
The message interpolates {{category}} (categoryName), {{label}} (the highest-confidence matched label, lower-cased), and {{confidence}} (integer 0–100).

Notes on extensibility

The category list, match labels, severity, message template, and citation maps are admin-tunable in real time — stored in Azure Storage and edited without a code deploy. Changes propagate within 60 seconds via a cached loader. Contact your account team to request:
  • New categories specific to your industry (e.g. supplements, CBD, political content)
  • Adjustments to the match-label list for an existing category
  • Per-tenant severity overrides
If the Azure-managed table is unreachable for any reason, the runtime falls back to the in-repo manifest (currently the 6 categories above), so image checks never break on a transient outage.