AI Image Metadata Checker – C2PA, IPTC & EXIF Detector
Pricing
$1.50 / 1,000 image analyseds
AI Image Metadata Checker – C2PA, IPTC & EXIF Detector
Check images for AI-generation metadata: C2PA / Content Credentials manifests, IPTC DigitalSourceType (trainedAlgorithmicMedia), Midjourney, DALL·E, Firefly, Stable Diffusion & ComfyUI tags, EXIF camera data. Scan image URLs or whole web pages. EU AI Act Art. 50 labelling helper.
Pricing
$1.50 / 1,000 image analyseds
Rating
0.0
(0)
Developer
Fast Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
AI Image Metadata & Content Credentials Checker (C2PA, IPTC, EXIF)
Find out what an image says about itself. This actor downloads images (from direct URLs or from whole web pages) and reads the metadata embedded in each file:
- C2PA / Content Credentials manifests (JUMBF in JPEG APP11, PNG
caBXchunk, WebPC2PAchunk, AVIF/HEIC): claim generator, signer, actions such asc2pa.created, thedigitalSourceTypeand the validation state. Parsed with the official open-sourcec2palibrary, with a built-in fallback parser. - IPTC / XMP
Iptc4xmpExt:DigitalSourceType(trainedAlgorithmicMedia,compositeWithTrainedAlgorithmicMedia,algorithmicMedia,algorithmicallyEnhanced,compositeSynthetic,digitalCapture...),xmp:CreatorTool, IPTC credit line (e.g. "Made with Google AI"). - AI generator parameters in PNG text chunks and EXIF UserComment: Stable Diffusion / AUTOMATIC1111 / Forge
parameters, ComfyUIprompt/workflow, InvokeAI, Fooocus, NovelAI. Only a yes/no flag and the generator name are returned – never the prompt. - Known AI software tags: Midjourney, OpenAI (DALL·E / ChatGPT), Adobe Firefly, Google (Imagen / Gemini), Stable Diffusion, Leonardo.Ai, Ideogram, FLUX, Microsoft Designer / Bing Image Creator, NovelAI, Runway, Krea, Playground, Grok, Canva.
- EXIF: camera make and model, software, original capture date and whether GPS data is present (GPS coordinates are never returned).
One flat row per image with an aiLikelihood of none, weak or strong, the list of signals behind it and a plain-language note.
Who it is for
- Shops, publishers, agencies and marketing teams preparing for the transparency rules for AI-generated content (EU AI Act, Art. 50) who need an inventory of which images on their sites already carry AI markers.
- Content moderation, trust & safety and newsrooms who want a quick provenance check of incoming images.
- SEO and web teams auditing image metadata (stripped metadata, leftover camera data, GPS present) across many pages.
- Developers and AI agents who need a cheap, deterministic metadata check via API, n8n, Make or MCP.
Why this actor
- Reads C2PA Content Credentials and IPTC digital source type together, the two standards that Adobe, OpenAI, Google, Microsoft, Midjourney, Meta and camera makers actually use.
- Scans whole pages: give a product page or blog post and it collects
<img>,srcset,<picture>,og:imageandtwitter:image. - Privacy by design: no GPS coordinates, no prompts, no personal data in the output.
- Transparent rules instead of a black-box score (see below), and an honest note when nothing is found.
- Cheap: pay only per image successfully analysed; failed downloads are free.
How aiLikelihood is decided
| Value | Rule |
|---|---|
strong | A C2PA manifest or IPTC/XMP metadata declares trainedAlgorithmicMedia, compositeWithTrainedAlgorithmicMedia or algorithmicMedia; or the C2PA claim generator / software agent is a known AI generator (e.g. Adobe Firefly, ChatGPT); or the file contains AI generator parameter chunks (Stable Diffusion parameters, ComfyUI workflow, InvokeAI, NovelAI). |
weak | Only a software or keyword tag (EXIF Software, XMP CreatorTool, IPTC credit, PNG text) names a known AI tool, or the digital source type is algorithmicallyEnhanced / compositeSynthetic. |
none | No AI marker in the embedded metadata. A C2PA manifest may still be present (e.g. a camera or an editing app signed it). |
metadataStripped is true when the file has no EXIF, XMP, IPTC, C2PA or PNG text metadata at all.
Important limits
- This actor reads embedded metadata only. It does not perform pixel-level AI detection and cannot see invisible watermarks such as Google SynthID.
- Metadata absence does not prove that an image is not AI-generated. Many CMS, CDNs, image optimisers and social networks strip metadata. Metadata can also be added or edited by anyone; C2PA signatures make tampering detectable, and the
c2paValidationfield shows the validation result. - Not legal advice. Art. 50 of the EU AI Act (Regulation (EU) 2024/1689) sets transparency obligations for AI-generated or manipulated content, including machine-readable marking by providers and disclosure of deepfakes by deployers. Whether a specific image must be labelled depends on its context; use this tool as an inventory and evidence helper and consult your legal advisers.
Input
| Field | Description |
|---|---|
imageUrls | Direct image links (JPEG, PNG, WebP, AVIF, HEIC, TIFF, GIF). |
pageUrls | Web pages to scan for images. |
maxImagesPerPage | Limit per page (default 20). |
maxFileSizeMb | Skip larger files (default 25 MB). |
maxConcurrency | Parallel downloads (default 5). |
proxyConfiguration | Optional Apify proxy. |
{"imageUrls": ["https://raw.githubusercontent.com/contentauth/c2pa-rs/main/sdk/tests/fixtures/C.jpg","https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/Canon_40D.jpg"],"pageUrls": ["https://example.com/blog/post-with-images"],"maxImagesPerPage": 20}
Output
Real rows from a test run (C2PA test image from the c2pa-org repository and a Canon camera JPEG):
{"imageUrl": "https://raw.githubusercontent.com/contentauth/c2pa-rs/main/sdk/tests/fixtures/C.jpg","pageUrl": null,"format": "jpeg","sizeBytes": 132518,"width": 2048,"height": 1365,"aiLikelihood": "strong","aiSignals": ["c2pa:manifest_present", "c2pa:digitalSourceType=algorithmicMedia"],"aiGenerator": null,"c2paPresent": true,"c2paClaimGenerator": "make_test_images/0.33.1 c2pa-rs/0.33.1","c2paSigner": "C2PA Test Signing Cert","c2paActions": ["c2pa.created"],"c2paValidation": "Valid","digitalSourceType": "algorithmicMedia","software": null,"cameraMake": null,"cameraModel": null,"gpsPresent": false,"exifPresent": false,"xmpPresent": false,"iptcPresent": false,"generatorParametersPresent": false,"metadataStripped": false,"note": "Embedded metadata declares the image as AI/algorithmically generated or AI-edited. Check the context before labelling.","status": "ok"}
{"imageUrl": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/Canon_40D.jpg","format": "jpeg","width": 100,"height": 68,"aiLikelihood": "none","aiSignals": [],"c2paPresent": false,"software": "GIMP 2.4.5","cameraMake": "Canon","cameraModel": "Canon EOS 40D","dateTimeOriginal": "2008:05:30 15:56:01","gpsPresent": false,"metadataStripped": false,"note": "No AI marker in the embedded metadata. Metadata absence does not prove an image is not AI-generated.","status": "ok"}
Other status values: http_404, http_403, timeout, too_large, not_an_image, unsupported_format_svg, download_failed: ..., and for pages no_images_found / page_fetch_failed. These rows are free.
Pricing
Pay per event: $0.0015 per image analysed ($1.50 per 1,000 images). Failed downloads, unsupported files and page rows are not charged. Platform usage is minimal (a 3-image run takes a few seconds at 512 MB).
Use via API, n8n, Make or MCP
API (run synchronously and get the dataset items):
curl -X POST "https://api.apify.com/v2/acts/fast_data_asap~ai-image-metadata-detector/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"pageUrls": ["https://example.com/"], "maxImagesPerPage": 10}'
n8n / Make / Zapier: use the Apify node or app, choose this actor, pass the JSON input above and read the dataset items.
MCP (Claude, Cursor, other AI agents): add the Apify MCP server with this actor as a tool:
https://mcp.apify.com?tools=fast_data_asap/ai-image-metadata-detector
Then ask e.g. "Check the images on https://example.com/shop for AI-generation metadata".
FAQ
Can it tell if an image was made by AI when there is no metadata? No. It reports what the file declares. Use the result as one signal among others.
Does it validate C2PA signatures? Yes, when the manifest can be parsed with the c2pa library; c2paValidation contains the validation state or the validation issues (for example untrusted test certificates).
Does it store the images? No. Images are processed in memory and only the metadata summary is saved.