EU AI Act Image Labeler API

The EU AI Act Image Labeler API stamps official Article 50 icons into JPEG, PNG, and WebP so the mark survives download — a CMS overlay does not.

EU AI Act labels are in force. Overlay badges vanish on save

On 2 August 2026, Article 50's deployer duties started to apply. If you publish a deepfake-style still in the EU — an image that looks like a real person, place, or event — you already owe a disclosure that is clear at first look.

The usual pack still treats that duty as a website badge.

The badge is gone the moment someone hits download

A CSS overlay on the article page, a caption under the hero, a "AI generated" chip in the CMS preview: all of those can be honest on your domain. None of them travel. Save the file, forward it, screenshot the frame, and the mark is gone. The Commission's placement summary for the official icons is the part teams skip: the mark should be readable, not covered, and embedded in the content, so it is still there after download and reshare.

That is the gap. The regulation is in force. The workaround is a UI layer that does not survive the file.

EU AI Act labelling is already happening. Overlay badges are not a label once the image leaves your page.

Burn the icon into the pixels

I built the EU AI Act Image Labeler API to stamp the Commission's official icons — AI GENERATED, AI MODIFIED, or the compact AI mark — into JPEG, PNG, and WebP. The overlay is composited into the bytes. Alt text and an IPTC Digital Source Type URI go into metadata as a helper. The file you download is the labeled file.

The official icons are optional. The labelling duty is not. Using them does not, by itself, prove Article 50 compliance. What this API does is the visible placement step the Code of Practice describes: a user-tested mark, in the pixels, in a corner that is not already full.

Leave the label on Auto if you want a visual recommendation for icon, colour, and corner. Auto is not a legal classification. You still decide whether the file is in scope and whether generated, modified, or basic is the honest description. Pin the icon when you already know how the image was made. Turn on artistic mode when the work is satire or fiction and you need a quieter, fifty-percent mark that does not pretend to vanish.

Run on Apify.

Three steps: paste image URLs or upload the files. Click Start. Download the labeled stills from the key-value store, or from the image URL on each dataset row.

Who this is for

If you are a newsroom or publisher who cannot let a synthetic still pass as a photograph, this is for you. If you ship AI product shots, virtually staged apartments, or campaign creatives into the EU, this is for you. If you run a DAM or a social calendar and need every hero in the pack to carry a visible mark, this is for you.

If you need C2PA or an invisible provider watermark, this is the wrong tool. Article 50(2) machine-readable marking is a provider obligation. I do the visible deployer label. I do not decide if your file is a deepfake, and I do not put the mark on your website at first exposure — that part is still your page.

This is not legal advice. A dragon that is obviously fantastical sits outside the deepfake definition; a face-swap on a real photograph does not. Read the Commission icon page and Article 50 for your case.

Input, pricing, and the rest of the caveats live on the Apify Store README for this labeler.

Detecting whether a ChatGPT still carries SynthID is a different job from disclosing it. I check ChatGPT images and audio for watermarks when the question is provenance, not the stamp.

The cost of the old way is a mark that never left the CMS

The old way looks compliant in preview and empty in the download. After 2 August 2026 that is not a workflow gap. It is a disclosure that did not travel.

If the still is going out, stamp the official icon into the file. Keep the labeled bytes. Do not trust a badge that only exists in the template.

Run on Apify.

The other posts on rainminer include the checkers when you still need to ask what made the image, before you label it.