Adobe's Extensible Metadata Platform (XMP) is a labeling technology that allows you to embed data about a file, known as metadata, into the file itself. More information on how partners and standards are using XMP is available at the XMP website.

SDK logo

XMP Specification

The following specifications are included in the XMP Toolkit zip package. They are available here for convenient reference.The specification is provided under the XMP Specification Public Patent License (PDF, 28 K).

Part 1, Data model, Serialization, and Core Properties (PDF, 499K) [April, 2012] covers the basic metadata representation model that is the foundation of the XMP standard format. The Data Model prescribes how XMP metadata can be organized; it is independent of file format or specific usage. The Serialization Model prescribes how the Data Model is represented in XML, specifically RDF.

Part 1 is also a covered as part of ISO 16684-1:2012, Graphic technology – Extensible metadata platform (XMP) specification – Part 1: Data model, serialization and core properties. You can read more about it here and access the standard from the ISO Store.

Part 2, Additional Properties (PDF, 383K) [Aug, 2016] provides detailed property lists and descriptions for standard XMP metadata schemas; these include general-purpose schemas such as Dublin Core, and special-purpose schemas for Adobe applications such as Photoshop. It also provides information on extending existing schemas and creating new schemas.

Part 3, Storage in Files (PDF, 1.4M) [Jan, 2020] provides information about how serialized XMP metadata is packaged into XMP Packets and embedded in different file formats. It includes information about how XMP relates to and incorporates other metadata formats, and how to reconcile values that are represented in multiple metadata formats. 

Description of XMP schemas using RELAX NG [Dec, 2014] is a ISO 16684-2:2014 standard which specifies the use of RELAX NG to describe serialized XMP metadata. This applies to how conforming schemas can use the features of RELAX NG. This standard is published as ISO 16684-2:2014 Graphic technology – Extensible metadata platform (XMP) – Part 2: Description of XMP schemas using RELAX NG.

XMP Documentation

The Partners Guide to XMP for Dynamic Media provides guidance to developers writing applications that read, write, and modify dynamic media documents, so that those applications can maintain the integrity of the composition and editing history and temporal metadata in composed documents.

Partners Guide to XMP for Dynamic Media (PDF, 447 K)

XMP Toolkit SDK

The XMP Toolkit allows you to integrate XMP functionality into your product or solution. It supports Macintosh, Windows, UNIX, iOS  as well as Android and comes with samples, documentation, source code and scripts to generate project files. The XMP Toolkit is available under the BSD license. The specification is provided under the XMP Specification Public Patent License (PDF, 24 K).

The XMP Toolkit SDK contains two libraries, XMPCore and XMPFiles. XMPCore and XMPFiles are provided as C++ implementations. 

It also includes a plug-in SDK that allows you to create an XMPFiles Plug-in that handles metadata for additional file formats, or replaces built-in format handlers with custom ones.

Note: All SDK releases (starting Jan 2020 onward) will be available on github.

Latest SDK:

XMP Toolkit SDK

XMP Toolkit SDK Overview (PDF, 312 KB)
XMPFiles Plug-in SDK (PDF, 244 KB)

Previous SDKs:

XMP Toolkit SDK CC-2016.07 (ZIP, 38.7 MB)
XMP Toolkit SDK CC-2016.07 Overview (PDF, 160 KB)
XMPFiles Plug-in SDK CC-2016.07 (PDF, 257 KB)


XMP Media Production SDK

As part of enabling custom metadata for digital video production and distribution workflows via XMP, the XMP Media Production SDK is an extension layer over XMP Toolkit SDK. This extended layer allows convenient editing and storing of static, temporal and other custom metadata. The XMP Media Production SDK provides an extension mechanism for storing vendor specific metadata and other custom metadata. This process of adding metadata can be carried along with the composition throughout the video production and editing workflows.

The XMP Media Production SDK is available under the Apache License, Version 2.0. You may obtain a copy of the License at

XMP Media Production SDK 1.0
XMP Media Production SDK Programmer's Guide

XMP Metadata UI SDK

Adobe Creative Cloud applications can be modified to display custom metadata UI to either adapt the existing UI to own workflow or to be able to interact with custom metadata. The XMP Metadata UI SDK provides documentation and samples on how to create such custom metadata UI. Starting with 2014 release, the extensibility mechanism has changed. 

By clicking on any link in this section, you acknowledge that you have read and agree to the SDK License Agreement 

Latest SDK:
This version of the SDK can be used with Creative Cloud 2014 applications or later. For the 2014 release, Photoshop CC, Illustrator CC and InDesign CC support this SDK. It offers a simple and easy to use mechanism to extend the metadata UI (also known as FileInfo dialog) without the need to write or compile code.

XMP Metadata UI SDK CC 2014

Customers who need more flexibility and functionality for custom metadata UI should use the Adobe Extension SDK that allows to write HTML5 based panels for Creative Cloud applications. The following link is an example of an extension panel that can interact with XMP and is meant as a starting point for developers.

Adobe Extensions SDK XMP sample panel

Previous SDKs:

These versions of the SDK can be used with Creative Suite and Creative Cloud applications older than the 2014 version. For CC applications (before 2014) all custom FileInfo panels should always be installed into the user-specific location (as mentioned in the documentation). The shared location isn't used anymore.

XMP FileInfo SDK CS6 and CC
XMP FileInfo SDK 5.1 (for CS5.x)
XMP FileInfo SDK 4.4.2 (for CS4)
XMP Custom File Info for pre-CS4 products (ZIP, 240K)

Technical Notes:
Deleting Internal Properties in the File Info dialog

XMP Toolkit for Java

The XMP Toolkit for Java is based on the C++ XMPCore library and the API is similar.

XMP Toolkit for Java

XMP Library for ActionScript

The XMP Library for ActionScript 3 is based on the XMPCore library.
The library consists of 3 parts: 

1. The data model represents a set of XMP data in memory and offers an API to create or modify XMP properties.
2. The parser that reads an XMP packet in RDF/XML format into the data model in memory.
3. The serializer converts the data model into RDF/XML format. For more information, please refer to the programmer's guide.

XMP Library 1.0 for ActionScript
Programmer's Guide for the XMP Library for ActionScript (PDF, 199 K)

Related XMP Resources

Flex — Information on Flex technologies, including Flex Builder for creating custom file info panels
XMP Forums — A community forum to share your experiences, discuss problems and report bugs.
Bridge CS6 SDK — Information on extending and customizing Bridge