TL;DR, Quick Answer
9 min readThe IPTC digital source type is a controlled vocabulary of 20 terms that records how a file was produced. 17 are in use and 3 are retired. trainedAlgorithmicMedia means the whole asset came from a generative model; compositeWithTrainedAlgorithmicMedia means a generative model edited an existing one. IPTC defines the value. Platforms decide separately whether they read it and what label they show, and the only public test of whether the value survives a social upload was run in 2015.
What is the IPTC digital source type?
A controlled vocabulary from the International Press Telecommunications Council, the IPTC digital source type records how a piece of media was produced, from a camera exposure to a generative AI render. The vocabulary's own one-line definition is blunt: "Indicates from which source a digital image was created."
Each term is a QCode with a permanent URI. The short name trainedAlgorithmicMedia resolves to http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia, and the full URI is what goes into the file. The scheme alias is digsrctype, so the same term appears in IPTC documentation as digsrctype:trainedAlgorithmicMedia.
The vocabulary holds 20 concepts. 17 are in use, 3 are retired. The copy served from the IPTC vocabulary server carries a release date of 2024-10-23, which is the last time the scheme itself was republished.
What are the current digital source type codes?
Seventeen QCodes are live. The labels below are IPTC's own; the plain English column is a gloss, not part of the standard.
| QCode | IPTC label | In plain English | In the vocabulary since |
|---|---|---|---|
digitalCapture | Digital capture sampled from real life | Shot on a digital camera or recorder | 2008 |
computationalCapture | Multi-frame computational capture sampled from real life | Several frames merged automatically, such as phone HDR | 2024-09-17 |
negativeFilm | Digitised from a transparent negative | Scan of a film negative | 2008 |
positiveFilm | Digitised from a transparent positive | Scan of a slide or transparency | 2008 |
print | Digitised from a non-transparent medium | Scan of a photographic print | 2008 |
humanEdits | Human-edited media | A person edited it with non-generative tools | 2024-09-17 |
compositeWithTrainedAlgorithmicMedia | Edited using Generative AI | A generative model altered an existing asset, such as inpainting | 2023-07-26 |
algorithmicallyEnhanced | Algorithmically-altered media | Algorithmic correction that leaves the content alone, such as sharpening | 2022-06-14 |
digitalCreation | Digital creation | A person built it from scratch with non-generative tools | 2024-09-17 |
dataDrivenMedia | Data-driven media | A chart or visualisation built from data | 2022-06-14 |
trainedAlgorithmicMedia | Created using Generative AI | A model trained on captured content produced the whole asset | 2022-06-14 |
algorithmicMedia | Pure algorithmic media | Made by an algorithm with no training data, such as a fractal | 2022-06-14 |
screenCapture | Screen capture | A screenshot | 2024-09-17 |
virtualRecording | Virtual event recording | Live recording of a virtual event | 2022-06-14 |
composite | Composite of elements | A mix of elements, generative AI or not | 2024-09-17 |
compositeCapture | Composite of captured elements | A mix of elements that are all real-life captures | 2022-06-14 |
compositeSynthetic | Composite including generative AI elements | A mix with at least one generative AI element | 2022-06-14 |
The 17 September 2024 revision is the one that reshaped the vocabulary for AI. It added computationalCapture, humanEdits, digitalCreation, screenCapture and composite, and retired two older terms on the same day.

