> ## Documentation Index
> Fetch the complete documentation index at: https://cloudinary.com/documentation/llms.txt
> Use this file to discover all available pages before exploring further.

# Content provenance and authenticity (Beta)


> **INFO**: The content provenance and authenticity feature is currently in **Beta**. There may be minor changes to parameter names or other implementation details before the general access release. If you would like to try it out, please contact our [support team](https://support.cloudinary.com/hc/en-us/requests/new).

## Introduction

The [Coalition for Content Provenance and Authenticity](https://c2pa.org/) (C2PA) is a collaboration among tech and media companies to combat online misinformation. It aims to establish standards and tools for verifying the authenticity of digital media, such as images and videos, by capturing and preserving information about their creation and editing. The goal is to prevent the spread of deceptive or manipulated content on the internet.

C2PA defines a [specification](https://github.com/c2pa-org/specifications) to accomplish this goal. The tooling used to implement C2PA is provided by the Content Authenticity Initiative (CAI), which consists of various SDKs, a command-line tool, and an underlying Rust library. See the [GitHub repo](https://github.com/contentauth).

You can use this [online validation tool](https://verify.contentauthenticity.org) to see the history of certifications that have been applied to an image.

## Scope

C2PA in Cloudinary is currently available only to customers who request it.

It is implemented for images only (specifically, these output formats: `avif`, `heic`, `heif`, `jpg`, `jpeg`, `png`, `svg`, `tif`, `tiff`, and `webp`).

Cloudinary authenticates and signs assets on delivery [upon request](#usage) by adding the signature in a new manifest on top of any existing manifests. If the previous signature is invalid, Cloudinary also marks the previous manifest as invalid.

Alterations made by Cloudinary are classified as **transcoded** or **edited**. The **transcoded** actions are defined by a closed allowlist and include: `c_fit`, `c_mfit`, `c_pad`, `c_lpad`, `c_mpad`, `f_*`, `q_*`, and `c_scale` with a single dimension, `w` or `h`.

All other actions are classified as **edited**.

The metadata attached to each asset contains the certificate, a private key, and a timestamp.

## Usage

When delivering images that you want to be signed by Cloudinary, include the `c2pa` flag, (`fl_c2pa` in URLs). For example:

![Signed image for authenticity](https://res.cloudinary.com/demo/image/upload/fl_c2pa/sample "with_image:false")

```nodejs
cloudinary.image("sample", {flags: "c2pa"})
```

```react
new CloudinaryImage("sample").addFlag("c2pa");
```

```vue
new CloudinaryImage("sample").addFlag("c2pa");
```

```angular
new CloudinaryImage("sample").addFlag("c2pa");
```

```js
new CloudinaryImage("sample").addFlag("c2pa");
```

```python
CloudinaryImage("sample").image(flags="c2pa")
```

```php
(new ImageTag('sample'))
	->addFlag("c2pa");
```

```java
cloudinary.url().transformation(new Transformation().flags("c2pa")).imageTag("sample");
```

```ruby
cl_image_tag("sample", flags: "c2pa")
```

```csharp
cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags("c2pa")).BuildImageTag("sample")
```

```dart
cloudinary.image('sample').transformation(Transformation()
	.addFlag("c2pa"));
```

```swift
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags("c2pa")).generate("sample")!, cloudinary: cloudinary)
```

```android
MediaManager.get().url().transformation(new Transformation().flags("c2pa")).generate("sample");
```

```flutter
cloudinary.image('sample').transformation(Transformation()
	.addFlag("c2pa"));
```

```kotlin
cloudinary.image {
	publicId("sample")
	 addFlag("c2pa") 
}.generate()
```

```jquery
$.cloudinary.image("sample", {flags: "c2pa"})
```

```react_native
new CloudinaryImage("sample").addFlag("c2pa");
```

For images that are **transcoded** but not **edited**, for example `c_scale,w_550/fl_c2pa`, a validation tool would show something similar to the following (view in validation tool):

For images that are **edited**, whether or not they are also **transcoded**, for example `e_cartoonify/fl_c2pa`, a validation tool would show something similar to the following (view in validation tool):

> **NOTE**: You can use the [c2patool](https://github.com/contentauth/c2patool) on an image file to view its manifests in detail.