AI Image Provenance Check: C2PA, IPTC, AI Labels avatar

AI Image Provenance Check: C2PA, IPTC, AI Labels

Pricing

from $7.00 / 1,000 page scanneds

Go to Apify Store
AI Image Provenance Check: C2PA, IPTC, AI Labels

AI Image Provenance Check: C2PA, IPTC, AI Labels

Scans the images on web pages (or direct image URLs) for AI provenance signals: C2PA Content Credentials, IPTC digitalSourceType, generator names in XMP/EXIF/PNG metadata and visible AI labels in alt text and captions. Reads only the metadata bytes. For EU AI Act Art. 50 audits.

Pricing

from $7.00 / 1,000 page scanneds

Rating

0.0

(0)

Developer

Batu T.

Batu T.

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Security

Limited permissions

Share

AI Image Provenance Check: C2PA, IPTC & AI Labels on Websites

Find out which images on a website carry machine-readable AI markings and whether the page tells visitors about them. The Actor reads the provenance metadata of every image on the pages you give it (or of direct image URLs) and reports what it finds, image by image.

It downloads only the bytes that hold the metadata, using HTTP Range requests where the server supports them. In our tests that was one 64 KB request for most JPEG, PNG and WebP files, and up to about 400 KB for JPEGs with a large C2PA manifest, instead of the whole file.

Why now

Article 50 of the EU AI Act applies from 2 August 2026. Providers of generative AI systems must mark synthetic images in a machine-readable, detectable way (Art. 50(2)); deployers must disclose deepfakes (Art. 50(4)). For generative AI systems placed on the market before 2 August 2026, the European Commission states that the Art. 50(2) marking obligation applies from 2 December 2026. Sources: European Commission FAQ "Transparency obligations under Article 50 of the AI Act" and the Council press release of 29 June 2026 on the AI Act simplification.

This Actor shows which images already carry such marks, which carry only weaker hints, and where an AI image appears without a visible label next to it.

What is checked

signalwhere it is read from
C2PA / Content Credentials manifestJPEG APP11 (JUMBF), PNG caBX chunk, WebP C2PA chunk, AVIF/HEIF uuid box. Decoded with the official Content Authenticity Initiative library (@contentauth/c2pa-wasm, MIT)
C2PA claim generator, signer, actions, digitalSourceTypefrom the decoded manifest, including ingredient manifests
IPTC digitalSourceTypeXMP Iptc4xmpExt:DigitalSourceType with the IPTC NewsCodes vocabulary
IPTC AI fieldsXMP Iptc4xmpExt:AISystemUsed, AISystemVersionUsed
Generator namesXMP xmp:CreatorTool, history softwareAgent, photoshop:Credit, EXIF Software, PNG text chunks of Stable Diffusion WebUI and ComfyUI
Visible AI labelalt text, title, <figcaption> and caption or credit elements next to the image (German and English wording such as "KI-generiert", "AI-generated", "generated with")

No pixel analysis is done. The Actor reports marks that are present; it does not guess whether an unmarked image is AI-made.

Verdicts

verdictmeaning
ai-markedC2PA or IPTC digitalSourceType says trainedAlgorithmicMedia, compositeWithTrainedAlgorithmicMedia or compositeSynthetic (created or edited with generative AI)
likely-ai-hintno formal AI mark, but a known AI generator name in the metadata, an AI label in the page text, or algorithmicMedia
no-signalnone of the above found. Metadata may have been stripped by a CDN or CMS

aiWithoutVisibleLabel is true when an image is ai-marked or likely-ai-hint from its metadata but no AI wording was found in alt text or caption.

Output per image

fieldmeaning
pageUrl, imageUrl, element, altwhere the image was found (img, picture-source, css-background, direct)
format, width, heightfrom the file header
c2pa.present, c2pa.embeddedmanifest found in the file, or only a remote manifest link in XMP
c2pa.generator, c2pa.issuer, c2pa.signedAtclaim generator, certificate issuer and signing time
c2pa.actions, c2pa.digitalSourceTypesactions such as c2pa.created and their IPTC source types
c2pa.validation, c2pa.validationCodessignature-ok or signature-issues (metadata-only mode), or the library's Valid, Invalid, Trusted with full validation
iptcDigitalSourceType, aiSystemUsedIPTC values from XMP
generatorHints{ generator, source, value } for each AI tool name found
textDisclosure{ found, source, text }
verdict, reasons, aiWithoutVisibleLabelthe result and why
bytesFetchedtraffic used for this image

One extra item per page (type: page-summary) counts images found, checked, skipped, ai-marked, likely-ai-hint, no-signal, with C2PA and without visible label, plus total bytes.

Pricing

You pay per scanned page (page-scanned) and per direct image URL (image-checked). Pages or images that cannot be fetched are not charged.

Limits

  • Static HTML only. Images added by JavaScript after load, lazy-loaded galleries without src/data-src and images inside iframes are not seen.
  • Many CDNs, CMS image pipelines and social networks strip metadata when resizing or converting. no-signal therefore does not mean "not AI". Images are requested like a browser (AVIF/WebP preferred); enable requestOriginalFormat to ask for the original file.
  • Signature check without a trust list: the issuer is reported, but signingCredential.untrusted only means no trust list was configured, not that the signature is fake.
  • In the default metadata-only mode the hash binding between manifest and pixels is not verified. Use full validation for that.
  • PNG metadata after the image data and GIF, TIFF, SVG manifests are not read. C2PA in WebP and AVIF/HEIF is parsed per the C2PA reference implementation but was not yet seen on a live site during testing.
  • This is a technical check, not legal advice.

Not affiliated with the C2PA, the Content Authenticity Initiative, Adobe, OpenAI, Google or IPTC.

FAQ

What am I charged for? One page-scanned event per page that was loaded and scanned, with all its images included, and one image-checked event per direct image URL. Pages that fail or are disallowed by robots.txt come back as a page-summary item with an error and are not charged. Direct image URLs that cannot be read are not charged either.

Does it detect AI images that carry no metadata? No. There is no pixel analysis. The Actor only reports marks and labels that are present, so no-signal does not mean the image is not AI-made.

Does it download every image completely? No. It reads only the bytes that hold the metadata, with HTTP Range requests where the server supports them, up to maxBytesPerImage (default 2,000,000 bytes). Only fullC2paValidation downloads whole files that carry a C2PA manifest, to verify the hash over the image data.

Do I need a proxy? Usually not. With the default auto strategy requests go out directly, and a host is switched to the proxy only after it answers 403, 429 or 503 or the connection fails. direct never uses the proxy, proxy uses it for every request.

Does it respect robots.txt? Yes, by default pages that the site's robots.txt disallows for this bot (or for all bots) are skipped. Image files themselves are not checked against robots.txt. Set respectRobotsTxt to false to override.

Use with AI agents (MCP)

This Actor works as a tool for Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server. Add only this Actor:

https://mcp.apify.com?tools=webify-lab/ai-image-provenance-check

On first use the server signs you in with OAuth. Alternatively send the header Authorization: Bearer <APIFY_TOKEN>. Agents on the default Apify MCP setup can also find this Actor with search-actors and run it with call-actor. Pricing is the same as in Apify Console: you pay per result.