Which digital source type codes were retired, and what replaced them?
Three QCodes carry a retired date. IPTC leaves them on the server rather than deleting them, so a file written years ago still resolves to something readable.
| Retired QCode | Retired on | Replacement | IPTC's note |
|---|---|---|---|
minorHumanEdits | 2024-09-17 | humanEdits | Retired. Use humanEdits instead. |
digitalArt | 2024-09-17 | digitalCreation | Retired. Use digitalCreation instead. |
softwareImage | 2022-06-14 | None named | Retired in June 2022. Use more specific terms instead. |
minorHumanEdits was the fussiest of the three. Its definition tied the term to a judgement about degree, "Minor augmentation or correction by a human, such as a digitally-retouched photo used in a magazine", and the standard never said where minor stopped. humanEdits drops the word minor and asks a cleaner question: was a human doing this, and were the tools generative?
softwareImage is the odd one out because IPTC named no single successor. An asset that once carried it now splits across digitalCreation, algorithmicMedia, dataDrivenMedia and screenCapture depending on what the software was doing.
What is the difference between trainedAlgorithmicMedia and compositeWithTrainedAlgorithmicMedia?
trainedAlgorithmicMedia means a generative model produced the whole asset; compositeWithTrainedAlgorithmicMedia means a generative model changed an asset that already existed. IPTC's labels compress the difference into four words each: "Created using Generative AI" against "Edited using Generative AI".
That line is where most public arguments about AI labelling start. A photograph shot on a camera, then patched with a generative fill in an editor, is not a synthetic image. It is a real photograph with a synthetic patch, and the vocabulary has a separate term for exactly that case. Collapsing the two codes into one on-screen label turns a retouched news photo into an AI picture, and the standard is not the part that made that choice.
Where does the digital source type value live in a file?
Two places, and the difference between them matters more than the code itself.
In XMP, the property is Iptc4xmpExt:DigitalSourceType, in the IPTC Extension namespace http://iptc.org/std/Iptc4xmpExt/2008-02-29/. Its data type is a URI and the IPTC Photo Metadata Standard marks the vocabulary as required, not advisory. Nothing signs it. Any tool that writes XMP overwrites it, and any tool that drops XMP deletes it.
In C2PA, the same vocabulary appears inside a cryptographically signed manifest. The c2pa.actions assertion carries a digitalSourceType key whose "value shall be one of the terms defined by the IPTC or a C2PA specific value", with the schema pointing straight at https://cv.iptc.org/newscodes/digitalsourcetype/. C2PA adds two values of its own that are not IPTC terms: http://c2pa.org/digitalsourcetype/empty for a blank canvas or zero-length video, and http://c2pa.org/digitalsourcetype/trainedAlgorithmicData for model output that is data rather than media. The spec also requires a digitalSourceType alongside every c2pa.created action, so a compliant manifest cannot stay silent about origin.
The specification's own generative AI example reads:
AdaptlyPost
Start 7-Day FREE Trial
All-platform analytics
Social Inbox
AI-powered assistant
{
"actions": [
{
"action": "c2pa.created",
"softwareAgent": { "name": "Joe's Photo Editor", "version": "2.0" },
"digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia"
}
]
}The code alone says nothing about which model ran. Version 2025.1 of the IPTC Photo Metadata Standard, published in November 2025, added four separate properties for that: AI Prompt Information, AI Prompt Writer Name, AI System Used and AI System Version Used.
Do social platforms read the IPTC digital source type?
Meta and TikTok have both said in public that they read AI provenance metadata, and neither publishes which code produces which label.
Meta's February 2024 announcement, written by Nick Clegg, described tools that "identify invisible markers at scale" and named the source: "the 'AI generated' information in the C2PA and IPTC technical standards". The same post said Meta's own images carry "IPTC metadata and invisible watermarks". TikTok's May 2024 post is narrower and names only C2PA: "Content Credentials attach metadata to content, which we can use to instantly recognize and label AIGC".
| Platform | What it published | Date | Names IPTC | Publishes a code-to-label mapping |
|---|---|---|---|---|
| Meta (Facebook, Instagram, Threads) | Reads "AI generated" information in the C2PA and IPTC standards | 2024-02-06 | Yes | No |
| TikTok | Reads Content Credentials to auto-label AIGC from other platforms | 2024-05-09 | No, C2PA only | No |
Then watch what happened to the label while the vocabulary sat still. Meta shipped "Made with AI" in April 2024, renamed it to "AI info" on 1 July 2024 after conceding the industry indicators "weren't always aligned with people's expectations", and on 12 September 2024 moved the badge for AI-edited content off the post and into the post menu. Three label decisions in six months, driven by product judgement about what a badge implies.
This is the distinction people lose. IPTC defines a metadata value. A platform decides, on its own schedule and without publishing the rule, whether to read that value and what words to put on the screen. Writing compositeWithTrainedAlgorithmicMedia into a file is a factual statement about how the file was made. It is not a request for a particular badge, and no platform has committed to a mapping you can check.
Does the metadata survive a social upload?
There is no current published answer. The only public test of embedded metadata survival across social platforms is the Embedded Metadata Initiative study run by the IPTC Photo Metadata Working Group, conducted in March 2013 and repeated in late 2015. Nothing comparable has been published since.
What that 2015 round found: Facebook, Twitter and Instagram stripped nearly all metadata from saved files; Flickr and Google Photos preserved it in downloaded files but not in browser "Save As" files; Dropbox got worse between the two rounds; Behance was the only site that handled every field correctly in every scenario.
Those results predate every AI labelling programme by a decade, and every platform in the test has rebuilt its image pipeline since. Use them as evidence that re-encoding an upload discards embedded metadata by default. Do not use them as a current scoreboard, and do not let anyone quote a 2015 row at you as proof about a 2026 upload.
Two different questions also hide inside "does it survive". The first is whether the platform reads the value at ingest, before it re-encodes anything, which is what Meta and TikTok describe doing. The second is whether the value is still in the file a viewer downloads later. The 2015 test answers the second question, for the platforms as they existed in 2015, and answers the first not at all.

What does this mean for scheduling AI images?
Provenance is written by the tool that makes the file, not by the tool that posts it. An image comes out of a generator with whatever digitalSourceType that generator chose to embed, and a scheduler moves bytes rather than re-authoring the claim. If you use an AI social media image generator, the code was decided at generation time.
That leaves one thing genuinely in your control: your own record. Platform labels arrive from a rule nobody published, on assets whose metadata nobody outside the platform can verify after upload. Keeping your own note of which scheduled posts used generative assets, in the social media content calendar you already plan from, gives you an answer when a client asks why a badge appeared on one post and not the next. Publishing the same asset across networks through an AI social media scheduler does not make the labelling consistent between them, because each network applies its own rule.
Frequently Asked Questions
Is the IPTC digital source type the same thing as Content Credentials?
No. Content Credentials is the consumer name for C2PA, a signed manifest format. The IPTC digital source type is a vocabulary of terms. C2PA borrows that vocabulary for the digitalSourceType key inside its c2pa.actions assertion, so a Content Credential for a generated image carries an IPTC term inside it, but the two are a container and a value, not synonyms.
How many digital source type codes are there?
Twenty concepts exist in the vocabulary: 17 in use and 3 retired. The retired ones are minorHumanEdits, digitalArt and softwareImage.
Which code should an AI-generated social image carry?
trainedAlgorithmicMedia if a generative model produced the entire image. compositeWithTrainedAlgorithmicMedia if a generative model edited an image that already existed, which covers generative fill, inpainting and outpainting on a photograph. compositeSynthetic if the result mixes several elements and at least one of them is generative AI.
AdaptlyPost
Start 7-Day FREE Trial
All-platform analytics
Social Inbox
AI-powered assistant
Does writing the code force a platform to show an AI label?
No. IPTC defines the value and each platform decides independently whether to read it and what to display. Meta named the C2PA and IPTC standards as inputs in February 2024, then changed the label wording twice and its placement once within the following eight months. No platform publishes the mapping from QCode to label.
Is minorHumanEdits still valid to write?
No. It was retired on 17 September 2024 and IPTC's note says to use humanEdits instead. Files written before that date still carry it and the URI still resolves, so reading software should keep handling it.
Where do I check the current list?
The vocabulary server at http://cv.iptc.org/newscodes/digitalsourcetype/ is the source of record. Append ?format=json to get the machine-readable version, which is where the created, modified and retired dates for every term live.
What happens to files that were tagged with softwareImage before it was retired?
softwareImage was retired in June 2022 with no single named successor. An asset that once carried it now splits across digitalCreation, algorithmicMedia, dataDrivenMedia and screenCapture, depending on what the software was doing. A file written before the retirement still carries the old code, and the URI still resolves for anything that reads it.
Can the digitalSourceType value in XMP be trusted, or can it be edited after the fact?
The XMP property carries no signature, so nothing stops an editor from changing or deleting it. Any tool that writes XMP overwrites the digitalSourceType value, and any tool that strips XMP on export removes it entirely. C2PA closes that gap by putting the same value inside a cryptographically signed manifest instead.
Does C2PA use the exact same code list as IPTC?
Mostly. C2PA's actions assertion points straight at the IPTC vocabulary for its digitalSourceType values, but it adds two of its own that IPTC never defined: http://c2pa.org/digitalsourcetype/empty for a blank canvas or zero-length video, and http://c2pa.org/digitalsourcetype/trainedAlgorithmicData for model output that is data rather than media.
Is there a current test showing whether digital source type metadata survives a social upload?
Not since 2015. The only public test of metadata surviving a social upload is the Embedded Metadata Initiative study, run in 2013 and repeated in late 2015, which found platforms like Facebook and Twitter stripped nearly all metadata while Behance preserved it correctly. Every platform in that study has rebuilt its image pipeline since, so treat the result as evidence that re-encoding strips metadata by default, not as a current scoreboard.
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks AdaptlyPost as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
AdaptlyPost
Schedule your content across all platforms
Manage all your social media accounts in one place with AdaptlyPost.
All-platform analytics
Social Inbox
AI-powered assistant
Related Glossary Terms


C2PA in Plain English: What Are Content Credentials?
C2PA manifests explained: what are Content Credentials, what a claim signature proves, and which networks say anything about the manifest after an upload.


Why the Bluesky Image Size Limit Is 2,000,000 Bytes
The Bluesky image size limit is 2,000,000 bytes per post image, set by maxSize in the images lexicon. Avatars and banners stop at 1,000,000 bytes.


How Open Graph Tags Decide What Every Network Shows
The four Open Graph tags the protocol requires, which networks read them, which read twitter: card tags instead, and how to see what a crawler got.
Related Articles


Why the Threads Character Limit Counts Emoji as UTF-8 Bytes
The Threads character limit is 500, but Meta counts each emoji as its UTF-8 byte length, so one family emoji costs 25. Here is how to count a post correctly.


Why the TikTok Caption Character Limit Is Measured in UTF-16 Runes
The TikTok caption character limit is 2200 UTF-16 runes for video and 90 for a photo title. Runes are not characters, and one emoji can cost eleven.


Make AI Content Creation Work With Human Judgment
Treat AI content creation as a drafting tool and it saves hours. Where it works for social, the guardrails that protect brand voice, and what to fact-check.

