# Overview

Welcome to the Autoenhance.ai API documentation. Our API allows you to seamlessly integrate powerful image enhancement capabilities into your applications. Whether you're a developer looking to automate image processing workflows or integrate advanced HDR bracket grouping, our API provides the tools you need.

### Getting Started

#### What is Autoenhance.ai?

Autoenhance.ai is an advanced image enhancement service that leverages cutting-edge technology to automatically improve the quality of your images. With our API, you can:

* **Upload Images:** Effortlessly upload single images or multiple images in bulk.
* **Group Images into Orders:** Organize images into orders, making it easy to manage and process collections of images.
* **HDR Bracket Grouping:** Enhance your images with HDR (High Dynamic Range) by grouping bracketed shots.
* **Download Enhanced Images:** Retrieve your enhanced images ready for use.

#### Core Concepts

**Image Upload**

Upload single or multiple images to the Autoenhance.ai platform. Our API accepts various image formats and processes them efficiently.

[Learn more](/images/managing-images/creating-and-uploading) about Image Upload.

**Orders**

An order is a collection of images. You can create an order to manage a batch of images together. This is particularly useful for organizing and processing multiple images simultaneously.

[Learn more](/orders) about Orders.

**HDR Brackets**

HDR (High Dynamic Range) brackets allow you to combine multiple exposures of the same scene into one enhanced image. Group your bracketed shots and let our API handle the rest.

[Learn more](/getting-started/quickstart/hdr) about HDR Brackets.

**Image Download**

Once your images are processed, you can easily download the enhanced versions. Our API ensures your images are optimized and ready for your needs.

[Learn more](/images/downloading-images) about Image Download.

### Quick Links

To help you get started quickly, we've prepared a few guides and tutorials:

* **Getting Started Guide:** A step-by-step guide to set up your API key and start using the Autoenhance.ai API. [Read the guide](/getting-started)
* **Image Upload Tutorial:** Learn how to upload images using the API. [Read the tutorial](/getting-started/quickstart)
* **Creating and Managing Orders:** Understand how to create orders and add images to them. [Read the guide](/orders/managing-orders)
* **Using HDR Brackets:** A comprehensive tutorial on grouping HDR brackets for enhanced image processing. [Read the tutorial](/orders/grouping-brackets)
* **Downloading Enhanced Images:** Instructions on how to download your processed images. [Read the guide](/images/downloading-images/enhanced)

### Need Help?

If you have any questions or need further assistance, our support team is here to help. Visit our Support Center or contact us directly at <support@autoenhance.ai>.


# Getting Started

In this guide, we will walk you through the following steps:

1. **Obtaining Your API Key**: Learn how to get your unique API key to access our services.
2. **Uploading an Image**: Step-by-step instructions on how to upload your first image to the API.
3. **Enhancing Your Image**: Details on how to apply our enhancement features to your uploaded image.
4. **Downloading the Enhanced Image**: Guidance on how to retrieve and download your enhanced image.

By the end of this guide, you will have successfully integrated Autoenhance.ai's image enhancement capabilities into your workflow. Let's get started!


# Obtaining an API key

API key is required in order to communicate with our API and SDKs

In order to obtain an API key, you need to create an account in our [web application](https://app.autoenhance.ai/).

Once you log in, visit the [Account details](https://app.autoenhance.ai/settings/account), where you'll be able to see your API key once clicking on the eye icon on the right side of the API Key field.

{% hint style="danger" %}
Keep you API key safe, and don't expose it to anyone!
{% endhint %}


# Quickstart

In Autoenhance, the three main concepts you’ll work with are **Orders**, **Images**, and **Brackets**.

* **Images** – Each image represents an individual shot to be edited and downloaded.
* **Brackets** – An image can contain one or more brackets, which provide the source data for editing. Autoenhance automatically detects the file type and whether a shot is a 360° image.
* **Orders** – Orders group the images you send to Autoenhance. You can use them to represent specific properties or individual work orders from your clients.

The most important part of your integration will be **uploading the bracket files** that are used to create the final edited image.

### Integration Options

You can integrate your application via the Autoenhance API in two ways:

#### 1. Single Image (Easy)

Designed for quick setups, this workflow lets you register, upload, and enhance an image in a single API call. Ideal if you always work with a single file or want the simplest starting point.

[Read the guide](/getting-started/quickstart/single-bracket)

#### 2. HDR Brackets (Advanced)

Use this workflow when you have images with multiple brackets and need to create HDR images.

[Read the guide](#hdr-brackets-advanced)


# Single Image

In this guide we will be walking you through how to enhance your first single bracket image, you will:

1. Learn how to register the fact you want to enhance an image with Autoenhance
2. Upload your image file to Autoenhance using the provided endpoint received after registering your image
3. Downloading the final enhanced image

This guide assumes you have already have an API key, if you don't have one please see our [guide here.](/getting-started/obtaining-an-api-key)

### 1. Registering an image

So you have a single image you want to enhance using Autoenhance. Before we can upload anything we need to register our new image with Autoenhance, by passing a POST request to the `/images` endpoint.

During this process we provide the name and we indicate other editing settings we want to be applied to the image when it's enhanced but we won't cover that in this guide.

As part of this request Autoenhance will make a new record for this image and create space for us to upload our image including a unique endpoint which will be returned in the `upload_url` field

<details>

<summary>🔔 Note For <strong>Existing Customers</strong></summary>

{% hint style="info" %}
Customers who don't specify the API version header and use an older account defaulting to older API version will receive `s3PutObjectUrl` instead of `upload_url` in the response!
{% endhint %}

</details>

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const blob = Blob // Blob or File of your image

const createImage = async (apiKey, blob) => {
    const createImageResponse = await fetch(
      "https://api.autoenhance.ai/v3/images/",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "x-api-key": apiKey,
        },
        body: JSON.stringify({
          image_name: "your-image-name"
        }),
      }
    );

    const { upload_url, order_id, image_id } = await createImageResponse.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

api_key = "YOUR_API_KEY"

def create_image(api_key, image_name, file):
    url = "https://api.autoenhance.ai/v3/images/"
    headers = {
        "Content-Type": "application/json",
        "x-api-key": api_key,
    }
    payload = {
        "image_name": image_name
    }
    
    response = requests.post(url, headers=headers, data=json.dumps(payload))
    
    if response.status_code == 200:
        data = response.json()
        s3_put_object_url = data.get('upload_url')
        order_id = data.get('order_id')
        image_id = data.get('image_id')
        return s3_put_object_url, order_id, image_id
    else:
        response.raise_for_status()

```

{% endtab %}

{% tab title="PHP" %}

```php
$api_key = "YOUR_API_KEY";

function create_image($api_key, $blob) {
    $url = "https://api.autoenhance.ai/v3/images/";
    $data = array(
        "image_name" => "your-image-name"
    );

    $options = array(
        'http' => array(
            'header'  => array(
                "Content-Type: application/json",
                "x-api-key: $apiKey"
            ),
            'method'  => 'POST',
            'content' => json_encode($data),
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        die('Error creating image');
    }

    $response = json_decode($result, true);
    
    return $response['upload_url'];
}
```

{% endtab %}

{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.autoenhance.ai/v3/images/ \
  -H 'Content-Type: application/json' \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
        "image_name": "your-image-name"
      }'
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Important note**\
You will see an **image\_id** and **order\_id** in the response. You can specify both of them yourself in the body of the request, but they both have to be unique. We're using [uuidv4](https://www.npmjs.com/package/uuid) in order to create unique identifiers for both orders and images.

\
If you want to group multiple images into the same order, you must use the exact same order\_id value for all of the created images. Learn more on the [Orders page](/orders/managing-orders).
{% endhint %}

### 2. Uploading image

Now Autoenhance has registered our image and created a unique upload endpoint for us. We need to upload the file for the image we wish to be enhanced.

To do this we will perform a `PUT` request to the url contained provided at the `upload_url` field provided to us in Step 1, the body of this request should be the raw data of the file and the `Content-Type` header should always be `application/octet-stream`

<details>

<summary>🔔 Note For <strong>Existing Customers</strong></summary>

{% hint style="info" %}
We previously required you to provide a `content_type` property in the body of the request to create image, you must use a matching `Content-Type` header when sending the `PUT` request! A `403 Forbidden` error indicates the headers not matching.\
\
Eg. `content_type: "image/jpeg"` in the create image request body requires `"Content-Type": "image/jpeg"` in the headers of uploading image request.\
\
New customers can ignore this message.
{% endhint %}

</details>

{% tabs %}
{% tab title="JavaScript" %}

<pre class="language-javascript"><code class="lang-javascript">const apiKey = "YOUR_API_KEY";
const blob = Blob // Blob or File of your image

<strong>const uploadImage = async (upload_url, blob, apikey) => {
</strong>  const uploadImageResponse = await fetch(uploadUrl, {
    method: "PUT",
    headers: {
      "Content-Type": "application/octet-stream",
      "x-api-key": apiKey,
    },
    body: blob,
  });
  
  if(uploadImageResponse.ok){
    console.log('Image successfully uploaded')
  } else {
    console.log('Error uploading image');
  }
};
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"

def upload_image(upload_url, image_path, api_key, file):
    headers = {
        "Content-Type": "application/octet-stream",
        "x-api-key": api_key,
    }
    
    with open(image_path, 'rb') as image_file:
        image_data = image_file.read()
    
    response = requests.put(upload_url, headers=headers, data=image_data)
    
    return response
```

{% endtab %}

{% tab title="PHP" %}

```php
function upload_image($upload_url, $blob, $api_key) {
    $options = array(
        'http' => array(
            'header'  => array(
                "Content-Type: application/octet-stream",
                "x-api-key: $apiKey"
            ),
            'method'  => 'PUT',
            'content' => $blob["data"],
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($upload_url, false, $context);

    if ($result === FALSE) {
        echo 'Error uploading image';
    } else {
        echo 'Image successfully uploaded to S3';
    }
}
```

{% endtab %}

{% tab title="cURL" %}

```bash
curl -X PUT \
  UPLOAD_URL \
  -H 'Content-Type: application/octet-stream' \
  -H 'x-api-key: YOUR_API_KEY' \
  --data-binary @path/to/your/image.jpg
```

{% endtab %}
{% endtabs %}

### 3. Downloading image

Once successfully uploaded, your image will start being processed with our AI. To check it's current status we can use a GET request to the `/images/:image_id:/` using the `image_id` returned in the registration endpoint to get the current status.\
\
Once the status field returned is `"processed"`we can download the image using the `/images/:image_id:/enhanced` endpoint.\
\
By default this endpoint will return a preview image you can show to your customers before they purchase the image. When they decide they want to download the image simply send `?preview=false` to purchase and download the full sized image from Autoenhance.\
\
During development you can test this workflow without using your credits by utilizing development mode, simply set the `x-dev-mode` to `true`. You can learn more about the development mode [here](/images/downloading-images/enhanced#development-mode).

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const imageId = "ID_OF_YOUR_IMAGE";

const checkImageStatus = async (imageId) => {
    const response = await fetch(`https://api.autoenhance.ai/v3/images/${imageId}`,{
         method: "GET"   
    })
    
    const {enhanced, error} = await response.json();
    
    return {
         enhanced:enhanced,
         error:error
    }
}

const downloadImage = async (imageId, apiKey) => {
     const imageStatus = await checkImageStatus(imageId);
     if(!imageStatus.error && imageStatus.enhanced){
        const response = await fetch(
        `https://api.autoenhance.ai/v3/images/${imageId}/enhanced`,
        { 
            method: "GET",
            headers: {
                "x-api-key": apiKey,
            },
        });
        const imageSource = await response.json()
    
        return imageSource
     }
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
image_id = "ID_OF_YOUR_IMAGE"

def check_image_status(image_id):
    response = requests.get(f"https://api.autoenhance.ai/v3/images/{image_id}")
    data = response.json()
    enhanced = data.get('enhanced')
    error = data.get('error')
    
    return {
        'enhanced': enhanced,
        'error': error
    }

def download_image(image_id, api_key):
    image_status = check_image_status(image_id)
    if not image_status['error'] and image_status['enhanced']:
        response = requests.get(
            f"https://api.autoenhance.ai/v3/images/{image_id}/enhanced",
            headers={
                "x-api-key": api_key,
            }
        )
        image_source = response.json()
        return image_source
```

{% endtab %}

{% tab title="PHP" %}

```php
$api_key = "YOUR_API_KEY";
$image_id = "ID_OF_YOUR_IMAGE";

function check_image_status($image_id) {
    $url = "https://api.autoenhance.ai/v3/images/" . $image_id;

    $options = array(
        'http' => array(
            'method'  => 'GET',
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return array(
            'enhanced' => false,
            'error' => 'Error checking image status'
        );
    }

    $response = json_decode($result, true);
    return array(
        'enhanced' => $response['enhanced'],
        'error' => $response['error']
    );
}

function download_image($image_id, $api_key) {
    $image_status = check_image_status($image_id);

    if (!$image_status['error'] && $image_status['enhanced']) {
        $url = "https://api.autoenhance.ai/v3/images/" . $image_id . "/enhanced";

        $options = array(
            'http' => array(
                'method'  => 'GET',
                'header'  => "x-api-key: $api_key"
            ),
        );

        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);

        if ($result === FALSE) {
            return 'Error downloading enhanced image';
        }

        return json_decode($result, true);
    }

    return 'Image is not enhanced or an error occurred';
}
```

{% endtab %}

{% tab title="cURL" %}

<pre class="language-bash"><code class="lang-bash"><strong>Checking the image status
</strong>
<strong>curl -X GET \
</strong>  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
  
Downloading the image

curl -X GET \
  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE/enhanced \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
</code></pre>

{% endtab %}
{% endtabs %}

{% hint style="info" %}
This example uses the least possible amount of properties in order to create an image. If you want to apply any kind of preferences to it, visit our [Image Settings](/images/basic-enhancements) page to find out more about them. Once you are familiar with them, simply add them in the body of the POST request to our API.
{% endhint %}


# HDR Brackets

In this guide we will be walking you through how to enhance your first HDR image, you will:

1. Learn how to register the fact you want to upload 2 or more brackets for an HDR image with Autoenhance
2. Upload your image file for each bracket to Autoenhance using the provided endpoint received after registering your image
3. Tell Autoenhance you have finished uploading your brackets and you are ready for it to start merging them.
4. Checking the status of the order
5. Downloading the final enhanced HDR image

This guide assumes the following:

* You already have an API key, if you don't have one please see our [guide here.](/getting-started/obtaining-an-api-key)
* That you have already uploaded a single bracket, if you haven't we reccomend you follow our [guide here](/getting-started/quickstart/single-bracket)

### 1. Creating an Order

Before we can upload some brackets we need to create an order for them live so that Autoenhance understands that they are related to each other. To do this we issue a `POST` request to the `/orders` endpoint.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const createOrder = async (apiKey) => {
    const createOrderResponse = await fetch(
      "https://api.autoenhance.ai/v3/orders/",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "x-api-key": apiKey,
        }
      }
    );

    return { order_id } = await createOrderResponse.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def create_order(api_key):
    create_order_url = "https://api.autoenhance.ai/v3/orders/"
    headers = {
        "Content-Type": "application/json",
        "x-api-key": api_key,
    }
    
    create_order_response = requests.post(create_order_url, headers=headers)
    
    if create_order_response.status_code != 200:
        create_order_response.raise_for_status()

    return create_order_response.json['order_id']
```

{% endtab %}

{% tab title="PHP" %}

```php
function create_order($api_key) {
    $create_order_url = "https://api.autoenhance.ai/v3/orders/";

    $create_order_options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'POST'
        ),
    );

    $create_order_context  = stream_context_create($create_order_options);
    $create_order_result = file_get_contents($create_order_url, false, $create_order_context);

    if ($create_order_result === FALSE) {
        echo 'Error creating order';
        return;
    }

    $create_order_response = json_decode($create_order_result, true);
    return $create_image_response['order_id'];
}
```

{% endtab %}

{% tab title="cURL" %}

```javascript
curl -X POST \
  https://api.autoenhance.ai/v3/orders/ \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
```

{% endtab %}
{% endtabs %}

### 2. Uploading the brackets

Now we need to register and upload the file for each bracket, to do this we create a `POST` request to the dedicated `/brackets` endpoint and provide the order\_id we got from the orders endpoint`.` This is so that Autoenhance knows that these brackets belong together and are eligible to be merged together.

{% hint style="info" %}
You can provide the name of each bracket in the name property, the final image takes the name from the first bracket and this can be a useful way to cross-reference which brackets you have uploaded<br>

Customers who don't specify the API version header and use an older account defaulting to older API version will receive `s3PutObjectUrl` instead of `upload_url` in the response from create bracket response!
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const uploadBracket = async (orderId, apiKey, file) =>
    const createBracketResponse = await fetch(
      "https://api.autoenhance.ai/v3/brackets/",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "x-api-key": apiKey,
        },
        body: JSON.stringify({
          order_id: orderId, // order_id needs to be specified
          name: file.name
        }),
      }
    );

    const { upload_url } = await createBracketResponse.json();
    
    if(upload_url){
      const uploadImageResponse = await fetch(upload_url, {
        method: "PUT",
        headers: {
          "Content-Type": 'application/octet-stream',
          "x-api-key": apiKey,
        },
        body: file,
      });
      
      if(uploadImageResponse.ok){
        console.log('Image successfully uploaded')
      } else {
        console.log('Error uploading image');
      }
    }
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def upload_bracket(order_id, api_key, file_path):
    create_bracket_url = "https://api.autoenhance.ai/v3/brackets/"
    headers = {
        "Content-Type": "application/json",
        "x-api-key": api_key,
    }
    payload = {
        "order_id": order_id, # order_id needs to be specified
        "name": file_path.split('/')[-1
    }
    
    create_bracket_response = requests.post(create_bracket_url, headers=headers, data=json.dumps(payload))
    
    if create_bracket_response.status_code != 200:
        create_bracket_response.raise_for_status()

    create_bracket_data = create_bracket_response.json()
    upload_url = create_bracket_data.get('upload_url')
    
    if upload_url:
        with open(file_path, 'rb') as file_data:
            upload_bracket_headers = {
                "Content-Type": 'application/octet-stream',
                "x-api-key": api_key,
            }
            upload_bracket_response = requests.put(upload_url, headers=upload_bracket_headers, data=file_data)
            
            return upload_bracket_response
    else:
        raise ValueError("s3PutObjectUrl not found in the response")
```

{% endtab %}

{% tab title="PHP" %}

```php
function upload_bracket($order_id, $api_key, $file) {
    $create_bracket_url = "https://api.autoenhance.ai/v3/brackets/";

    $create_bracket_data = array(
        "order_id" => $order_id,
        "name" => $file['name']
    );

    $create_bracket_options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => json_encode($create_bracket_data),
        ),
    );

    $create_bracket_context  = stream_context_create($create_bracket_options);
    $create_bracket_result = file_get_contents($create_bracket_url, false, $create_bracket_context);

    if ($create_bracket_result === FALSE) {
        echo 'Error creating image';
        return;
    }

    $create_bracket_response = json_decode($create_bracket_result, true);
    $upload_url = $create_bracket_response['upload_url'];

    if ($upload_url) {
        $upload_image_options = array(
            'http' => array(
                'header'  => "Content-Type: application/octet-stream\r\n" .
                             "x-api-key: $api_key",
                'method'  => 'PUT',
                'content' => file_get_contents($file['tmp_name']),
            ),
        );

        $upload_image_context  = stream_context_create($upload_image_options);
        $upload_image_result = file_get_contents($upload_url, false, $upload_image_context);

        if ($upload_image_result === FALSE) {
            echo 'Error uploading image';
            return;
        }

        echo 'Image successfully uploaded';
    }
}
```

{% endtab %}

{% tab title="cURL" %}

```
Create image

curl -X POST \
  https://api.autoenhance.ai/v3/brackets/ \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
        "order_id": "YOUR_ORDER_ID",
        "name": "your-image-name.jpg",
      }'

Upload Image
Replace UPLOAD_URL with the value of s3PutObjectUrl received from the previous response

curl -X PUT \
  UPLOAD_URL \
  -H 'Content-Type: application/octet-stream' \
  -H 'x-api-key: YOUR_API_KEY' \
  --data-binary @path/to/your/image.jpg
```

{% endtab %}
{% endtabs %}

### 2. Grouping and enhancing your brackets

Once you have uploaded all of your brackets, you are now ready to request Autoenhance start grouping them into images and then enhancing them.

There are three options depending on your use case.

{% tabs %}
{% tab title="Visual Grouping" %}
By default when you call the `/orders/<order_id>/process` endpoint, Autoenhance will analyse the metadata and visual similarity of your brackets. They will be automatically grouped together and returned as a single HDR image.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const uploadAllBrackets = async (apiKey, files, orderId) => {  
  const promises = files.map(file => uploadBracket(orderId, apiKey, file));
  
  await Promise.all(promises);
  const preferences = {
    ai_version: '5.x'
  };
  
  const mergeResponse = await fetch(
    `https://api.autoenhance.ai/v3/orders/${orderId}/process`,
    {
      method: "POST",
      headers: {
        "x-api-key": apiKey,
      }
      body: preferences
    }
  );
  
  // This is an URL to our web application where you can
  // take a look at your order, you don't need to return it.
  return `https://app.autoenhance.ai/orders/${orderId}`
};

const apiKey = YOUR_API_KEY;
const files = [File, File, File] // Array of Files or Blobs
const orderId = "YOUR_UNIQUE_ORDER_ID" // Ideally generated with uuidv4

uploadAllBrackets(apiKey, files, orderId)
```

{% endtab %}

{% tab title="Python" %}

```python
def upload_all_brackets(api_key, files, order_id):
    for file in files:
        upload_bracket(order_id, api_key, file)

    merge_url = f"https://api.autoenhance.ai/v3/orders/{order_id}/process"
    merge_headers = {"x-api-key": api_key}
    prefrences = {"ai_version: "5.x"}
    merge_response = requests.post(merge_url, headers=merge_headers, json=prefrences)
    if merge_response.status_code != 200:
        raise Exception(f"Failed to merge order: {merge_response.text}")
  
    #This is an URL to our web application where you can
    #take a look at your order, you don't need to return it.
    return f"https://app.autoenhance.ai/orders/{order_id}"

api_key = "YOUR_API_KEY"
files = [open('file1.jpg', 'rb'), open('file2.jpg', 'rb'), open('file3.jpg', 'rb')]  # List of file objects
order_id = "YOUR_UNIQUE_ORDER_ID"  # Ideally generated with uuid.uuid4()

order_url = upload_all_brackets(api_key, files, order_id)

# Close the files after uploading
for file in files:
    file.close()

print(order_url)
```

{% endtab %}

{% tab title="PHP" %}

```php
function upload_all_brackets($api_key, $files, $order_id) {
    $promises = array_map(function($file) use ($order_id, $api_key) {
        return upload_bracket($order_id, $api_key, $file);
    }, $files);

    $merge_url = "https://api.autoenhance.ai/v3/orders/$order_id/process";

    $preferences = [
        "ai_version" => "5.x"
    ];

    $merge_options = array(
        'http' => array(
            'header'  => "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => json_encode($preferences),
        ),
    );

    $merge_context  = stream_context_create($merge_options);
    $merge_result = file_get_contents($merge_url, false, $merge_context);

    if ($merge_result === FALSE) {
        return 'Error merging brackets';
    }

    // Return the URL to the web application
    return "https://app.autoenhance.ai/orders/$order_id";
}

$api_key = "YOUR_API_KEY";
$files = [/* Array of Files or Blobs */];
$order_id = "YOUR_UNIQUE_ORDER_ID";

upload_all_brackets($api_key, $files, $order_id);
```

{% endtab %}

{% tab title="cURL" %}

```javascript
Upload each bracket

for file in file1 file2 file3; do
    # Replace file1, file2, file3 with the actual paths to your files
    curl -X POST \
      https://api.autoenhance.ai/v3/brackets/ \
      -H 'Content-Type: application/json' \
      -H 'x-api-key: YOUR_API_KEY' \
      -d '{
            "order_id": "YOUR_ORDER_ID",
            "name": "your-image-name.jpg"
          }'
done

Merge brackets

curl -X POST \
  https://api.autoenhance.ai/v3/orders/YOUR_ORDER_ID/process \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{"ai_version": "5.x" }'
```

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="Fixes group sizes" %}
In cases where you already know each time how many brackets you shot you can provide the `/orders/<order_id>/process` endpoint the `number_of_brackets_per_image` field with a number - in this case Autoenhance will sort your brackets by the time they were shot using their metadata and group your brackets based on this i.e if you set this to 3 then every 3 brackets will be grouped into one image

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const uploadAllBrackets = async (apiKey, files, orderId) => {  
  const promises = files.map(file => uploadBracket(orderId, apiKey, file));
  
  await Promise.all(promises);
  
  const mergeResponse = await fetch(
    `https://api.autoenhance.ai/v3/orders/${orderId}/process`,
    {
      method: "POST",
      headers: {
        "x-api-key": apiKey,
      },
      body: {
        number_of_brackets_per_image: 5
      }
    }
  );
  
  // This is an URL to our web application where you can
  // take a look at your order, you don't need to return it.
  return `https://app.autoenhance.ai/orders/${orderId}`
};

const apiKey = YOUR_API_KEY;
const files = [File, File, File] // Array of Files or Blobs
const orderId = "YOUR_UNIQUE_ORDER_ID" // Ideally generated with uuidv4

uploadAllBrackets(apiKey, files, orderId)
```

{% endtab %}

{% tab title="Python" %}

```python
def upload_all_brackets(api_key, files, order_id):
    for file in files:
        upload_bracket(order_id, api_key, file)

    merge_url = f"https://api.autoenhance.ai/v3/orders/{order_id}/process"
    merge_headers = {"x-api-key": api_key}
    merge_response = requests.post(merge_url, headers=merge_headers, json={
       "number_of_brackets_per_image": 5
    })
    if merge_response.status_code != 200:
        raise Exception(f"Failed to merge order: {merge_response.text}")
  
    #This is an URL to our web application where you can
    #take a look at your order, you don't need to return it.
    return f"https://app.autoenhance.ai/orders/{order_id}"

api_key = "YOUR_API_KEY"
files = [open('file1.jpg', 'rb'), open('file2.jpg', 'rb'), open('file3.jpg', 'rb')]  # List of file objects
order_id = "YOUR_UNIQUE_ORDER_ID"  # Ideally generated with uuid.uuid4()

order_url = upload_all_brackets(api_key, files, order_id)

# Close the files after uploading
for file in files:
    file.close()

print(order_url)
```

{% endtab %}

{% tab title="PHP" %}

```php
function upload_all_brackets($api_key, $files, $order_id) {
    $promises = array_map(function($file) use ($order_id, $api_key) {
        return upload_bracket($order_id, $api_key, $file);
    }, $files);

    $merge_url = "https://api.autoenhance.ai/v3/orders/$order_id/process";

    $merge_options = array(
        'http' => array(
            'header'  => "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => json_encode(array('number_of_brackets_per_image' => 5))
            )
        ),
    );

    $merge_context  = stream_context_create($merge_options);
    $merge_result = file_get_contents($merge_url, false, $merge_context);

    if ($merge_result === FALSE) {
        return 'Error merging brackets';
    }

    // Return the URL to the web application
    return "https://app.autoenhance.ai/orders/$order_id";
}

$api_key = "YOUR_API_KEY";
$files = [/* Array of Files or Blobs */];
$order_id = "YOUR_UNIQUE_ORDER_ID";

upload_all_brackets($api_key, $files, $order_id);
```

{% endtab %}

{% tab title="cURL" %}

```bash
Upload each bracket

for file in file1 file2 file3; do
    # Replace file1, file2, file3 with the actual paths to your files
    curl -X POST \
      https://api.autoenhance.ai/v3/brackets/ \
      -H 'Content-Type: application/json' \
      -H 'x-api-key: YOUR_API_KEY' \
      -d '{
            "order_id": "YOUR_ORDER_ID",
            "name": "your-image-name.jpg"
          }'
done

Merge brackets

curl -X POST \
  https://api.autoenhance.ai/v3/orders/YOUR_ORDER_ID/process \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
  =d '{ "number_of_brackets_per_image": 5"}'
```

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="Manually grouped brackets" %}
In cases where you have already grouped your brackets, you can send these groups to Autoenhance by passing an "images" array , each item should be an object containing a "bracket\_ids" fields containing another array with the ID for each bracket you registered earlier.

{% hint style="info" %}
You can manually group up to 500 brackets!
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const uploadAllBrackets = async (apiKey, files, orderId) => {  
  const promises = files.map(file => uploadBracket(orderId, apiKey, file));
  
  const results = await Promise.all(promises);
  const bracketIds = results.map(result => result.bracket_id);
  
  const preferences = {
    ai_version: '5.x'
  }
  
  const mergeResponse = await fetch(
    `https://api.autoenhance.ai/v3/orders/${orderId}/process`,
    {
      method: "POST",
      headers: {
        "x-api-key": apiKey,
      },
      body: {
         images: [
           {
              {
                "bracket_ids": bracketIds
              }
           }
         ],
         ...preferences
      }
    }
  );
  
  // This is an URL to our web application where you can
  // take a look at your order, you don't need to return it.
  return `https://app.autoenhance.ai/orders/${orderId}`
};

const apiKey = YOUR_API_KEY;
const files = [File, File, File] // Array of Files or Blobs
const orderId = "YOUR_UNIQUE_ORDER_ID" // Ideally generated with uuidv4

uploadAllBrackets(apiKey, files, orderId)
```

{% endtab %}

{% tab title="Python" %}

```python
def upload_all_brackets(api_key, files, order_id):

    bracket_ids = []
    for file in files:
        bracket_ids.append(upload_bracket(order_id, api_key, file))

    merge_url = f"https://api.autoenhance.ai/v3/orders/{order_id}/process"
    merge_headers = {"x-api-key": api_key}
    merge_response = requests.post(merge_url, headers=merge_headers, json={
        "images": [
        {
            "bracket_ids": bracket_ids
        }
        ]
    })
    if merge_response.status_code != 200:
        raise Exception(f"Failed to merge order: {merge_response.text}")
  
    #This is an URL to our web application where you can
    #take a look at your order, you don't need to return it.
    return f"https://app.autoenhance.ai/orders/{order_id}"

api_key = "YOUR_API_KEY"
files = [open('file1.jpg', 'rb'), open('file2.jpg', 'rb'), open('file3.jpg', 'rb')]  # List of file objects
order_id = "YOUR_UNIQUE_ORDER_ID"  # Ideally generated with uuid.uuid4()

order_url = upload_all_brackets(api_key, files, order_id)

# Close the files after uploading
for file in files:
    file.close()

print(order_url)
```

{% endtab %}

{% tab title="PHP" %}

<pre class="language-php"><code class="lang-php">function upload_all_brackets($api_key, $files, $order_id) {
    $bracket_ids = [];

<strong>    foreach ($files as $file) {
</strong>        $response = upload_bracket($order_id, $api_key, $file);

        $data = json_decode($response, true);

        if (isset($data['bracket_id'])) {
            $bracket_ids[] = $data['bracket_id'];
        }
    }

    $merge_payload = json_encode([
        'images' => [
            [
                'bracket_ids' => $bracket_ids
            ]
        ]
    ]);

    $merge_url = "https://api.autoenhance.ai/v3/orders/$order_id/process";

    $merge_options = array(
        'http' => array(
            'header'  => "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => $merge_payload,
        ),
    );

    $merge_context  = stream_context_create($merge_options);
    $merge_result = file_get_contents($merge_url, false, $merge_context);

    if ($merge_result === FALSE) {
        return 'Error merging brackets';
    }

    // Return the URL to the web application
    return "https://app.autoenhance.ai/orders/$order_id";
}

$api_key = "YOUR_API_KEY";
$files = [/* Array of Files or Blobs */];
$order_id = "YOUR_UNIQUE_ORDER_ID";

upload_all_brackets($api_key, $files, $order_id);
</code></pre>

{% endtab %}

{% tab title="cURL" %}

```bash
Upload each bracket

BRACKET_IDS=()
for file in file1 file2 file3; do
    # Replace file1, file2, file3 with the actual paths to your files
    RESPONSE=$(curl -X POST \
      https://api.autoenhance.ai/v3/brackets/ \
      -H 'Content-Type: application/json' \
      -H 'x-api-key: YOUR_API_KEY' \
      -d '{
            "order_id": "YOUR_ORDER_ID",
            "name": "your-image-name.jpg"
          }')
          
  # You will need "jq" installed
  BRACKET_ID=$(echo "$RESPONSE" | jq -r '.bracket_id')
  
  # Append to array if not null
  if [ "$BRACKET_ID" != "null" ]; then
    BRACKET_IDS+=("\"$BRACKET_ID\"")
  fi
  
done

Merge brackets

# Build JSON array from collected bracket IDs
BRACKET_IDS_JSON=$(printf ", %s" "${BRACKET_IDS[@]}")
BRACKET_IDS_JSON="[${BRACKET_IDS_JSON:2}]" # Remove leading comma

MERGE_PAYLOAD=$(cat <<EOF
{
  "images": [
    {
      "bracket_ids": $BRACKET_IDS_JSON
    }
  ]
}
EOF
)

echo "Sending merge request..."

curl -X POST \
  https://api.autoenhance.ai/v3/orders/$ORDER_ID/process \
  -H "Content-Type: application/json" \
  -H "x-api-key: $API_KEY" \
  -d "$MERGE_PAYLOAD"
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

When calling the `/process` endpoint you can send all of the image preferences listed [here](/images/basic-enhancements), these will be used when enhancing your images. If you do not provide these, we will apply default settings.

### 3. Checking the order status

Grouping brackets for each HDR image can take between 10 seconds to 5 minutes to complete depending on the number of brackets that need grouping.

We can check when this has finished by calling the `GET /order/<order_id>` endpoint and reading the `is_merging` and `is_processing` fields. Whilst the AI is still grouping the orders `is_merging` will be `true`, however if you want to display the progress of this grouping to customers then the `images` field will gradually be populated with images.

As each image is grouped the AI will automatically start enhancing them, you can check the status of each image individually using their `status` fields. Once all images have been enhanced the `is_processing` field for the order will change to `false` which can be used to stop showing any processing indicators to your end user.

You should always check your order status before downloading your images. In this case, we need to check whether the order has **falsy values** for **is\_merging** and **is\_processing** or not. You can start downloading all of your images once both of them are false.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const orderId = "ID_OF_YOUR_ORDER";

const checkOrderStatus = async (orderId) => {
    const response = await fetch(`https://api.autoenhance.ai/orders/${orderId}`,{
        method: "GET"
    })
    
    const { is_merging, is_processing } = await response.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
order_id = "ID_OF_YOUR_ORDER";

def check_order_status(order_id):
    url = f"https://api.autoenhance.ai/v3/orders/{order_id}"
    
    response = requests.get(url)
    response_data = response.json()
    
    is_merging = response_data.get('is_merging')
    is_processing = response_data.get('is_processing')
    
    return is_merging, is_processing
```

{% endtab %}

{% tab title="PHP" %}

```php
function check_order_status($order_id) {
    $url = "https://api.autoenhance.ai/orders/$order_id";

    $options = array(
        'http' => array(
            'method'  => 'GET',
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error checking order status';
    }

    $response = json_decode($result, true);
    $is_merging = $response['is_merging'];
    $is_processing = $response['is_processing'];

    return array(
        'is_merging' => $is_merging,
        'is_processing' => $is_processing
    );
}
```

{% endtab %}

{% tab title="cURL" %}

```bash
curl -X GET \
  https://api.autoenhance.ai/orders/ID_OF_YOUR_ORDER \
  -H 'Content-Type: application/json'
```

{% endtab %}
{% endtabs %}

### 4. Downloading image

Once our order has finished grouping and enhancing we can download the images as usual.

By default this endpoint will return a preview image you can show to your customers before they purchase the image. When they decide they want to download the image simply send `?preview=false` to purchase and download the full sized image from Autoenhance.\
\
During development you can test this workflow without using your credits by utilizing development mode, simply set the `x-dev-mode` to `true`. You can learn more about the development mode [here](/images/downloading-images/enhanced#development-mode).

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const imageId = "ID_OF_YOUR_IMAGE";

const checkImageStatus = async (imageId) => {
    const response = await fetch(`https://api.autoenhance.ai/v3/images/${imageId}`,{
         method: "GET"   
    })
    
    const {enhanced, error} = await response.json();
    
    return {
         enhanced:enhanced,
         error:error
    }
}

const downloadImage = async (imageId, apiKey) => {
     const imageStatus = await checkImageStatus(imageId);
     if(!imageStatus.error && imageStatus.enhanced){
        const response = await fetch(
        `https://api.autoenhance.ai/v3/images/${imageId}/enhanced`,
        { 
            method: "GET",
            headers: {
                "x-api-key": apiKey,
            },
        });
        const imageSource = await response.json()
    
        return imageSource
     }
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
image_id = "ID_OF_YOUR_IMAGE"

def check_image_status(image_id):
    response = requests.get(f"https://api.autoenhance.ai/v3/images/{image_id}")
    data = response.json()
    enhanced = data.get('enhanced')
    error = data.get('error')
    
    return {
        'enhanced': enhanced,
        'error': error
    }

def download_image(image_id, api_key):
    image_status = check_image_status(image_id)
    if not image_status['error'] and image_status['enhanced']:
        response = requests.get(
            f"https://api.autoenhance.ai/v3/images/{image_id}/enhanced",
            headers={
                "x-api-key": api_key,
            }
        )
        image_source = response.json()
        return image_source
```

{% endtab %}

{% tab title="PHP" %}

```php
$api_key = "YOUR_API_KEY";
$image_id = "ID_OF_YOUR_IMAGE";

function check_image_status($image_id) {
    $url = "https://api.autoenhance.ai/v3/images/" . $image_id;

    $options = array(
        'http' => array(
            'method'  => 'GET',
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return array(
            'enhanced' => false,
            'error' => 'Error checking image status'
        );
    }

    $response = json_decode($result, true);
    return array(
        'enhanced' => $response['enhanced'],
        'error' => $response['error']
    );
}

function download_image($image_id, $api_key) {
    $image_status = check_image_status($image_id);

    if (!$image_status['error'] && $image_status['enhanced']) {
        $url = "https://api.autoenhance.ai/v3/images/" . $image_id . "/enhanced";

        $options = array(
            'http' => array(
                'method'  => 'GET',
                'header'  => "x-api-key: $api_key"
            ),
        );

        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);

        if ($result === FALSE) {
            return 'Error downloading enhanced image';
        }

        return json_decode($result, true);
    }

    return 'Image is not enhanced or an error occurred';
}
```

{% endtab %}

{% tab title="cURL" %}

```
Check image status

curl -X GET \
  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE \
  -H 'Content-Type: application/json'

Download image

curl -X GET \
  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE/enhanced \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
This example uses the least possible amount of properties in order to create an image. If you want to apply any kind of preferences to it, visit our [Image Settings](/images/basic-enhancements) page to find out more about them. Once you are familiar with them, simply add them in the body of the POST request to our API.
{% endhint %}


# Code Examples

We've prepared working code examples that should help you integrate our API into your codebase.

### List of languages

* JavaScript (Client and Server side examples) [Repository](https://github.com/Autoenhance-ai/API-Code-Examples/tree/main/JavaScript) - [Codesandbox](/getting-started/code-examples/javascript)
* PHP (Server side examples) [Repository](https://github.com/Autoenhance-ai/API-Code-Examples/tree/main/PHP)

{% hint style="info" %}
**Before you continue**\
You can see all of our examples in our API Integrations Repository, which contains all of the projects that we've built for you.
{% endhint %}


# JavaScript


# Uploading Single Bracket

A working codesandbox example of uploading Single Bracket images

Requirements

* `API key`
* `Single Bracket images to upload`

{% embed url="<https://codesandbox.io/embed/lqjq8y?module=/src/index.html&view=editor+++preview>" %}


# Uploading HDR

A working codesandbox example of uploading HDR images

Requirements

* `API key`
* `HDR brackets to upload`

{% embed url="<https://codesandbox.io/embed/myvpld?module=/src/index.html&view=editor+++preview>" %}


# Uploading 360

A working codesandbox example of uploading 360 images

### Requirements

* `API key`
* `360 images to upload`

{% embed url="<https://codesandbox.io/embed/g268p6?module=/src/index.html&view=editor+++preview>" %}


# File & Camera Guidelines


# File Formats

Autoenhance supports a wide range of standard, high-quality, and RAW file formats to suit your needs. On this page, you can see a list of the files we support, along with an overview of which to pick for your use case.

### Standard Quality Images

Standard-quality images are the most common type due to their small file sizes and high compatibility, but they aren't designed for modern photographers' needs.

Autoenhance currently supports the following commonly used file formats:

* **JPEG (Joint Photographic Experts Group)**
* **WEBP (Web Picture format)**

#### Pros

* Small file size, which makes them fast to upload to and process with Autoenhance.
* Widely supported and can be edited without any compatibility issues.

#### Cons

* Formats like JPEG use Lossy Compression to reduce image quality by discarding some data. Repeated saving can further degrade the image.
* Images have a restricted range of brightness levels, which can result in loss of detail in very bright or very dark areas.

### High Quality Images

High-quality images are an increasingly popular image format that balances compatibility with quality, allowing images to display the full range of colours on modern displays in a way that is easy to share.

Autoenhance currently supports the following commonly used file formats:

* **AVIF (AV1 Image File Format)**
* **HEIC (High Efficiency Image Coding)**
* **TIFF (Tagged Image File Format)**
* **PNG (Portable Network Graphics)**

{% hint style="info" %}
Only API users can upload **PNG** images into our system.
{% endhint %}

#### Pros

* Images can capture and display a wider range of brightness levels, preserving details in both highlights and shadows.
* With higher bit depths, images display more accurate, vibrant colours, improving overall image quality.
* With the exception of TIFFs, their small file sizes make them fast to upload and process with Autoenhance.
* Enjoys good support and can be edited without any compatibility issues.

#### Cons

* Not many cameras export to these formats directly, so usually a conversion step is required using software like Adobe Lightroom before uploading to Autoenhance.
* Doesn't contain all the data recorded by the camera, so there are still limitations on how the image can be edited compared to RAW.

### Raw Quality Images

Raw-quality images focus on capturing the data as the camera captures it, allowing full flexibility during the editing process. This comes at the cost of compatibility and file size.

Autoenhance currently supports the following RAW file formats:

* **Adobe Digital Negative** (.dng)
* **Apple ProRaw** (.dng)
* **Canon** (.cr2, .cr3)
* **DJI Drone** (.dng)
* **Fujifilm** (.raf)
* **Hasselblad** (.3fr, .fff)
* **Leica** (.rwl, .dng)
* **Nikon** (.nef, .nrw) — Excluding HE/HE formats\*
* **Olympus / OM System** (.orf)
* **Panasonic** (.rw2)
* **Pentax** (.pef)
* **Sigma** (.x3f)
* **Sony** (.arw, .srf, .sr2)
* **Tagged Image File Format** (.tiff)

{% hint style="info" %}
Compressed RAW formats can cause compatibility issues.

* **Nikon HE / HE\***: Newer Z-series cameras such as the **Z9**, **Z8**, **Zf**, and **Z6 III** can shoot these files. If you run into issues, export them to **JPEG** in Lightroom first. We are looking to add support as soon as possible.
* **Sony Lossless Compressed (L)**: These files may process with a visible border that needs manual cropping after download. For the best results, use **Uncompressed** or standard **Compressed** instead.
* **Canon CR3**: Canon cameras shot in **CRAW** may also have compatibility issues. If you run into issues, export them to **JPEG** in Lightroom first.
  {% endhint %}

#### Pros

* Access to the original data captured by the camera gives Autoenhance the flexibility to create the best possible enhancement.
* Support for a wider range of professional camera manufacturers.

#### Cons

* Most file formats are proprietary and undocumented. While we update frequently, this can occasionally lead to compatibility issues when a manufacturer launches a new model with a novel compression format.
* The flexibility of the editing process means the output in different programs can look different from what you might expect.
* File sizes can grow very large, slowing Autoenhance uploads.


# Recommendations for Best Results

We want you to get the absolute best images possible from our AI. Below are our recommended workflows for stability, efficiency, and quality.

#### 1. Shooting Guidelines

**Bracketing (Exposure)**

Goal: Capture the full dynamic range of the property to ensure high-quality editing results.

* Interior: We recommend shooting 3 to 5 brackets at 2 stops apart. This specific range is critical to ensure you capture the full spectrum of light, from the darkest shadows to the bright details in the window views.
* Exterior: Many exteriors can be captured successfully with a single exposure. In extreme lighting scenarios (high contrast sun/shadow) we recommend shooting 3 brackets at 2 stops apart.
* Note: It is not critical to capture a perfectly exposed sky in your brackets, as our sky replacement feature will automatically add a perfectly exposed sky.

**Tripod Setup (Stability & Height)**

Goal: Maximize image stability and quality.

* Stability & Quality: A tripod is most important for interior images. It allows you to shoot at a lower ISO, producing significantly cleaner and sharper images than handheld shots.
* Camera Height: Set your tripod at waist-level (approximately mid-body height). This height prevents extreme vertical angles and significantly aids our AI in performing accurate perspective corrections.

#### 2. Workflow Optimization

The Efficient JPEG Workflow: Our AI is specifically trained to recover white balance and remove noise from standard JPEGs.

* Why try it? Significantly faster upload/processing times with the same professional results.
* How to test: Shoot RAW + JPEG. Process the JPEGs through Autoenhance to test quality while keeping RAWs as a backup.

For "Flambient" Photographers: Switching to our recommended capture settings can save significant time on-site. Our model simulates the crisp, balanced look of a flambient edit using only ambient inputs.

* How to test: Shoot your usual session (Ambient + Flash) to have a safety net.
* The Process: Upload only the ambient brackets (3 to 5 brackets) to Autoenhance.
* Compare: Compare the Autoenhance result against your manual flambient edit.

#### 3. Troubleshooting

Workaround for Incompatible RAWs: If your camera uses an unsupported RAW format (e.g., Nikon Z8/Z9 High Efficiency), use this workflow:

1. Import to Lightroom and apply lens corrections first (to ensure distortion-free images).
2. Export as full-resolution JPEGs and upload those to Autoenhance.

Missing Lens Support? We support most lenses. If yours isn't correcting properly, contact <support@autoenhance.ai>.

<br>


# Metadata

For optimal results, we recommend uploading all original metadata included in the file captured by the camera. Several features of Autoenhance rely on or enjoy improved performance with this metadata:

1. **Lens Correction**: Requires metadata such as Make, Model, and Lens information to identify the best profile for correcting lens distortion.
2. **Perspective Correction**: Requires lens distortion to have been corrected to make sure it corrects perspectives accurately, this feature requires either the information for lens correction to be available or the metadata that indicates that the image has already been lens corrected (This varies from camera to camera)
3. **HDR Grouping**: Utilizes Date Taken and Exposure Value (This varies from camera to camera) metadata for improving the bracket grouping accuracy for High Dynamic Range (HDR) images.

Including this metadata ensures that our Autoenhance features can apply corrections and enhancements with optimal accuracy and quality.

{% hint style="info" %}
**Metadata on the images we return.** On AI-enhanced downloads we preserve your existing caption, author and copyright, add a standards-based AI-disclosure, and remove GPS/location data for privacy. See [AI Transparency](/ai-transparency) for exactly what we write and how to verify it.
{% endhint %}


# 360

Autoenhance.ai currently only supports equilateral projection for 360° images. Our system automatically detects and processes equilateral images as long as they adhere to a 2:1 aspect ratio. This means the width of the image is exactly twice its height, ensuring proper handling and enhancement of your 360° visuals.

**What is an Equilateral Projection?**

An equilateral projection is a common format for 360° images where the image is mapped onto a rectangle with a 2:1 aspect ratio. This format is widely used because it evenly distributes distortion across the entire image, providing a balanced and accurate representation of the 360° environment.

**Converting Other Projections to Equilateral**

If your 360° images are in a different projection format, such as stereographic, cylindrical, or any other non-equilateral projection, they need to be converted to an equilateral projection before being uploaded to Autoenhance.ai. This ensures compatibility and optimal enhancement results.

**How to Convert to Equilateral**

1. **Using Image Editing Software:** Programs like Adobe Photoshop, PTGui, or specialized 360° image editors often have tools for converting different projections to equilateral format.
2. **Online Conversion Tools:** There are various online services available that can convert 360° images from one projection to another. Simply upload your image, select the desired equilateral format, and download the converted image.
3. **Scripting and APIs:** For bulk conversions or automated workflows, consider using scripts or APIs that can handle projection transformations programmatically.

By ensuring your images are in equilateral projection with a 2:1 aspect ratio, Autoenhance.ai can effectively process and enhance your 360° visuals, delivering high-quality results every time.

For further assistance on converting your 360° images or any other inquiries, please contact our support team.


# Lens Correction

Autoenhance supports lens correction for a wide range of lens and cameras. In this page you can see a list of which we support.

This list was generated on 13th November based on the latest Autoenhance AI version. Older AI versions will have less coverage.

{% hint style="info" %}
Autoenhance currently does not support lens adapters and will only do lens correction for lenses designed to work with that specific camera
{% endhint %}

| manufacturer        | model                                                                       | crop      | dist. | TCA | vign. |
| ------------------- | --------------------------------------------------------------------------- | --------- | ----- | --- | ----- |
| 7Artisans           | 7Artisans 35mm f/0.95                                                       | 1.534     | yes   | no  | no    |
|                     | 7Artisans 35mm f/1.4 APS-C                                                  | 1.534     | yes   | yes | no    |
|                     | 7Artisans APS-C 60mm f/2.8 II                                               | 1.5       | yes   | yes | yes   |
| AEE                 | fixed lens                                                                  | 6.0       | yes   | no  | no    |
| Apple               | fixed lens                                                                  | 6.118     | yes   | yes | yes   |
|                     | fixed lens                                                                  | 8.667     | yes   | yes | yes   |
| Arsenal             | MC Volna-3 80mm f/2.8                                                       | 1.523     | yes   | yes | yes   |
| Beroflex            | Beroflex 1:8 500mm                                                          | 1.531     | yes   | yes | no    |
| Canon               | Canon EF 100-200mm f/4.5A                                                   | 1.005     | yes   | yes | yes   |
|                     | Canon EF 100-300mm f/5.6L                                                   | 1.0       | yes   | no  | no    |
|                     | Canon EF 100-400mm f/4.5-5.6L IS II USM                                     | 1.0       | yes   | yes | yes   |
|                     | Canon EF 100-400mm f/4.5-5.6L IS II USM                                     | 1.613     | no    | no  | yes   |
|                     | Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x extender                     | 1.0       | yes   | no  | no    |
|                     | Canon EF 100-400mm f/4.5-5.6L IS USM                                        | 1.611     | yes   | no  | no    |
|                     | Canon EF 100-400mm f/4.5-5.6L IS USM                                        | 1.0       | yes   | yes | yes   |
|                     | Canon EF 100mm f/2.8 Macro                                                  | 1.611     | yes   | no  | no    |
|                     | Canon EF 100mm f/2.8 Macro USM                                              | 1.0       | yes   | yes | yes   |
|                     | Canon EF 100mm f/2.8L Macro IS USM                                          | 1.0       | yes   | yes | yes   |
|                     | Canon EF 100mm f/2.8L Macro IS USM                                          | 1.605     | yes   | yes | no    |
|                     | Canon EF 11-24mm f/4L USM                                                   | 1.0       | yes   | yes | no    |
|                     | Canon EF 135mm f/2 L USM                                                    | 1.0       | yes   | yes | yes   |
|                     | Canon EF 135mm f/2.8 Soft Focus                                             | 1.267     | yes   | no  | no    |
|                     | Canon EF 14mm f/2.8L II USM                                                 | 1.0       | yes   | yes | yes   |
|                     | Canon EF 15mm f/2.8 Fisheye                                                 | 1.0       | yes   | yes | yes   |
|                     | Canon EF 16-35mm f/2.8L II USM                                              | 1.0       | yes   | yes | yes   |
|                     | Canon EF 16-35mm f/2.8L III USM                                             | 1.0       | yes   | yes | yes   |
|                     | Canon EF 16-35mm f/2.8L USM                                                 | 1.0       | yes   | yes | yes   |
|                     | Canon EF 16-35mm f/4L IS USM                                                | 1.0       | yes   | yes | yes   |
|                     | Canon EF 17-35mm f/2.8L USM                                                 | 1.0       | yes   | no  | no    |
|                     | Canon EF 17-40mm f/4L USM                                                   | 1.0       | yes   | no  | no    |
|                     | Canon EF 200mm f/2.8L II USM                                                | 1.611     | yes   | no  | no    |
|                     | Canon EF 200mm f/2.8L USM                                                   | 1.0       | yes   | no  | no    |
|                     | Canon EF 20mm f/2.8 USM                                                     | 1.0       | yes   | yes | yes   |
|                     | Canon EF 22-55mm f/4-5.6 USM                                                | 1.613     | yes   | yes | no    |
|                     | Canon EF 24-105mm f/3.5-5.6 IS STM                                          | 1.0       | yes   | yes | yes   |
|                     | Canon EF 24-105mm f/4L IS II USM                                            | 1.0       | yes   | yes | no    |
|                     | Canon EF 24-105mm f/4L IS II USM                                            | 1.605     | yes   | yes | no    |
|                     | Canon EF 24-105mm f/4L IS USM                                               | 1.0       | yes   | yes | yes   |
|                     | Canon EF 24-105mm f/4L IS USM                                               | 1.611     | yes   | no  | no    |
|                     | Canon EF 24-70mm f/2.8L II USM                                              | 1.0       | yes   | yes | yes   |
|                     | Canon EF 24-70mm f/2.8L USM                                                 | 1.0       | yes   | no  | yes   |
|                     | Canon EF 24-70mm f/4L IS USM                                                | 1.0       | yes   | yes | yes   |
|                     | Canon EF 24-70mm f/4L IS USM                                                | 1.6       | yes   | yes | no    |
|                     | Canon EF 24-85mm f/3.5-4.5 USM                                              | 1.0       | yes   | yes | yes   |
|                     | Canon EF 24-85mm f/3.5-4.5 USM                                              | 1.611     | yes   | no  | no    |
|                     | Canon EF 24mm f/1.4L II USM                                                 | 1.005     | yes   | yes | no    |
|                     | Canon EF 24mm f/1.4L USM                                                    | 1.0       | yes   | no  | no    |
|                     | Canon EF 24mm f/2.8                                                         | 1.0       | yes   | no  | yes   |
|                     | Canon EF 24mm f/2.8 IS USM                                                  | 1.613     | yes   | yes | no    |
|                     | Canon EF 28-105mm f/3.5-4.5 II USM                                          | 1.0       | yes   | no  | no    |
|                     | Canon EF 28-135mm f/3.5-5.6 IS USM                                          | 1.0       | yes   | no  | no    |
|                     | Canon EF 28-300mm f/3.5-5.6L IS USM                                         | 1.0       | yes   | no  | no    |
|                     | Canon EF 28-70mm f/2.8L USM                                                 | 1.611     | yes   | no  | no    |
|                     | Canon EF 28-80mm f/3.5-5.6 USM                                              | 1.0       | yes   | yes | no    |
|                     | Canon EF 28-80mm f/3.5-5.6 USM IV                                           | 1.613     | yes   | yes | yes   |
|                     | Canon EF 28mm f/1.8                                                         | 1.611     | yes   | no  | no    |
|                     | Canon EF 28mm f/1.8 USM                                                     | 1.0       | yes   | no  | no    |
|                     | Canon EF 28mm f/2.8                                                         | 1.613     | yes   | yes | yes   |
|                     | Canon EF 28mm f/2.8                                                         | 1.0       | yes   | yes | no    |
|                     | Canon EF 300mm f/2.8L IS II USM                                             | 1.0       | yes   | yes | no    |
|                     | Canon EF 300mm f/2.8L IS II USM                                             | 1.6       | yes   | yes | no    |
|                     | Canon EF 300mm f/2.8L IS II USM + EF 1.4× ext. III                          | 1.0       | yes   | yes | no    |
|                     | Canon EF 300mm f/2.8L IS II USM + EF 1.4× ext. III                          | 1.6       | yes   | yes | no    |
|                     | Canon EF 300mm f/2.8L IS II USM + EF 2.0× ext. III                          | 1.0       | yes   | yes | no    |
|                     | Canon EF 300mm f/2.8L IS II USM + EF 2.0× ext. III                          | 1.6       | yes   | yes | no    |
|                     | Canon EF 300mm f/2.8L IS USM                                                | 1.0       | yes   | yes | yes   |
|                     | Canon EF 300mm f/2.8L IS USM + EF 1.4× ext. III                             | 1.0       | yes   | yes | yes   |
|                     | Canon EF 300mm f/2.8L IS USM + EF 2.0× ext. III                             | 1.0       | yes   | yes | yes   |
|                     | Canon EF 300mm f/4L IS USM                                                  | 1.605     | yes   | yes | no    |
|                     | Canon EF 300mm f/4L IS USM + 1.4× ext.                                      | 1.605     | yes   | yes | no    |
|                     | Canon EF 35-105mm f/3.5-4.5                                                 | 1.005     | yes   | yes | yes   |
|                     | Canon EF 35-105mm f/3.5-4.5                                                 | 1.611     | yes   | no  | no    |
|                     | Canon EF 35-105mm f/4.5-5.6                                                 | 1.611     | yes   | no  | no    |
|                     | Canon EF 35-135mm f/4-5.6 USM                                               | 1.611     | yes   | no  | no    |
|                     | Canon EF 35-70mm f/3.5-4.5                                                  | 1.611     | yes   | no  | no    |
|                     | Canon EF 35-80mm f/4-5.6 III                                                | 1.611     | yes   | no  | no    |
|                     | Canon EF 35mm f/1.4L II USM                                                 | 1.605     | yes   | yes | no    |
|                     | Canon EF 35mm f/1.4L USM                                                    | 1.0       | yes   | yes | yes   |
|                     | Canon EF 35mm f/2                                                           | 1.0       | yes   | no  | no    |
|                     | Canon EF 35mm f/2 IS USM                                                    | 1.005     | yes   | yes | no    |
|                     | Canon EF 35mm f/2 IS USM                                                    | 1.613     | no    | no  | yes   |
|                     | Canon EF 400mm f/5.6L USM                                                   | 1.005     | yes   | yes | yes   |
|                     | Canon EF 400mm f/5.6L USM + EF 1.4× ext.                                    | 1.005     | yes   | yes | no    |
|                     | Canon EF 40mm f/2.8 STM                                                     | 1.0       | yes   | yes | yes   |
|                     | Canon EF 50-200mm f/3.5-4.5L                                                | 1.622     | yes   | no  | no    |
|                     | Canon EF 50-200mm f/3.5-4.5L                                                | 1.0       | yes   | no  | no    |
|                     | Canon EF 500mm f/4L IS II USM                                               | 1.0       | yes   | yes | no    |
|                     | Canon EF 500mm f/4L IS II USM                                               | 1.6       | yes   | yes | no    |
|                     | Canon EF 500mm f/4L IS II USM + EF 1.4× ext. III                            | 1.0       | yes   | yes | no    |
|                     | Canon EF 500mm f/4L IS II USM + EF 1.4× ext. III                            | 1.6       | yes   | yes | no    |
|                     | Canon EF 500mm f/4L IS II USM + EF 2.0× ext. III                            | 1.0       | yes   | yes | no    |
|                     | Canon EF 500mm f/4L IS II USM + EF 2.0× ext. III                            | 1.6       | yes   | yes | no    |
|                     | Canon EF 50mm f/1.2L USM                                                    | 1.0       | yes   | no  | no    |
|                     | Canon EF 50mm f/1.4 USM                                                     | 1.0       | yes   | yes | yes   |
|                     | Canon EF 50mm f/1.4 USM                                                     | 1.611     | yes   | yes | yes   |
|                     | Canon EF 50mm f/1.8                                                         | 1.267     | yes   | no  | no    |
|                     | Canon EF 50mm f/1.8                                                         | 1.613     | yes   | yes | yes   |
|                     | Canon EF 50mm f/1.8 II                                                      | 1.0       | yes   | yes | yes   |
|                     | Canon EF 50mm f/1.8 II                                                      | 1.267     | yes   | no  | no    |
|                     | Canon EF 50mm f/1.8 II                                                      | 1.622     | yes   | yes | yes   |
|                     | Canon EF 50mm f/1.8 STM                                                     | 1.005     | yes   | no  | yes   |
|                     | Canon EF 50mm f/1.8 STM                                                     | 1.613     | no    | no  | yes   |
|                     | Canon EF 50mm f/2.5 Compact Macro                                           | 1.0       | yes   | yes | yes   |
|                     | Canon EF 55-200mm f/4.5-5.6                                                 | 1.611     | yes   | no  | no    |
|                     | Canon EF 70-200mm f/2.8L IS II USM                                          | 1.0       | yes   | yes | yes   |
|                     | Canon EF 70-200mm f/2.8L IS II USM + EF 2× III ext.                         | 1.0       | yes   | yes | no    |
|                     | Canon EF 70-200mm f/2.8L IS USM                                             | 1.0       | yes   | no  | yes   |
|                     | Canon EF 70-200mm f/2.8L IS USM                                             | 1.62      | yes   | yes | yes   |
|                     | Canon EF 70-200mm f/2.8L IS USM + EF 1.4× ext.                              | 1.0       | yes   | no  | no    |
|                     | Canon EF 70-200mm f/2.8L IS USM + EF 2× II ext.                             | 1.62      | yes   | yes | yes   |
|                     | Canon EF 70-200mm f/2.8L USM                                                | 1.0       | yes   | yes | yes   |
|                     | Canon EF 70-200mm f/4L IS USM                                               | 1.0       | yes   | yes | yes   |
|                     | Canon EF 70-200mm f/4L IS USM                                               | 1.613     | yes   | yes | no    |
|                     | Canon EF 70-200mm f/4L USM                                                  | 1.0       | yes   | no  | no    |
|                     | Canon EF 70-200mm f/4L USM + EF 1.4× ext.                                   | 1.0       | yes   | no  | no    |
|                     | Canon EF 70-210mm f/3.5-4.5 USM                                             | 1.0       | yes   | yes | yes   |
|                     | Canon EF 70-210mm f/4                                                       | 1.005     | yes   | yes | yes   |
|                     | Canon EF 70-300mm f/4-5.6 IS II USM                                         | 1.0       | no    | no  | yes   |
|                     | Canon EF 70-300mm f/4-5.6 IS USM                                            | 1.611     | yes   | no  | no    |
|                     | Canon EF 70-300mm f/4-5.6L IS USM                                           | 1.605     | yes   | yes | no    |
|                     | Canon EF 70-300mm f/4-5.6L IS USM                                           | 1.0       | yes   | no  | yes   |
|                     | Canon EF 70-300mm f/4.5-5.6 DO IS USM                                       | 1.0       | yes   | yes | yes   |
|                     | Canon EF 75-300mm f/4-5.6 IS USM                                            | 1.611     | yes   | no  | no    |
|                     | Canon EF 75-300mm F4-5.6 III                                                | 1.613     | yes   | yes | yes   |
|                     | Canon EF 8-15mm f/4L Fisheye USM                                            | 1.0       | yes   | yes | yes   |
|                     | Canon EF 80-200mm f/2.8L                                                    | 1.0       | yes   | no  | no    |
|                     | Canon EF 80-200mm f/4.5-5.6                                                 | 1.0       | yes   | yes | no    |
|                     | Canon EF 85mm f/1.2L II USM                                                 | 1.0       | yes   | yes | yes   |
|                     | Canon EF 85mm f/1.2L USM                                                    | 1.0       | yes   | no  | no    |
|                     | Canon EF 85mm f/1.4L IS USM                                                 | 1.0       | yes   | yes | yes   |
|                     | Canon EF 85mm f/1.8 USM                                                     | 1.0       | yes   | yes | yes   |
|                     | Canon EF 90-300mm f/4.5-5.6                                                 | 1.005     | yes   | yes | no    |
|                     | Canon EF-M 11-22mm f/4-5.6 IS STM                                           | 1.613     | yes   | yes | yes   |
|                     | Canon EF-M 15-45mm f/3.5-6.3 IS STM                                         | 1.613     | yes   | yes | yes   |
|                     | Canon EF-M 18-55mm f/3.5-5.6 IS STM                                         | 1.613     | yes   | yes | yes   |
|                     | Canon EF-M 22mm f/2 STM                                                     | 1.613     | yes   | yes | yes   |
|                     | Canon EF-M 28mm f/3.5 Macro IS STM                                          | 1.613     | yes   | yes | yes   |
|                     | Canon EF-M 32mm f/1.4 STM                                                   | 1.613     | yes   | yes | yes   |
|                     | Canon EF-M 55-200mm f/4.5-6.3 IS STM                                        | 1.613     | yes   | yes | yes   |
|                     | Canon EF-S 10-18mm f/4.5-5.6 IS STM                                         | 1.62      | yes   | yes | yes   |
|                     | Canon EF-S 10-22mm f/3.5-4.5 USM                                            | 1.613     | yes   | yes | yes   |
|                     | Canon EF-S 15-85mm f/3.5-5.6 IS USM                                         | 1.613     | yes   | yes | yes   |
|                     | Canon EF-S 17-55mm f/2.8 IS USM                                             | 1.622     | yes   | yes | yes   |
|                     | Canon EF-S 17-85mm f/4-5.6 IS USM                                           | 1.611     | yes   | yes | yes   |
|                     | Canon EF-S 18-135mm f/3.5-5.6 IS                                            | 1.613     | yes   | yes | no    |
|                     | Canon EF-S 18-135mm f/3.5-5.6 IS STM                                        | 1.613     | yes   | yes | yes   |
|                     | Canon EF-S 18-135mm f/3.5-5.6 IS USM                                        | 1.605     | yes   | yes | yes   |
|                     | Canon EF-S 18-200mm f/3.5-5.6 IS                                            | 1.62      | yes   | yes | no    |
|                     | Canon EF-S 18-55mm f/3.5-5.6                                                | 1.611     | yes   | no  | no    |
|                     | Canon EF-S 18-55mm f/3.5-5.6 II                                             | 1.622     | yes   | yes | no    |
|                     | Canon EF-S 18-55mm f/3.5-5.6 III                                            | 1.611     | yes   | no  | no    |
|                     | Canon EF-S 18-55mm f/3.5-5.6 IS                                             | 1.622     | yes   | yes | yes   |
|                     | Canon EF-S 18-55mm f/3.5-5.6 IS II                                          | 1.611     | yes   | yes | yes   |
|                     | Canon EF-S 18-55mm f/3.5-5.6 IS STM                                         | 1.613     | yes   | yes | yes   |
|                     | Canon EF-S 18-55mm f/4-5.6 IS STM                                           | 1.613     | yes   | yes | no    |
|                     | Canon EF-S 24mm f/2.8 STM                                                   | 1.622     | yes   | yes | yes   |
|                     | Canon EF-S 55-250mm f/4-5.6 IS                                              | 1.611     | yes   | yes | yes   |
|                     | Canon EF-S 55-250mm f/4-5.6 IS II                                           | 1.611     | yes   | yes | yes   |
|                     | Canon EF-S 55-250mm f/4-5.6 IS STM                                          | 1.611     | yes   | yes | yes   |
|                     | Canon EF-S 60mm f/2.8 Macro USM                                             | 1.611     | yes   | no  | no    |
|                     | Canon FD 200mm f/2.8 S.S.C.                                                 | 1.534     | yes   | yes | no    |
|                     | Canon FD 50mm f/1.4 S.C.C.                                                  | 1.0       | yes   | no  | yes   |
|                     | Canon FDn 100mm 1:2.8                                                       | 2.0       | yes   | yes | yes   |
|                     | Canon FDn 135mm 1:2.8                                                       | 1.534     | yes   | yes | yes   |
|                     | Canon FDn 200mm 1:4                                                         | 1.534     | yes   | yes | yes   |
|                     | Canon FDn 24mm 1:2.8                                                        | 1.529     | yes   | yes | no    |
|                     | Canon FDn 50mm 1:1.4                                                        | 2.0       | yes   | yes | yes   |
|                     | Canon FDn 50mm 1:1.4                                                        | 1.534     | yes   | yes | yes   |
|                     | Canon FDn 50mm 1:1.8                                                        | 1.529     | yes   | yes | no    |
|                     | Canon Lens FL 135mm F3.5                                                    | 1.529     | no    | no  | yes   |
|                     | Canon Lens FL 50mm F1.4                                                     | 1.529     | yes   | yes | yes   |
|                     | Canon RF 100-400mm F5.6-8 IS USM                                            | 1.0       | yes   | no  | no    |
|                     | Canon RF 100-500mm F4.5-7.1L IS USM                                         | 1.0       | yes   | yes | yes   |
|                     | Canon RF 100mm F2.8L Macro IS USM                                           | 1.0       | yes   | yes | yes   |
|                     | Canon RF 135mm F1.8L IS USM                                                 | 1.0       | yes   | yes | yes   |
|                     | Canon RF 14-35mm F4 L IS USM                                                | 1.0       | yes   | yes | no    |
|                     | Canon RF 15-30mm F4.5-6.3 IS STM                                            | 1.0       | yes   | yes | no    |
|                     | Canon RF 15-35mm F2.8L IS USM                                               | 1.0       | yes   | yes | yes   |
|                     | Canon RF 16mm F2.8 STM                                                      | 1.0       | yes   | yes | yes   |
|                     | Canon RF 24-105mm F4-7.1 IS STM                                             | 1.0       | yes   | yes | yes   |
|                     | Canon RF 24-105mm F4L IS USM                                                | 1.0       | yes   | yes | yes   |
|                     | Canon RF 24-240mm F4-6.3 IS USM                                             | 1.0       | yes   | yes | no    |
|                     | Canon RF 24-50mm F4.5-6.3 IS STM                                            | 1.0       | yes   | yes | yes   |
|                     | Canon RF 24-70mm F2.8L IS USM                                               | 1.0       | yes   | no  | yes   |
|                     | Canon RF 24mm F1.8 MACRO IS STM                                             | 1.613     | yes   | no  | yes   |
|                     | Canon RF 24mm F1.8 MACRO IS STM                                             | 1.0       | yes   | yes | no    |
|                     | Canon RF 28-70mm F2 L USM                                                   | 1.0       | yes   | yes | yes   |
|                     | Canon RF 28mm F2.8 STM                                                      | 1.0       | yes   | no  | yes   |
|                     | Canon RF 35mm F1.8 MACRO IS STM                                             | 1.0       | yes   | yes | no    |
|                     | Canon RF 50mm F1.2 L USM                                                    | 1.0       | yes   | yes | yes   |
|                     | Canon RF 50mm F1.8 STM                                                      | 1.0       | yes   | yes | yes   |
|                     | Canon RF 70-200mm F2.8L IS USM                                              | 1.0       | yes   | yes | no    |
|                     | Canon RF 800mm F11 IS STM                                                   | 1.0       | yes   | no  | yes   |
|                     | Canon RF 85mm F1.2L USM                                                     | 1.0       | yes   | yes | yes   |
|                     | Canon RF 85mm F2 MACRO IS STM                                               | 1.0       | yes   | yes | yes   |
|                     | Canon RF-S 18-150mm F3.5-6.3 IS STM                                         | 1.613     | yes   | no  | no    |
|                     | Canon RF-S 18-45mm F4.5-6.3 IS STM                                          | 1.613     | yes   | no  | yes   |
|                     | Canon TS-E 24mm f/3.5L                                                      | 1.0       | yes   | no  | no    |
|                     | Canon TS-E 24mm f/3.5L                                                      | 1.622     | yes   | yes | no    |
|                     | Canon TS-E 45mm f/2.8                                                       | 1.0       | yes   | no  | no    |
|                     | Canon TS-E 90mm f/2.8                                                       | 1.0       | yes   | no  | no    |
|                     | Fixed lens IXUS 220 HS                                                      | 5.58      | yes   | no  | no    |
|                     | Fixed lens IXUS 80 IS                                                       | 6.02      | yes   | yes | yes   |
|                     | Fixed lens IXUS i                                                           | 4.843     | yes   | no  | no    |
|                     | Fixed lens IXY 220F                                                         | 5.58      | yes   | yes | no    |
|                     | Fixed lens Powershot A1200                                                  | 5.61      | yes   | no  | no    |
|                     | Fixed lens PowerShot A4000 IS                                               | 5.6       | yes   | yes | no    |
|                     | Fixed lens PowerShot A495                                                   | 5.39      | yes   | yes | no    |
|                     | Fixed lens PowerShot A520                                                   | 6.05      | yes   | no  | no    |
|                     | Fixed lens PowerShot A610                                                   | 4.8       | yes   | no  | no    |
|                     | Fixed lens PowerShot A610                                                   | 4.8       | yes   | yes | yes   |
|                     | Fixed lens PowerShot A640                                                   | 4.79      | yes   | yes | yes   |
|                     | Fixed lens PowerShot A640                                                   | 4.79      | yes   | yes | no    |
|                     | Fixed lens PowerShot A650 IS                                                | 4.67712   | yes   | no  | no    |
|                     | Fixed lens PowerShot A720 IS                                                | 6.03      | yes   | no  | yes   |
|                     | Fixed lens PowerShot A85                                                    | 6.5       | yes   | no  | no    |
|                     | Fixed lens PowerShot A95                                                    | 4.85      | yes   | no  | no    |
|                     | Fixed lens PowerShot A95                                                    | 4.85      | yes   | no  | no    |
|                     | Fixed lens PowerShot A95                                                    | 4.85      | yes   | no  | no    |
|                     | Fixed lens Powershot ELPH 110 HS                                            | 5.58      | yes   | no  | no    |
|                     | Fixed lens PowerShot G1                                                     | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot G1 X                                                   | 1.85      | yes   | yes | yes   |
|                     | Fixed lens PowerShot G1 X Mark II                                           | 1.93      | yes   | yes | yes   |
|                     | Fixed lens PowerShot G1 X Mark III                                          | 1.613     | yes   | yes | no    |
|                     | Fixed lens PowerShot G11                                                    | 4.554     | yes   | no  | no    |
|                     | Fixed lens PowerShot G12                                                    | 4.63      | yes   | yes | no    |
|                     | Fixed lens PowerShot G15                                                    | 4.65      | yes   | no  | no    |
|                     | Fixed lens PowerShot G16                                                    | 4.67      | yes   | yes | no    |
|                     | Fixed lens PowerShot G2                                                     | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot G2                                                     | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot G3 X (3:2)                                             | 2.727     | yes   | yes | no    |
|                     | Fixed lens PowerShot G5 X (3:2)                                             | 2.72      | yes   | yes | yes   |
|                     | Fixed lens PowerShot G5 X Mark II                                           | 2.73      | yes   | yes | yes   |
|                     | Fixed lens PowerShot G6                                                     | 4.843     | yes   | no  | yes   |
|                     | Fixed lens PowerShot G6                                                     | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot G7                                                     | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot G9 X                                                   | 2.72      | yes   | yes | no    |
|                     | Fixed lens PowerShot Pro1                                                   | 3.933     | yes   | no  | no    |
|                     | Fixed lens PowerShot Pro90 IS                                               | 5.28      | yes   | no  | no    |
|                     | Fixed lens PowerShot S1 IS                                                  | 6.56      | yes   | no  | no    |
|                     | Fixed lens PowerShot S100                                                   | 4.62      | yes   | yes | no    |
|                     | Fixed lens PowerShot S110                                                   | 4.62      | yes   | yes | yes   |
|                     | Fixed lens PowerShot S120                                                   | 4.62      | yes   | yes | no    |
|                     | Fixed lens PowerShot S2 IS                                                  | 6.0       | yes   | no  | no    |
|                     | Fixed lens PowerShot S2 IS                                                  | 6.0       | yes   | no  | no    |
|                     | Fixed lens PowerShot S200                                                   | 6.5       | yes   | no  | no    |
|                     | Fixed lens PowerShot S5 IS                                                  | 6.0       | yes   | no  | no    |
|                     | Fixed lens PowerShot S5 IS                                                  | 6.0       | yes   | no  | no    |
|                     | Fixed lens PowerShot S50                                                    | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot S500                                                   | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot S500                                                   | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot S80                                                    | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot S80                                                    | 4.843     | yes   | no  | no    |
|                     | Fixed lens PowerShot S90                                                    | 4.67      | yes   | yes | no    |
|                     | Fixed lens PowerShot S95                                                    | 4.67      | yes   | yes | no    |
|                     | Fixed lens PowerShot SD450                                                  | 6.05      | yes   | no  | no    |
|                     | Fixed lens PowerShot SD550                                                  | 4.8       | yes   | no  | no    |
|                     | Fixed lens PowerShot SD950 IS                                               | 4.7       | yes   | no  | no    |
|                     | Fixed lens PowerShot SX10 IS                                                | 5.6       | yes   | yes | no    |
|                     | Fixed lens PowerShot SX150 IS                                               | 5.62      | yes   | no  | no    |
|                     | Fixed lens PowerShot SX150 IS                                               | 5.62      | yes   | yes | yes   |
|                     | Fixed lens PowerShot SX160 IS                                               | 5.6       | yes   | yes | yes   |
|                     | Fixed lens PowerShot SX220 HS                                               | 5.6       | yes   | yes | yes   |
|                     | Fixed lens PowerShot SX220 HS                                               | 5.6       | yes   | no  | no    |
|                     | Fixed lens PowerShot SX240 HS                                               | 5.56      | yes   | no  | yes   |
|                     | Fixed lens PowerShot SX30 IS                                                | 5.58      | yes   | yes | yes   |
|                     | Fixed lens Powershot SX50 HS                                                | 5.61      | yes   | yes | no    |
|                     | Fixed lens PowerShot SX510 HS                                               | 5.58      | yes   | no  | no    |
|                     | Fixed lens PowerShot SX510 HS                                               | 5.58      | yes   | no  | no    |
|                     | Fixed lens Powershot SX60 HS                                                | 5.61      | yes   | yes | no    |
|                     | Fixed lens PowerShot SX700 HS                                               | 5.6       | yes   | no  | no    |
| Casio               | Fixed lens EX-P700                                                          | 4.65      | yes   | no  | no    |
|                     | Fixed lens EX-P700                                                          | 4.65      | yes   | no  | no    |
|                     | Fixed lens EX-Z4                                                            | 6.05      | yes   | no  | no    |
|                     | Fixed lens EX-Z750                                                          | 4.8       | yes   | no  | no    |
|                     | Fixed lens QV-3500EX                                                        | 4.8       | yes   | no  | no    |
|                     | Fixed lens QV-3500EX                                                        | 4.8       | yes   | no  | no    |
| Chinon              | Auto Chinon 35mm f/2.8                                                      | 1.0       | yes   | yes | yes   |
|                     | Chinon 75-205mm f/3.8                                                       | 1.0       | no    | no  | yes   |
| Contax              | Contax G Planar T\* 2/35                                                    | 1.534     | yes   | yes | no    |
|                     | Zeiss 21mm f/2.8 Distagon                                                   | 1.0       | yes   | no  | no    |
|                     | Zeiss 28mm f/2.8 Distagon                                                   | 1.0       | yes   | no  | no    |
| Cosina              | 24mm 2.0 Macro                                                              | 1.526     | yes   | yes | no    |
|                     | Cosina 19-35mm f/3.5-4.5 MC                                                 | 1.0       | yes   | yes | yes   |
|                     | Cosina Cosinon-S 50mm 1:2                                                   | 1.538     | yes   | yes | no    |
| DJI                 | FC3411 fixed lens                                                           | 2.63      | yes   | yes | yes   |
|                     | FC3582 fixed lens                                                           | 3.6       | yes   | yes | yes   |
|                     | FC6310R fixed lens                                                          | 2.73      | yes   | no  | no    |
|                     | fixed lens                                                                  | 6.0       | yes   | yes | no    |
|                     | fixed lens                                                                  | 5.5       | no    | no  | yes   |
|                     | fixed lens                                                                  | 5.64      | yes   | yes | yes   |
|                     | fixed lens                                                                  | 2.73      | yes   | yes | no    |
|                     | fixed lens                                                                  | 5.6       | yes   | yes | yes   |
| Fotasy              | Fotasy M3517 35mm f/1.7                                                     | 1.529     | yes   | no  | no    |
| Fujian              | 35mm f/1.7                                                                  | 2.0       | yes   | yes | no    |
| Fujifilm            | Fixed lens FinePix 3800                                                     | 6.3333333 | yes   | no  | no    |
|                     | Fixed lens FinePix A370                                                     | 6.03      | yes   | no  | no    |
|                     | Fixed lens FinePix F11                                                      | 4.5       | yes   | no  | no    |
|                     | Fixed lens FinePix F200EXR                                                  | 4.341     | yes   | no  | no    |
|                     | Fixed lens FinePix F601 ZOOM                                                | 4.487     | yes   | no  | no    |
|                     | Fixed lens FinePix F770EXR                                                  | 5.43      | yes   | yes | no    |
|                     | Fixed lens FinePix F810                                                     | 4.5       | yes   | no  | no    |
|                     | Fixed lens FinePix F810                                                     | 4.5       | yes   | no  | no    |
|                     | Fixed lens FinePix HS20EXR                                                  | 5.71      | yes   | yes | no    |
|                     | Fixed lens FinePix S5500                                                    | 6.491     | yes   | no  | no    |
|                     | Fixed lens FinePix S5600                                                    | 6.03      | yes   | no  | no    |
|                     | Fixed lens FinePix S7000                                                    | 4.487     | yes   | no  | no    |
|                     | Fixed lens FinePix S9000                                                    | 4.48      | yes   | no  | no    |
|                     | Fixed lens FinePix X100                                                     | 1.523     | yes   | yes | yes   |
|                     | Fixed lens FinePix X100                                                     | 1.523     | yes   | yes | no    |
|                     | Fixed lens X-S1                                                             | 3.93      | yes   | yes | yes   |
|                     | Fixed lens X10                                                              | 3.93      | yes   | yes | no    |
|                     | Fixed lens X100V                                                            | 1.53      | yes   | yes | yes   |
|                     | Fixed lens X70                                                              | 1.5375    | yes   | yes | no    |
|                     | Fixed lens XF10                                                             | 1.53      | yes   | yes | yes   |
|                     | Fixed lens XQ1                                                              | 3.91      | yes   | yes | no    |
|                     | GF110mmF2 R LM WR                                                           | 0.79      | yes   | yes | yes   |
|                     | GF23mmF4 R LM WR                                                            | 0.79      | yes   | yes | yes   |
|                     | GF45mmF2.8 R WR                                                             | 0.79      | yes   | yes | yes   |
|                     | GF50mmF3.5 R LM WR                                                          | 0.79      | yes   | yes | yes   |
|                     | GF55mmF1.7 R WR                                                             | 0.79      | yes   | no  | no    |
|                     | GF80mmF1.7 R WR                                                             | 0.79      | yes   | yes | no    |
|                     | XC 15-45mm f/3.5-5.6 OIS PZ                                                 | 1.529     | yes   | yes | yes   |
|                     | XC 16-50mm f/3.5-5.6 OIS                                                    | 1.529     | yes   | yes | yes   |
|                     | XC 16-50mm f/3.5-5.6 OIS II                                                 | 1.529     | yes   | yes | yes   |
|                     | XC 35mm f/2                                                                 | 1.528     | yes   | yes | yes   |
|                     | XC 50-230mm f/4.5-6.7 OIS                                                   | 1.529     | yes   | yes | yes   |
|                     | XC 50-230mm f/4.5-6.7 OIS II                                                | 1.529     | yes   | yes | yes   |
|                     | XF 10-24mm f/4 R OIS                                                        | 1.529     | yes   | yes | yes   |
|                     | XF 10-24mm f/4 R OIS WR                                                     | 1.529     | yes   | yes | yes   |
|                     | XF 100-400mm f/4.5-5.6 R LM OIS WR                                          | 1.529     | yes   | yes | no    |
|                     | XF 100-400mm f/4.5-5.6 R LM OIS WR + 1.4× conv.                             | 1.529     | yes   | yes | no    |
|                     | XF 14mm f/2.8 R                                                             | 1.529     | yes   | yes | yes   |
|                     | XF 16-55mm f/2.8 R LM WR                                                    | 1.529     | yes   | yes | no    |
|                     | XF 16-80mm f/4 R OIS WR                                                     | 1.534     | yes   | yes | yes   |
|                     | XF 16mm f/1.4 R WR                                                          | 1.529     | yes   | yes | yes   |
|                     | XF 16mm f/2.8 R WR                                                          | 1.529     | yes   | yes | yes   |
|                     | XF 18-135mm f/3.5-5.6R LM OIS WR                                            | 1.529     | yes   | yes | yes   |
|                     | XF 18-55mm f/2.8-4 R LM OIS                                                 | 1.529     | yes   | yes | yes   |
|                     | XF 18mm f/2 R                                                               | 1.529     | yes   | yes | yes   |
|                     | XF 23mm f/1.4 R                                                             | 1.529     | yes   | yes | yes   |
|                     | XF 23mm f/1.4 R LM WR                                                       | 1.53      | yes   | yes | yes   |
|                     | XF 23mm f/2 R WR                                                            | 1.529     | yes   | yes | yes   |
|                     | XF 27mm f/2.8 R WR                                                          | 1.529     | yes   | yes | yes   |
|                     | XF 33mm f/1.4 R LM WR                                                       | 1.534     | yes   | no  | no    |
|                     | XF 35mm f/1.4 R                                                             | 1.529     | yes   | yes | yes   |
|                     | XF 35mm f/2 R WR                                                            | 1.528     | yes   | yes | yes   |
|                     | XF 50-140mm f/2.8 R LM OIS WR                                               | 1.529     | yes   | yes | yes   |
|                     | XF 50mm f/2 R WR                                                            | 1.528     | yes   | yes | yes   |
|                     | XF 55-200mm f/3.5-4.8 R LM OIS                                              | 1.529     | yes   | yes | yes   |
|                     | XF 56mm f/1.2 R                                                             | 1.529     | yes   | yes | yes   |
|                     | XF 56mm f/1.2 R APD                                                         | 1.529     | yes   | yes | yes   |
|                     | XF 56mm f/1.2 R WR                                                          | 1.534     | yes   | yes | no    |
|                     | XF 60mm f/2.4 R Macro                                                       | 1.529     | yes   | yes | yes   |
|                     | XF 70-300mm f/4-5.6 R LM OIS WR                                             | 1.534     | yes   | yes | no    |
|                     | XF 90mm f/2 R LM WR                                                         | 1.534     | yes   | yes | yes   |
| GitUp               | fixed lens                                                                  | 5.57      | yes   | yes | no    |
| GoPro               | fixed lens                                                                  | 6.4       | yes   | no  | no    |
|                     | fixed lens                                                                  | 5.42      | yes   | no  | no    |
|                     | fixed lens                                                                  | 7.66      | yes   | no  | no    |
|                     | fixed lens                                                                  | 5.0       | yes   | no  | no    |
|                     | fixed lens                                                                  | 5.5       | yes   | no  | no    |
| Hasselblad          | fixed lens                                                                  | 2.8       | yes   | no  | no    |
|                     | fixed lens                                                                  | 1.953     | yes   | no  | no    |
| Honor               | fixed lens                                                                  | 8.235     | no    | no  | yes   |
| Huawei              | fixed lens                                                                  | 4.86      | yes   | yes | yes   |
|                     | fixed lens                                                                  | 4.55      | yes   | yes | yes   |
|                     | fixed lens                                                                  | 6.88      | no    | no  | yes   |
| Irix                | Irix 11mm f/4 G                                                             | 1.0       | yes   | yes | no    |
|                     | Irix 15mm f/2.4                                                             | 1.0       | yes   | no  | yes   |
| Kipon               | Elegant 35mm F/2.4                                                          | 1.0       | yes   | yes | no    |
| KMZ                 | Helios-40 85mm f/1.5                                                        | 1.0       | yes   | yes | yes   |
|                     | Helios-44 58mm 1:2                                                          | 1.0       | yes   | yes | yes   |
|                     | Industar-50-2 3.5/50                                                        | 1.0       | yes   | yes | yes   |
|                     | MC Helios-44M-4 58mm 1:2                                                    | 1.538     | yes   | yes | yes   |
|                     | MC Helios-44M-4 58mm 1:2                                                    | 1.0       | yes   | yes | yes   |
|                     | MIR-1B 37mm f/2.8                                                           | 1.523     | yes   | yes | yes   |
|                     | МИР-1B 2.8/37                                                               | 1.0       | yes   | yes | yes   |
|                     | МС МТО 11СА                                                                 | 1.531     | yes   | no  | no    |
|                     | ЮПИТЕР-37AM MC 3.5/135                                                      | 1.0       | yes   | yes | yes   |
| Kodak               | Fixed lens Kodak CX6330                                                     | 6.593     | yes   | no  | no    |
| Konica Minolta      | Fixed lens DiMAGE A200                                                      | 3.933     | yes   | no  | no    |
|                     | Fixed lens DiMAGE A200                                                      | 3.933     | yes   | no  | no    |
|                     | Fixed lens DiMAGE G400                                                      | 6.144     | yes   | no  | no    |
|                     | Fixed lens DiMAGE Z2                                                        | 6.03      | yes   | no  | no    |
|                     | Fixed lens DiMAGE Z2                                                        | 6.03      | yes   | no  | no    |
|                     | Fixed lens DiMAGE Z20                                                       | 6.05      | yes   | no  | no    |
|                     | Fixed lens DiMAGE Z20                                                       | 6.05      | yes   | no  | no    |
|                     | Fixed lens DiMAGE Z6                                                        | 6.05      | yes   | no  | no    |
|                     | KM 20mm f/2.8                                                               | 1.526     | yes   | no  | no    |
|                     | KM 24-105mm f/3.5-4.5 AF D                                                  | 1.526     | yes   | no  | no    |
|                     | KM 28-100mm f/3.5-5.6 AF D                                                  | 1.526     | yes   | no  | no    |
|                     | KM 80-200mm f/2.8                                                           | 1.526     | yes   | no  | no    |
| Leica               | APO-Summicron-SL 1:2/35 ASPH.                                               | 1.0       | yes   | yes | yes   |
|                     | APO-Summicron-SL 1:2/50 ASPH.                                               | 1.0       | yes   | no  | no    |
|                     | Elmarit-M 28mm f/2.8 ASPH                                                   | 1.0       | yes   | no  | no    |
|                     | Elmarit-M 90mm f/2.8                                                        | 1.0       | yes   | no  | no    |
|                     | Elmarit-TL 1:2.8/18 ASPH.                                                   | 1.53      | yes   | yes | no    |
|                     | Fixed lens Digilux 2                                                        | 3.933     | yes   | no  | no    |
|                     | Fixed lens Q (Typ 116)                                                      | 1.0       | yes   | yes | no    |
|                     | Fixed lens Q2                                                               | 1.0       | yes   | yes | no    |
|                     | Fixed lens Q3 43                                                            | 1.0       | yes   | yes | no    |
|                     | Fixed lens X Vario (Typ 107)                                                | 1.53      | yes   | no  | no    |
|                     | Summicron TL 1:2 23 ASPH.                                                   | 1.53      | yes   | yes | yes   |
|                     | Summicron-M 1:2/28 ASPH.                                                    | 1.0       | yes   | yes | no    |
|                     | Summicron-M 50mm f/2                                                        | 1.0       | yes   | yes | no    |
|                     | Summilux-TL 1:1.4/35 ASPH.                                                  | 1.53      | yes   | yes | no    |
|                     | Vario-Elmarit-SL 1:2.8/24-70 ASPH.                                          | 1.0       | yes   | no  | no    |
| LG                  | fixed lens                                                                  | 6.34      | yes   | yes | no    |
| Mamiya              | Mamiya 120mm f/32.0-4.0                                                     | 0.644     | yes   | yes | yes   |
|                     | Mamiya 150mm f/32.0-3.5                                                     | 0.644     | yes   | yes | yes   |
|                     | Mamiya 35mm f/22.0-3.5                                                      | 0.644     | yes   | yes | yes   |
|                     | Mamiya 35mm f/3.5                                                           | 0.577     | yes   | no  | no    |
|                     | Mamiya 55-110mm f/4.5                                                       | 0.577     | yes   | no  | no    |
|                     | Mamiya 80mm f/2.8                                                           | 0.577     | yes   | no  | no    |
| Meike               | Meike 25mm f/1.8                                                            | 1.534     | yes   | yes | yes   |
|                     | Meike 28mm f/2.8                                                            | 1.529     | yes   | no  | no    |
|                     | Meike 35mm f/1.7                                                            | 1.528     | yes   | yes | no    |
|                     | Meike 50mm f/2.0                                                            | 1.528     | yes   | yes | no    |
|                     | Meike 50mm F1.2                                                             | 1.0       | yes   | yes | yes   |
| Meyer Optik Görlitz | Meyer Optik Görlitz 3.5/30mm                                                | 1.0       | yes   | yes | no    |
| Minolta             | Fixed lens DiMAGE Xt                                                        | 6.5       | yes   | no  | no    |
|                     | Fixed lens DiMAGE Z1                                                        | 6.545     | yes   | no  | no    |
|                     | Fixed lens DiMAGE Z1                                                        | 6.545     | yes   | no  | no    |
|                     | Minolta AF 100-300mm f/4.5-5.6 APO (D)                                      | 1.0       | yes   | yes | yes   |
|                     | Minolta AF 135mm f/2.8                                                      | 1.0       | yes   | yes | yes   |
|                     | Minolta AF 17-35mm f/2.8-4 (D)                                              | 1.0       | yes   | yes | no    |
|                     | Minolta AF 28-75mm F2.8 (D)                                                 | 1.0       | yes   | yes | yes   |
|                     | Minolta AF 35-105mm f/3.5-4.5                                               | 1.523     | yes   | yes | yes   |
|                     | Minolta AF 50mm f/1.4                                                       | 1.0       | yes   | yes | no    |
|                     | Minolta AF 50mm f/1.7                                                       | 1.523     | yes   | yes | yes   |
|                     | Minolta AF 50mm f/2.8 Macro                                                 | 1.0       | yes   | yes | no    |
|                     | Minolta AF 70-210mm f/4 Macro                                               | 1.0       | yes   | yes | no    |
|                     | Minolta AF 85mm f/1.4G (D)                                                  | 1.0       | yes   | yes | yes   |
|                     | Minolta MC Rokkor-PG 50mm 1:1.4                                             | 2.0       | yes   | yes | yes   |
|                     | Minolta MD 35mm 1/2.8                                                       | 1.529     | yes   | yes | yes   |
|                     | Minolta MD Rokkor 50mm 1:1.4                                                | 1.534     | yes   | no  | no    |
|                     | Minolta/Sony AF 24-105mm f/3.5-4.5 (D)                                      | 1.0       | yes   | yes | no    |
| Miranda             | Miranda 28mm f/2.8 MC                                                       | 1.0       | yes   | yes | no    |
| Mitakon             | Mitakon Speedmaster 50mm f/0.95 III                                         | 1.0       | yes   | no  | no    |
|                     | Mitakon wide MC f=24mm 1:2.8                                                | 1.538     | yes   | yes | no    |
| MTO                 | МТО-500 500мм f/8                                                           | 1.529     | no    | no  | yes   |
| Nikon               | 1 Nikkor 10mm f/2.8                                                         | 2.727     | yes   | no  | yes   |
|                     | 1 Nikkor 18.5mm f/1.8                                                       | 2.727     | yes   | yes | no    |
|                     | 1 Nikkor 32mm f/1.2                                                         | 2.727     | yes   | yes | no    |
|                     | 1 Nikkor AW 10mm f/2.8                                                      | 2.727     | yes   | yes | no    |
|                     | 1 Nikkor AW 11-27.5mm f/3.5-5.6                                             | 2.727     | yes   | yes | no    |
|                     | 1 Nikkor VR 10-30mm f/3.5-5.6                                               | 2.727     | yes   | yes | no    |
|                     | 1 Nikkor VR 30-110mm f/3.8-5.6                                              | 2.727     | yes   | yes | no    |
|                     | Fixed lens Coolpix 4800                                                     | 6.0       | yes   | no  | no    |
|                     | Fixed lens Coolpix 5000                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 5000                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 5400                                                     | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix 5400                                                     | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix 7900                                                     | 4.86      | yes   | no  | no    |
|                     | Fixed lens Coolpix 8400                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 8400                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 8700                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 8700                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 8700                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 8800                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 8800                                                     | 3.933     | yes   | no  | no    |
|                     | Fixed lens Coolpix 950                                                      | 5.408     | yes   | no  | no    |
|                     | Fixed lens Coolpix 990                                                      | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix 990                                                      | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix 995                                                      | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix 995                                                      | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix 995                                                      | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix 995                                                      | 4.843     | yes   | no  | no    |
|                     | Fixed lens Coolpix A                                                        | 1.523     | yes   | yes | no    |
|                     | Fixed lens Coolpix P1000                                                    | 5.56      | yes   | yes | no    |
|                     | Fixed lens Coolpix P330                                                     | 4.706     | yes   | yes | no    |
|                     | Fixed lens Coolpix P60                                                      | 5.62      | yes   | no  | no    |
|                     | Fixed lens Coolpix P7000                                                    | 4.69      | yes   | no  | no    |
|                     | Fixed lens Coolpix P7800                                                    | 4.67      | yes   | yes | no    |
|                     | Fixed lens Coolpix S3300                                                    | 5.65      | yes   | yes | no    |
|                     | Nikkor 50mm f/2                                                             | 1.528     | yes   | no  | no    |
|                     | Nikkor 55mm f/3.5 Micro                                                     | 1.529     | yes   | no  | no    |
|                     | Nikkor AF 10.5mm f/2.8G DX ED Fisheye                                       | 1.523     | yes   | yes | no    |
|                     | Nikkor AF 10.5mm f/2.8G DX ED Fisheye                                       | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 105mm f/2.8D Micro                                                | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 105mm f/2D DC                                                     | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 105mm Micro f/2.8D                                                | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 135mm f/2D DC                                                     | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 14mm f/2.8D ED                                                    | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 18-35mm f/3.5-4.5D IF-ED                                          | 1.0       | yes   | no  | yes   |
|                     | Nikkor AF 18-35mm f/3.5-4.5D IF-ED                                          | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 180mm f/2.8D IF-ED                                                | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 20-35mm f/2.8D IF                                                 | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 20mm f/2.8D                                                       | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 20mm f/2.8D                                                       | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 24-50mm f/3.3-4.5                                                 | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 24-50mm f/3.3-4.5D                                                | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 24-85mm f/2.8-4D IF                                               | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 24-85mm f/2.8-4D IF                                               | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 24mm f/2.8D                                                       | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 24mm f/2.8D                                                       | 1.0       | yes   | no  | yes   |
|                     | Nikkor AF 28-200mm f/3.5-5.6G IF-ED                                         | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 28-200mm f/3.5-5.6G IF-ED                                         | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 28-70mm f/3.5-4.5D                                                | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 28-80mm f/3.3-5.6G                                                | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 28mm f/1.4D                                                       | 1.0       | yes   | no  | no    |
|                     | Nikkor AF 28mm f/2.8D                                                       | 1.0       | yes   | no  | yes   |
|                     | NIKKOR AF 300mm f/4 IF-ED                                                   | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 35-70mm f/2.8                                                     | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 35-70mm f/2.8D                                                    | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 35mm f/2.0D                                                       | 1.0       | yes   | no  | yes   |
|                     | Nikkor AF 35mm f/2.8 PC “black knob”                                        | 1.0       | yes   | yes | no    |
|                     | Nikkor AF 50mm f/1.4D                                                       | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 50mm f/1.8D                                                       | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 50mm f/1.8D                                                       | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 60mm f/2.8D Micro                                                 | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF 70-180mm f/4.5-5.6D ED Micro                                      | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 70-210mm f/4                                                      | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 70-210mm f/4-5.6                                                  | 1.523     | yes   | yes | yes   |
|                     | Nikkor AF 70-300mm f/4-5.6D ED                                              | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 70-300mm f/4-5.6G                                                 | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 80-200mm f/2.8 ED                                                 | 1.523     | yes   | yes | yes   |
|                     | Nikkor AF 80-200mm f/2.8D ED                                                | 1.0       | yes   | no  | yes   |
|                     | Nikkor AF 80-400mm f/4.5-5.6D ED VR                                         | 1.528     | yes   | no  | no    |
|                     | Nikkor AF 85mm f/1.8                                                        | 1.523     | yes   | yes | yes   |
|                     | Nikkor AF 85mm f/1.8D                                                       | 1.0       | yes   | no  | no    |
|                     | Nikkor AF-P 10-20mm f/4.5-5.6G DX VR                                        | 1.534     | yes   | yes | no    |
|                     | NIKKOR AF-P 18-55mm f/3.5-5.6G DX VR                                        | 1.523     | yes   | yes | yes   |
|                     | NIKKOR AF-P 70-300mm f/4.5-5.6E ED VR                                       | 1.0       | yes   | yes | yes   |
|                     | NIKKOR AF-P 70-300mm f/4.5-6.3G DX ED VR                                    | 1.534     | yes   | yes | yes   |
|                     | Nikkor AF-S 10-24mm f/3.5-4.5G DX ED                                        | 1.558     | yes   | yes | yes   |
|                     | Nikkor AF-S 105mm f/1.4E ED                                                 | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF-S 12-24mm f/4G DX IF-ED                                           | 1.528     | yes   | no  | no    |
|                     | Nikkor AF-S 14-24mm f/2.8G ED                                               | 1.0       | yes   | yes | no    |
|                     | Nikkor AF-S 16-35mm f/4G ED VR                                              | 1.0       | yes   | yes | yes   |
|                     | NIKKOR AF-S 16-80mm f/2.8-4E DX ED VR                                       | 1.534     | yes   | yes | yes   |
|                     | NIKKOR AF-S 16-85mm f/3.5-5.6G DX ED VR                                     | 1.528     | yes   | no  | yes   |
|                     | Nikkor AF-S 17-35mm f/2.8D IF-ED                                            | 1.528     | yes   | no  | no    |
|                     | Nikkor AF-S 17-35mm f/2.8D IF-ED                                            | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF-S 17-55mm f/2.8G DX IF-ED                                         | 1.528     | yes   | no  | yes   |
|                     | Nikkor AF-S 18-105mm f/3.5-5.6G DX ED VR                                    | 1.534     | yes   | yes | yes   |
|                     | Nikkor AF-S 18-135mm f/3.5-5.6G DX IF-ED                                    | 1.528     | yes   | no  | yes   |
|                     | Nikkor AF-S 18-140mm f/3.5-5.6G DX ED VR                                    | 1.523     | yes   | yes | yes   |
|                     | Nikkor AF-S 18-200mm f/3.5-5.6G DX VR IF-ED                                 | 1.5       | yes   | yes | no    |
|                     | Nikkor AF-S 18-200mm f/3.5-5.6G DX VR IF-ED II                              | 1.5       | yes   | yes | no    |
|                     | NIKKOR AF-S 18-300mm f/3.5-5.6G DX ED VR                                    | 1.534     | yes   | yes | no    |
|                     | Nikkor AF-S 18-300mm f/3.5-6.3G DX ED VR                                    | 1.523     | yes   | yes | no    |
|                     | Nikkor AF-S 18-35mm f/3.5-4.5G ED                                           | 1.0       | yes   | yes | no    |
|                     | Nikkor AF-S 18-55mm f/3.5-5.6G DX ED                                        | 1.528     | yes   | no  | no    |
|                     | Nikkor AF-S 18-55mm f/3.5-5.6G DX VR                                        | 1.528     | yes   | no  | yes   |
|                     | NIKKOR AF-S 18-55mm f/3.5-5.6G DX VR II                                     | 1.523     | yes   | yes | no    |
|                     | Nikkor AF-S 18-70mm f/3.5-4.5G DX IF-ED                                     | 1.528     | yes   | yes | yes   |
|                     | NIKKOR AF-S 200-500mm f/5.6E ED VR                                          | 1.534     | yes   | yes | no    |
|                     | NIKKOR AF-S 200-500mm f/5.6E ED VR                                          | 1.0       | yes   | yes | yes   |
|                     | NIKKOR AF-S 20mm f/1.8G ED                                                  | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF-S 24-120mm f/3.5-5.6G VR IF-ED                                    | 1.528     | yes   | no  | no    |
|                     | NIKKOR AF-S 24-120mm f/4G ED VR                                             | 1.0       | yes   | yes | yes   |
|                     | NIKKOR AF-S 24-70mm f/2.8E ED VR                                            | 1.0       | yes   | yes | no    |
|                     | Nikkor AF-S 24-70mm f/2.8G ED                                               | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF-S 24-85mm f/3.5-4.5G ED VR                                        | 1.0       | yes   | yes | no    |
|                     | Nikkor AF-S 24-85mm f/3.5-4.5G IF-ED                                        | 1.0       | yes   | no  | no    |
|                     | NIKKOR AF-S 24mm f/1.8G ED                                                  | 1.001     | yes   | yes | yes   |
|                     | Nikkor AF-S 28-300mm f/3.5-5.6G ED VR                                       | 1.0       | yes   | yes | no    |
|                     | NIKKOR AF-S 28mm f/1.8G                                                     | 1.0       | yes   | yes | no    |
|                     | NIKKOR AF-S 300mm f/4D IF-ED                                                | 1.0       | yes   | yes | yes   |
|                     | NIKKOR AF-S 300mm f/4E PF ED VR                                             | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF-S 35mm f/1.4G                                                     | 1.0       | yes   | yes | no    |
|                     | NIKKOR AF-S 35mm f/1.8G DX                                                  | 1.528     | yes   | yes | yes   |
|                     | Nikkor AF-S 35mm f/1.8G DX                                                  | 1.0       | yes   | yes | yes   |
|                     | NIKKOR AF-S 35mm f/1.8G ED                                                  | 1.0       | yes   | yes | no    |
|                     | Nikkor AF-S 400mm f/2.8G ED + converter TC-14EIII                           | 1.0       | no    | no  | yes   |
|                     | Nikkor AF-S 400mm f/2.8G ED + converter TC-20EIII                           | 1.0       | no    | no  | yes   |
|                     | Nikkor AF-S 40mm f/2.8G DX Micro                                            | 1.534     | yes   | yes | no    |
|                     | NIKKOR AF-S 50mm f/1.4G                                                     | 1.534     | yes   | no  | no    |
|                     | NIKKOR AF-S 50mm f/1.4G                                                     | 1.0       | yes   | yes | yes   |
|                     | NIKKOR AF-S 50mm f/1.8G                                                     | 1.523     | yes   | yes | yes   |
|                     | NIKKOR AF-S 50mm f/1.8G                                                     | 1.0       | yes   | no  | yes   |
|                     | Nikkor AF-S 55-200mm f/4-5.6G DX ED                                         | 1.528     | yes   | no  | no    |
|                     | Nikkor AF-S 55-300mm f/4.5-5.6G DX ED VR                                    | 1.523     | yes   | yes | yes   |
|                     | Nikkor AF-S 60 mm f/2.8G ED Micro                                           | 1.0       | no    | no  | yes   |
|                     | Nikkor AF-S 600mm f/4E FL ED VR + converter TC-14EIII                       | 1.0       | no    | no  | yes   |
|                     | NIKKOR AF-S 600mm f/4G ED VR                                                | 1.0       | yes   | no  | yes   |
|                     | Nikkor AF-S 60mm f/2.8G ED Micro                                            | 1.523     | yes   | yes | yes   |
|                     | NIKKOR AF-S 70-200mm f/2.8E FL ED VR                                        | 1.0       | yes   | yes | no    |
|                     | NIKKOR AF-S 70-200mm f/2.8G ED VR II                                        | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF-S 70-200mm f/2.8G ED VR II + Kenko TELE+ HD 2.0X                  | 1.0       | yes   | no  | no    |
|                     | Nikkor AF-S 70-200mm f/2.8G VR IF-ED                                        | 1.528     | yes   | yes | yes   |
|                     | NIKKOR AF-S 70-200mm f/4G IF-ED VR                                          | 1.0       | yes   | yes | no    |
|                     | Nikkor AF-S 70-300mm f/4.5-5.6G VR IF-ED                                    | 1.0       | yes   | yes | no    |
|                     | Nikkor AF-S 70-300mm f/4.5-5.6G VR IF-ED                                    | 1.523     | yes   | yes | yes   |
|                     | Nikkor AF-S 800mm f/5.6E FL ED VR                                           | 1.0       | yes   | no  | yes   |
|                     | NIKKOR AF-S 85mm f/1.4G                                                     | 1.0       | yes   | yes | no    |
|                     | NIKKOR AF-S 85mm f/1.8G                                                     | 1.0       | yes   | yes | yes   |
|                     | Nikkor AF-S VR 105mm f/2.8G Micro IF-ED                                     | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI 15mm f/3.5                                                        | 1.528     | yes   | no  | no    |
|                     | Nikkor AI 20mm f/3.5                                                        | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI 45mm f/2.8 GN                                                     | 1.528     | yes   | no  | no    |
|                     | Nikkor AI 55mm f/1.2                                                        | 1.528     | yes   | no  | no    |
|                     | Nikkor AI 80-200mm f/4.5 Zoom New                                           | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 105mm f/2.5                                                     | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 135mm f/2                                                       | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 135mm f/2.8                                                     | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 135mm f/3.5                                                     | 1.0       | yes   | no  | yes   |
|                     | Nikkor AI-S 180mm f/2.8 ED                                                  | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 200mm f/4                                                       | 1.0       | yes   | yes | no    |
|                     | Nikkor AI-S 20mm f/2.8                                                      | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 24mm f/2                                                        | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 24mm f/2.8                                                      | 1.0       | yes   | yes | no    |
|                     | Nikkor AI-S 28mm f/2                                                        | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 28mm f/2.8                                                      | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 28mm f/3.5 PC (unshifted)                                       | 1.0       | yes   | no  | no    |
|                     | Nikkor AI-S 300mm f/4.5                                                     | 1.0       | yes   | yes | no    |
|                     | Nikkor AI-S 35mm f/1.4                                                      | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 35mm f/2                                                        | 1.0       | yes   | yes | no    |
|                     | Nikkor AI-S 400mm f/3.5                                                     | 1.0       | yes   | yes | no    |
|                     | Nikkor AI-S 400mm f/3.5 + TC14B teleconverter                               | 1.0       | yes   | yes | no    |
|                     | Nikkor AI-S 50-135mm f/3.5                                                  | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 500mm f/8 Reflex                                                | 1.0       | yes   | yes | no    |
|                     | Nikkor AI-S 500mm f/8 Reflex                                                | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 50mm f/1.2                                                      | 1.0       | yes   | no  | no    |
|                     | Nikkor AI-S 50mm f/1.4                                                      | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 50mm f/1.4                                                      | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 50mm f/1.8                                                      | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 50mm f/1.8                                                      | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 55mm f/2.8 Micro                                                | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 55mm f/2.8 Micro                                                | 1.0       | yes   | yes | yes   |
|                     | Nikkor AI-S 58mm f/1.2 Noct                                                 | 1.528     | yes   | no  | no    |
|                     | Nikkor AI-S 6mm f/2.8 Fisheye                                               | 1.0       | yes   | no  | no    |
|                     | Nikkor AI-S 70-210mm f/4.5-5.6                                              | 1.0       | yes   | no  | no    |
|                     | Nikkor AI-S 85mm f/2.0                                                      | 1.0       | yes   | yes | no    |
|                     | NIKKOR Z 100-400mm f/4.5-5.6 VR S                                           | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 135mm f/1.8 S Plena                                                | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 14-24mm f/2.8 S                                                    | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 14-30mm f/4 S                                                      | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 180-600mm f/5.6-6.3 VR                                             | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 20mm f/1.8 S                                                       | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 24-120mm f/4 S                                                     | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 24-200mm f/4-6.3 VR                                                | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 24-70mm f/2.8 S                                                    | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 24-70mm f/4 S                                                      | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 26mm f/2.8                                                         | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 28-400mm f/4-8 VR                                                  | 1.0       | yes   | yes | no    |
|                     | NIKKOR Z 28-75mm f/2.8                                                      | 1.0       | yes   | no  | no    |
|                     | NIKKOR Z 28mm f/2.8                                                         | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 35mm f/1.4                                                         | 1.0       | yes   | yes | no    |
|                     | NIKKOR Z 35mm f/1.8 S                                                       | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 40mm f/2                                                           | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 50mm f/1.2 S                                                       | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 50mm f/1.8 S                                                       | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 600mm f/6.3 VR S                                                   | 1.0       | no    | no  | yes   |
|                     | NIKKOR Z 70-200mm f/2.8 VR S                                                | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 85mm f/1.2 S                                                       | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z 85mm f/1.8 S                                                       | 1.0       | yes   | yes | yes   |
|                     | NIKKOR Z DX 12-28mm f/3.5-5.6 PZ VR                                         | 1.531     | yes   | no  | yes   |
|                     | NIKKOR Z DX 16-50mm f/3.5-6.3 VR                                            | 1.531     | yes   | yes | no    |
|                     | NIKKOR Z DX 50-250mm f/4.5-6.3 VR                                           | 1.5       | yes   | yes | yes   |
|                     | NIKKOR Z MC 105mm f/2.8 VR S                                                | 1.0       | yes   | yes | yes   |
|                     | Nikkor Z MC 50mm f/2.8                                                      | 1.0       | yes   | no  | yes   |
|                     | Nikon AF Zoom-Nikkor 28-105mm f/3.5-4.5D IF                                 | 1.0       | yes   | yes | no    |
|                     | Nikon AF Zoom-Nikkor 28-85mm f/3.5-4.5                                      | 1.0       | yes   | yes | yes   |
|                     | Nikon AF Zoom-Nikkor 70-210mm f/4                                           | 1.0       | yes   | no  | yes   |
|                     | Nikon AF-S Nikkor 500mm f/5.6E PF ED VR                                     | 1.0       | no    | no  | yes   |
|                     | Nikon AF-S Nikkor 58mm f/1.4G                                               | 1.0       | yes   | no  | no    |
|                     | Nikon AF-S Nikkor 600mm f/4E FL ED VR                                       | 1.0       | no    | no  | yes   |
|                     | Nikon AF-S Nikkor 80-400mm f/4.5-5.6G ED VR                                 | 1.0       | yes   | yes | yes   |
|                     | Nikon AF-S VR Nikkor 400mm f/2.8G ED                                        | 1.0       | yes   | no  | yes   |
|                     | Nikon AF-S VR Zoom-Nikkor 200-400mm f/4G IF-ED                              | 1.0       | yes   | no  | yes   |
|                     | Nikon AF-S VR Zoom-Nikkor 70-200mm f/2.8G IF-ED                             | 1.0       | yes   | yes | yes   |
|                     | Nikon Lens Series E 100mm f/2.8                                             | 1.0       | yes   | yes | no    |
|                     | Nikon Lens Series E 28mm f/2.8                                              | 1.0       | yes   | yes | yes   |
|                     | Nikon Lens Series E 50mm f/1.8                                              | 1.0       | yes   | yes | yes   |
|                     | Nikon Zoom-NIKKOR Auto 43-86mm F3.5                                         | 1.0       | yes   | no  | yes   |
| Olympus             | fixed lens                                                                  | 3.933     | yes   | no  | no    |
|                     | Fixed lens C-4000 Zoom, C-4100 Zoom                                         | 4.92      | yes   | no  | no    |
|                     | Fixed lens C-4000 Zoom, C-4100 Zoom                                         | 4.92      | yes   | no  | no    |
|                     | Fixed lens C-5050 Zoom                                                      | 4.93      | yes   | no  | no    |
|                     | Fixed lens C-5050 Zoom                                                      | 4.93      | yes   | no  | no    |
|                     | Fixed lens C-70 Zoom, C-7000 Zoom                                           | 4.8       | yes   | no  | no    |
|                     | Fixed lens C-7070 Wide Zoom                                                 | 4.843     | yes   | no  | no    |
|                     | Fixed lens C-730 Ultra Zoom                                                 | 6.52      | yes   | no  | no    |
|                     | Fixed lens C-750 Ultra Zoom                                                 | 6.03      | yes   | no  | no    |
|                     | Fixed lens C-8080 Wide Zoom                                                 | 3.933     | yes   | no  | no    |
|                     | Fixed lens C-860L                                                           | 6.563     | yes   | no  | no    |
|                     | Fixed lens Stylus 1                                                         | 4.67      | yes   | yes | no    |
|                     | Fixed lens Tough TG-1                                                       | 5.56      | yes   | yes | no    |
|                     | Fixed lens Tough TG-5                                                       | 5.62      | yes   | yes | no    |
|                     | Fixed lens X-2                                                              | 4.9       | yes   | no  | no    |
|                     | Fixed lens XZ-1                                                             | 4.68      | yes   | no  | yes   |
|                     | Fixed lens µ-II                                                             | 1.0       | yes   | no  | no    |
|                     | Fixed lens µ-mini Digital                                                   | 6.0       | yes   | no  | no    |
|                     | fixed lens, macro (full tele): 12 inches lens-to-subject                    | 3.933     | yes   | no  | no    |
|                     | fixed lens, macro (full tele): 16 inches lens-to-subject                    | 3.933     | yes   | no  | no    |
|                     | fixed lens, macro (full tele): 20 inches lens-to-subject                    | 3.933     | yes   | no  | no    |
|                     | fixed lens, macro (full tele): 8 inches lens-to-subject                     | 3.933     | yes   | no  | no    |
|                     | fixed lens, with B-300 (full tele)                                          | 3.933     | yes   | no  | no    |
|                     | fixed lens, with WCON-08B                                                   | 3.933     | yes   | no  | no    |
|                     | Olympus 9mm Body Cap Lens Fisheye                                           | 2.0       | yes   | no  | no    |
|                     | Olympus M.Zuiko Digital 14-42mm f/3.5-5.6 II                                | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital 17mm f/1.8                                          | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital 17mm f/2.8 Pancake                                  | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital 25mm f/1.8                                          | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital 45mm f/1.8                                          | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 12-100mm f/4.0 IS Pro                            | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 12-200mm f/3.5-6.3                               | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 12-40mm f/2.8 Pro                                | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 12-45mm f/4.0 Pro                                | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 12-50mm f/3.5-6.3 EZ                             | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital ED 12mm f/2.0                                       | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 14-150mm f/4.0-5.6                               | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 14-150mm f/4.0-5.6 II                            | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 14-42mm f/3.5-5.6                                | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital ED 14-42mm f/3.5-5.6 EZ                             | 2.0       | yes   | no  | no    |
|                     | Olympus M.Zuiko Digital ED 14-42mm f/3.5-5.6 II R                           | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 14-42mm f/3.5-5.6 L                              | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital ED 17mm f/1.2 Pro                                   | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 25mm f/1.2 Pro                                   | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 30mm f/3.5 Macro                                 | 2.0       | no    | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 40-150mm f/2.8 PRO + 1.4× conv.                  | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital ED 40-150mm f/4.0-5.6 R                             | 2.0       | yes   | no  | no    |
|                     | Olympus M.Zuiko Digital ED 40-150mm F2.8 Pro                                | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 45mm f/1.2 Pro                                   | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 60mm f/2.8 Macro                                 | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 7-14mm f/2.8 Pro                                 | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital ED 75-300mm f/4.8-6.7 II                            | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 75mm f/1.8                                       | 2.0       | yes   | yes | yes   |
|                     | Olympus M.Zuiko Digital ED 8-25mm f/4.0 PRO                                 | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital ED 8mm f/1.8 Fisheye Pro                            | 2.0       | yes   | yes | no    |
|                     | Olympus M.Zuiko Digital ED 9-18mm f/4.0-5.6                                 | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital 11-22mm f/2.8-3.5                                     | 2.0       | yes   | no  | no    |
|                     | Olympus Zuiko Digital 14-45mm f/3.5-5.6                                     | 2.0       | yes   | no  | no    |
|                     | Olympus Zuiko Digital 14-54mm f/2.8-3.5                                     | 2.0       | yes   | yes | no    |
|                     | Olympus Zuiko Digital 25mm f/2.8                                            | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital 35mm f/3.5 Macro                                      | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital 40-150mm f/3.5-4.5                                    | 2.0       | yes   | no  | no    |
|                     | Olympus Zuiko Digital 70-300mm F4.0-5.6                                     | 2.0       | no    | no  | yes   |
|                     | Olympus Zuiko Digital ED 12-60mm f/2.8-4.0 SWD                              | 2.0       | yes   | no  | yes   |
|                     | Olympus Zuiko Digital ED 14-35mm F2.0 SWD                                   | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital ED 14-42mm f/3.5-5.6                                  | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital ED 40-150mm f/4.0-5.6                                 | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital ED 50-200mm f/2.8-3.5                                 | 2.0       | yes   | no  | yes   |
|                     | Olympus Zuiko Digital ED 50-200mm f/2.8-3.5 SWD                             | 2.0       | yes   | no  | yes   |
|                     | Olympus Zuiko Digital ED 50-200mm f/2.8-3.5 SWD + EC-14 1.4x extender       | 2.0       | no    | no  | yes   |
|                     | Olympus Zuiko Digital ED 50-200mm f/2.8-3.5 SWD + EC-20 2x extender         | 2.0       | no    | no  | yes   |
|                     | Olympus Zuiko Digital ED 50mm f/2.0 Macro                                   | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital ED 7-14mm f/4.0                                       | 2.0       | yes   | no  | no    |
|                     | Olympus Zuiko Digital ED 9-18mm f/4.0-5.6                                   | 2.0       | yes   | yes | yes   |
|                     | Olympus Zuiko Digital Pro ED 35-100mm F2.0                                  | 2.0       | no    | no  | yes   |
|                     | Zuiko Auto-S 50mm f/1.8                                                     | 1.613     | yes   | yes | yes   |
| OM System           | M.Zuiko Digital ED 40-150mm F4.0 PRO                                        | 2.0       | yes   | no  | yes   |
|                     | OM 20mm F1.4                                                                | 2.0       | yes   | no  | yes   |
| Opteka              | Opteka 15mm f/4 Wide Macro 1:1                                              | 1.0       | yes   | no  | no    |
| Panasonic           | Fixed lens DC-ZS200                                                         | 2.73      | yes   | yes | no    |
|                     | Fixed lens DMC-FX9                                                          | 6.05      | yes   | no  | no    |
|                     | Fixed lens DMC-FZ1000                                                       | 2.73      | yes   | yes | no    |
|                     | Fixed lens DMC-FZ150                                                        | 5.56      | yes   | yes | no    |
|                     | Fixed lens DMC-FZ20                                                         | 5.84      | yes   | no  | no    |
|                     | Fixed lens DMC-FZ200                                                        | 5.56      | yes   | yes | no    |
|                     | Fixed lens DMC-FZ2000                                                       | 2.73      | yes   | yes | no    |
|                     | Fixed lens DMC-FZ28                                                         | 5.6       | yes   | no  | no    |
|                     | Fixed lens DMC-FZ3                                                          | 7.6       | yes   | no  | no    |
|                     | Fixed lens DMC-FZ30                                                         | 4.73      | yes   | no  | no    |
|                     | Fixed lens DMC-FZ40                                                         | 5.81      | yes   | yes | no    |
|                     | Fixed lens DMC-FZ5                                                          | 6.0       | yes   | no  | no    |
|                     | Fixed lens DMC-LF1                                                          | 4.67      | yes   | yes | no    |
|                     | Fixed lens DMC-LX1 16:9                                                     | 4.45      | yes   | no  | no    |
|                     | Fixed lens DMC-LX10                                                         | 2.73      | yes   | yes | no    |
|                     | Fixed lens DMC-LX100                                                        | 2.21      | yes   | yes | yes   |
|                     | Fixed lens DMC-LX3 4:3                                                      | 4.7       | yes   | no  | no    |
|                     | Fixed lens DMC-LX5 4:3                                                      | 4.71      | yes   | no  | no    |
|                     | Fixed lens DMC-LX7 4:3                                                      | 5.1       | yes   | no  | yes   |
|                     | Fixed lens DMC-LZ2                                                          | 6.06      | yes   | no  | no    |
|                     | Fixed lens DMC-TZ100                                                        | 2.75      | yes   | yes | no    |
|                     | Fixed lens DMC-TZ60                                                         | 5.58      | yes   | yes | no    |
|                     | Leica D Summilux 25mm F1.4 Asph.                                            | 2.0       | yes   | no  | no    |
|                     | Leica D Vario-Elmar 14-150mm f/3.5-5.6 Asph. OIS                            | 2.0       | yes   | yes | no    |
|                     | Leica DG Macro-Elmarit 45mm f/2.8                                           | 2.0       | yes   | yes | no    |
|                     | Leica DG Nocticron 42.5mm f/1.2 Asph. Power OIS                             | 2.0       | yes   | yes | yes   |
|                     | Leica DG Summilux 15mm f/1.7 Asph.                                          | 2.0       | yes   | yes | yes   |
|                     | Leica DG Summilux 25mm f/1.4 Asph.                                          | 2.0       | yes   | yes | yes   |
|                     | Leica DG Summilux 25mm f/1.4 II                                             | 2.0       | yes   | yes | yes   |
|                     | Leica DG Summilux 9mm f/1.7                                                 | 2.0       | yes   | yes | no    |
|                     | Leica DG Vario-Elmar 100-400mm f/4.0-6.3 Asph. Power OIS                    | 2.0       | yes   | yes | yes   |
|                     | Leica DG Vario-Elmarit 12-60mm f/2.8-4.0 Asph. Power OIS                    | 2.0       | yes   | yes | yes   |
|                     | Leica DG Vario-Elmarit 50-200 mm F2.8-4 Asph OIS                            | 2.0       | yes   | yes | no    |
|                     | Leica DG Vario-Elmarit 8-18mm f/2.8-4 Asph.                                 | 2.0       | yes   | yes | no    |
|                     | Leica DG Vario-Summilux 10-25mm f/1.7 Asph.                                 | 2.0       | yes   | yes | no    |
|                     | Lumix G 14mm f/2.5 Asph.                                                    | 2.0       | yes   | yes | yes   |
|                     | Lumix G 14mm f/2.5 Asph. + GWC1 0.79x                                       | 2.0       | yes   | yes | yes   |
|                     | Lumix G 14mm f/2.5 II                                                       | 2.0       | yes   | yes | yes   |
|                     | Lumix G 20mm f/1.7 Asph.                                                    | 2.0       | yes   | yes | yes   |
|                     | Lumix G 20mm f/1.7 II Asph.                                                 | 2.0       | yes   | yes | yes   |
|                     | Lumix G 25mm f/1.7 Asph.                                                    | 2.0       | yes   | yes | yes   |
|                     | Lumix G 42.5mm f/1.7                                                        | 2.0       | yes   | yes | no    |
|                     | Lumix G Macro 30mm f/2.8                                                    | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 100-300mm f/4.0-5.6                                           | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 100-300mm F4-5.6 II Power O.I.S.                              | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 12-32mm f/3.5-5.6 Asph. Mega OIS                              | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 12-60mm f/3.5-5.6 Asph. Power OIS                             | 2.0       | yes   | yes | no    |
|                     | Lumix G Vario 14-140mm f/3.5-5.6 Asph. II Power OIS                         | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 14-140mm f/3.5-5.6 Asph. Power OIS                            | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 14-42mm f/3.5-5.6 II                                          | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 14-45mm f/3.5-5.6 Asph. Mega OIS                              | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 35-100mm f/4.0-5.6 Asph. Mega OIS                             | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 45-150mm f/4.0-5.6                                            | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 45-200mm f/4.0-5.6 II power OIS                               | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 45-200mm f/4.0-5.6 Mega OIS                                   | 2.0       | yes   | yes | yes   |
|                     | Lumix G Vario 7-14mm f/4.0 Asph.                                            | 2.0       | yes   | yes | no    |
|                     | Lumix G Vario HD 14-140mm f/4.0-5.8                                         | 2.0       | yes   | yes | yes   |
|                     | Lumix G X Vario 12-35mm f/2.8                                               | 2.0       | yes   | yes | no    |
|                     | Lumix G X Vario 12-35mm f/2.8 II                                            | 2.0       | yes   | yes | no    |
|                     | Lumix G X VARIO 35-100 mm f/2.8 II Power OIS                                | 2.0       | yes   | no  | no    |
|                     | Lumix G X Vario 35-100mm f/2.8 Power OIS                                    | 2.0       | yes   | no  | no    |
|                     | Lumix G X Vario PZ 14-42mm f/3.5-5.6                                        | 2.0       | yes   | yes | yes   |
|                     | Lumix G X Vario PZ 14-42mm f/3.5-5.6 + GWC1 0.79×                           | 2.0       | yes   | yes | yes   |
|                     | Lumix G X Vario PZ 45-175mm f/4.0-5.6                                       | 2.0       | yes   | yes | no    |
|                     | LUMIX S 100mm F2.8 MACRO                                                    | 1.0       | yes   | yes | no    |
|                     | Lumix S 16-35/F4                                                            | 1.0       | yes   | yes | no    |
|                     | Lumix S 20-60/F3.5-5.6                                                      | 1.0       | yes   | yes | yes   |
|                     | Lumix S 24/F1.8                                                             | 1.0       | yes   | yes | yes   |
|                     | Lumix S 35/F1.8                                                             | 1.0       | yes   | no  | no    |
|                     | Lumix S 50mm f1.8                                                           | 1.0       | yes   | yes | yes   |
|                     | Lumix S 70-300/F4.5-5.6                                                     | 1.0       | yes   | yes | yes   |
|                     | Lumix S 85/F1.8                                                             | 1.0       | yes   | yes | yes   |
|                     | Lumix S Pro 50mm f/1.4                                                      | 1.0       | yes   | yes | yes   |
| Pentacon            | Pentacon 50mm f/1.8 auto multi coating                                      | 1.526     | yes   | yes | no    |
|                     | Pentacon electric 2.8/29mm                                                  | 1.0       | yes   | yes | no    |
| Pentax              | 01 Standard Prime 8.5mm f/1.9 AL \[IF]                                      | 5.53      | yes   | no  | no    |
|                     | Fixed lens Optio 33LF                                                       | 6.563     | yes   | no  | no    |
|                     | Fixed lens Optio 430                                                        | 4.85      | yes   | no  | no    |
|                     | Fixed lens Optio 43WR                                                       | 6.5       | yes   | no  | no    |
|                     | Fixed lens Optio 750Z                                                       | 4.843     | yes   | no  | no    |
|                     | HD PENTAX DA\* 16-50mm f/2.8 ED PLM AW                                      | 1.546     | yes   | yes | no    |
|                     | HD Pentax-D FA 15-30mm f/2.8 ED SDM WR                                      | 1.0       | yes   | yes | yes   |
|                     | HD Pentax-D FA 150-450mm f/4.5-5.6 ED DC AW                                 | 1.0       | yes   | yes | no    |
|                     | HD Pentax-D FA 24-70mm f/2.8 ED SDM WR                                      | 1.0       | yes   | yes | yes   |
|                     | HD Pentax-D FA 28-105mm f/3.5-5.6 ED DC WR                                  | 1.0       | yes   | yes | no    |
|                     | HD Pentax-D FA\* 70-200mm f/2.8 ED DC AW                                    | 1.0       | yes   | yes | no    |
|                     | HD Pentax-DA 16-85mm f/3.5-5.6 ED DC WR                                     | 1.526     | yes   | yes | no    |
|                     | HD Pentax-DA 18-50mm f/4-5.6 DC WR RE                                       | 1.522     | yes   | yes | yes   |
|                     | HD Pentax-DA 20-40mm f/2.8-4 ED Limited DC WR                               | 1.526     | yes   | yes | no    |
|                     | HD Pentax-DA 21mm f/3.2 ED AL Limited                                       | 1.526     | yes   | no  | no    |
|                     | HD Pentax-DA 55-300mm f/4-5.8 ED WR                                         | 1.0       | yes   | yes | no    |
|                     | HD Pentax-DA 55-300mm f/4.5-6.3 ED PLM WR RE                                | 1.534     | yes   | yes | no    |
|                     | HD Pentax-DA 70mm f/2.4 Limited                                             | 1.534     | yes   | yes | yes   |
|                     | HD PENTAX-DA\* 11-18mm f/2.8 ED DC AW                                       | 1.534     | yes   | yes | no    |
|                     | Pentax SMC Takumar 50mm f/1.4                                               | 1.0       | yes   | yes | yes   |
|                     | Pentax-F 28-80mm f/3.5-4.5                                                  | 1.526     | yes   | yes | no    |
|                     | smc PENTAX DA\* 60-250mm f/4 IF SDM                                         | 1.534     | yes   | no  | no    |
|                     | smc Pentax K 30mm f/2.8                                                     | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-A 28mm 1:2.8                                                     | 1.538     | yes   | yes | yes   |
|                     | smc Pentax-A 50mm f/1.4                                                     | 1.522     | yes   | yes | yes   |
|                     | smc Pentax-A 50mm f/1.7                                                     | 1.0       | yes   | yes | no    |
|                     | smc Pentax-A 50mm f/1.7                                                     | 1.526     | yes   | yes | yes   |
|                     | smc Pentax-D FA Macro 100mm f/2.8 WR                                        | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-D FA Macro 100mm f/2.8 WR                                        | 1.0       | yes   | yes | yes   |
|                     | smc Pentax-DA 12-24mm f/4 ED AL IF                                          | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA 15mm f/4 ED AL Limited                                        | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA 16-45mm f/4 ED AL                                             | 1.522     | yes   | yes | yes   |
|                     | smc Pentax-DA 17-70mm f/4 AL \[IF] SDM                                      | 1.53      | yes   | no  | no    |
|                     | smc Pentax-DA 18-135mm f/3.5-5.6 ED AL IF DC WR                             | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA 18-250mm f/3.5-6.3 ED AL \[IF]                                | 1.53      | yes   | yes | no    |
|                     | smc Pentax-DA 18-55mm f/3.5-5.6 AL                                          | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA 18-55mm f/3.5-5.6 AL II/L/WR                                  | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA 21mm f/3.2 AL Limited                                         | 1.526     | yes   | no  | no    |
|                     | smc Pentax-DA 35mm f/2.4 AL                                                 | 1.526     | yes   | yes | yes   |
|                     | smc Pentax-DA 35mm f/2.4 AL                                                 | 1.0       | yes   | yes | no    |
|                     | smc Pentax-DA 35mm f/2.8 Macro Limited                                      | 1.0       | yes   | yes | yes   |
|                     | smc Pentax-DA 40mm f/2.8 Limited                                            | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA 40mm f/2.8 XS                                                 | 1.0       | yes   | yes | yes   |
|                     | smc Pentax-DA 50-200mm f/4-5.6 DA ED                                        | 1.53      | yes   | no  | yes   |
|                     | smc Pentax-DA 50mm f/1.8                                                    | 1.526     | yes   | yes | no    |
|                     | smc Pentax-DA 50mm f/1.8                                                    | 1.0       | yes   | yes | no    |
|                     | smc Pentax-DA 55-300mm f/4-5.8 ED                                           | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA 70mm f/2.4 Limited                                            | 1.534     | yes   | yes | yes   |
|                     | smc Pentax-DA Fish-Eye 10-17mm f/3.5-4.5 ED IF                              | 1.538     | yes   | yes | no    |
|                     | smc Pentax-DA L 18-50mm f/4-5.6 DC WR RE                                    | 1.534     | yes   | yes | yes   |
|                     | smc Pentax-DA L 18-50mm f/4-5.6 DC WR RE                                    | 1.0       | yes   | yes | no    |
|                     | smc Pentax-DA L 50-200mm f/4-5.6 ED WR                                      | 1.534     | yes   | yes | no    |
|                     | smc Pentax-DA L 50-200mm f/4-5.6 ED WR                                      | 1.0       | yes   | yes | no    |
|                     | smc Pentax-DA L 55-300mm f/4-5.8 ED                                         | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-DA\* 16-50mm f/2.8 ED AL IF SDM                                  | 1.526     | yes   | no  | yes   |
|                     | smc Pentax-DA\* 50-135mm f/2.8 ED IF SDM                                    | 1.526     | yes   | yes | yes   |
|                     | smc Pentax-F 28mm f/2.8                                                     | 1.522     | yes   | yes | yes   |
|                     | smc PENTAX-F 35-80mm f/4-5.6                                                | 1.531     | yes   | yes | no    |
|                     | smc PENTAX-F ZOOM 35-70mm f/3.5-4.5                                         | 1.538     | yes   | yes | no    |
|                     | smc Pentax-FA 28-70mm f/4 AL                                                | 1.0       | yes   | yes | no    |
|                     | smc Pentax-FA 28mm f/2.8 AL                                                 | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-FA 28mm f/2.8 AL                                                 | 1.0       | yes   | yes | yes   |
|                     | smc Pentax-FA 31mm f/1.8 AL Limited                                         | 1.526     | yes   | yes | yes   |
|                     | smc Pentax-FA 43mm f/1.9 Limited                                            | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-FA 50mm f/1.4                                                    | 1.526     | yes   | yes | yes   |
|                     | smc Pentax-FA 50mm f/1.4                                                    | 1.0       | yes   | yes | yes   |
|                     | smc Pentax-FA 77mm f/1.8 Limited                                            | 1.0       | yes   | yes | yes   |
|                     | smc Pentax-M 150mm f/3.5                                                    | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-M 28mm 1:3.5                                                     | 1.538     | yes   | yes | yes   |
|                     | smc Pentax-M 35mm 1:2                                                       | 1.538     | yes   | yes | no    |
|                     | smc PENTAX-M 50mm f/1.4                                                     | 1.538     | yes   | yes | no    |
|                     | smc Pentax-M 50mm f/1.7                                                     | 1.526     | yes   | yes | no    |
|                     | smc Pentax-M 50mm f/2                                                       | 1.53      | yes   | yes | yes   |
|                     | smc Pentax-M Macro 1:4 100mm                                                | 1.531     | yes   | yes | no    |
|                     | smc Pentax-M Macro 1:4 50mm                                                 | 1.529     | yes   | yes | no    |
|                     | Super-Takumar 50mm f/1.4                                                    | 1.0       | yes   | yes | no    |
|                     | Super-Takumar 55mm f/1.8                                                    | 1.523     | yes   | yes | yes   |
|                     | Takumar 135mm f/2.5 Bayonet                                                 | 1.53      | yes   | yes | yes   |
| Pergear             | Pergear 60mm f/2.8 MK2 Macro                                                | 1.534     | yes   | no  | no    |
| Petri               | Auto Petri 1:2.8 f=28mm                                                     | 1.529     | yes   | yes | no    |
| Ricoh               | Fixed lens Caplio GX8                                                       | 4.9       | yes   | no  | no    |
|                     | Fixed lens Caplio GX8                                                       | 4.9       | yes   | no  | no    |
|                     | Fixed lens Caplio RR30                                                      | 6.4       | yes   | no  | no    |
|                     | Fixed lens GR                                                               | 1.523     | yes   | yes | no    |
|                     | Fixed lens GR Digital                                                       | 4.8       | yes   | no  | no    |
|                     | Fixed lens GR III                                                           | 1.53      | yes   | yes | yes   |
|                     | Fixed lens GR III                                                           | 1.53      | yes   | yes | no    |
|                     | Fixed lens GR IIIx                                                          | 1.53      | yes   | no  | yes   |
|                     | Ricoh 50mm 1:2.0                                                            | 1.0       | yes   | no  | yes   |
|                     | Ricoh XR Rikenon 1:1.4 50mm                                                 | 1.523     | yes   | yes | no    |
|                     | RIKENON P 50mm f/2                                                          | 1.538     | yes   | yes | no    |
| Rollei              | Rollei Rolleinar MC f/2.8 28mm                                              | 1.0       | yes   | yes | no    |
|                     | Rollei Rolleinar MC f/4 21mm                                                | 1.0       | yes   | yes | no    |
| Samsung             | Fixed lens EX2F                                                             | 4.6       | yes   | no  | no    |
|                     | Fixed lens Galaxy Note 8                                                    | 6.047     | yes   | yes | no    |
|                     | Fixed lens Galaxy S21                                                       | 6.0       | yes   | no  | yes   |
|                     | Fixed lens Galaxy S7                                                        | 6.19      | yes   | yes | no    |
|                     | Fixed lens Galaxy S8                                                        | 6.19      | yes   | no  | no    |
|                     | Fixed lens WB2000                                                           | 5.69      | yes   | yes | yes   |
|                     | Samsung NX 10mm f/3.5 Fisheye                                               | 1.531     | yes   | yes | no    |
|                     | Samsung NX 16-50mm f/2-2.8 S                                                | 1.531     | yes   | no  | no    |
|                     | Samsung NX 16-50mm f/3.5-5.6 PZ ED OIS                                      | 1.525     | yes   | no  | no    |
|                     | Samsung NX 16mm f/2.4 Pancake                                               | 1.525     | yes   | yes | no    |
|                     | Samsung NX 18-55mm f/3.5-5.6 OIS                                            | 1.531     | yes   | yes | no    |
|                     | Samsung NX 20-50mm f/3.5-5.6 ED                                             | 1.528     | yes   | no  | no    |
|                     | Samsung NX 20mm f/2.8 Pancake                                               | 1.525     | yes   | yes | no    |
|                     | Samsung NX 30mm f/2 Pancake                                                 | 1.528     | yes   | no  | no    |
|                     | Samsung NX 45mm f/1.8 2D/3D                                                 | 1.525     | yes   | yes | no    |
|                     | Samsung NX 50-150mm F2.8 S                                                  | 1.531     | yes   | no  | no    |
|                     | Samsung NX 50-200mm f/4-5.6                                                 | 1.531     | yes   | yes | no    |
|                     | Samsung NX-M 9-27mm f/3.5-5.6 ED OIS                                        | 2.727     | yes   | no  | no    |
|                     | Samsung NX-M 9mm f/3.5 ED                                                   | 2.727     | yes   | no  | no    |
| Samyang             | Samyang 10mm f/2.8 ED AS NCS CS                                             | 1.534     | yes   | yes | no    |
|                     | Samyang 12mm f/2.0 NCS CS                                                   | 1.534     | yes   | yes | yes   |
|                     | Samyang 12mm f/2.8 Fish-Eye ED AS NCS                                       | 1.0       | yes   | no  | yes   |
|                     | Samyang 12mm f/3.1 VDSLR ED AS NCS Fish-eye                                 | 1.0       | no    | yes | no    |
|                     | Samyang 135mm f/2 ED UMC                                                    | 1.0       | yes   | no  | yes   |
|                     | Samyang 14mm f/2.8 AE ED AS IF UMC                                          | 1.0       | yes   | yes | no    |
|                     | Samyang 14mm f/2.8 AE ED AS IF UMC                                          | 1.523     | yes   | yes | yes   |
|                     | Samyang 16mm f/2.0 ED AS UMC CS                                             | 1.534     | yes   | yes | no    |
|                     | Samyang 20mm f/1.8 ED AS UMC                                                | 1.0       | yes   | yes | yes   |
|                     | Samyang 35mm f/1.4 AS UMC                                                   | 1.0       | yes   | no  | no    |
|                     | Samyang 35mm f/1.4 AS UMC                                                   | 1.605     | yes   | yes | no    |
|                     | Samyang 35mm T1.5 Cine Lens                                                 | 1.62      | yes   | no  | no    |
|                     | Samyang 500mm f/6.3 MC IF Mirror Lens                                       | 1.534     | yes   | yes | yes   |
|                     | Samyang 50mm f/1.4 AS UMC                                                   | 1.534     | yes   | yes | no    |
|                     | Samyang 7.5mm f/3.5 UMC Fish-eye MFT                                        | 2.0       | yes   | yes | yes   |
|                     | Samyang 85mm f/1.4 IF UMC Aspherical                                        | 1.0       | yes   | no  | yes   |
|                     | Samyang 8mm f/2.8 UMC Fish-eye                                              | 1.534     | yes   | yes | yes   |
|                     | Samyang 8mm f/3.5 Fish-Eye CS                                               | 1.534     | yes   | yes | no    |
|                     | Samyang AF 12mm f/2.0                                                       | 1.534     | yes   | yes | no    |
|                     | Samyang AF 14mm f/2.8                                                       | 1.0       | yes   | no  | no    |
|                     | Samyang AF 18mm f/2.8                                                       | 1.0       | yes   | no  | no    |
|                     | Samyang AF 24mm f/1.8                                                       | 1.0       | yes   | yes | no    |
|                     | Samyang AF 24mm f/2.8                                                       | 1.0       | yes   | no  | yes   |
|                     | Samyang AF 35mm f/1.8                                                       | 1.0       | yes   | yes | yes   |
|                     | Samyang AF 35mm f/2.8                                                       | 1.0       | yes   | yes | yes   |
|                     | Samyang AF 45mm f/1.8                                                       | 1.0       | yes   | yes | yes   |
|                     | Samyang AF 75mm f/1.8                                                       | 1.0       | yes   | yes | yes   |
|                     | Samyang AF 85mm f/1.4                                                       | 1.0       | yes   | yes | no    |
|                     | Samyang T-S 24mm f/3.5 ED AS UMC                                            | 1.0       | yes   | no  | no    |
|                     | Samyang XP 10mm f/3.5                                                       | 1.005     | yes   | yes | no    |
| Schneider           | D-Xenon 1:3.5-5.6 18-55mm AL                                                | 1.53      | yes   | no  | no    |
|                     | D-Xenon 1:4-5.6 50-200mm AL                                                 | 1.53      | yes   | no  | no    |
|                     | Schneider 28mm Digitar f/2.8                                                | 0.577     | yes   | no  | no    |
|                     | Schneider 28mm f/2.8 PC                                                     | 1.0       | yes   | no  | no    |
|                     | Schneider 80mm Xenotar f/2.8                                                | 0.51      | yes   | no  | no    |
|                     | Schneider LS 110mm f/2.8                                                    | 0.644     | yes   | yes | yes   |
|                     | Schneider LS 55mm f/2.8                                                     | 0.644     | yes   | yes | yes   |
|                     | Schneider LS 80mm f/2.8                                                     | 0.644     | yes   | yes | yes   |
|                     | Schneider Retina-Curtagon 1:4/28mm                                          | 1.529     | yes   | yes | no    |
| Sigma               | 10-18mm F2.8 DC DN \| Contemporary 023                                      | 1.534     | yes   | no  | no    |
|                     | 100-400mm F5-6.3 DG OS HSM \| C                                             | 1.0       | yes   | no  | no    |
|                     | 105mm F2.8 DG DN MACRO \| Art 020                                           | 1.0       | yes   | yes | yes   |
|                     | 14-24mm F2.8 DG DN \| Art 019                                               | 1.0       | yes   | yes | yes   |
|                     | 16-28mm F2.8 DG DN \| Contemporary 022                                      | 1.0       | yes   | yes | no    |
|                     | 17mm F4 DG DN \| Contemporary 023                                           | 1.0       | yes   | yes | yes   |
|                     | 20mm F2 DG DN \| Contemporary 022                                           | 1.0       | yes   | yes | no    |
|                     | 24-70mm F2.8 DG DN \| Art 019                                               | 1.0       | yes   | yes | no    |
|                     | 24mm F2 DG DN \| Contemporary 021                                           | 1.0       | yes   | yes | no    |
|                     | 24mm F3.5 DG DN \| Contemporary 021                                         | 1.0       | yes   | yes | yes   |
|                     | 28-70mm F2.8 DG DN \| Contemporary 021                                      | 1.0       | yes   | no  | no    |
|                     | 28mm F1,4 DG HSM \| Art                                                     | 1.0       | yes   | yes | yes   |
|                     | 28mm F1,4 DG HSM \| Art                                                     | 1.534     | no    | no  | yes   |
|                     | 30mm f/1.4 DC DN                                                            | 1.534     | yes   | yes | yes   |
|                     | 35mm F1.2 DG DN \| Art 019                                                  | 1.0       | yes   | yes | yes   |
|                     | 35mm F2 DG DN \| Contemporary 020                                           | 1.0       | yes   | yes | no    |
|                     | 45mm F2.8 DG DN \| Contemporary 019                                         | 1.0       | yes   | no  | yes   |
|                     | 65mm F2 DG DN \| Contemporary 020                                           | 1.0       | yes   | yes | no    |
|                     | 70-200mm F2.8 DG OS HSM \| S                                                | 1.0       | yes   | yes | yes   |
|                     | 85mm F1.4 DG DN \| Art 020                                                  | 1.0       | yes   | yes | yes   |
|                     | 90mm F2.8 DG DN \| Contemporary 021                                         | 1.0       | yes   | yes | yes   |
|                     | Fixed lens DP2                                                              | 1.739     | yes   | no  | no    |
|                     | Sigma 10-20mm f/3.5 EX DC HSM                                               | 1.613     | yes   | yes | no    |
|                     | Sigma 10-20mm f/3.5 EX DC HSM                                               | 1.534     | yes   | yes | no    |
|                     | Sigma 10-20mm f/4-5.6 EX DC                                                 | 1.53      | yes   | no  | yes   |
|                     | Sigma 10-20mm f/4-5.6 EX DC                                                 | 1.62      | no    | no  | yes   |
|                     | Sigma 100-300mm f/4 APO EX DG HSM                                           | 1.523     | yes   | no  | yes   |
|                     | Sigma 100-300mm f/4 APO EX DG HSM                                           | 1.0       | yes   | no  | yes   |
|                     | Sigma 100-300mm f/4 APO EX DG HSM + Kenko Teleplus PRO 300 AF 1.4× DGX ext. | 1.0       | yes   | no  | yes   |
|                     | Sigma 105 mm F1.4 DG HSM Art                                                | 1.0       | yes   | yes | yes   |
|                     | Sigma 105mm f/2.8 EX DG OS HSM Macro                                        | 1.523     | yes   | yes | yes   |
|                     | Sigma 105mm f/2.8 EX DG OS HSM Macro                                        | 1.0       | yes   | no  | yes   |
|                     | Sigma 10mm f/2.8 EX DC Fisheye HSM                                          | 1.622     | yes   | no  | no    |
|                     | Sigma 10mm f/2.8 EX DC Fisheye HSM                                          | 1.523     | yes   | no  | no    |
|                     | Sigma 12-24mm f/4.5-5.6 EX DG HSM                                           | 1.0       | yes   | no  | yes   |
|                     | Sigma 12-24mm F4 DG HSM \| A                                                | 1.0       | yes   | yes | yes   |
|                     | Sigma 14mm f/1.8 DG HSM \| A                                                | 1.0       | yes   | no  | yes   |
|                     | Sigma 14mm f/2.8 EX                                                         | 1.0       | yes   | no  | no    |
|                     | Sigma 14mm f/2.8 EX Aspherical HSM                                          | 1.0       | yes   | yes | no    |
|                     | Sigma 14mm f/3.5 EX                                                         | 1.53      | yes   | no  | no    |
|                     | Sigma 15-30mm f/3.5-4.5 EX DG Aspherical                                    | 1.0       | yes   | yes | yes   |
|                     | Sigma 15-30mm f/3.5-4.5 EX DG Aspherical                                    | 1.611     | yes   | no  | no    |
|                     | Sigma 150-500mm f/5-6.3 APO DG OS HSM                                       | 1.0       | yes   | yes | yes   |
|                     | Sigma 150-600mm f/5-6.3 DG OS HSM \| C                                      | 1.613     | yes   | yes | yes   |
|                     | Sigma 150-600mm f/5-6.3 DG OS HSM \| C                                      | 1.534     | yes   | yes | no    |
|                     | Sigma 150-600mm f/5-6.3 DG OS HSM \| C                                      | 1.0       | yes   | yes | yes   |
|                     | Sigma 150mm f/2.8 EX DG APO HSM Macro                                       | 2.0       | yes   | yes | yes   |
|                     | Sigma 150mm f/2.8 EX DG APO HSM Macro                                       | 1.0       | yes   | no  | yes   |
|                     | Sigma 15mm f/2.8 EX DG Diagonal Fisheye                                     | 1.613     | yes   | yes | yes   |
|                     | Sigma 16mm f/1.4 DC DN C                                                    | 2.0       | yes   | yes | no    |
|                     | Sigma 16mm f/1.4 DC DN Contemporary                                         | 1.534     | yes   | yes | yes   |
|                     | Sigma 17-35mm f/2.8-4 EX DG                                                 | 1.53      | yes   | no  | no    |
|                     | Sigma 17-50mm f/2.8 EX DC HSM                                               | 1.0       | yes   | yes | no    |
|                     | Sigma 17-50mm f/2.8 EX DC OS HSM                                            | 1.523     | yes   | yes | yes   |
|                     | Sigma 17-70mm f/2.8-4 DC Macro OS HSM \| C                                  | 1.53      | yes   | yes | yes   |
|                     | Sigma 17-70mm f/2.8-4 DC Macro OS HSM \| Contemporary 013                   | 1.523     | yes   | no  | no    |
|                     | Sigma 17-70mm f/2.8-4.5 DC Macro                                            | 1.611     | yes   | no  | no    |
|                     | Sigma 17-70mm f/2.8-4.5 DC Macro                                            | 1.523     | yes   | yes | no    |
|                     | Sigma 18-125mm f/3.5-5.6 DC                                                 | 1.53      | yes   | no  | no    |
|                     | Sigma 18-125mm f/3.5-5.6 DC                                                 | 1.611     | yes   | no  | no    |
|                     | Sigma 18-200mm f/3.5-6.3 DC                                                 | 1.53      | yes   | yes | yes   |
|                     | Sigma 18-200mm f/3.5-6.3 DC Macro OS HSM                                    | 1.523     | yes   | yes | no    |
|                     | Sigma 18-200mm f/3.5-6.3 II DC OS HSM                                       | 1.53      | yes   | yes | no    |
|                     | Sigma 18-250mm f/3.5-6.3 DC OS Macro HSM                                    | 1.523     | yes   | yes | yes   |
|                     | Sigma 18-300mm f/3.5-6.3 DC Macro HSM                                       | 1.613     | yes   | yes | yes   |
|                     | Sigma 18-35mm f/1.8 DC HSM \[A]                                             | 1.523     | yes   | yes | yes   |
|                     | Sigma 18-50mm f/2.8 EX DC                                                   | 1.53      | yes   | yes | no    |
|                     | Sigma 18-50mm f/2.8 EX DC                                                   | 1.611     | yes   | no  | no    |
|                     | Sigma 18-50mm f/3.5-5.6 DC                                                  | 1.611     | yes   | no  | no    |
|                     | Sigma 18-50mm F2.8 DC DN \| Contemporary 021                                | 1.534     | yes   | yes | yes   |
|                     | Sigma 180mm f/2.8 EX DG OS HSM APO Macro                                    | 1.0       | yes   | no  | yes   |
|                     | Sigma 180mm f/5.6 APO Macro                                                 | 1.523     | yes   | yes | yes   |
|                     | Sigma 19mm f/2.8 DN                                                         | 1.534     | yes   | yes | yes   |
|                     | Sigma 19mm f/2.8 DN                                                         | 2.0       | yes   | yes | yes   |
|                     | Sigma 19mm f/2.8 EX DN                                                      | 2.0       | yes   | no  | no    |
|                     | Sigma 19mm f/2.8 EX DN                                                      | 1.534     | yes   | yes | no    |
|                     | Sigma 20mm f/1.4 DG HSM \| A                                                | 1.0       | yes   | yes | yes   |
|                     | Sigma 20mm f/1.8 EX DG                                                      | 1.0       | yes   | no  | no    |
|                     | Sigma 24-105mm f/4.0 DG OS HSM \[A]                                         | 1.005     | yes   | yes | yes   |
|                     | Sigma 24-60mm f/2.8 EX DG                                                   | 1.53      | yes   | yes | yes   |
|                     | Sigma 24-70mm f/2.8 EX DG Macro                                             | 1.611     | yes   | no  | no    |
|                     | Sigma 24-70mm f/2.8 IF EX DG HSM                                            | 1.526     | yes   | no  | no    |
|                     | Sigma 24-70mm f/2.8 IF EX DG HSM                                            | 1.005     | yes   | yes | yes   |
|                     | Sigma 24-70mm F2.8 DG OS HSM \| Art 017                                     | 1.0       | yes   | yes | no    |
|                     | Sigma 24mm f/1.4 DG HSM \| A                                                | 1.0       | yes   | yes | yes   |
|                     | Sigma 24mm f/1.4 DG HSM \| A                                                | 1.534     | yes   | yes | yes   |
|                     | Sigma 24mm f/2.8 Super Wide II                                              | 1.523     | yes   | yes | yes   |
|                     | Sigma 28-300mm f/3.5-6.3 Macro ASP IF                                       | 1.53      | yes   | no  | no    |
|                     | Sigma 28-70mm f/2.8 AF                                                      | 1.0       | yes   | no  | no    |
|                     | Sigma 28-70mm f/2.8 EX DG                                                   | 1.0       | yes   | no  | no    |
|                     | Sigma 28mm f/1.8 EX DG                                                      | 1.53      | yes   | no  | no    |
|                     | Sigma 30mm f/1.4 EX DC HSM                                                  | 1.53      | yes   | yes | no    |
|                     | Sigma 30mm f/1.4 EX DC HSM                                                  | 1.62      | no    | no  | yes   |
|                     | Sigma 30mm f/2.8 EX DN                                                      | 1.534     | yes   | yes | yes   |
|                     | Sigma 30mm f/2.8 EX DN                                                      | 2.0       | yes   | no  | no    |
|                     | Sigma 30mm F1.4 DC HSM \| Art 013                                           | 1.613     | yes   | yes | yes   |
|                     | Sigma 35mm f/1.4 DG HSM \| A                                                | 1.0       | yes   | yes | yes   |
|                     | Sigma 4.5mm f/2.8 EX DC HSM circular fisheye                                | 1.534     | yes   | yes | no    |
|                     | Sigma 40mm F1.4 DG HSM \| Art                                               | 1.0       | no    | no  | yes   |
|                     | Sigma 50-100mm f/1.8 DC HSM Art                                             | 1.534     | yes   | yes | yes   |
|                     | Sigma 50-150mm f/2.8 APO EX DC HSM II                                       | 1.523     | yes   | no  | yes   |
|                     | Sigma 50-150mm f/2.8 APO EX DC HSM II                                       | 1.62      | yes   | no  | no    |
|                     | Sigma 50-150mm f/2.8 APO EX DC OS HSM                                       | 1.534     | no    | no  | yes   |
|                     | Sigma 50-500mm f/4-6.3 EX DG HSM                                            | 1.53      | yes   | no  | no    |
|                     | Sigma 50-500mm f/4.5-6.3 APO DG OS HSM                                      | 1.0       | yes   | no  | no    |
|                     | Sigma 50mm f/1.4 DG HSM \[A]                                                | 1.005     | yes   | yes | yes   |
|                     | Sigma 50mm f/1.4 EX DG HSM                                                  | 1.0       | yes   | yes | yes   |
|                     | Sigma 50mm f/1.4 EX DG HSM                                                  | 1.53      | yes   | no  | yes   |
|                     | Sigma 55-200mm f/4-5.6 DC                                                   | 1.531     | yes   | no  | no    |
|                     | Sigma 56 mm F1.4 DC DN \| C 018                                             | 1.534     | yes   | yes | yes   |
|                     | Sigma 56mm F1.4 DC DN \| C 018                                              | 2.0       | yes   | no  | no    |
|                     | Sigma 60-600mm F4.5-6.3 DG OS HSM \| Sports 018                             | 1.605     | yes   | yes | yes   |
|                     | Sigma 60-600mm F4.5-6.3 DG OS HSM \| Sports 018 + 1.4x ext.                 | 1.605     | no    | no  | yes   |
|                     | Sigma 60mm f/2.8 DN                                                         | 2.0       | yes   | yes | no    |
|                     | Sigma 60mm f/2.8 DN                                                         | 1.534     | yes   | yes | yes   |
|                     | Sigma 70-200mm f/2.8 EX DG Macro HSM II                                     | 1.526     | yes   | yes | no    |
|                     | Sigma 70-200mm f/2.8 EX DG OS HSM                                           | 1.005     | yes   | yes | yes   |
|                     | Sigma 70-200mm f/2.8 EX DG OS HSM                                           | 1.534     | yes   | yes | yes   |
|                     | Sigma 70-300mm f/4-5.6 APO Macro Super II                                   | 1.611     | yes   | no  | no    |
|                     | Sigma 70-300mm f/4-5.6 DG Macro                                             | 1.0       | yes   | yes | no    |
|                     | Sigma 70-300mm f/4-5.6 DG OS                                                | 1.53      | yes   | no  | yes   |
|                     | Sigma 70-300mm f/4-5.6 DL Macro                                             | 1.53      | yes   | no  | yes   |
|                     | Sigma 70mm f/2.8 EX DG Macro                                                | 1.534     | no    | yes | no    |
|                     | Sigma 8-16mm f/4.5-5.6 DC HSM                                               | 1.613     | yes   | yes | no    |
|                     | Sigma 8-16mm f/4.5-5.6 DC HSM                                               | 1.534     | yes   | yes | no    |
|                     | Sigma 80-400mm f/4.5-5.6 EX DG OS                                           | 1.0       | no    | no  | yes   |
|                     | Sigma 85mm f/1.4 EX DG HSM                                                  | 1.534     | yes   | yes | no    |
|                     | Sigma 85mm f/1.4 EX DG HSM                                                  | 1.0       | yes   | yes | yes   |
|                     | Sigma 8mm f/3.5 EX DG circular fisheye                                      | 1.523     | yes   | yes | no    |
|                     | Sigma 8mm f/3.5 EX DG circular fisheye                                      | 1.62      | yes   | yes | no    |
|                     | Sigma 8mm f/3.5 EX DG circular fisheye                                      | 1.0       | yes   | yes | yes   |
| SLR Magic           | SLR Magic 8mm f/4                                                           | 2.0       | yes   | yes | yes   |
| Soligor             | MC Soligor C/D Wide-Auto 1:2.8 f=24mm                                       | 1.531     | yes   | yes | no    |
| Sony                | Carl Zeiss Distagon T\* 24mm F2 ZA SSM (SAL24F20Z)                          | 1.0       | yes   | yes | no    |
|                     | E 10-18mm f/4 OSS                                                           | 1.534     | yes   | yes | no    |
|                     | E 10-18mm f/4 OSS                                                           | 1.0       | yes   | no  | no    |
|                     | E 11mm f/1.8                                                                | 1.534     | yes   | yes | no    |
|                     | E 16-50mm f/3.5-5.6 OSS PZ                                                  | 1.534     | yes   | yes | yes   |
|                     | E 16-55mm f/2.8 G                                                           | 1.534     | yes   | yes | yes   |
|                     | E 16-70mm f/4 ZA OSS                                                        | 1.534     | yes   | yes | no    |
|                     | E 16mm f/2.8                                                                | 1.534     | yes   | yes | yes   |
|                     | E 18-135mm f/3.5-5.6 OSS                                                    | 1.534     | yes   | yes | yes   |
|                     | E 18-200mm f/3.5-6.3 OSS                                                    | 1.534     | yes   | yes | no    |
|                     | E 18-200mm f/3.5-6.3 OSS LE                                                 | 1.534     | yes   | yes | yes   |
|                     | E 18-55mm f/3.5-5.6 OSS                                                     | 1.534     | yes   | yes | yes   |
|                     | E 20mm f/2.8                                                                | 1.534     | yes   | yes | yes   |
|                     | E 24mm f/1.8 ZA                                                             | 1.534     | yes   | yes | no    |
|                     | E 30mm f/3.5 Macro                                                          | 1.534     | yes   | yes | no    |
|                     | E 35mm f/1.8 OSS                                                            | 1.534     | yes   | yes | yes   |
|                     | E 50mm f/1.8 OSS                                                            | 1.534     | yes   | yes | yes   |
|                     | E 55-210mm f/4.5-6.3 OSS                                                    | 1.534     | yes   | yes | yes   |
|                     | E 70-350mm f/4.5-6.3 G OSS                                                  | 1.534     | yes   | yes | yes   |
|                     | E PZ 18-105mm f/4 G OSS                                                     | 1.534     | yes   | yes | no    |
|                     | FE 100-400mm f/4.5-5.6 GM OSS                                               | 1.0       | yes   | yes | yes   |
|                     | FE 12-24mm f/4 G                                                            | 1.0       | yes   | no  | no    |
|                     | FE 14mm f/1.8 GM                                                            | 1.0       | yes   | yes | yes   |
|                     | FE 16-35mm f/2.8 GM                                                         | 1.0       | yes   | yes | yes   |
|                     | FE 16-35mm f/4 ZA OSS                                                       | 1.0       | yes   | yes | yes   |
|                     | FE 20-70mm f/4 G                                                            | 1.0       | yes   | yes | yes   |
|                     | FE 200-600mm f/5.6-6.3 G OSS                                                | 1.0       | yes   | yes | yes   |
|                     | FE 20mm f/1.8 G                                                             | 1.0       | yes   | yes | yes   |
|                     | FE 24-105mm f/4 G OSS                                                       | 1.0       | yes   | yes | yes   |
|                     | FE 24-240mm f/3.5-6.3 OSS                                                   | 1.0       | yes   | yes | yes   |
|                     | FE 24-70mm f/2.8 GM                                                         | 1.0       | yes   | yes | yes   |
|                     | FE 24-70mm f/2.8 GM II                                                      | 1.0       | yes   | yes | no    |
|                     | FE 24-70mm f/4 ZA OSS                                                       | 1.534     | yes   | yes | no    |
|                     | FE 24-70mm f/4 ZA OSS                                                       | 1.0       | yes   | yes | no    |
|                     | FE 24mm f/1.4 GM                                                            | 1.0       | yes   | yes | yes   |
|                     | FE 24mm f/2.8 G                                                             | 1.0       | yes   | yes | no    |
|                     | FE 28-60mm f/4-5.6                                                          | 1.0       | yes   | yes | yes   |
|                     | FE 28-70mm f/3.5-5.6 OSS                                                    | 1.0       | yes   | yes | yes   |
|                     | FE 28mm f/2                                                                 | 1.0       | yes   | yes | yes   |
|                     | FE 28mm f/2 + Sony SEL075 UWC                                               | 1.0       | yes   | no  | no    |
|                     | FE 35mm f/1.4 GM (SEL35F14GM)                                               | 1.0       | yes   | yes | no    |
|                     | FE 35mm f/1.4 ZA                                                            | 1.0       | yes   | no  | no    |
|                     | FE 35mm f/1.8                                                               | 1.0       | yes   | yes | yes   |
|                     | FE 35mm f/2.8 ZA                                                            | 1.0       | yes   | yes | yes   |
|                     | FE 40mm f/2.5 G                                                             | 1.0       | yes   | yes | no    |
|                     | FE 50mm f/1.2 GM                                                            | 1.0       | yes   | yes | no    |
|                     | FE 50mm f/1.8                                                               | 1.0       | yes   | yes | yes   |
|                     | FE 50mm f/2.5 G                                                             | 1.0       | yes   | yes | no    |
|                     | FE 50mm f/2.8 Macro                                                         | 1.0       | yes   | yes | no    |
|                     | FE 50mm f/2.8 Macro                                                         | 1.534     | yes   | yes | yes   |
|                     | FE 55mm f/1.8 ZA                                                            | 1.0       | yes   | yes | yes   |
|                     | FE 70-200mm f/2.8 GM OSS                                                    | 1.0       | yes   | no  | no    |
|                     | FE 70-200mm f/4 G OSS                                                       | 1.0       | yes   | yes | yes   |
|                     | FE 70-300mm f/4.5-5.6 G OSS                                                 | 1.0       | yes   | yes | no    |
|                     | FE 85mm f/1.4 GM                                                            | 1.0       | yes   | yes | yes   |
|                     | FE 85mm f/1.8                                                               | 1.0       | yes   | yes | yes   |
|                     | FE 90mm f/2.8 Macro G OSS                                                   | 1.0       | yes   | yes | yes   |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-F717                                              | 3.933     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-S85                                               | 4.843     | yes   | no  | no    |
|                     | Fixed lens Cyber-shot DSC-S85                                               | 4.843     | yes   | no  | no    |
|                     | Fixed lens DSC-F828                                                         | 3.933     | yes   | no  | no    |
|                     | Fixed lens DSC-F828                                                         | 3.933     | yes   | no  | no    |
|                     | Fixed lens DSC-H1                                                           | 6.0       | yes   | no  | no    |
|                     | Fixed lens DSC-H1                                                           | 6.0       | yes   | no  | no    |
|                     | Fixed lens DSC-H1                                                           | 6.0       | yes   | no  | no    |
|                     | Fixed lens DSC-HX300                                                        | 5.58      | yes   | no  | no    |
|                     | Fixed lens DSC-P200                                                         | 4.8       | yes   | no  | no    |
|                     | Fixed lens DSC-R1                                                           | 1.68      | yes   | no  | no    |
|                     | Fixed lens DSC-S90                                                          | 6.5       | yes   | no  | no    |
|                     | Fixed lens DSC-T1                                                           | 5.65      | yes   | no  | no    |
|                     | Fixed lens DSC-V3                                                           | 4.843     | yes   | no  | no    |
|                     | Fixed lens DSC-V3                                                           | 4.843     | yes   | no  | no    |
|                     | Fixed lens DSC-V3                                                           | 4.843     | yes   | no  | no    |
|                     | Fixed lens RX0                                                              | 2.7       | yes   | yes | no    |
|                     | Fixed lens RX1 R II                                                         | 1.0       | yes   | yes | no    |
|                     | Fixed lens RX10                                                             | 2.73      | yes   | yes | yes   |
|                     | Fixed lens RX10 II                                                          | 2.73      | yes   | yes | no    |
|                     | Fixed lens RX10 III                                                         | 2.73      | yes   | yes | no    |
|                     | Fixed lens RX100                                                            | 2.73      | yes   | yes | yes   |
|                     | Fixed lens RX100 II                                                         | 2.73      | yes   | yes | yes   |
|                     | Fixed lens RX100 III                                                        | 2.73      | yes   | yes | yes   |
|                     | Fixed lens RX100 VI                                                         | 2.66      | yes   | yes | yes   |
|                     | Fixed lens Xperia Z3                                                        | 7.87      | yes   | no  | no    |
|                     | Fixed lens ZV-1                                                             | 2.7       | yes   | no  | no    |
|                     | Minolta/Sony AF DT 18-70mm f/3.5-5.6 (D)                                    | 1.527     | yes   | no  | yes   |
|                     | Sony 28-75mm F2.8 SAM                                                       | 1.0       | yes   | yes | yes   |
|                     | Sony 35mm f/1.4 G                                                           | 1.0       | yes   | yes | yes   |
|                     | Sony 50mm f/1.4                                                             | 1.534     | yes   | yes | yes   |
|                     | Sony 70-300mm f/4.5-5.6 G SSM II                                            | 1.0       | yes   | no  | no    |
|                     | Sony 85mm F2.8 SAM (SAL85F28)                                               | 1.5       | yes   | yes | yes   |
|                     | Sony AF 100mm F2.8 Macro                                                    | 1.0       | yes   | yes | yes   |
|                     | Sony AF 500mm F8 Reflex                                                     | 1.0       | yes   | no  | yes   |
|                     | Sony AF DT 16-105mm f/3.5-5.6                                               | 1.527     | yes   | yes | yes   |
|                     | Sony AF DT 18-250mm f/3.5-6.3                                               | 1.523     | yes   | no  | no    |
|                     | Sony AF DT 30mm f/2.8 SAM Macro                                             | 1.523     | yes   | yes | yes   |
|                     | Sony AF DT 55-200mm f/4-5.6 SAM                                             | 1.527     | yes   | yes | yes   |
|                     | Sony DT 16-50mm f/2.8 SSM                                                   | 1.527     | yes   | yes | yes   |
|                     | Sony DT 18-135mm f/3.5-5.6 SAM                                              | 1.523     | yes   | yes | yes   |
|                     | Sony DT 18-55mm f/3.5-5.6 SAM                                               | 1.527     | yes   | yes | yes   |
|                     | Sony DT 35mm f/1.8 SAM                                                      | 1.523     | yes   | yes | yes   |
|                     | Sony DT 50mm f/1.8 SAM                                                      | 1.523     | yes   | yes | yes   |
|                     | Sony DT 55-300mm f/4.5-5.6 SAM                                              | 1.523     | yes   | yes | yes   |
|                     | VCL-ECF1 Fischauge-Vorsatz                                                  | 1.534     | yes   | yes | yes   |
|                     | VCL-ECU1 ultra wide converter                                               | 1.534     | yes   | yes | no    |
|                     | Zeiss Planar T\* 50mm f/1.4 ZA SSM                                          | 1.0       | yes   | yes | yes   |
|                     | Zeiss Vario-Sonnar T\* 16-35mm f/2.8 ZA SSM II                              | 1.0       | yes   | yes | no    |
|                     | Zeiss Vario-Sonnar T\* 24-70mm f/2.8 ZA SSM II                              | 1.0       | yes   | yes | no    |
| Tamron              | 18-300mm F3.5-6.3 DiIII-A VC VXD B061X                                      | 1.534     | yes   | no  | no    |
|                     | E 17-28mm F2.8-2.8                                                          | 1.0       | yes   | yes | yes   |
|                     | E 17-70mm F2.8 B070                                                         | 1.534     | yes   | yes | yes   |
|                     | E 18-300mm F3.5-6.3 B061                                                    | 1.534     | yes   | no  | no    |
|                     | E 24mm F2.8                                                                 | 1.5       | yes   | yes | no    |
|                     | E 28-200mm F2.8-5.6 A071                                                    | 1.0       | yes   | yes | yes   |
|                     | E 28-75mm F2.8-2.8                                                          | 1.0       | yes   | yes | yes   |
|                     | E 35mm F2.8 F053                                                            | 1.0       | yes   | yes | no    |
|                     | Tamron 10-24mm f/3.5-4.5 Di II VC HLD                                       | 1.6       | yes   | yes | no    |
|                     | TAMRON 100-400mm F/4.5-6.3 Di VC USD A035                                   | 1.0       | yes   | yes | no    |
|                     | Tamron 11-20 mm F2.8 Di III-A RXD (B060)                                    | 1.534     | yes   | yes | no    |
|                     | Tamron 14-150mm f/3.5-5.8 Di III                                            | 2.0       | yes   | yes | yes   |
|                     | Tamron 150-500mm F5-6.7 Di III VC VXD                                       | 1.0       | yes   | yes | yes   |
|                     | Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro B016                           | 1.613     | yes   | no  | no    |
|                     | Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro B016                           | 1.534     | yes   | yes | no    |
|                     | Tamron 17-35mm f/2.8-4 Di OSD (A037)                                        | 1.0       | yes   | yes | yes   |
|                     | Tamron 18-200mm f/3.5-6.3 Di II VC                                          | 1.558     | yes   | yes | no    |
|                     | Tamron 18-200mm f/3.5-6.3 Di III VC                                         | 1.534     | yes   | yes | no    |
|                     | Tamron 18-400mm f/3.5-6.3 Di II VC HLD (B028)                               | 1.53      | yes   | yes | yes   |
|                     | Tamron 200mm f/3.5 CT-200 BBAR                                              | 2.0       | yes   | yes | no    |
|                     | Tamron 20mm F2.8 Di III OSD M1:2                                            | 1.0       | yes   | yes | no    |
|                     | Tamron 28-300mm f/3.5-6.3 Di VC PZD                                         | 1.005     | yes   | yes | yes   |
|                     | Tamron 28-75mm F2.8 Di III VXD G2 (A063S)                                   | 1.0       | yes   | no  | yes   |
|                     | TAMRON 35-150mm F/2-2.8 Di III VXD                                          | 1.0       | yes   | no  | yes   |
|                     | Tamron 35-150mm f/2.8-4 Di VC OSD (A043)                                    | 1.0       | yes   | yes | yes   |
|                     | Tamron 35-70mm f/3.5 CF Macro                                               | 1.53      | yes   | yes | yes   |
|                     | Tamron 50-400 mm F4.5-6.3 Di III VC VXD (A067)                              | 1.0       | yes   | no  | yes   |
|                     | Tamron 70-180mm f/2.8 Di III VXD A056                                       | 1.0       | yes   | yes | no    |
|                     | Tamron AF 17-50mm f/2.8 XR Di-II LD (Model A16)                             | 1.53      | yes   | yes | yes   |
|                     | Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro              | 1.53      | yes   | no  | no    |
|                     | Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical (IF) Macro              | 1.611     | yes   | no  | no    |
|                     | Tamron AF 18-250mm f/3.5-6.3 Di II LD Aspherical (IF) Macro                 | 1.53      | yes   | yes | no    |
|                     | Tamron AF 18-270mm F/3.5-6.3 Di II VC LD Aspherical (IF) Macro              | 1.534     | yes   | yes | no    |
|                     | Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD                                   | 1.613     | yes   | no  | no    |
|                     | Tamron AF 18-270mm F/3.5-6.3 Di II VC PZD                                   | 1.534     | yes   | yes | no    |
|                     | Tamron AF 19-35mm f/3.5-4.5                                                 | 1.611     | yes   | no  | no    |
|                     | Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical (IF)                       | 1.53      | yes   | no  | no    |
|                     | Tamron AF 70-300mm f/4-5.6 LD Macro 1:2                                     | 1.53      | yes   | yes | yes   |
|                     | Tamron AF 80-210mm f/4.5-5.6 280D                                           | 1.0       | no    | no  | yes   |
|                     | Tamron SP 15-30mm f/2.8 Di VC USD                                           | 1.0       | yes   | yes | yes   |
|                     | Tamron SP 15-30mm f/2.8 Di VC USD G2 (A041)                                 | 1.0       | yes   | yes | yes   |
|                     | Tamron SP 150-600mm f/5-6.3 Di VC USD                                       | 1.534     | yes   | no  | no    |
|                     | Tamron SP 24-70mm f/2.8 Di VC USD                                           | 1.0       | yes   | yes | no    |
|                     | Tamron SP 24-70mm F/2.8 Di VC USD G2 (A032)                                 | 1.0       | yes   | yes | yes   |
|                     | Tamron SP 35mm f/1.4 Di USD                                                 | 1.0       | yes   | no  | yes   |
|                     | Tamron SP 35mm f/1.8 Di VC USD F012                                         | 1.0       | yes   | no  | no    |
|                     | Tamron SP 45mm F/1.8 Di VC USD                                              | 1.0       | yes   | yes | no    |
|                     | Tamron SP 70-200mm f/2.8 Di VC USD                                          | 1.005     | yes   | yes | yes   |
|                     | Tamron SP 70-200mm F/2.8 Di VC USD G2                                       | 1.0       | yes   | yes | yes   |
|                     | Tamron SP 70-300mm f/4-5.6 Di USD                                           | 1.534     | yes   | yes | yes   |
|                     | Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)                                 | 1.0       | yes   | no  | no    |
|                     | Tamron SP 90mm f/2.8 Di VC USD Macro 1:1                                    | 1.0       | yes   | yes | no    |
|                     | Tamron SP 90mm F/2.8 Di VC USD Macro 1:1                                    | 1.0       | yes   | yes | no    |
|                     | Tamron SP 90mm f/2.8 Di VC USD Macro 1:1                                    | 1.613     | yes   | yes | no    |
|                     | Tamron SP AF 10-24mm f/3.5-4.5 Di II LD Aspherical (IF)                     | 1.53      | yes   | yes | no    |
|                     | Tamron SP AF 11-18mm f/4.5-5.6 Di-II LD Aspherical (IF)                     | 1.62      | yes   | yes | no    |
|                     | Tamron SP AF 150-600mm F/5-6.3 Di VC USD G2 (A022)                          | 1.0       | yes   | yes | yes   |
|                     | Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical (IF)                          | 1.0       | yes   | no  | no    |
|                     | Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF)                      | 1.53      | yes   | yes | yes   |
|                     | Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF)                   | 1.613     | yes   | yes | no    |
|                     | Tamron SP AF 24-135mm f/3.5-5.6 AD Aspherical (IF) Macro                    | 1.611     | yes   | no  | no    |
|                     | Tamron SP AF 28-105mm f/2.8 LD Aspherical IF                                | 1.0       | yes   | no  | no    |
|                     | Tamron SP AF 28-75mm f/2.8 XR Di (IF) Macro                                 | 1.0       | yes   | yes | yes   |
|                     | Tamron SP AF 60mm f/2 Di II LD (IF) Macro                                   | 1.523     | yes   | yes | yes   |
|                     | Tamron SP AF 70-200mm f/2.8 Di LD (IF) Macro                                | 1.0       | yes   | yes | no    |
|                     | Tamron SP AF 90mm f/2.8 Di Macro 1:1                                        | 1.53      | yes   | yes | yes   |
| Tokina              | E 20mm f/2                                                                  | 1.0       | yes   | yes | no    |
|                     | Tokina 17mm f/3.5 AT-X 17 AF Pro                                            | 1.0       | yes   | yes | yes   |
|                     | Tokina 17mm f/3.5 RMC II                                                    | 1.0       | yes   | yes | no    |
|                     | Tokina 20-35mm f/3.5-4.5 AF-235 II                                          | 1.0       | yes   | yes | no    |
|                     | Tokina 28-70mm f/2.8 AT-X Pro SV                                            | 1.611     | yes   | no  | no    |
|                     | Tokina 500mm f/8 RMC Mirror Lens                                            | 1.53      | no    | yes | no    |
|                     | Tokina 80-200mm f/4.5-5.6 SZ-X                                              | 1.53      | yes   | yes | no    |
|                     | Tokina AF 100mm f/2.8 AT-X Pro D M100 Macro                                 | 1.0       | yes   | yes | yes   |
|                     | Tokina AF 100mm f/2.8 AT-X Pro D Macro                                      | 1.534     | yes   | yes | no    |
|                     | Tokina AF 11-16mm f/2.8 AT-X Pro DX                                         | 1.0       | yes   | no  | no    |
|                     | Tokina AF 11-16mm f/2.8 AT-X Pro DX                                         | 1.53      | yes   | no  | yes   |
|                     | Tokina AF 11-20mm f/2.8 AT-X Pro DX                                         | 1.534     | yes   | yes | yes   |
|                     | Tokina AF 12-24mm f/4 AT-X Pro DX                                           | 1.53      | yes   | no  | no    |
|                     | Tokina AF 12-28mm f/4 AT-X Pro DX                                           | 1.534     | yes   | yes | no    |
|                     | Tokina AF 16-28mm f/2.8 AT-X Pro SD FX                                      | 1.0       | yes   | yes | no    |
|                     | Tokina AF 17mm f/3.5 AT-X Pro                                               | 1.53      | yes   | no  | no    |
|                     | Tokina AF 17mm f/3.5 AT-X Pro                                               | 1.611     | yes   | no  | no    |
|                     | Tokina AF 19-35mm f/3.5-4.5                                                 | 1.611     | yes   | no  | no    |
|                     | Tokina AF 28-80mm f/2.8 AT-X 280 Pro                                        | 1.0       | yes   | no  | no    |
|                     | Tokina AF 80-200mm f/2.8 AT-X 828 Pro                                       | 1.0       | yes   | yes | no    |
|                     | Tokina AT-X 14-20 F2 PRO DX                                                 | 1.523     | yes   | yes | yes   |
|                     | Tokina AT-X 24-70mm f/2.8 PRO FX                                            | 1.0       | yes   | yes | no    |
|                     | Tokina AT-X M35 PRO DX (AF 35mm f/2.8 Macro)                                | 1.534     | yes   | yes | no    |
|                     | Tokina atx-i 11-16mm F2.8 CF                                                | 1.523     | yes   | no  | yes   |
|                     | Tokina ATX-i 11-20mm F2.8 CF                                                | 1.523     | yes   | yes | no    |
| TTArtisan           | 50mm F1.4 Tilt                                                              | 1.0       | yes   | no  | yes   |
|                     | TTARTISAN 35mm f/1.8                                                        | 1.534     | yes   | yes | no    |
|                     | TTArtisan 7.5mm f/2 Fisheye                                                 | 2.0       | yes   | yes | no    |
|                     | TTArtisan AF 27mm F2.8                                                      | 1.534     | yes   | yes | yes   |
|                     | TTArtisan APS-C 23mm F1.4                                                   | 1.534     | yes   | no  | no    |
|                     | TTArtisan APS-C 25mm f/2.0                                                  | 1.534     | yes   | yes | yes   |
| Venus               | Laowa 12mm f/2.8 Zero-D                                                     | 1.0       | yes   | yes | yes   |
|                     | Laowa 15mm F/4 Wide Angle Macro                                             | 1.0       | yes   | yes | yes   |
|                     | Laowa 17mm f/1.8 C-Dreamer                                                  | 2.0       | yes   | yes | yes   |
|                     | Laowa 60mm f/2.8 2X Ultra-Macro                                             | 1.0       | yes   | yes | yes   |
|                     | Laowa 7.5mm f/2.0                                                           | 2.0       | yes   | yes | yes   |
|                     | Laowa 9mm f/2.8 Zero-D                                                      | 1.529     | yes   | yes | yes   |
|                     | Laowa 9mm f/5.6 FF RL                                                       | 1.529     | yes   | no  | no    |
|                     | LAOWA C\&D-Dreamer MFT 10mm F2.0                                            | 2.0       | no    | yes | yes   |
| Viltrox             | 23mmF1.4XM                                                                  | 1.53      | yes   | yes | yes   |
|                     | AF 33mm f/1.4 XF                                                            | 1.534     | yes   | no  | no    |
|                     | Viltrox 23mm F1.4 E                                                         | 1.53      | yes   | yes | yes   |
|                     | Viltrox AF 13mm F1.4                                                        | 1.529     | yes   | yes | yes   |
|                     | Viltrox AF 16mm F1.8 FE                                                     | 1.0       | yes   | yes | yes   |
|                     | Viltrox AF 20mm F2.8 Z                                                      | 1.0       | yes   | yes | no    |
|                     | Viltrox AF 27mm F1.2 PRO                                                    | 1.534     | yes   | yes | yes   |
|                     | Viltrox AF 35mm F1.8 Z                                                      | 1.0       | yes   | yes | yes   |
|                     | Viltrox AF 50mm f/1.8 Z                                                     | 1.0       | yes   | no  | no    |
|                     | Viltrox AF 85mm f/1.8 Z                                                     | 1.0       | yes   | yes | no    |
|                     | Viltrox PFU RBMH 20mm f/1.8 ASPH                                            | 1.0       | yes   | no  | yes   |
| Vivitar             | Vivitar 100mm f/3.5 AF Macro                                                | 1.523     | yes   | yes | no    |
|                     | Vivitar Series 1 70-210mm 1:3.5 SN 22…                                      | 1.534     | yes   | yes | no    |
| Voigtländer         | 15mm F4,5 Super Wide Heliar aspherical III                                  | 1.0       | yes   | yes | yes   |
|                     | Voigtlander APO-LANTHAR 50mm F2 Aspherical                                  | 1.0       | yes   | yes | yes   |
|                     | Voigtlander Color Skopar 20mm F3.5 SLII Aspherical                          | 1.0       | yes   | yes | no    |
|                     | Voigtländer Color-Skopar X 1:2,8/50                                         | 1.529     | yes   | yes | no    |
|                     | Voigtländer HELIAR-HYPER WIDE 10mm F5.6                                     | 1.0       | yes   | no  | no    |
|                     | Voigtländer Nokton 25mm f/0.95 Type II                                      | 2.0       | yes   | yes | yes   |
|                     | Voigtländer Nokton 58mm F1.4 SLII                                           | 1.0       | yes   | yes | yes   |
|                     | Voigtländer Nokton 58mm F1.4 SLII                                           | 1.534     | no    | no  | yes   |
|                     | Voigtländer Skoparex 1:3,4/35                                               | 1.529     | yes   | yes | no    |
|                     | Voigtländer Ultron 40mm f/2 SL-II Aspherical                                | 1.0       | yes   | yes | yes   |
| Yongnuo             | Yongnuo YN 35mm f/2                                                         | 1.62      | yes   | yes | no    |
|                     | Yongnuo YN 35mm f/2                                                         | 1.0       | yes   | yes | no    |
|                     | Yongnuo YN 50mm f/1.8                                                       | 1.0       | yes   | yes | no    |
|                     | Yongnuo YN 50mm f/1.8 II                                                    | 1.0       | yes   | yes | no    |
| Zeiss               | Batis 18mm f/2.8                                                            | 1.0       | yes   | yes | no    |
|                     | Batis 25mm f/2                                                              | 1.0       | yes   | no  | yes   |
|                     | Batis 25mm f/2                                                              | 1.0       | yes   | no  | yes   |
|                     | Batis 85mm f/1.8                                                            | 1.0       | yes   | no  | no    |
|                     | Carl Zeiss Distagon T\* 2,8/21 ZE                                           | 1.0       | yes   | yes | no    |
|                     | Carl Zeiss Distagon T\* 2,8/21 ZF.2                                         | 1.0       | yes   | yes | no    |
|                     | Carl Zeiss Distagon T\* 2/35 ZF.2                                           | 1.0       | yes   | yes | yes   |
|                     | Carl Zeiss Distagon T\* 3,5/18 ZF.2                                         | 1.0       | yes   | no  | no    |
|                     | Carl Zeiss Distagon T\* 3,5/18 ZF.2                                         | 1.523     | yes   | yes | no    |
|                     | Carl Zeiss Jena 135mm f/3.5                                                 | 1.0       | yes   | no  | yes   |
|                     | Carl Zeiss Jena 1Q Biotar 1:2 f=58mm T                                      | 1.538     | yes   | yes | no    |
|                     | Carl Zeiss Jena Flektogon 4/20mm                                            | 1.0       | yes   | yes | no    |
|                     | Carl Zeiss Planar T\* 1,4/50 ZF.2                                           | 1.523     | yes   | no  | no    |
|                     | Carl Zeiss Planar T\* 1,4/50 ZF.2                                           | 1.0       | yes   | yes | no    |
|                     | Carl Zeiss Sonnar T\* 135mm F1.8 ZA (SAL135F18Z)                            | 1.0       | yes   | yes | no    |
|                     | Distagon 18mm f/4                                                           | 1.0       | yes   | no  | no    |
|                     | Distagon 28mm f/2.8 MMJ                                                     | 1.0       | yes   | no  | no    |
|                     | fixed lens                                                                  | 3.93      | yes   | yes | no    |
|                     | fixed lens                                                                  | 6.02      | yes   | no  | no    |
|                     | Loxia 21mm f/2.8                                                            | 1.0       | yes   | yes | no    |
|                     | Loxia 50mm f/2 Planar T\*                                                   | 1.0       | yes   | no  | no    |
|                     | Makro-Planar T\* 2/100                                                      | 1.0       | yes   | yes | no    |
|                     | Planar 50mm f/1.7 AEJ                                                       | 1.0       | yes   | no  | no    |
|                     | Sonnar 85mm f/2.8 AEJ                                                       | 1.0       | yes   | no  | no    |
|                     | Standard                                                                    | 6.26      | yes   | no  | no    |
|                     | Touit 2.8/12                                                                | 1.53      | yes   | yes | yes   |
|                     | Touit 2.8/50M                                                               | 1.529     | yes   | yes | yes   |
|                     | Touit 32mm f/1.8                                                            | 1.534     | yes   | yes | yes   |
|                     | Zeiss Distagon T\* 25mm f/2.8 ZF.2                                          | 1.0       | no    | no  | yes   |
|                     | Zeiss Milvus 1.4/50                                                         | 1.0       | yes   | yes | no    |
|                     | Zeiss Otus 85mm f/1.4                                                       | 1.0       | yes   | no  | no    |
| Zenit               | Zenitar MC 16mm f/2.8                                                       | 1.529     | yes   | yes | no    |

### Cameras

**AEE**: AEE MagiCam SD19 & compatibles

**Apple**: iPhone XS, iPhone XS (tele)

**Canon**: EOS 8000D, 35mm film: full frame, Canon PowerShot G9 X Mark II, EOS 1000D, EOS 100D, EOS 10D, EOS 1100D, EOS 1200D, EOS 1300D, EOS 2000D, EOS 200D, EOS 200D II, EOS 20D, EOS 250D, EOS 300D, EOS 30D, EOS 350D, EOS 4000D, EOS 400D, EOS 40D, EOS 450D, EOS 500D, EOS 50D, EOS 550D, EOS 5D, EOS 5D Mark II, EOS 5D Mark III, EOS 5D Mark IV, EOS 5DS, EOS 5DS R, EOS 600D, EOS 60D, EOS 650D, EOS 6D, EOS 6D Mark II, EOS 700D, EOS 70D, EOS 750D, EOS 760D, EOS 77D, EOS 7D, EOS 7D Mark II, EOS 800D, EOS 80D, EOS 850D, EOS 9000D, EOS 90D, EOS D2000, EOS D30, EOS D60, EOS Digital REBEL, EOS Digital Rebel XS, EOS Digital Rebel XSi, EOS Digital Rebel XT, EOS Digital Rebel XTi, EOS KISS M, EOS Kiss Digital, EOS Kiss Digital F, EOS Kiss Digital N, EOS Kiss Digital X, EOS Kiss Digital X2, EOS Kiss X10i, EOS Kiss X3, EOS Kiss X4, EOS Kiss X5, EOS Kiss X50, EOS Kiss X6i, EOS Kiss X7, EOS Kiss X70, EOS Kiss X7i, EOS Kiss X8i, EOS Kiss X9, EOS Kiss X90, EOS Kiss X9i, EOS M, EOS M10, EOS M100, EOS M2, EOS M200, EOS M3, EOS M5, EOS M50, EOS M50 Mark II, EOS M6, EOS M6 Mark II, EOS R, EOS R1, EOS R10, EOS R100, EOS R3, EOS R5, EOS R5 Mark II, EOS R50, EOS R6, EOS R6 Mark II, EOS R7, EOS R8, EOS RP, EOS Rebel SL1, EOS Rebel SL2, EOS Rebel SL3, EOS Rebel T100, EOS Rebel T1i, EOS Rebel T2i, EOS Rebel T3, EOS Rebel T3i, EOS Rebel T4i, EOS Rebel T5, EOS Rebel T5i, EOS Rebel T6, EOS Rebel T6i, EOS Rebel T6s, EOS Rebel T7, EOS Rebel T7i, EOS Rebel T8i, EOS-1D, EOS-1D Mark II, EOS-1D Mark II N, EOS-1D Mark III, EOS-1D Mark IV, EOS-1D X, EOS-1D X Mark II, EOS-1Ds, EOS-1Ds Mark II, EOS-1Ds Mark III, IXUS 125 HS, IXUS 220 HS, IXUS 30, IXUS 40, IXUS 400, IXUS 430, IXUS 50, IXUS 500, IXUS 55, IXUS 70, IXUS 700, IXUS 750, IXUS 80 IS, IXUS 95 IS, IXUS II, IXUS i, IXUS v2, IXY 200a, IXY 220F, IXY 30, IXY 40, IXY 400, IXY 450, IXY 50, IXY 500, IXY 55, IXY Digital 600, IXY Digital 700, PowerShot A10, PowerShot A20, PowerShot A30, PowerShot A40, PowerShot A4000 IS, PowerShot A490, PowerShot A495, PowerShot A510, PowerShot A520, PowerShot A60, PowerShot A610, PowerShot A620, PowerShot A640, PowerShot A650 IS, PowerShot A70, PowerShot A720 IS, PowerShot A75, PowerShot A80, PowerShot A85, PowerShot A95, PowerShot G1, PowerShot G1 X, PowerShot G1 X Mark II, PowerShot G1 X Mark III, PowerShot G10, PowerShot G11, PowerShot G12, PowerShot G15, PowerShot G16, PowerShot G2, PowerShot G3, PowerShot G3 X (3:2), PowerShot G5, PowerShot G5 X (16:9), PowerShot G5 X (3:2), PowerShot G5 X (4:3), PowerShot G5 X Mark II, PowerShot G6, PowerShot G7, PowerShot G7 X (16:9), PowerShot G7 X (3:2), PowerShot G7 X (4:3), PowerShot G7 X Mark II (16:9), PowerShot G7 X Mark II (3:2), PowerShot G7 X Mark II (4:3), PowerShot G7 X Mark III (3:2), PowerShot G9, PowerShot G9 X, PowerShot Pro1, PowerShot Pro70, PowerShot Pro90 IS, PowerShot S1 IS, PowerShot S100, PowerShot S110, PowerShot S120, PowerShot S2 IS, PowerShot S200, PowerShot S30, PowerShot S40, PowerShot S400, PowerShot S410, PowerShot S45, PowerShot S5 IS, PowerShot S50, PowerShot S500, PowerShot S60, PowerShot S70, PowerShot S80, PowerShot S90, PowerShot S95, PowerShot SD10, PowerShot SD100, PowerShot SD110, PowerShot SD1100 IS, PowerShot SD200, PowerShot SD300, PowerShot SD400, PowerShot SD450, PowerShot SD500, PowerShot SD550, PowerShot SD950 IS, PowerShot SX1 IS, PowerShot SX10 IS, PowerShot SX130 IS, PowerShot SX150 IS, PowerShot SX160 IS, PowerShot SX220 HS, PowerShot SX230 HS, PowerShot SX240 HS, PowerShot SX260 HS, PowerShot SX30 IS, PowerShot SX510 HS, PowerShot SX700 HS, PowerShot SX710 HS, Powershot A1200, Powershot ELPH 110 HS, Powershot SX50 HS, Powershot SX60 HS

**Casio**: EX-FH20, EX-P600, EX-P700, EX-Z3, EX-Z30, EX-Z4, EX-Z40, EX-Z55, EX-Z750, QV-3000EX, QV-3500EX, QV-4000

**Contax**: 35mm film: full frame

**DJI**: Air 2S, FC6310, Mavic Air FC2103, Mavic Pro FC220, Mini 3 Pro, Phantom 3 Pro FC300X, Phantom 4 RTK, Phantom Vision FC200

**Epson**: R-D1

**Fujifilm**: FinePix 3800, FinePix A370, FinePix E550, FinePix F10, FinePix F11, FinePix F200EXR, FinePix F601 ZOOM, FinePix F710, FinePix F770EXR, FinePix F810, FinePix F810 widescreen mode, FinePix HS20EXR, FinePix HS30EXR, FinePix IS Pro, FinePix S1 Pro, FinePix S2 Pro, FinePix S20Pro, FinePix S3 Pro, FinePix S3000, FinePix S304, FinePix S5 Pro, FinePix S5100, FinePix S5500, FinePix S5600, FinePix S602 ZOOM, FinePix S7000, FinePix S9000, FinePix S9500, FinePix S9600, FinePix X100, FinePix2800ZOOM, GFX 100, GFX 50R, GFX 50S, GFX100 II, GFX100S, GFX100S II, GFX50S II, X-A1, X-A2, X-A3, X-A5, X-A7, X-E1, X-E2, X-E2S, X-E3, X-E4, X-H1, X-H2, X-H2S, X-M1, X-M5, X-Pro1, X-Pro2, X-Pro3, X-S1, X-S10, X-S20, X-T1, X-T10, X-T100, X-T2, X-T20, X-T3, X-T30, X-T30 II, X-T4, X-T5, X-T50, X10, X100F, X100S, X100T, X100V, X100VI, X20, X30, X70, XF10, XQ1

**Generic**: Crop-Faktor 0.8 (Mittelformat), Crop-Faktor 1.1, Crop-Faktor 1.3 (APS-H), Crop-Faktor 1.5 (APS-C), Crop-Faktor 2.0 (Four-Thirds), Crop-factor 1.0 (Full Frame), Crop-factor 1.6 (APS-C), Crop-factor 1.7

**GitUp**: Git2

**GoPro**: HD2, HERO4 Black, HERO4 Silver, HERO5 Black, Hero10 black, Hero3+ black

**Hasselblad**: CFV 100C/907X, CFV II 50C/907X, DJI Mavic 2 Pro, DJI Mavic 3, Hasselblad 500 mech., Hasselblad H3D, X1D II 50C, X2D 100C

**Honor**: 6A

**Huawei**: P10 Lite, P20 Pro, P30 Pro

**KMZ**: Zenit 122, Zenit 122K, Zenit 212K, Zenit 312K, Zenit 412LS, Zenit KM

**Kodak**: DCS 520, DCS Pro 14N DCS-14n, DCS Pro 14nx, DCS Pro SLR/c, DCS Pro SLR/n, Kodak CX6330, Kodak CX7525, Kodak DC120, Kodak DC50

**Konica Minolta**: DiMAGE A2, DiMAGE A200, DiMAGE G400, DiMAGE Z10, DiMAGE Z2, DiMAGE Z20, DiMAGE Z3, DiMAGE Z5, DiMAGE Z6, Dynax 5D, Dynax 7D, Maxxum 5D, Maxxum 7D, Revio KD-420Z

**LG**: LG G4

**Leica**: C-Lux (Typ 1546), CL (Typ 7323), D-Lux 2, D-Lux 3, D-Lux 4, Digilux 2, Digilux 3, M (Typ 240), M Monochrom (Typ 246), M10, M10 Monochrom, M10-D, M10-P, M10-R, M11, M11 Monochrom, M11-D, M11-P, M8 Digital Camera, M9 Digital Camera, Q (Typ 116), Q2, Q2 Monochrom, Q3, Q3 43, SL (Typ 601), SL2, SL2-S, SL3, T (Typ 701), TL, TL2, X Vario (Typ 107)

**Mamiya**: Mamiya 645, Mamiya ZD

**Microsoft**: Lumia 950, Lumia 950 XL

**Minolta**: DiMAGE 7, DiMAGE 7Hi, DiMAGE 7i, DiMAGE A1, DiMAGE X, DiMAGE Xi, DiMAGE Xt, DiMAGE Z1

**Nikon**: 1 AW1, 1 J1, 1 J2, 1 J3, 1 J4, 1 J5, 1 S1, 1 S2, 1 V1, 1 V2, 1 V3, 35mm film: full frame, Coolpix 4200, Coolpix 4500, Coolpix 4800, Coolpix 5000, Coolpix 5200, Coolpix 5400, Coolpix 5700, Coolpix 5900, Coolpix 7600, Coolpix 7900, Coolpix 8400, Coolpix 8700, Coolpix 8800, Coolpix 950, Coolpix 990, Coolpix 995, Coolpix A, Coolpix P1000, Coolpix P330, Coolpix P340, Coolpix P60, Coolpix P6000, Coolpix P7000, Coolpix P7800, Coolpix S3300, D1, D100, D1H, D1X, D200, D2H, D2Hs, D2X, D2Xs, D3, D300, D3000, D300S, D3100, D3200, D3300, D3400, D3500, D3S, D3X, D4, D40, D40X, D4s, D5, D50, D500, D5000, D5100, D5200, D5300, D5500, D5600, D6, D60, D600, D610, D70, D700, D7000, D70s, D7100, D7200, D750, D7500, D780, D80, D800, D800E, D810, D850, D90, Df, Z 30, Z 5, Z 50, Z 6, Z 6II, Z 7, Z 7II, Z 8, Z 9, Z f, Z fc, Z50II, Z6III

**Nokia**: Lumia 1020, Lumia 1520

**OM System**: OM-1, OM-1 II, OM-5

**Olympus**: C-2040 Zoom, C-3040 Zoom, C-4000 Zoom, C-4100 Zoom, C-4040 Zoom, C-50 Zoom variant of the X-2, C-5050 Zoom, C-5060 Wide Zoom, C-70 Zoom, C-7000 Zoom, C-700 Ultra Zoom, C-7070 Wide Zoom, C-730 Ultra Zoom, C-750 Ultra Zoom, C-8080 Wide Zoom, C-860L, D-360L variant of the C-860L, E-1, E-10, E-20, E-20N, E-20P, E-3, E-30, E-300, E-330, E-400, E-410, E-420, E-450, E-5, E-500, E-510, E-520, E-600, E-620, E-M1, E-M1 II, E-M1 III, E-M10, E-M10 II, E-M10 III, E-M10 III S, E-M10 IV, E-M5, E-M5 II, E-M5 III, E-P1, E-P2, E-P3, E-P5, E-P7, E-PL1, E-PL1s, E-PL2, E-PL3, E-PL5, E-PL6, E-PL7, E-PL8, E-PL9, E-PM1, E-PM2, PEN-F, SP-350, SP-500 Ultra Zoom, SP-560 Ultra Zoom, Stylus 1, Stylus 1, 1s, Stylus Epic, Stylus Verve Digital variant of the µ-mini Digital, Tough TG-1, Tough TG-2, Tough TG-3, Tough TG-4, Tough TG-5, Tough TG-6, X-2, XZ-1, XZ-2, µ-II, µ-mini Digital

**Panasonic**: DC-FZ10002, DC-G100, DC-G110, DC-G9, DC-G90, DC-G91, DC-G95, DC-G99, DC-G9M2, DC-GH5, DC-GH5M2, DC-GH5S, DC-GH6, DC-GH7, DC-GX7MK3, DC-GX800, DC-GX880, DC-GX9, DC-LX100M2, DC-S1, DC-S1H, DC-S1R, DC-S5, DC-S5D, DC-S5M2, DC-S5M2X, DC-S9, DC-TZ200, DC-TZ202, DC-TZ220, DC-TZ90, DC-ZS200, DC-ZS220, DMC-FX150, DMC-FX2, DMC-FX7, DMC-FX8, DMC-FX9, DMC-FZ10, DMC-FZ100, DMC-FZ100 (3:2), DMC-FZ1000, DMC-FZ150, DMC-FZ18, DMC-FZ20, DMC-FZ200, DMC-FZ2000, DMC-FZ2500, DMC-FZ28, DMC-FZ3, DMC-FZ30, DMC-FZ300, DMC-FZ330, DMC-FZ35, DMC-FZ40, DMC-FZ40 (3:2), DMC-FZ45, DMC-FZ45 (3:2), DMC-FZ5, DMC-FZ50, DMC-FZ8, DMC-G1, DMC-G10, DMC-G2, DMC-G3, DMC-G5, DMC-G6, DMC-G7, DMC-G70, DMC-G80, DMC-G81, DMC-G85, DMC-GF1, DMC-GF2, DMC-GF3, DMC-GF5, DMC-GF6, DMC-GF7, DMC-GF8, DMC-GH1, DMC-GH2, DMC-GH3, DMC-GH4, DMC-GM1, DMC-GM5, DMC-GX1, DMC-GX7, DMC-GX8, DMC-GX80, DMC-GX85, DMC-L1, DMC-L10, DMC-LC1, DMC-LF1, DMC-LX1 16:9, DMC-LX1 3:2, DMC-LX1 4:3, DMC-LX10, DMC-LX100, DMC-LX15, DMC-LX2, DMC-LX3 16:9, DMC-LX3 1:1, DMC-LX3 3:2, DMC-LX3 4:3, DMC-LX5 4:3, DMC-LX7 4:3, DMC-LZ1, DMC-LZ2, DMC-TZ100, DMC-TZ101, DMC-TZ110, DMC-TZ60, DMC-TZ61, DMC-TZ70, DMC-TZ71, DMC-TZ80, DMC-TZ81, DMC-TZ90, DMC-TZ91, DMC-TZ96, DMC-ZS100, DMC-ZS110, DMC-ZS40, DMC-ZS50, DMC-ZS60, DMC-ZS70

**Pentax**: \*ist D, \*ist DL, \*ist DL2, \*ist DS, \*ist DS2, 35mm film: full frame, 645D, 645Z, K-01, K-1, K-1 II, K-3, K-3 II, K-3 III, K-3 III Monochrome, K-30, K-5, K-5 II, K-5 IIs, K-50, K-500, K-7, K-70, K-S1, K-S2, K-m, K-r, K-x, K100D, K100D Super, K10D, K110D, K2000, K200D, K20D, KF, KP, Optio 230GS, Optio 330GS, Optio 33L, Optio 33LF, Optio 430, Optio 43WR, Optio 450, Optio 550, Optio 555, Optio 750Z, Q, Q-S1, Q10, Q7

**Phase One**: IQ140, IQ180, P 25

**Ricoh**: Caplio GX, Caplio GX8, Caplio RR30, GR, GR Digital, GR III, GR III HDF, GR IIIx, GR IIIx HDF

**Rolleiflex**: 2.8E

**Samsung**: EX2F, GX-1S, GX10, GX20, Galaxy NX, Galaxy Note 8, Galaxy S21, Galaxy S7, Galaxy S8, NX mini, NX1, NX10, NX100, NX1000, NX11, NX1100, NX20, NX200, NX2000, NX210, NX30, NX300, NX3000, NX300M, NX5, NX500, WB2000

**Sigma**: DP1, DP1 Merrill, DP1S, DP1X, DP2, DP2 Merrill, DP2S, DP2X, DP3 Merrill, SD1, SD1 Merrill, SD10, SD14, SD15, SD9, fp, fp L, sd Quattro, sd Quattro H

**Sony**: Alpha 1, Alpha 100, Alpha 200, Alpha 230, Alpha 290, Alpha 300, Alpha 3000, Alpha 33, Alpha 330, Alpha 35, Alpha 350, Alpha 37, Alpha 380, Alpha 390, Alpha 450, Alpha 500, Alpha 5000, Alpha 5100, Alpha 55, Alpha 550, Alpha 560, Alpha 57, Alpha 58, Alpha 580, Alpha 6000, Alpha 6100, Alpha 6300, Alpha 6400, Alpha 65, Alpha 6500, Alpha 6600, Alpha 6700, Alpha 68, Alpha 7, Alpha 7 II, Alpha 7 III, Alpha 7 IV, Alpha 700, Alpha 77, Alpha 77 II, Alpha 7C, Alpha 7C II, Alpha 7CR, Alpha 7R, Alpha 7R II, Alpha 7R III, Alpha 7R IIIA, Alpha 7R IV, Alpha 7R IV A, Alpha 7R V, Alpha 7S, Alpha 7S II, Alpha 7S III, Alpha 850, Alpha 9, Alpha 9 II, Alpha 9 III, Alpha 900, Alpha 99, Alpha 99 II, Alpha 99V, Cyber-shot DSC-F707, Cyber-shot DSC-F717, Cyber-shot DSC-S75, Cyber-shot DSC-S85, DSC-F828, DSC-H1, DSC-HX20V, DSC-HX300, DSC-P100, DSC-P150, DSC-P200, DSC-P73, DSC-P93, DSC-R1, DSC-S60, DSC-S80, DSC-S90, DSC-ST80, DSC-T1, DSC-V1, DSC-V3, DSC-W1, DSC-W12, DSC-W15, DSC-W5, DSC-W7, FX3, FX30, NEX-3, NEX-3N, NEX-5, NEX-5N, NEX-5R, NEX-5T, NEX-6, NEX-7, NEX-C3, NEX-F3, RX0, RX0 II, RX1 R II, RX10, RX10 II, RX10 III, RX10 IV, RX100, RX100 II, RX100 III, RX100 IV, RX100 V, RX100 VA, RX100 VI, RX100 VII, Xperia Z3, ZV-1, ZV-E1, ZV-E10, ZV-E10 II

**YI Technology**: M1


# Images

Images are the core of Autoenhance.ai. This section covers the full lifecycle of an image — from creating and uploading it, through tuning how it's enhanced, to downloading the finished result.

## In this section

* [**Managing Images**](/images/managing-images) — Create, upload, reprocess, retrieve, delete, and report images.
* [**Settings**](/images/basic-enhancements) — Tune the enhancement applied to your images, from style and lens/perspective corrections to fixing things that were wrong in the shot itself (like a grey sky or a TV left on).
* [**Downloading Images**](/images/downloading-images) — Download original and enhanced images, with control over size, format, quality, and watermark.


# Managing Images

These endpoints cover everything you need to work with an image throughout its life — creating and uploading it, re-running the enhancement, fetching its details, removing it, and sending us feedback.

## In this section

* [**Creating & Uploading**](/images/managing-images/creating-and-uploading) — Create an image and upload its file.
* [**Reprocessing**](/images/managing-images/reprocessing) — Re-enhance an image you own with new settings.
* [**Retrieving**](/images/managing-images/retrieveing) — Fetch an image and its details by ID.
* [**Deleting**](/images/managing-images/deleting) — Delete images you own.
* [**Reporting**](/images/managing-images/reporting) — Report and review images to share feedback with us.


# Creating & Uploading

This API endpoint allows you to create an image. To create an image, you must provide a valid API key.

{% hint style="info" %}
We've prepared quick start guides for uploading images the simplest way possible. If you're stuck, or perhaps want to see simple code examples, then start over there!

[Single Image](/getting-started/quickstart/single-bracket)

[HDR Brackets](/getting-started/quickstart/hdr)
{% endhint %}

### Creating image

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/images/" method="post" expanded="false" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}

{% hint style="info" %}
All of your uploaded images will contain an **order\_id** even if you don't specify it. If you want to upload multiple images into an order, you need to specify the **order\_id** while creating the image in our API. Learn more on the [Orders page](/orders).
{% endhint %}

After successfully creating an image, the response will include an `upload_url` or `s3PutObjectUrl` if you're using an older API version. To upload the physical image to our service, make a PUT request to this URL with the image in the body of the request.

## Uploading image

<mark style="color:orange;">`PUT`</mark> **`upload_url || s3PutObjectUrl`**

The body should contain the data for your image and the Content-Type should be equal to what you sent when creating the image.

**Headers**

| Name         | Value                                                                                                                                                                                                                                                                   |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Content-Type | <p>eg. <code>image/jpeg</code> This value has to match the used <code>content\_type</code> in create image request!<br><br>If you don't specify content\_type in the create image request please specify <code>application/octet-stream</code> for the header value</p> |

**Body**

| Type         | Description                     |
| ------------ | ------------------------------- |
| File or Blob | Image in a Blob or File format. |

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "success"
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "error": "Invalid request"
}
```

{% endtab %}
{% endtabs %}


# Reprocessing

This API endpoint allows you to reprocess any image you own. To reprocess an image, you must provide the `image_id` and a valid API key.

{% hint style="info" %}
**Important note**

All preferences that you don't specify will default to the previously set preferences of your image from the last time it was enhanced.
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const imageId = "ID_OF_YOUR_IMAGE";
const preferences = {
  ai_version: "4.x",
  enhance: true,
  enhance_type: 'neutral',
  hdr: true
}

const processImage = async (imageId, apiKey, preferences) => {
    const processImageResponse = await fetch(
      `https://api.autoenhance.ai/v3/images/${imageId}/process`,
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "x-api-key": apiKey,
        },
        body: JSON.stringify({
          ...preferences
        }),
      }
    );

    const data = await processImageResponse.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
image_id = "ID_OF_YOUR_IMAGE"
preferences = {
    "ai_version": "4.x",
    "enhance": True,
    "enhance_type": "neutral",
    "hdr": True
}

def edit_image(api_key, image_id, preferences):
    url = f"https://api.autoenhance.ai/v3/images/{image_id}/process"
    headers = {
        "Content-Type": "application/json",
        "x-api-key": api_key,
    }
    payload = {
        **preferences
    }
    
    response = requests.post(url, headers=headers, json=payload)
    response_data = response.json()

    return response_data
```

{% endtab %}

{% tab title="PHP" %}

```php
$image_id = "ID_OF_YOUR_IMAGE";
$api_key = "YOUR_API_KEY";
$preferences = array(
    'ai_version' => '4.x',
    'enhance' => true,
    'enhance_type' => 'neutral',
    'hdr' => true
);

function process_image($image_id, $api_key, $preferences) {
    $url = "https://api.autoenhance.ai/v3/images/$image_id/process";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => json_encode($preferences),
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error processing image';
    }

    $data = json_decode($result, true);
    // Process the $data as needed
    return $data;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X POST \
  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE/process \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
        "ai_version": "4.x",
        "enhance": true,
        "enhance_type": "neutral",
        "hdr": true
      }'
```

{% endtab %}
{% endtabs %}

The response after successfully editing or reprocessing an image will contain all the details of your image with the uploaded values.

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/images/{id}/process" method="post" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Retrieveing

This API endpoint allows you to retrieve a image. To retrieve an image, you must provide the `image_id`.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const imageId = "ID_OF_YOUR_IMAGE";

const getImage = async (imageId) => {
    const getImageResponse = await fetch(
      `https://api.autoenhance.ai/v3/images/${imageId}`,
      { method: "GET" }
    );

    const image = await getOrderResponse.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
image_id = "ID_OF_YOUR_IMAGE";

def get_image(image_id):
    url = f"https://api.autoenhance.ai/v3/images/{image_id}"
    
    response = requests.get(url)
    response_data = response.json()
    
    return response_data
```

{% endtab %}

{% tab title="PHP" %}

```php
$image_id = "ID_OF_YOUR_IMAGE";

function get_image($image_id) {
    $url = "https://api.autoenhance.ai/v3/images/$image_id";

    $options = array(
        'http' => array(
            'method'  => 'GET',
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error getting image';
    }

    $image = json_decode($result, true);
   
    return $image;
}

```

{% endtab %}

{% tab title="cURL" %}

```
curl -X GET \
  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE \
  -H 'Content-Type: application/json'
```

{% endtab %}
{% endtabs %}

The response after successfully fetching an image will contain all the details of your image.

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/images/{id}" method="get" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Deleting

This API endpoint allows you to delete images that you own. To delete an image, you must provide the `image_id` and a valid API key.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const imageId = "ID_OF_YOUR_IMAGE";
const apiKey = "YOUR_API_KEY";

const deleteImage = async (imageId, apiKey) => {
    const deleteImageResponse = await fetch(
      `https://api.autoenhance.ai/v3/images/${imageId}`,
      { 
        method: "DELETE" 
        headers:{
          "x-api-key": apiKey,  
        }
      }
    );
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

image_id = "ID_OF_YOUR_IMAGE"
api_key = "YOUR_API_KEY"

def delete_order(image_id, api_key):
    url = f"https://api.autoenhance.ai/v3/images/{image_id}"
    headers = {
        "x-api-key": api_key
    }
    
    response = requests.delete(url, headers=headers)
```

{% endtab %}

{% tab title="PHP" %}

<pre><code>$image_id = "ID_OF_YOUR_IMAGE";
$api_key = "YOUR_API_KEY";

<strong>function delete_image($image_id, $api_key) {
</strong>    $url = "https://api.autoenhance.ai/v3/images/$image_id";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'DELETE',
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error deleting image';
    }

    return 'Image deleted successfully';
}
</code></pre>

{% endtab %}

{% tab title="cURL" %}

```
curl -X DELETE \
  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
```

{% endtab %}
{% endtabs %}

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/images/{id}" method="delete" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Reporting

Your feedback is extremely valuable to us, so please don't hesitate to share your thoughts!

This API endpoint allows you to report and review images. To report an image, you must provide the `image_id` , `score`, `categories`, and a valid API key.

{% hint style="info" %}
**Before you continue**\
You can find the list of report categories in the API specification. Additionally, there's an optional `comment` property where you can provide any feedback.
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const imageId = "ID_OF_YOUR_IMAGE";
const apiKey = "YOUR_API_KEY";
const score = 4;
const categories = ["LENS_CORRECTION","AUTO_PRIVACY"]

const reportImage = async (imageId, apiKey, score, categories) => {
    const reportImageResponse = await fetch(
      `https://api.autoenhance.ai/v3/images/${imageId}/report`,
      { 
        method: "POST" 
        headers:{
          "x-api-key": apiKey,  
        },
        body: JSON.stringify({
          score: score,
          categories: categories
        }),
      }
    );
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

image_id = "ID_OF_YOUR_IMAGE"
api_key = "YOUR_API_KEY"
score = 4
categories = ["LENS_CORRECTION", "AUTO_PRIVACY"]

def report_image(image_id, api_key, score, categories):
    url = f"https://api.autoenhance.ai/v3/images/{image_id}/report"
    headers = {
        "x-api-key": api_key,
        "Content-Type": "application/json"
    }
    data = {
        "score": score,
        "categories": categories
    }

    response = requests.post(url, headers=headers, data=json.dumps(data))
    return response
```

{% endtab %}

{% tab title="PHP" %}

```php
$image_id = "ID_OF_YOUR_IMAGE";
$api_key = "YOUR_API_KEY";
$score = 4;
$categories = array("LENS_CORRECTION", "AUTO_PRIVACY");

function report_image($image_id, $api_key, $score, $categories) {
    $url = "https://api.autoenhance.ai/v3/images/$image_id/report";

    $data = array(
        'score' => $score,
        'categories' => $categories
    );

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => json_encode($data),
        ),
    );

    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error reporting image';
    }

    return 'Image reported successfully';
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X POST \
  https://api.autoenhance.ai/v3/images/ID_OF_YOUR_IMAGE/report \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
        "score": 4,
        "categories": ["LENS_CORRECTION", "AUTO_PRIVACY"]
    }'
```

{% endtab %}
{% endtabs %}

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/images/{id}/report" method="post" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Settings

Settings or enhancement preferences allow you to make tweaks and adjustments to the final enhancement of your image. You can specify all of the settings while [uploading your images](/images/managing-images/creating-and-uploading) and edit them even after the image has been processed.

## In this section

* [**Enhancement Style**](/images/basic-enhancements/enhancement-style) — Choose the AI enhancement style trained for your region and property type.
* [**Lens Correction**](/images/basic-enhancements/lens-correction) — Correct lens distortions for a more accurate, balanced perspective.
* [**Vertical Correction**](/images/basic-enhancements/vertical-correction) — Straighten wonky vertical angles for a professional look.
* [**Window Pull Type**](/images/basic-enhancements/window-pull) — Recover and highlight the view seen through windows.
* [**Auto Privacy**](/images/basic-enhancements/auto-privacy) — Automatically detect and blur faces and license plates.
* [**Restaging**](/images/basic-enhancements/restaging) — Go back in time and readjust the scene: replace skies, black out TVs, light fireplaces, remove reflections, and green up grass.


# Enhancement Style

We've trained our AI in different locations to suit your needs

**Property Name:** `enhance_type`

{% hint style="info" %}
`enhance_type` is optional on our current AI versions (`stable`, `latest`, and `beta` — all the same at the moment). You don't need to set it at all.
{% endhint %}

**Accepted Values:** <mark style="color:blue;">string</mark>

* `neutral`: Creates a neutral exposure.

#### Sample Image

<figure><img src="/files/os2XyQjOxCfPbCWJzjPN" alt=""><figcaption><p>Example of <code>neutral</code> Enhancement style</p></figcaption></figure>


# Lens Correction

Correct lens distortions in your photographs for a more accurate and balanced perspective.

**Property Name:** `lens_correction`

**Accepted Values:** <mark style="color:blue;">boolean</mark>

* `boolean`: Turns the feature on/off.

### Sample images

{% tabs %}
{% tab title="Lens Correction" %}

<figure><img src="/files/dpis4gRVKLCgPRKQuYVT" alt=""><figcaption><p>Example of <code>true</code> (enabled) Lens Correction</p></figcaption></figure>
{% endtab %}

{% tab title="No Lens Correction" %}

<figure><img src="/files/mw78rniAa121e1gebAau" alt=""><figcaption><p>Example of <code>false</code> (disabled) Lens Correction</p></figcaption></figure>
{% endtab %}
{% endtabs %}


# Vertical Correction

Correct wonky angles in your images for a professional look.

**Property Name:** `vertical_correction`

**Accepted Values:** <mark style="color:blue;">boolean</mark>

* `boolean`: Turns the feature on/off.

### Sample images

{% tabs %}
{% tab title="Vertical Correction" %}

<figure><img src="/files/nP4ShECRY0AqPDKekIiT" alt=""><figcaption><p>Example of <code>true</code> (enabled) Vertical Correction</p></figcaption></figure>
{% endtab %}

{% tab title="No Vertical Correction" %}

<figure><img src="/files/JG51wUvBzwZwiSVlP8TP" alt=""><figcaption><p>Example of <code>false</code> (disabled) Vertical Correction</p></figcaption></figure>
{% endtab %}
{% endtabs %}


# Window Pull Type

Highlight captivating background content seen through windows with ease.

**Property Name:** `window_pull_type`

**Accepted Values:** <mark style="color:blue;">string</mark>

* `NONE`: Disables window pulls
* `ONLY_WINDOWS`: Pulls your windows
* `WINDOWS_WITH_SKIES`: Pulls your windows and replaces the skies

### Sample images

{% tabs %}
{% tab title="NONE" %}

<figure><img src="/files/1AQx7NBpRq3f4KhT28q5" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="ONLY\_WINDOWS" %}

<figure><img src="/files/TTiJKM4O1eLH4JqQmo0L" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="WINDOWS\_WITH\_SKIES" %}

<figure><img src="/files/Kr2Z0H5lcCl4RD51Q0VK" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


# Auto Privacy

Protect the privacy of individuals in your real estate photos with our AI-powered auto privacy feature. - it automatically detects faces and license plates and blurs them out.

**Property Name:** `privacy`

**Accepted Values:** <mark style="color:blue;">boolean</mark>

* `boolean`: Turns the feature on/off.

### Sample images

{% tabs %}
{% tab title="Auto Privacy" %}

<figure><img src="/files/hSVlTJUs2Ftrz15LVj1I" alt=""><figcaption><p>Example of <code>true</code> (enabled) Auto Privacy</p></figcaption></figure>
{% endtab %}

{% tab title="No Auto Privacy" %}

<figure><img src="/files/WUhM8xx5KWM8VVBgRiei" alt=""><figcaption><p>Example of <code>false</code> (disabled) Auto Privacy</p></figcaption></figure>
{% endtab %}
{% endtabs %}


# Restaging

Go back in time and readjust how a shot was taken — replace skies, black out TVs, light fireplaces, remove photographer reflections, and make grass greener.

Restaging lets you go back in time and change how a shot was taken — no reshoot required. Catch the property on a grey day, with a dead lawn, a TV left on, or your own reflection in a mirror? Restaging fixes it after the fact: replace the sky with a brighter one, make the grass green and lush, black out the TV, light the fireplace, or remove the photographer — so the photo looks the way it would have on a perfect shoot day.

**Property Name:** `restage`

Use the `restage` object to control these sub-properties:

* [Sky Replacement](/images/basic-enhancements/restaging/sky-replacement) — Uses `sky`.
* [TV Blackout](/images/basic-enhancements/restaging/tv-blackout) — Uses `tvs`.
* [Fire in Fireplaces](/images/basic-enhancements/restaging/fire-in-fireplaces) — Uses `fire_in_fireplaces`.
* [Reflection Removal](/images/basic-enhancements/restaging/reflection-removal) — Uses `photographer`.
* [Grass Greening](/images/basic-enhancements/restaging/grass-greening) — Uses `grass`.

Open each child page for accepted values, examples, and sample images.

{% hint style="info" %}
Sky control moved into `restage.sky` in API version `2026-07-01`, replacing the old top-level `sky_replacement` and `cloud_type` fields. See [Sky Replacement](/images/basic-enhancements/restaging/sky-replacement) for details and migration notes.
{% endhint %}

### Full request example

```json
{
  "restage": {
    "sky": "LOW_CLOUD",
    "tvs": "BLACK_OUT",
    "fire_in_fireplaces": "ALIGHT",
    "photographer": "REMOVE",
    "grass": "GREEN"
  }
}
```


# Sky Replacement

Replace grey, overcast skies with clear or cloud-filled ones.

Replaces a grey or overcast sky with a clear or cloud-filled one of your choosing.

**Parent Property Name:** `restage`

**Sub-property:** `sky`

**Accepted Values:** <mark style="color:blue;">string</mark> | <mark style="color:blue;">null</mark>

**Values:**

* `AS_SHOT`: Keeps the original sky (equivalent to the old `sky_replacement: false`).
* `CLEAR`: Creates a sky without any clouds.
* `LOW_CLOUD`: Creates a sky with low cloud saturation.
* `LOW_CLOUD_LOW_SAT`: Creates a sky with neutral sky and cloud saturation.
* `HIGH_CLOUD`: Creates a sky with high cloud saturation.
* `WHISPY_CLOUD`: Creates a sky with light, wispy clouds.
* `DUSK_CLOUD`: Creates a warm, dusk-toned sky.

**Default:** `AS_SHOT`

**Example:**

```json
{
  "restage": {
    "sky": "LOW_CLOUD"
  }
}
```

{% hint style="info" %}
**Upgrading from `sky_replacement` / `cloud_type`?** From API version `2026-07-01`, sky control is consolidated into the single `restage.sky` property. On older versions the separate `sky_replacement` (boolean) and `cloud_type` (enum) fields still work and are folded into `restage.sky` automatically. See [API Versions](/api-versions) for the full migration.
{% endhint %}

{% hint style="info" %}
`WHISPY_CLOUD` and `DUSK_CLOUD` are only produced by more recent AI versions. On older AI versions the request is still accepted, but these styles won't be applied. See [AI Versions](/ai-version) to check or update your AI version.
{% endhint %}

### Sample images

{% tabs %}
{% tab title="AS\_SHOT" %}

<figure><img src="/files/uoY6usCyw6Ck0t06Pqzx" alt=""><figcaption><p>Example of original image with the sky kept as shot</p></figcaption></figure>
{% endtab %}

{% tab title="CLEAR" %}

<figure><img src="/files/6uWgEQG3bhnaagYDArkA" alt=""><figcaption><p>Example of <code>CLEAR</code> Sky Replacement</p></figcaption></figure>
{% endtab %}

{% tab title="LOW\_CLOUD" %}

<figure><img src="/files/JfaCqtYUERBNNLudcJ19" alt=""><figcaption><p>Example of <code>LOW_CLOUD</code> Sky Replacement</p></figcaption></figure>
{% endtab %}

{% tab title="LOW\_CLOUD\_LOW\_SAT" %}

<figure><img src="/files/z1PvktCqMqZNxA4fD3zi" alt=""><figcaption><p>Example of <code>LOW_CLOUD_LOW_SAT</code> Sky Replacement</p></figcaption></figure>
{% endtab %}

{% tab title="HIGH\_CLOUD" %}

<figure><img src="/files/g27qqfxM4eBhDtfEGYfd" alt=""><figcaption><p>Example of <code>HIGH_CLOUD</code> Sky Replacement</p></figcaption></figure>
{% endtab %}

{% tab title="WHISPY\_CLOUD" %}

<figure><img src="/files/VdHynEBmY42Yzw5bGh3J" alt=""><figcaption><p>Example of <code>WHISPY_CLOUD</code> Sky Replacement</p></figcaption></figure>
{% endtab %}

{% tab title="DUSK\_CLOUD" %}

<figure><img src="/files/2AjDcKbWHEzcnG6Tkj7d" alt=""><figcaption><p>Example of <code>DUSK_CLOUD</code> Sky Replacement</p></figcaption></figure>
{% endtab %}
{% endtabs %}


# TV Blackout

Remove reflections off TV screens and make them appear black

Controls the appearance of television screens in the photo.

**Parent Property Name:** `restage`

**Sub-property:** `tvs`

**Accepted Values:** <mark style="color:blue;">string</mark> | <mark style="color:blue;">null</mark>

**Values:**

* `AS_SHOT`: Leaves the TV screen exactly as captured in the raw photo.
* `BLACK_OUT`: In-paints the screen to appear completely black or off.

**Default:** `AS_SHOT`

**Example:**

```json
{
  "restage": {
    "tvs": "BLACK_OUT"
  }
}
```

### Sample images

{% tabs %}
{% tab title="BLACK\_OUT" %}

<figure><img src="/files/BoJ5M9gLqAE9wUiy3kIE" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="AS\_SHOT" %}

<figure><img src="/files/zWCqcZiamgYYaaIlgD4h" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


# Fire in Fireplaces

Add fire to fireplaces

Controls the appearance of fireplaces.

**Parent Property Name:** `restage`

**Sub-property:** `fire_in_fireplaces`

**Accepted Values:** <mark style="color:blue;">string</mark> | <mark style="color:blue;">null</mark>

**Values:**

* `AS_SHOT`: Leaves the fireplace exactly as captured.
* `ALIGHT`: In-paints fire into the fireplace to make it appear active.

**Default:** `AS_SHOT`

**Example:**

```json
{
  "restage": {
    "fire_in_fireplaces": "ALIGHT"
  }
}
```

### Sample images

{% tabs %}
{% tab title="ALIGHT" %}

<figure><img src="/files/a5VRcvAuq1ITpiv2tL1V" alt=""><figcaption><p>Example of <code>ALIGHT</code> fire in fireplace</p></figcaption></figure>
{% endtab %}

{% tab title="AS\_SHOT" %}

<figure><img src="/files/DZTfBaaJHCC5qDyjo8Ml" alt=""><figcaption><p>Example of <code>AS_SHOT</code> fireplace</p></figcaption></figure>
{% endtab %}
{% endtabs %}


# Reflection Removal

Remove photographer reflections and shadows

Controls removal of photographer reflections and shadows, including tripods and cameras.

**Parent Property Name:** `restage`

**Sub-property:** `photographer`

**Accepted Values:** <mark style="color:blue;">string</mark> | <mark style="color:blue;">null</mark>

**Values:**

* `AS_SHOT`: Leaves photographer reflections exactly as captured.
* `REMOVE`: Removes the photographer, including their shadow, reflection, hands, and camera equipment.

**Default:** `AS_SHOT`

**Example:**

```json
{
  "restage": {
    "photographer": "REMOVE"
  }
}
```

### Sample images

{% tabs %}
{% tab title="REMOVE" %}

<figure><img src="/files/nIpjYdgKA7CZbjYuePna" alt=""><figcaption><p>Example of <code>REMOVE</code> reflection removal</p></figcaption></figure>
{% endtab %}

{% tab title="AS\_SHOT" %}

<figure><img src="/files/uv342nbHYqx84EjiKcag" alt=""><figcaption><p>Example of <code>AS_SHOT</code> reflection removal</p></figcaption></figure>
{% endtab %}
{% endtabs %}


# Grass Greening

Make brown grass appear green

Makes dead and brown grass appear green, alive, and lush.

**Parent Property Name:** `restage`

**Sub-property:** `grass`

**Accepted Values:** <mark style="color:blue;">string</mark> | <mark style="color:blue;">null</mark>

**Values:**

* `AS_SHOT`: Leaves grass in its original state.
* `GREEN`: Improves the look of dead grass and makes it appear green and alive.

**Default:** `AS_SHOT`

**Example:**

```json
{
  "restage": {
    "grass": "GREEN"
  }
}
```

### Sample images

{% tabs %}
{% tab title="GREEN" %}

<figure><img src="/files/7PDRz9zALkoI6cqxCPus" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="AS\_SHOT" %}

<figure><img src="/files/djScJdMtu71zS7UFCjtx" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}


# Downloading Images

Any kind of image that you've uploaded to Autoenhance.ai is downloadable through the web application, or our API. All endpoints accept an parameters to control the size, format, quality and watermark of the image. .\
\
You can download original and preview images free of charge, but **enhanced images require credits**.

{% hint style="info" %}
**Don't have any credits?**\
Subscribe for a monthly plan, or top up in our [web application](https://app.autoenhance.ai/settings?setting=subscription).
{% endhint %}


# Original

Original images are either original single-bracket or merged HDR image that you've uploaded.\
\
The only requirement for downloading original images is the image\_id, you don't need an API key in order to be able to download the image.

{% hint style="info" %}
**Before you continue**\
Original images come in various resolutions. You can add a query parameter size into the request url in order to choose between **small, large or big** resolution.\
\
Don't want to specify the size? Simply don't include it in the URL, and we will default the download to the biggest resolution.
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const size = "big"

const downloadOriginalImage = async (imageId, size) => {
    const response = await fetch(
        `https://api.autoenhance.ai/v3/images/${imageId}/original${size ? size : ''}`,
        { method: "GET" }
    );
    const imageSource = await response.json()
    
    return imageSource
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

size = "big"

def download_original_image(image_id,size):
    url = f'https://api.autoenhance.ai/v3/images/{image_id}/original{size if size else ""}'
    response = requests.get(url)
    image_source = response.json()
    
    return image_source
```

{% endtab %}

{% tab title="PHP" %}

```php
$image_id = "ID_OF_YOUR_IMAGE";
$size = "big";

function download_original_image($image_id, $size) {
    $url = "https://api.autoenhance.ai/v3/images/$image_id/original" . ($size ? $size : '');

    $options = array(
        'http' => array(
            'method' => 'GET'
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error downloading image';
    }

    $image_source = json_decode($result, true);
    return $image_source;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X GET \
  'https://api.autoenhance.ai/v3/images/YOUR_IMAGE_ID/originalbig' \
  -H 'Content-Type: application/json'
```

{% endtab %}
{% endtabs %}

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/images/{id}/original" method="get" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Enhanced

Enhanced images are the final processed output from the AI.\
\
By default this endpoint will return a preview image you can show to your customers before they purchase the image. When they decide they want to download the image simply send `?preview=false` to purchase and download the full sized image from Autoenhance.\
\
During development you can test this workflow without using your credits by utilizing development mode, simply set the `x-dev-mode` to `true`. You can learn more about the development mode [here](#development-mode).\
\
In order to download enhanced images, you need to have a **paid subscription** or a **credit**, API key, and the image\_id.

{% hint style="info" %}
**Don't have any credits?**\
Subscribe for a monthly plan, or top up in our [web application](https://app.autoenhance.ai/settings?setting=subscription).
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const imageId = "ID_OF_YOUR_IMAGE";

const downloadEnhancedImage = async (imageId, apiKey) => {
    const response = await fetch(
        `https://api.autoenhance.ai/v3/images/${imageId}/enhanced`,
        { 
            method: "GET",
            headers: {
                "x-api-key": apiKey,
            },
        }
    );
    const imageSource = await response.json()
    
    return imageSource
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
image_id = "ID_OF_YOUR_IMAGE"

def download_enhanced_image(image_id, api_key):
    url = f'https://api.autoenhance.ai/v3/images/{image_id}/enhanced'
    headers = {
        'x-api-key': api_key
    }
    response = requests.get(url, headers=headers)
    image_source = response.json()
    
    return image_source
```

{% endtab %}

{% tab title="PHP" %}

```php
$image_id = "ID_OF_YOUR_IMAGE";
$api_key = "YOUR_API_KEY";

function download_enhanced_image($image_id, $api_key) {
    $url = "https://api.autoenhance.ai/v3/images/$image_id/enhanced";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'GET'
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error downloading image';
    }

    $image_source = json_decode($result, true);
    return $image_source;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X GET \
  "https://api.autoenhance.ai/v3/images/YOUR_IMAGE_ID/enhanced" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY"
```

{% endtab %}
{% endtabs %}

### AI disclosure label

Enhanced and restaged images are AI-modified, and can be labelled as such to help you meet AI-transparency rules. To overlay a visible **"AI MODIFIED"** badge on the downloaded image, add `visible_disclosure=true`:

```
GET https://api.autoenhance.ai/v3/images/{image_id}/enhanced?visible_disclosure=true
```

Every AI-produced download also carries hidden, machine-readable disclosure (metadata and Content Credentials) automatically, whether or not the visible label is enabled. See [AI Transparency](/ai-transparency) for the full picture and how to verify it.

### Development mode

If you want to test downloading enhanced images without using your credits, you can include a request header `x-dev-mode` .

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const imageId = "ID_OF_YOUR_IMAGE";

const downloadEnhancedImage = async (imageId, apiKey) => {
    const response = await fetch(
        `https://api.autoenhance.ai/v3/images/${imageId}/enhanced`,
        { 
            method: "GET",
            headers: {
                "x-api-key": apiKey,
                "x-dev-mode": true,
            },
        }
    );
    const imageSource = await response.json()
    
    return imageSource
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
image_id = "ID_OF_YOUR_IMAGE"

def download_enhanced_image(image_id, api_key):
    url = f'https://api.autoenhance.ai/v3/images/{image_id}/enhanced'
    headers = {
        'x-api-key': api_key
        'x-dev-mode': True
    }
    response = requests.get(url, headers=headers)
    image_source = response.json()
    
    return image_source
```

{% endtab %}

{% tab title="PHP" %}

```php
$image_id = "ID_OF_YOUR_IMAGE";
$api_key = "YOUR_API_KEY";

function download_enhanced_image($image_id, $api_key) {
    $url = "https://api.autoenhance.ai/v3/images/$image_id/enhanced";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key\r\n" .
                         "x-dev-mode: true\r\n", 
            'method'  => 'GET'
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error downloading image';
    }

    $image_source = json_decode($result, true);
    return $image_source;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl "https://api.autoenhance.ai/v3/images/YOUR_IMAGE_ID/enhanced" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "x-dev-mode: true"
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
When this header is present, the API will return images with a development watermark.
{% endhint %}

Once you are satisfied with the results, simply remove the header to start downloading fully enhanced images without the watermark (credits will be consumed).

### Specification

## GET /v3/images/{id}/enhanced

> Download Enhanced Image

```json
{"openapi":"3.0.3","info":{"title":"Autoenhance API","version":"2026-07-02"},"tags":[{"name":"Images"}],"servers":[{"url":"http://api:8080"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"in":"header","name":"x-api-key","type":"apiKey"}},"schemas":{"HTTPError":{"properties":{"detail":{"type":"object"},"message":{"type":"string"}},"type":"object"},"ValidationError":{"properties":{"detail":{"properties":{"<location>":{"properties":{"<field_name>":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},"message":{"type":"string"}},"type":"object"}}},"paths":{"/v3/images/{id}/enhanced":{"get":{"operationId":"download_enhanced_image","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"DPI of the image, must at least be 72.","in":"query","name":"dpi","required":false,"schema":{"minimum":72,"type":"integer"}},{"description":"Quality of the image, must be between 1 and 90.","in":"query","name":"quality","required":false,"schema":{"maximum":90,"minimum":1,"type":"integer"}},{"description":"Format of the image, must be one of 'avif', 'png', 'jpeg', 'jxl', or 'webp'.","in":"query","name":"format","required":false,"schema":{"enum":["avif","png","jpeg","jxl","webp"],"type":"string"}},{"description":"Whether to show a lower quality preview version.","in":"query","name":"preview","required":false,"schema":{"type":"boolean"}},{"description":"Whether to apply a watermark to the image.","in":"query","name":"watermark","required":false,"schema":{"type":"boolean"}},{"description":"Whether to overlay an AI disclosure label on the image.","in":"query","name":"visible_disclosure","required":false,"schema":{"default":false,"type":"boolean"}},{"description":"Whether to apply finetuning to the image.","in":"query","name":"finetuned","required":false,"schema":{"default":null,"nullable":true,"type":"boolean"}},{"description":"Whether to apply finetuning to the image. Deprecated: use 'finetuned' instead.","in":"query","name":"finetune","required":false,"schema":{"default":null,"nullable":true,"type":"boolean"}},{"description":"Whether to serve the restaged version of the image. Defaults to True (serve restaged if available). Set to False to serve the original enhanced image without restaging.","in":"query","name":"restaged","required":false,"schema":{"default":true,"type":"boolean"}},{"description":"Maximum width of the image in pixels. Must be a positive integer.","in":"query","name":"max_width","required":false,"schema":{"minimum":1,"type":"integer"}},{"description":"Scale factor for the image, must be between 0.0 and 1.0.","in":"query","name":"scale","required":false,"schema":{"maximum":1,"minimum":0,"type":"number"}}],"responses":{"200":{"content":{"image/jpeg":{"schema":{"format":"binary","type":"string"}}},"description":"Successful response"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Authentication error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Validation error"}},"summary":"Download Enhanced Image","tags":["Images"]}}}}
```


# Orders


# Managing Orders

Orders group related images together so you can process and manage them as a single batch. These endpoints cover creating an order, editing it, retrieving one or many, and deleting it.

## In this section

* [**Creating**](/orders/managing-orders/creating) — Create a new order to group your images.
* [**Editing**](/orders/managing-orders/editing) — Update the settings of an order you own.
* [**Retrieving**](/orders/managing-orders/retrieving) — Fetch a single order by ID.
* [**Listing and Pagination**](/orders/managing-orders/listing-and-pagination) — List your orders with `per_page` and `offset` paging.
* [**Deleting**](/orders/managing-orders/deleting) — Delete orders you own.


# Creating

This API endpoint allows you to create orders. To create an order, you must provide a valid API key.

{% hint style="info" %}
**Pro tip**\
You don't need to create an order before you upload your images. Order is already created in the flow of creating images even if you don't specify an order\_id to it, but it might be handy to have it ready when uploading multiple or HDR images.
{% endhint %}

{% hint style="info" %}
**Important note**\
You can assign a **name** and a custom **order\_id** to an order. Be careful though, the order\_id has to be **unique**, and we will generate it and return it to you in the response from our API.
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

<pre class="language-javascript"><code class="lang-javascript">const apiKey = "YOUR_API_KEY";

<strong>const createOrder = async (apiKey) => {
</strong>    const createOrderResponse = await fetch(
      "https://api.autoenhance.ai/v3/orders",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "x-api-key": apiKey,
        },
        body: JSON.stringify({
          name:"Name of my order"
        }),
      }
    );

    const { order_id, name, images, status } = await createOrderResponse.json();
}
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"

def create_order(api_key):
    url = "https://api.autoenhance.ai/v3/orders"
    headers = {
        "Content-Type": "application/json",
        "x-api-key": api_key,
    }
    payload = {
        "name": "Name of my order"
    }
    
    response = requests.post(url, headers=headers, json=payload)
    response_data = response.json()
    
    order_id = response_data.get('order_id')
    name = response_data.get('name')
    images = response_data.get('images')
    status = response_data.get('status')

    return order_id, name, images, status
```

{% endtab %}

{% tab title="PHP" %}

```php
$api_key = "YOUR_API_KEY";

function create_order($api_key) {
    $url = "https://api.autoenhance.ai/v3/orders";

    $data = array(
        'name' => 'Name of my order'
    );

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => json_encode($data)
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error creating order';
    }

    $order_details = json_decode($result, true);
    return $order_details;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X POST \
  'https://api.autoenhance.ai/v3/orders' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
        "name": "Name of my order"
    }'
```

{% endtab %}
{% endtabs %}

The response after successfully creating an order will contain all the details of your order. The status will be 'waiting' until you add images to it.

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/orders/" method="post" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Editing

This API endpoint allows you to edit any order you own. To reprocess an image, you must provide the `order_id` and a valid API key.

{% hint style="info" %}
**Important note**\
Currently, you can only edit the name of your orders.
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const orderId = "ID_OF_YOUR_ORDER";

const editOrder = async (orderId, apiKey) => {
    const editOrderResponse = await fetch(
      `https://api.autoenhance.ai/v3/orders/${orderId}`,
      {
        method: "PATCH",
        headers: {
          "Content-Type": "application/json",
          "x-api-key": apiKey,
        },
        body: JSON.stringify({
          name:"Edited name of my order"
        }),
      }
    );

    const { order_id, name, images, status } = await editOrderResponse.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
order_id = "ID_OF_YOUR_ORDER"

def edit_order(api_key, order_id):
    url = f"https://api.autoenhance.ai/v3/orders/{order_id}"
    headers = {
        "Content-Type": "application/json",
        "x-api-key": api_key,
    }
    payload = {
        "name": "Edited name of my order"
    }
    
    response = requests.patch(url, headers=headers, json=payload)
    response_data = response.json()
    
    order_id = response_data.get('order_id')
    name = response_data.get('name')
    images = response_data.get('images')
    status = response_data.get('status')

    return order_id, name, images, status
```

{% endtab %}

{% tab title="PHP" %}

<pre class="language-php"><code class="lang-php">$order_id = "ID_OF_YOUR_ORDER";
$api_key = "YOUR_API_KEY";

<strong>function edit_order($order_id, $api_key) {
</strong>    $url = "https://api.autoenhance.ai/v3/orders/$order_id";
    $data = array(
        'name' => 'Edited name of my order'
    );

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'PATCH',
            'content' => json_encode($data)
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error editing order';
    }

    $order_details = json_decode($result, true);
    return $order_details;
}
</code></pre>

{% endtab %}

{% tab title="cURL" %}

```
curl -X PATCH \
  'https://api.autoenhance.ai/v3/orders/YOUR_ORDER_ID' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
        "name": "Edited name of my order"
    }'
```

{% endtab %}
{% endtabs %}

The response after successfully editing an order will contain all the details of your order with the uploaded values.

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/orders/{id}" method="patch" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Retrieving

This API endpoint allows you to retrieve a single order. To retrieve an order, you must provide the `order_id`.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const orderId = "ID_OF_YOUR_ORDER";

const getOrder = async (orderId) => {
    const getOrderResponse = await fetch(
      `https://api.autoenhance.ai/v3/orders/${orderId}`,
      { method: "GET" }
    );

    const { order_id, name, images, status } = await getOrderResponse.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
order_id = "ID_OF_YOUR_ORDER";

def get_order(order_id):
    url = f"https://api.autoenhance.ai/v3/orders/{order_id}"
    
    response = requests.get(url)
    response_data = response.json()
    
    order_id = response_data.get('order_id')
    name = response_data.get('name')
    images = response_data.get('images')
    status = response_data.get('status')
    
    return order_id, name, images, status
```

{% endtab %}

{% tab title="PHP" %}

```php
$order_id = "ID_OF_YOUR_ORDER";

function get_order($order_id) {
    $url = "https://api.autoenhance.ai/v3/orders/$order_id";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n",
            'method'  => 'GET'
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error fetching order';
    }

    $order_details = json_decode($result, true);
    return $order_details;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X GET \
  'https://api.autoenhance.ai/v3/orders/YOUR_ORDER_ID' \
  -H 'Content-Type: application/json'
```

{% endtab %}
{% endtabs %}

The response after successfully fetching an order will contain all the details of your order.

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/orders/{id}" method="get" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}


# Listing and Pagination

The orders endpoint allows you to retrieve your orders with support for pagination using an offset. This enables you to efficiently navigate through large sets of orders. The endpoint supports `per_page` and `offset` query parameters. To retrieve orders with pagination, you must provide a valid API key.

### Retrieving a list of orders with a set per page limit

{% tabs %}
{% tab title="JavaScript" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>const apiKey = "YOUR_API_KEY";
</strong>const perPage = 16;

const getOrders = async (perPage, apiKey) => {
    const getOrdersResponse = await fetch(
      `https://api.autoenhance.ai/v3/orders?per_page=${perPage}`,
      { 
        method: "GET",
        headers:{
          "x-api-key": apiKey,  
        }
      }
    );

    const { orders, pagination } = await getOrdersResponse.json();
}
</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
per_page = 16

def get_orders(per_page, api_key):
    url = f"https://api.autoenhance.ai/v3/orders?per_page={per_page}"
    headers = {
        "x-api-key": api_key
    }
    
    response = requests.get(url, headers=headers)
    response_data = response.json()
    
    orders = response_data.get('orders')
    pagination = response_data.get('pagination')
    
    return orders, pagination
```

{% endtab %}

{% tab title="PHP" %}

```php
$apiKey = "YOUR_API_KEY";
$perPage = 16;

function get_orders($perPage, $apiKey) {
    $url = "https://api.autoenhance.ai/v3/orders?per_page=$perPage";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $apiKey",
            'method'  => 'GET'
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error fetching orders';
    }

    $orders_data = json_decode($result, true);
    return $orders_data;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X GET \
  'https://api.autoenhance.ai/v3/orders?per_page=16' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
```

{% endtab %}
{% endtabs %}

As you can see, the response returns an orders, and pagination object. The orders object contains the list of your orders, and pagination contains two values: **per\_page**, and **next\_offset**.

### Retrieving a paginated list of orders

If you want to load more orders with a pagination (next batch of orders without the initial orders that you've already fetched), you will need to use the next\_offset value in your next request.

{% hint style="info" %}
The value **next\_offset** is returned from in the object that is returned from retrieving a list of orders with a set per page limit
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const pagination = { per_page:16, next_offset:"string" };

const loadMoreOrders = async (perPage, nextOffset, apiKey) => {
    const loadMoreOrdersResponse = await fetch(
      `https://api.autoenhance.ai/v3/orders?per_page=${perPage}&offset=${nextOffset}`,
      { 
        method: "GET",
        headers:{
          "x-api-key": apiKey,  
        }
      }
    );

    const { orders, pagination } = await getOrdersResponse.json();
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
per_page = 16
next_offset = "string"

def load_more_orders(per_page, next_offset, api_key):
    url = f"https://api.autoenhance.ai/v3/orders?per_page={per_page}&offset={next_offset}"
    headers = {
        "x-api-key": api_key
    }
    
    response = requests.get(url, headers=headers)
    response_data = response.json()
    
    orders = response_data.get('orders')
    pagination = response_data.get('pagination')
    
    return orders, pagination
```

{% endtab %}

{% tab title="PHP" %}

<pre class="language-php"><code class="lang-php">$apiKey = "YOUR_API_KEY";
$perPage = 16;
$nextOffset = "<a data-footnote-ref href="#user-content-fn-1">string</a>";

function load_more_orders($perPage, $nextOffset, $apiKey) {
    $url = "https://api.autoenhance.ai/v3/orders?per_page=$perPage&#x26;offset=$nextOffset";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $apiKey",
            'method'  => 'GET'
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error loading more orders';
    }

    $response_data = json_decode($result, true);
    return $response_data;
}
</code></pre>

{% endtab %}

{% tab title="cURL" %}

<pre><code>curl -X GET \
  'https://api.autoenhance.ai/v3/orders?per_page=16&#x26;offset=<a data-footnote-ref href="#user-content-fn-1">string</a>' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
</code></pre>

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Important note**\
The response will always return pagination object with values that will enable you to fetch next batch of orders if you still have more orders to fetch.
{% endhint %}

### Specification

{% openapi src="<https://api.autoenhance.ai/docs/openapi.spec>" path="/v3/orders/" method="get" %}
<https://api.autoenhance.ai/docs/openapi.spec>
{% endopenapi %}

[^1]: Offset returned from previous response where you've retrieved the orders.


# Deleting

This API endpoint allows you to delete orders that you own. To delete an order, you must provide the `order_id` and a valid API key.

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const orderId = "ID_OF_YOUR_ORDER";
const apiKey = "YOUR_API_KEY";

const deleteOrder = async (orderId, apiKey) => {
    const deleteOrderResponse = await fetch(
      `https://api.autoenhance.ai/v3/orders/${orderId}`,
      { 
        method: "DELETE",
        headers: {
          "x-api-key": apiKey,  
        }
      }
    );
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

order_id = "ID_OF_YOUR_ORDER"
api_key = "YOUR_API_KEY"

def delete_order(order_id, api_key):
    url = f"https://api.autoenhance.ai/v3/orders/{order_id}"
    headers = {
        "x-api-key": api_key
    }
    
    response = requests.delete(url, headers=headers)
```

{% endtab %}

{% tab title="PHP" %}

```php
$orderId = "ID_OF_YOUR_ORDER";
$apiKey = "YOUR_API_KEY";

function deleteOrder($orderId, $apiKey) {
    $url = "https://api.autoenhance.ai/v3/orders/$orderId";
    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $apiKey\r\n",
            'method'  => 'DELETE'
        )
    );
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    if ($result === FALSE) {
        echo "Error deleting order";
    } else {
        echo "Order deleted successfully";
    }
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X DELETE \
  'https://api.autoenhance.ai/v3/orders/ID_OF_YOUR_ORDER' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY'
```

{% endtab %}
{% endtabs %}

### Specification

## Delete Order

> Deletes the specific order.

```json
{"openapi":"3.0.3","info":{"title":"Autoenhance API","version":"2026-07-02"},"tags":[{"name":"Orders"}],"servers":[{"url":"http://api:8080"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"in":"header","name":"x-api-key","type":"apiKey"}},"schemas":{"HTTPError":{"properties":{"detail":{"type":"object"},"message":{"type":"string"}},"type":"object"}}},"paths":{"/v3/orders/{id}":{"delete":{"description":"Deletes the specific order.","operationId":"delete_order","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Authentication error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Not found"}},"summary":"Delete Order","tags":["Orders"]}}}}
```


# Grouping Brackets and Processing Orders

This API endpoint allows you to group/merge HDR brackets in your order. To group the brackets in the order, you must provide the `order_id` and a valid API key.

{% hint style="info" %}
You can group your images by specific amount of brackets when using the property `number_of_brackets_per_image`, we will group you brackets based on a visual analysis if you don't specify the number of brackets. You can group up to 500 brackets per order.
{% endhint %}

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const apiKey = "YOUR_API_KEY";
const orderId = "ID_OF_YOUR_ORDER";
const preferences = {
  ai_version: "5.x",
  enhance: true,
  enhance_type: 'property',
  hdr: true
}
const mergeOrder = async (apiKey,orderId, preferences) => {
    return await fetch(
      `https://api.autoenhance.ai/v3/orders/${orderId}/process`,
      {
        method: "POST",
        headers: {
          "x-api-key": apiKey,
        },
        body: JSON.stringify({
          image_name: "your-image-name",
          contentType: "image/jpeg",
          ...preferences
        }),
      }
    );
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = "YOUR_API_KEY"
order_id = "ID_OF_YOUR_ORDER"
preferences = {
    "ai_version": "5.x",
    "enhance": True,
    "enhance_type": "property",
    "hdr": True
}

def merge_order(api_key, order_id, preferences):
    url = f"https://api.autoenhance.ai/v3/orders/{order_id}/merge"
    headers = {
        "x-api-key": api_key,
        "Content-Type": "application/json"
    }
    body = {
        "image_name": "your-image-name",
        "contentType": "image/jpeg",
        **preferences
    }
    response = requests.post(url, headers=headers, data=json.dumps(body))
    return response
```

{% endtab %}

{% tab title="PHP" %}

```php
$api_key = "YOUR_API_KEY";
$order_id = "ID_OF_YOUR_ORDER";
$preferences = array(
    "ai_version" => "5.x",
    "enhance" => true,
    "enhance_type" => "property",
    "hdr" => true
);

function merge_order($api_key, $order_id, $preferences) {
    $url = "https://api.autoenhance.ai/v3/orders/$order_id/merge";

    $options = array(
        'http' => array(
            'header'  => "Content-Type: application/json\r\n" .
                         "x-api-key: $api_key",
            'method'  => 'POST',
            'content' => json_encode($preferences)
        )
    );

    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    if ($result === FALSE) {
        return 'Error merging order';
    }

    return $result;
}
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X POST \
  'https://api.autoenhance.ai/v3/orders/YOUR_ORDER_ID/merge' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
        "ai_version": "5.x",
        "enhance": true,
        "enhance_type": "property",
        "hdr": true,
        "image_name": "your-image-name",
        "contentType": "image/jpeg"
    }'
```

{% endtab %}
{% endtabs %}

Merging can take between 10 seconds to 5 minutes, depending on the number of brackets that need grouping. During this time, no images will show up when you try to [retrieve your order](/orders/managing-orders/retrieving).

Once a grouping has been completed all groups will show up when you [retrieve your order](/orders/managing-orders/retrieving), and the AI will start to merge HDRs and enhance them.

### Specification

## Process Order

> Triggers the grouping of any brackets contained in the order and process the final images in the order.\
> \
> TODO: Ideally we use transactions to help deal with errors but it;s a pain with MongoEngine so need to do it as part of Django or other ORM

```json
{"openapi":"3.0.3","info":{"title":"Autoenhance API","version":"2026-07-02"},"tags":[{"name":"Orders"}],"servers":[{"url":"http://api:8080"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"in":"header","name":"x-api-key","type":"apiKey"}},"schemas":{"OrderHDRProcessIn":{"properties":{"ai_version":{"description":"The version of the AI model to use for enhancing the image. Versions ending in an .x will use the latest minor version as soon as it's published.","type":"string"},"cloud_type":{"description":"The type of clouds in the new sky to replace the original sky with. Options include: CLEAR, LOW_CLOUD, HIGH_CLOUD","enum":["CLEAR","LOW_CLOUD","HIGH_CLOUD",null],"nullable":true,"type":"string"},"enhance":{"default":true,"description":"Whether to enhance the image.","type":"boolean"},"enhance_type":{"description":"The type of enhancement to apply to the image. PROPERTY or PROPERTY_USA is used with AI version < 4.0, for >= 4.0 use WARM or NEUTRAL..","enum":["property","property_usa","warm","neutral","modern"],"type":"string"},"finetune_settings":{"anyOf":[{"nullable":true,"type":"object"},{"$ref":"#/components/schemas/FinetuneOptions"}]},"images":{"items":{"$ref":"#/components/schemas/OrderHDRImageIn"},"type":"array"},"lens_correction":{"default":true,"description":"Correct any lens distortion in the image.","type":"boolean"},"number_of_brackets_per_image":{"description":"If provided then group into an image after every specified number of brackets, if  not provided or set to 0 then we automatically group based on visual analysis.","type":"integer"},"preset_id":{"nullable":true,"type":"string"},"privacy":{"description":"Whether to blur any faces or license plates in the image.","nullable":true,"type":"boolean"},"restage":{"anyOf":[{"$ref":"#/components/schemas/Restage"},{"nullable":true,"type":"object"}],"description":"Restage options for in-painting or modifying scene elements. Allows correcting details like lighting a fireplace, removing fingerprints from a TV screen, or removing unwanted items like tripods."},"sky_replacement":{"description":"Enable the replacement of the original sky for a summer sky.","type":"boolean"},"tripod_hide":{"description":"Whether to crop the bottom of 360-degree images to hide the tripod. Note: This performs a simple crop and does not use generative in-painting.","nullable":true,"type":"boolean"},"upscale":{"description":"Whether to upscale the image.","type":"boolean"},"vertical_correction":{"default":true,"description":"Correct any vertical distortion in the image so that it appears straight.","type":"boolean"},"window_pull_type":{"description":"What type of window pull to apply to the image (Available since AI version >= 4.0, WITH_SKIES can only be used from AI version 5.2 or higher).","enum":["NONE","ONLY_WINDOWS","WINDOWS_WITH_SKIES",null],"nullable":true,"type":"string"}},"type":"object"},"FinetuneOptions":{"additionalProperties":false,"properties":{},"type":"object"},"OrderHDRImageIn":{"additionalProperties":false,"properties":{"bracket_ids":{"items":{"type":"string"},"type":"array"}},"type":"object"},"Restage":{"properties":{"fire_in_fireplaces":{"description":"Controls the appearance of fireplaces. 'AS_SHOT' leaves the fireplace exactly as captured (e.g., unlit). 'ALIGHT' in-paints fire into the fireplace to make it appear active.","enum":["AS_SHOT","ALIGHT",null],"nullable":true,"type":"string"},"grass":{"description":"Controls grass appearance enhancement. 'AS_SHOT' leaves the grass exactly as captured. 'GREEN' applies grass greening to make brown/dead grass appear lush and green.","enum":["AS_SHOT","GREEN",null],"nullable":true,"type":"string"},"photographer":{"description":"Controls removal of photographer. 'AS_SHOT' leaves the photographer exactly as captured. 'REMOVE' removes the photographer including their shadow, reflection and hands.","enum":["AS_SHOT","REMOVE",null],"nullable":true,"type":"string"},"sky":{"description":"Controls sky replacement. 'AS_SHOT' keeps the original sky (no replacement). Any cloud type value replaces the sky with that cloud type. Cloud type options include: AS_SHOT, CLEAR, LOW_CLOUD, HIGH_CLOUD.","enum":["AS_SHOT","CLEAR","LOW_CLOUD","HIGH_CLOUD",null],"nullable":true,"type":"string"},"tvs":{"description":"Controls the appearance of television screens in the photo. 'AS_SHOT' leaves the TV screen exactly as captured. 'BLACK_OUT' in-paints the screen to appear completely black/off.","enum":["AS_SHOT","BLACK_OUT",null],"nullable":true,"type":"string"}},"type":"object"},"OrderHDRProcessOut":{"additionalProperties":false,"properties":{"created_at":{"description":"The creation date of the order.","format":"date-time","type":"string"},"default_image_sort_order":{"description":"Default sort order for images in the order.","enum":["name","-name","date_added","-date_added","custom"]},"images":{"description":"The list of images for the order.","readOnly":true},"is_deleted":{"description":"The status of the order.","type":"boolean"},"is_merging":{"description":"The processing status for the order","type":"boolean"},"is_processing":{"description":"The processing status for the order","type":"boolean"},"last_updated_at":{"description":"The last updated date of the order.","format":"date-time","type":"string"},"name":{"description":"The name for the order.","type":"string"},"order_id":{"description":"The ID for the order.","type":"string"},"status":{"description":"The status of the order.","readOnly":true},"total_images":{"description":"Number of images in the  order.","type":"number"}},"type":"object"},"HTTPError":{"properties":{"detail":{"type":"object"},"message":{"type":"string"}},"type":"object"},"ValidationError":{"properties":{"detail":{"properties":{"<location>":{"properties":{"<field_name>":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},"message":{"type":"string"}},"type":"object"}}},"paths":{"/v3/orders/{id}/process":{"post":{"description":"Triggers the grouping of any brackets contained in the order and process the final images in the order.\n\nTODO: Ideally we use transactions to help deal with errors but it;s a pain with MongoEngine so need to do it as part of Django or other ORM","operationId":"process_order","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderHDRProcessIn"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderHDRProcessOut"}}},"description":"Successful response"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Authentication error"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPError"}}},"description":"Not found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Validation error"}},"summary":"Process Order","tags":["Orders"]}}}}
```


# Webhooks

You can subscribe to our webhooks to receive automatic updates about your images. Webhooks allow our system to send real-time notifications to your server whenever an update occurs, ensuring you are always informed about the status of your images.

### Setup

In order to subscribe to our webhooks, you need to set up your account in the API page in our [web application](https://app.autoenhance.ai/application-interface). Once you are in the API page, fill in the Webhook URL form field with the url that the webhooks are supposed to be sent to together with the authentication value if it's necessary, and hit the "Update settings" button.

<figure><picture><source srcset="/files/CBaE0iKcH9dhhD2557ZO" media="(prefers-color-scheme: dark)"><img src="/files/B3ln4MUmq3iWGQXPsPBF" alt=""></picture><figcaption><p>API page in our web application</p></figcaption></figure>

You should receive an POST request to your webhook url right after update the settings.

```
{
    "event": "webhook_updated"
}
```

### Consuming webhooks

#### image\_registered

Each time an image is registered within an order (either from a direct single-image upload or after bracket grouping), you will receive a POST request with your authentication token containing the following JSON payload.

```
{
  "event": "image_registered",
  "image_id": "...", // The ID of the image registered
  "order_id": "..." // The ID of the order the image belongs to
}
```

#### image\_processed

For each image processed you will receive a POST request with your authentication token containing the following JSON payload

```
{
    "event": image_processed",
    "image_id": ..., // The ID of the image procesed
    "error": ... // True if the image had an error, false otherwise
    "order_id": ..., // The ID of the order the image belongs to
    "order_is_processing": ... // True if the order is processing, false if it has processed all the images
}
```


# API Versions

Autoenhance regularly releases improvement to it's API as a new version - allowing you to choose the cadence that suits your needs

Our API is **versioned by date**. Each version is a snapshot of the API's behaviour on the day it was released. Your account is pinned to one version, so your integration keeps behaving exactly the same way until **you** decide to upgrade — new versions never change the behaviour of code already running against an older one.

{% hint style="info" %}
**Latest version:** `2026-07-01`

Not sure which version you're on? Every API response includes an `x-api-version` header telling you the version that served the request.
{% endhint %}

## How versioning works

<details>

<summary>What is an API version, and which one am I on?</summary>

When you join Autoenhance, your account is automatically pinned to the version that is current at that time. Every request you make is served by that version, so responses and behaviour stay consistent.

You can see the version serving any request in the `x-api-version` response header.

</details>

<details>

<summary>Will a new release change how my integration behaves?</summary>

No. When we release a newer version, applications on older versions keep working exactly as before. Any breaking changes or behavioural differences are **isolated to the new version** — they never reach you until you explicitly upgrade.

Where a new version changes a field, we translate transparently for older clients (for example, folding a renamed property back to its old name on requests and responses), so existing code needs no changes.

</details>

<details>

<summary>How do I test or switch to a different version?</summary>

Send the `x-api-version` header with the version you want, e.g.:

```http
x-api-version: 2026-07-01
```

This lets you trial a newer version per-request without changing your account default. Once you're happy, contact support to pin your account to the new version. New features introduced in a later version only become available once you're on that version or newer.

</details>

<details>

<summary>What does a date in the changelog mean?</summary>

Each dated entry below describes everything that changed in that version, newest first. To adopt the features in an entry, make sure your requests use that version (or a later one) via the `x-api-version` header.

</details>

## API Changelog

### **Version 2026-07-01**

**A single property for sky control**

We've consolidated sky control into one property, `restage.sky`, replacing the separate `sky_replacement` (boolean) and `cloud_type` (enum) fields.

`restage.sky` accepts:

* `AS_SHOT` — keep the original sky (equivalent to the old `sky_replacement: false`)
* A cloud type (e.g. `CLEAR`, `LOW_CLOUD`, `HIGH_CLOUD`) — replace the sky with that style

{% hint style="info" %}
**No action needed for older clients.** On versions before `2026-07-01` we automatically fold your `sky_replacement` / `cloud_type` values into `restage.sky` on requests, and re-derive `sky_replacement` and `cloud_type` from `restage.sky` on responses — so existing integrations are unaffected.
{% endhint %}

<details>

<summary>Migration: before &#x26; after</summary>

**Before (`2026-06-02` and earlier):**

```json
{
  "sky_replacement": true,
  "cloud_type": "LOW_CLOUD"
}
```

**After (`2026-07-01`):**

```json
{
  "restage": { "sky": "LOW_CLOUD" }
}
```

To keep the original sky:

```json
{
  "restage": { "sky": "AS_SHOT" }
}
```

Deprecated cloud types that have no `restage.sky` equivalent continue to work on the legacy fields.

</details>

**New sky packs**

Two new sky styles are now accepted as cloud types (and as `restage.sky` values): `WHISPY_CLOUD` and `DUSK_CLOUD`. These are additive — no changes required.

{% hint style="info" %}
The new sky packs are only produced by more recent AI versions. On older AI versions the request is still accepted, but the new styles won't be applied. See [AI Versions](/ai-version) to check or update your AI version.
{% endhint %}

**`max_width` now honoured**

The `max_width` parameter on image downloads was previously ignored. It is now applied as documented.

* Full-resolution downloads (`preview=false`): your `max_width` is applied as requested.
* Preview downloads (`preview=true`): capped at **2048 px** width and **quality 50**. A larger requested `max_width` is clamped to 2048.

See [Sky Replacement](/images/basic-enhancements/restaging/sky-replacement) and [Enhanced](/images/downloading-images/enhanced) for full details.

### **Version 2026-06-02**

**`finetune` renamed to `finetuned`**

The `finetune` query parameter has been renamed to `finetuned` for consistency. Clients on older API versions can keep sending `finetune` — we map it to `finetuned` automatically, so no changes are required until you upgrade.

### **Version 2026-05-20**

**Automatic Deprecated AI Version Upgrades**

* AI versions below `4.7` are now automatically upgraded to `4.7`.
* All AI version `5` requests are now automatically upgraded to `stable`.

**Rate Limits**

We are introducing rate limits for the API. These will initially apply to customers who sign up after this date. For more details, see [Rate Limits](/rate-limits).

Both of these changes will apply across all API versions.

### **Version 2026-02-01**

**Re-staging** You can now use our new re-staging feature to go back in time to remove photogrpahers from your shots, light up all the fireplaces and black out those TVs.

**Support for Next-Gen Formats** We have expanded our export capabilities to include the latest high-efficiency image standards. Images can now be exported in JPEG XL or AVIF formats. To utilize these new standards, simply append the following parameters to your request URL:

* Use `?format=jxl` for JPEG XL
* Use `?format=avif` for AVIF

**Duplicate Image Detection** To ensure stability and help you identify issues in your integration logic, we have improved our rate limiting system. We can now detect faulty scripts that inadvertently upload the exact same image repeatedly. These redundant uploads will now be flagged and counted against your rate limits, preventing unnecessary bandwidth usage and processing queues.

For more details about Re-Staging and Next-Gen Formats read our [Enhanced](/images/downloading-images/enhanced) guide.

### **Version 2025-08-31**

**Introducing Window Pull Types**

We are now introducing the ability to specify which style of Window Pull you would like. You have the option of setting our new "window\_pull\_type" property to "NONE" for no window pulls, "ONLY\_WINDOWS" for a normal window pull or "WITH\_SKIES" to add sky replacement.

For customers integrated with one of our old API versions when you specify "window\_pull" as true our API will be treat it as if "window\_pull\_type" was "ONLY\_WINDOWS"..\
\
For older clients "window\_pull" will be true for any "window\_pull\_type" other than "NONE"

**Rate Limits**

To ensure stability for all customers, we have introduced rate limits to our API - You can now make up to 100K requests per day which should allow you to upload up to 300,000 images per month.

### **Version 2025-05-08**

**Bracketing API and New Image Status**\
We’ve added official support for bracketing workflows with two new endpoints:\
`/orders/{id}/brackets` and `/brackets.` For more details read our [HDR Brackets](/getting-started/quickstart/hdr) guide.

This enables workflows involving the uploading of pre-grouped brackets. Images waiting for their files to be uploaded will now return a `waiting` status. Older clients will see this as `processing` with the appropriate reason in `status_reason`.

Finally, we will now return a response if you try to process an order before all of the brackets have been uploaded to avoid unexpected results.

To take advantage of all of these new features, upgrade to the latest version of the API by specifying `2025-05-05` in the `x-api-version` header of your requests for your client .

**Metadata Field Added**\
You can now attach and retrieve custom metadata with your images. In addition the AI will automatically adds metadata such as the MIME type. In the future we will expand this to expose additional information about your image.

**Order Endpoint Changes**\
`/orders/{id}/merge` has been moved to `/orders/{id}/process`. The old path will continue to work for clients on our previous API version.

**Upload Changes**\
When uploading images we no longer use the `content_type` field and you now only need to use `application/octet-stream as the` `Content-Type` header when uploading the file .

As part of this change we've remove the `image_type` and `content_type` fields. In addition `s3ObjectUploadUrl` has been renamed to `upload_url`

The `Content-Type` and `image_type` fields are deprecated but still supported for legacy clients using `s3ObjectUploadUrl`.

For clients still using previous API version, these fields will be handled as usual, no changes need to be made to these clients.

### **Version 2024-12-01**

**Deprecation of preview2 and watermark endpoints**

These endpoints will now be redirected to the equivalent request using our new dynamic versioning API, you can request a watermarkt by passing `` `watermarkl=true` ``and you can specify your own custom output size using the new sizing options.

### **Version 2024-11-01**

\
**Dynamic Image Rendering**

In this release all image endpoints now support **dynamic rendering across original, edited, and preview versions**. This means you can control how images are rendered—regardless of version—by specifying parameters in the URL.

**Example:**\
`/v3/images/{uuid}/preview?quality=75&format=webp`

**Avaliable Options:**

* **Size**: Modify the size on-the-fly by using `max_width` and `scale`, ideal for displaying images optimized for different screen sizes and layouts.
* **Quality**: Customize quality by setting `quality` (1–100), enhancing control over file size and resolution for each use case.
* **Watermark**: Add watermarks dynamically by setting `watermark=true` in the query, allowing seamless watermark application across image versions.
* **Format**: Choose the output format (`format=jpeg`, `format=png`, etc.) based on your requirements, whether for compression, or quality retention.

**Removal of `watermark` endpoint and `size` URL parameter**

The `watermark` endpoint has been **removed** and is now integrated into this flexible preview structure. This allows you to access all transformations through a single endpoint without needing specific endpoints for each transformation type.

In addition the size attribute for all endpoints have been deprecated and will have no effect on the output image.\
\
For applications using older versions of the API clients will continue to receive images in the same format from these endpoints.

### **Version 2024-10-01**

**Support for returning AI Versions**

* The `ai_version`field for images will now be returned as a **string** to support more flexible versioning, such as returning floating version numbers i.e "4.x".
* For older clients that are not compatible with this format, the `ai_version` field will return **null**.

#### **New Expired Status for Images:**

* When an expired image is requested, the API will return `"status": "expired"` for applications using this version or later.
* For applications using older versions of the API, expired images will return an `"error": true` response, with the `"status": "error"`.
* **Recommendation**: Upgrade to the latest version to correctly handle the `"expired"` status and avoid misinterpreting expired images as general errors.

#### **Custom Metadata Field:**

* A new `metadata` field has been introduced, which includes specific metadata from your images, such as the Camera Model.

#### **New `status_reason` Field for Error Context:**

* We have added a `status_reason` field that provides more detailed information when an image’s `"status"` is set to `"error"` or `"expired"`.
* This new field will clarify the specific reasons behind an error or expiration, making it easier to diagnose and manage various scenarios in your application.

#### **Removal of `error` and `enhanced` Flags:**

* The `error` and `enhanced` flags have been deprecated and removed in favor of the `status` field.
* Instead of these flags, you should now use the `status` field, which will return `"error"` or `"processed"` to indicate the current state of an image.
* **Action Required**: Update your application to accommodate this change.

#### **Caching of Images:**

* API now returns HTTP request caching headers for images, so applications that support this functionality will no longer need to refetch an image unless it has changed. This reduces unnecessary API calls and improves performance for image-heavy applications.

#### Accelerated Uploads

* This version introduces **accelerated uploads**, reducing the time required to upload images, especially for large files or high-volume uploads. With this enhancement, users will experience faster image processing times, improving the overall performance of the upload pipeline.

### **Version 2024-06-01**

#### **Deprecations:**

* **v2 Endpoints:**\
  As of this release, all `/v2/` API endpoints have been fully deprecated. Requests to `/v2/` will no longer be supported, and there is no automatic redirection. If your application is still using `/v2/` endpoints, you must manually update your API requests to use `/v3/`:

  * **Update:**\
    `/v2/<endpoint>` → `/v3/<endpoint>`

  Ensure that your application is using the `/v3/` endpoints to maintain functionality.
* **Deprecation of Non-Pluralized Endpoints:**\
  Non-pluralized endpoints under `/v3/` have been deprecated and replaced by their pluralized equivalents. If you're using non-pluralized endpoints (e.g., `/v3/image`, `/v3/order`), these will no longer work. Update your API calls to the following pluralized forms:
  * `/v3/image` → `/v3/images`
  * `/v3/order` → `/v3/orders`
  * `/v3/user` → `/v3/users`
  * `/v3/payment` → `/v3/payments`


# AI Versions

We continually improve our AI and ship it through three release channels — latest, stable, and beta — so you can choose the balance of new features and consistency that suits you.

{% tabs %}
{% tab title="Latest" %}

<figure><img src="/files/umpbOtXBBNLi8Lb1ghRx" alt=""><figcaption><p>Example of Latest as in August 2026's release</p></figcaption></figure>
{% endtab %}

{% tab title="Stable" %}

<figure><img src="/files/kuNiPB85cy22i8KjRzo6" alt="Example of Stable with January&#x27;s release"><figcaption><p>Example of Stable as in April 2026's release</p></figcaption></figure>
{% endtab %}

{% tab title="Beta" %}

<figure><img src="/files/DcpRwhZcdxcRIUOpoBTy" alt="Example of beta as in the Beta 5.4 release"><figcaption><p>Example of beta as in the Beta 5.4 release</p></figcaption></figure>
{% endtab %}

{% tab title="Original Image" %}

<figure><img src="/files/UeBE0ogLlWMEBJjS563s" alt=""><figcaption><p>Original pre-enhanced image</p></figcaption></figure>
{% endtab %}
{% endtabs %}

### Choosing a version

Our AI versions work like **release channels** rather than fixed version numbers — you point your requests at a channel and we keep it updated to the right underlying release as the AI improves over time. Pick the channel that suits you:

* `latest` — our newest public release, updated as soon as new versions ship. This is the default if you don't specify a version.
* `stable` — a `latest` release that has been proven reliable across hundreds of thousands of images before being promoted. Best for consistent, predictable behaviour at scale.
* `beta` — our experimental channel, with early access to flagship features still in development.

Select a channel in the Webapp, or send it as a string (`latest`, `stable`, or `beta`) in your API request. The channels currently point to these releases:

| Channel  | Current release |
| -------- | --------------- |
| `latest` | 5.3.10          |
| `stable` | 5.3.9           |
| `beta`   | 5.4.2           |

<details>

<summary>For existing customers — migrating from numbered versions</summary>

We've simplified how we name and release AI versions. Previously you pinned to a fixed version number; now you subscribe to one of the rolling channels above, and we keep each pointed at the right release.

**Your existing integration keeps working** — older numbered versions are upgraded automatically:

* Any version above `4.7` (the old numbered `5.0`–`5.3` releases) is automatically upgraded to `stable`.
* Any version below `4.7` is automatically upgraded to `4.7`.
* `4.7` itself remains available to selected legacy customers — see [Legacy AI Versions](#legacy-ai-versions) below.

</details>

### Changelog

Here is our changelog:

<table><thead><tr><th width="133.765625">Release</th><th width="188.5234375">Release Date</th><th>Changes</th></tr></thead><tbody><tr><td>5.4.2</td><td>18th August 2026</td><td><ul><li>Upgraded 5.4 model with better colour accuracy and brightness</li><li>Ported all fixes and improvements for lenses and formatting from 5.3.x to date</li><li>Fixed a bug where fireplaces were not being restaged</li><li>Improved performance and stability</li></ul></td></tr><tr><td>5.3.10</td><td>5th August 2026</td><td><ul><li>Lens correction fixes for Sony ILCE-6400, Sony RX100 and Canon R6 Mark III cameras</li><li>Improved DNG processing speed</li><li>Improved TIFF decoding</li><li>Improved EXIF data parsing stability</li></ul></td></tr><tr><td>5.3.9</td><td>13th July 2026</td><td><ul><li>Improved accuracy of TV blackouts</li><li>Prevented correcting already lens-corrected images from Sony ILME-FX2 and Nikon Z6 II cameras</li><li>Added support for AVIF files</li></ul></td></tr><tr><td>5.4.1</td><td>7th July 2026</td><td><ul><li>Added options to enable and disable window pulls and sky replacements.</li><li>Fixed a bug with sky replacements in external images which didn't allow users to choose sky styles.</li><li>Added the inpainting improvements from 5.3.8</li><li>Speed and stability improvements</li></ul></td></tr><tr><td>5.4.0</td><td>24th June 2026</td><td><ul><li>This release includes our brand new, in-house AI engine.</li><li>Optimised noise reduction for cleaner, crisper and more detailed images.</li><li>Increased detail restoration for cleaner shadows and highlights.</li><li>Improved brightness and contrast, delivering a punchier look.</li><li>Improved colour retention, preventing desaturated walls and objects.</li><li>Increased processing speed. We now deliver images faster.</li></ul></td></tr><tr><td>5.3.8</td><td>24th June 2026</td><td><ul><li>Updated the inpainting model, improving performance for TV blackouts, fireplace inpainting and photographer and tripod removal.</li></ul></td></tr><tr><td>5.3.7</td><td>28th May 2026</td><td><ul><li>Minor stability improvements for 360 images</li></ul></td></tr><tr><td>5.3.6</td><td>14th May 2026</td><td><ul><li>Added support for Canon EOS R6 Mark III CR3 files</li></ul></td></tr><tr><td>5.3.5</td><td>7th May 2026</td><td><ul><li>Improved fireplace inpainting so the surrounding area has fewer visible seams.</li><li>Improved perspective correction to include more foreground in suitable images and fixed visual bugs.</li><li>Improved file parsing reliability.</li><li>Minor bug fixes.</li></ul></td></tr><tr><td>5.3.4</td><td>9th April 2026</td><td><ul><li>Introduced grass greening. Make the grass in your images look fresh and lush, regardless of the season.</li><li>Improved detail retention, images now appear sharper.</li><li>Optimised processing performance. We have cut down processing times by about 40% so that your images are ready faster than ever before.</li><li>Minor bug fixes.</li></ul></td></tr><tr><td>5.3.3</td><td>19th March 2026</td><td><ul><li>Tweaked enhancement style for HDR JPEGs. Colours are now more balanced, with better shadows and less halo-effect.</li><li>Fireplace inpainting has been improved. We now inpaint many more scenarios than before.</li><li>Minor bug fixes.</li></ul></td></tr><tr><td>5.3.2</td><td>16th February 2026</td><td><ul><li>Introduced Restaging features: You can now black out TVs, put fires in fireplaces, and remove photographer and camera reflections from mirrors and glossy surfaces.</li><li>Added HEIC file support.</li><li>Improved DNG/RAW processing.</li><li>Sharpness improvements.</li><li>Expanded lens correction coverage.</li><li>Lens correction accuracy. We fixed a bug where we overcropped images after correcting distortion. We now preserve the full field of view.</li></ul></td></tr><tr><td>5.3.1</td><td>19th January 2026</td><td><ul><li>Drastic speed improvements. We have reengineered our processing pipeline, with our fastest enhancement engine ever.</li><li>New decoding for RAW images with better colours and shadow reconstruction.</li><li>Improved HDR blending for better highlight and shadow preservation.</li><li>Better window pulls with stronger recovery of details in highlights.</li></ul></td></tr></tbody></table>

### Legacy AI Versions

{% hint style="warning" %}
Version `4.7` is a legacy version, enabled only for selected customers. It is not offered to new accounts and will eventually be switched off — we recommend moving to `stable` or `latest`. AI versions below `4.7` are automatically upgraded to `4.7`.
{% endhint %}

<table><thead><tr><th width="106">Version</th><th width="120">Release Date</th><th>Changes</th></tr></thead><tbody><tr><td>4.7</td><td>20th February 2025</td><td><ul><li>Introduced new HDR blending techniques for better colour and highlight preservation.</li><li>Enhanced DNG support, with better detail, shadow reconstruction, and colour fidelity.</li><li>Improved JPEG quality preservation and restoration with refined compression handling.</li><li>Added AI upscaling for low-quality JPEGs (enable via "upscale": true request).</li><li>Implemented color cast removal.</li><li>Fixed color correction issues that caused blue artifacts around buildings and trees.</li><li>Updated white balance processing to reduce unwanted magenta tints and excess warmth.</li><li>Refined sky replacement with better handling of white roofs and chimneys.</li><li>Enhanced window pull detection and processing for more accurate results.</li></ul></td></tr></tbody></table>

{% hint style="info" %}
Looking for an older version? Previous numbered releases are no longer available and have been archived. See [Deprecated AI Versions](/ai-version/deprecated-ai-versions) for their changelogs.
{% endhint %}


# Deprecated AI Versions

Reference changelogs for older releases that are no longer available. Requests targeting them are automatically upgraded to a supported release.

These releases are no longer available. Requests targeting them are automatically upgraded to a supported release — versions above `4.7` are upgraded to `stable`, and versions below `4.7` are upgraded to `4.7`. They're kept here for reference only.

For the current channels and their changelog see [AI Versions](/ai-version), and for `4.7` see the Legacy AI Versions section on that page.

<table><thead><tr><th width="106">Version</th><th width="120">Release Date</th><th>Changes</th></tr></thead><tbody><tr><td>5.3</td><td>27th November 2025</td><td><ul><li>Improved colour retention and contrast, delivering images that pop more.</li><li>Enhanced the AI's ability to preserve the original image's natural contrast, improving clarity and rendering of shadows, and making whites whiter.</li><li>Increased the AI's detail preservation, and upgraded the its image restoration capabilities, with cleaner outputs that look sharper and with less noise. Finer detail such as wood grain is now much sharper.</li><li>Improved white balance corrections, especially in scenes with several illuminants. Enhanced images will look neutral and whites will look white regardless of the input white balance.</li><li>Added support for newer camera lenses.</li></ul></td></tr><tr><td>5.2</td><td>30th September 2025</td><td><ul><li>Researched and developed an entirely new AI, trained on our own professionally curated dataset of real estate images. This model unlocks a whole host of new capabilities as listed below.</li><li>Dramatically improved window pulls and sky replacements. Your images will look sharp and colourful, even when the windows and skies are blown and data is missing.</li><li>Enhanced colour fidelity and shadow reconstruction. Colours now retain their natural tones, while shadows are boosted to restore their detail without adding extra noise.</li><li>Reintroduced support for image upscaling. If your image is below 1500px, you can now resize it with our AI super-resolution models.</li><li>Support for more Fujifilm and Panasonic camera models.</li><li>Fixed a known issue where certain elements in the image could lose colour. Now, images retain their full colour palette.</li><li>Increased model capability to enable new features currently under research by our team. Stay tuned to find out about our next update.</li></ul></td></tr><tr><td>5.1</td><td>26th June 2025</td><td><p><strong>Auto Privacy</strong></p><ul><li>Can now blur picture frames</li><li>All masks fir the shape of the object for a more natural look</li><li>New more natural looking blur which retains the colours of the underlying object without ending up muddy</li></ul><p><strong>Sky Replacement</strong></p><ul><li>Can now handle fine-detail such as telephone wires, antennas and building details.</li><li>Improved handling of white buildings or white elements.</li><li>Reducing in sky artefacts and skies placed in reflections</li><li>Expanded sky packs for more combinations of skies</li></ul><p><strong>Perspective Correction</strong></p><ul><li>Building-aware perspective correction system that adapts the strength of the correction depending on how close the building is to the edge of the frame just like a photographer would.</li><li>More adaptive perspective correction which can adjust for cramped shots so that important elemetns of the shot do not end up cropped.</li></ul></td></tr><tr><td>5.0</td><td>14th April 2025</td><td><p>Introducing version 5 with our all-new generative enhancement architecture:<br></p><ul><li>Automatic removal of unwanted colour casts</li><li>More accurate colour reproduction under diverse lighting conditions</li><li>More localised edits unlocking window pulls even with single images</li><li>Better handling of editing consistency in diverse lighting conditions</li><li>Sky replacements for internal window shots</li><li>Improved white balance accuracy across all lighting condition</li><li>Perspective corrections can now handle more complicated edge cases with challenging situations such as tilted shots with slanted objects within them.</li><li>Significantly improved white balance accuracy across all lighting conditions.</li></ul></td></tr><tr><td>4.6</td><td>19th December 2024</td><td><ul><li>Introduced our in-house AI HDR Harmoniser. Our pipeline now delivers vibrant shadows and detailed highlights for all shots. Whether you shoot multi-bracket or single-bracket, 4.6 packs much more detail, colour and dynamic range for your images.</li><li>Revamped our AI pipeline, drastically reducing halos, while increasing colour retention, brightness and image sharpness.</li><li>Improved our White Balance pipeline, with more consistent results in mixed-illuminant scenes, and on those where White Balance was very off in the input.</li><li>Increased Window Pull performance, with better and more precise blending.</li><li>Improved perspective correction strength, allowing for more capability on external scenes as well as reduced cropping post perspective correction.</li><li>Introduction of metadata lens corrections. Now any camera with lens correction information in metadata (such as Sony) can be corrected.</li><li>Changes to Autoprivacy. To reduce false positives we are temporarily disabling auto privacy on photo frames (with people) and for sale signs. These will be returning in a future version. License plates and human faces auto privacy are still included.</li></ul></td></tr><tr><td>4.5</td><td>13th November 2024</td><td><ul><li>Implemented our new, state-of-the-art AI White Balance system, delivering the best and most consistent enhancements to date.</li><li>Introduced our first Intelligent Sky Composition pipeline. Sky replacements are now enhanced to match the style and look of the image's foreground.</li><li>Improved shadow and highlight recovery, with better lighting and colour corrections.</li><li>Upgraded enhancement styles with better detail preservation techniques. Images are now sharper and have higher clarity.</li><li>Enhanced the look of window pulls.</li><li>Updated editing styles to deliver more realistic image enhancements.</li><li>Added new lenses for lens correction.</li></ul></td></tr><tr><td>4.4</td><td>20th September 2024</td><td><ul><li>Improved processing of RAW files including colours, better shadow and highlight recovery.</li><li>Resolved cases where a stitch line for 360s could be visible on white surfaces.</li><li>All images are marked as 300 DPI to ensure they are printed at correct size.</li><li>Improved cases where white balance was too strong and would desaturate the image.</li><li>New window pull pipeline with increased precision and fewer false positives.</li><li>Lens correction now supports DSLR cameras which automatically apply lens correction without reporting it in the metadata.</li><li>Updated Auto Privacy model with fewer false positives.</li></ul></td></tr><tr><td>4.3</td><td>29th July 2024</td><td><ul><li>Improved upscaling for a more sharper and more clear image</li><li>A more consistent and more neutral white balance</li><li>Improvements to the accuracy of perspective correction</li><li>Fixes cases where HEIC files wouldn't rotate correctly</li><li>Perspective correction is no longer applied to drone shots</li></ul></td></tr><tr><td>4.2</td><td>1st July 2024</td><td><ul><li>Improved RAW decoding with improvements to contrast, exposure and saturation, as well as to white balance in cases where camera settings weren't set correctly</li><li>New Auto Privacy 1.1 with improved accuracy and additional support for extra types of sensitive objects</li><li>Improved processing speed</li><li>Added support to process images up to 12K in resolution</li><li>Reduced brightness boost strength to achieve a more balanced look when using stronger settings</li><li>Fixed cases where single RAW images would contain ghosting</li><li>Orientation of RAW images is now corrected on supported cameras</li></ul></td></tr><tr><td>4.1</td><td>28th May 2024</td><td><ul><li>We now use a single middle exposure for the original to more accurately reflect whats been enhanced</li><li>The effect of brightness boost has been reduced to reduce destruction of images when using high settings on already bright images</li><li>Fixes images not being kept in original size for perspective correction</li><li>Fixes cases where lens correction could applied twice with recent Sony Cameras</li><li>Fixes cases where lens correction could applied twice with images exported from Lightroom or Photoshop</li><li>Fixes cases where perspective correction wouldn’t be applied to images from Apple devices</li><li>Increases the number of skies available for sky replacement</li><li>Fixes cases where brackets generated from a single RAW file would be misaligned</li><li>Fixes cases where perspective correction would be applied to 360s</li><li>Enables contrast boost by default to ensure there is a good level of default by default, this can be disabled by providing your own <code>contrast_boost</code> setting</li><li>Adds support for perspective correction for portrait images</li></ul></td></tr><tr><td>4.0</td><td>5th April 2024</td><td><ul><li>New HDR algorithm with improved dynamic range</li><li>Introduction of super resolution upscaling to increase fine detail in the image</li><li>Introduction of Window Pulling that ensures the content of your windows can always be seen</li><li>Improved accuracy of Auto Privacy blurring</li><li>New enhancement architecture with "target editing" support which can intelligently detect which areas need enhancing, improving loss of details caused by previous AI versions pushing brightness too high in already over-exposed areas</li><li>Better extraction of detail from over-exposed brackets Improved white balance for photos taken by incorrectly calibrated cameras.</li><li>Expansion of editing styles to "warm", "neutral" and "authentic" for more customisation of AI output</li></ul></td></tr><tr><td>3.5</td><td>1st May 2024</td><td><ul><li>Fixes an issues where perspective correction would not be applied to JPEG images from Apple devices.</li><li>We've increased the variation of skies in our sky replacements, to make sure each sky for every image will be unique.</li></ul></td></tr><tr><td>3.4</td><td>30th April 2024</td><td><ul><li>Fixes an issues where 360s would occasionally have a visible stitch line.</li><li>Fixes an issue where enabling perspective correction would cause AI to override lens correction being disabled.</li><li>We now only run perspective correction if lens correction is enabled.</li><li>We now progressively enhance, if any errors are encountered we will skip that step so that we always give you some kind of image.</li><li>Images which already have lens correction applied in Photoshop or Lightroom are now correctly detected.</li></ul></td></tr><tr><td>3.2</td><td>11th March 2024</td><td><ul><li>Improved lens correction for the Canon USM 4/ lenses</li><li>Improved perspective correction algorithm which can now do more accurate corrections in difficult cases.</li></ul></td></tr><tr><td>3.0</td><td>1st January 2023</td><td><ul><li>New enhancement and HDR decoding architecture which fixes hallucinations areas of darkness in images</li><li>Introduction of Auto Privacy feature</li></ul></td></tr><tr><td>1.1</td><td>1st January 2022</td><td><ul><li>Initial release of Autoenhance</li></ul></td></tr></tbody></table>


# AI Transparency

How Autoenhance labels and documents every AI-edited image so you can meet EU and California AI-transparency rules — what we disclose, how your copyright is handled, and how anyone can verify it.

Autoenhance uses AI to enhance and restage property photos. New rules in the EU and California increasingly require AI-edited images to be disclosed as AI content — usually as machine-readable metadata inside the file — so it's clear the picture has been altered by AI.

To make this effortless, **every AI-processed image we produce is automatically labelled and documented** — you don't have to do anything extra. This page explains, in plain terms, what we disclose, how your copyright is protected, and how anyone can verify it. Where it helps, we include the technical specifics your developers or compliance team may need.

{% hint style="info" %}
This page explains how our features support transparency requirements. It is **not legal advice** — confirm your own obligations with your legal or compliance team.
{% endhint %}

## Why this matters

Two laws are driving this, with similar rules emerging elsewhere:

* **The EU AI Act (Article 50).** From August 2026, images that are AI-generated or AI-manipulated must be marked in a **machine-readable** way, and people must be able to tell the content was AI-altered.
* **California (AB 723).** AI-generated or AI-altered images must carry **machine-readable metadata** identifying them as AI content — a hidden disclosure embedded in the file, rather than a visible label.

Both laws are satisfied by the hidden, machine-readable disclosure we embed in every AI export. We also offer an optional visible label for cases where you want an at-a-glance disclosure on the image itself.

## The three layers of disclosure

We disclose AI use in three complementary ways:

| Layer                              | Visible to a person?      | On by default? | Best for                                      |
| ---------------------------------- | ------------------------- | -------------- | --------------------------------------------- |
| **1. Visible "AI Modified" label** | Yes                       | Optional       | An at-a-glance disclosure on the image itself |
| **2. Embedded metadata**           | No (readable by software) | Yes            | Machine-readable disclosure inside the file   |
| **3. Content Credentials (C2PA)**  | No (verifiable)           | Yes            | Tamper-evident, cryptographic proof of origin |

### 1. Visible "AI Modified" label

A small **"AI MODIFIED"** badge (the EU-style disclosure icon) placed in the corner of the image. It's the most obvious, human-readable form of disclosure.

Turn it on by adding `?visible_disclosure=true` when you download an enhanced image:

```
GET https://api.autoenhance.ai/v3/images/{image_id}/enhanced?visible_disclosure=true
```

### 2. Embedded metadata

We write standard photo-metadata tags into every AI-enhanced or restaged export, stating that the image was AI-modified by Autoenhance. This is **invisible** to someone looking at the photo, but any metadata tool can read it, and it uses the same industry-standard fields recognised by Adobe, Google and news agencies.

The human-readable summary reads like this:

```
AI Modified Image by Autoenhance.ai using Autoenhance v5.0 on 2026-07-06.
```

For restaged images (where AI adds elements such as a new sky or furniture), it reads:

```
AI Modified Image with AI-generated elements by Autoenhance.ai using Autoenhance v5.0 on 2026-07-06.
```

{% hint style="info" %}
We write the same disclosure across **EXIF, IPTC and XMP** so it survives no matter which of these standards a given piece of software happens to read.
{% endhint %}

### 3. Content Credentials (C2PA)

We also embed **Content Credentials** — a cryptographically signed record following the [C2PA](https://c2pa.org) standard backed by Adobe, Microsoft, the BBC, camera manufacturers and others.

Where plain metadata can be edited or stripped, Content Credentials are **tamper-evident**: the record is sealed to the exact image, so any later change breaks the seal and a verifier will flag it. The credential records that Autoenhance produced the image, what was done to it (an AI edit, and any added elements), and the original photo it started from.

{% hint style="info" %}
Content Credentials signing is rolling out across exports. The embedded metadata (layer 2) and the visible label (layer 1) are available today.
{% endhint %}

## What we disclose

Everything we embed, in plain terms and with the exact technical location for your developers:

| What we disclose              | Plain meaning                                                                   | Where it lives (technical)                                                                                 |
| ----------------------------- | ------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **AI system & version**       | Which AI product and version edited the image (e.g. Autoenhance v5.0)           | `EXIF:Software`, `XMP:CreatorTool` = `Autoenhance/<version>`; also in the caption                          |
| **AI modification statement** | A sentence saying the image was AI-modified, and whether AI elements were added | `EXIF:UserComment`, `IPTC:Caption-Abstract`, `XMP-dc:description`                                          |
| **Digital source type**       | An industry-standard code marking it as a mix of a real photo and AI            | `XMP-iptcExt:DigitalSourceType` = `compositeWithTrainedAlgorithmicMedia`                                   |
| **Date processed**            | When we produced the image                                                      | `EXIF:ModifyDate`, `XMP:ModifyDate`                                                                        |
| **Content Credentials**       | Signed proof of who made it, what was done, and the source photo                | C2PA manifest (`c2pa.opened` / `c2pa.edited` / `c2pa.placed` actions, original as an `inputTo` ingredient) |
| **No-AI-training notice**     | A request that the image not be used to train generative AI                     | `XMP-plus:DataMining` = `Prohibited`; C2PA training/data-mining set to *not allowed*                       |
| **Asset reference**           | An opaque ID we can trace back to the source image                              | `XMP-iptcExt:DigitalImageGUID`                                                                             |

## Your copyright and credits

We are careful to protect your rights, not claim them:

* **We never overwrite your copyright.** If your original upload already has a caption, author/byline or copyright notice, we **preserve it** and add our AI disclosure alongside — we don't replace it.
* **You are credited as the author.** In the Content Credentials, Autoenhance is recorded only as the *editing tool*. Your authorship and copyright (read from your original file) are carried through as the author of the photo.
* **We add an AI-training opt-out** so your images are marked as not permitted for generative-AI training or data-mining.
* **We protect privacy.** GPS and location data from the original file is deliberately **removed** from exports, so property locations aren't leaked.

## How to verify

Anyone — you, your client, or a regulator — can check the disclosures:

* **Content Credentials (recommended).** Open the image with a Content Credentials inspector such as the Content Authenticity Initiative's [Verify tool](https://contentcredentials.org/verify) or Adobe's Content Credentials. It shows that Autoenhance produced the image, what was done, and whether it has been altered since.
* **Metadata viewers.** Any metadata tool reveals the embedded tags. For developers, [ExifTool](https://exiftool.org) is the quickest check:

```bash
exiftool -G1 enhanced.jpg
# Look for:
#   Software                 : Autoenhance/5.0
#   DigitalSourceType        : https://cv.iptc.org/newscodes/digitalsourcetype/compositeWithTrainedAlgorithmicMedia
#   UserComment              : AI Modified Image by Autoenhance.ai ...
#   DataMining               : Prohibited
```

## For developers and compliance teams

A few implementation details worth knowing:

* **Standards.** We follow [C2PA / Content Credentials](https://c2pa.org), and the [IPTC Photo Metadata](https://www.iptc.org/std/photometadata/specification/IPTC-PhotoMetadata) `digitalSourceType` controlled vocabulary. The disclosure is written across **EXIF, IPTC and XMP** for maximum compatibility.
* **Formats.** Disclosures are embedded in **JPEG, PNG, WebP, AVIF and JPEG XL** exports.
* **Only AI outputs are labelled.** Disclosure is applied when you download an AI-produced image (enhanced or restaged). Downloading your **original, unedited** image is never labelled as AI-altered.
* **Provenance chain.** The original photo is recorded as an input to the edit (an `inputTo` ingredient), so the credential links the original capture to the enhanced result.
* **Applied at export, always current.** Disclosures are added when an image is downloaded, so improvements to our disclosure automatically apply to new and existing images the next time they're fetched.

## Quick checklist

* **Visible label?** Add `?visible_disclosure=true` when downloading.
* **Hidden disclosure + Content Credentials?** Automatic on every AI output.
* **Verify?** Use [contentcredentials.org/verify](https://contentcredentials.org/verify) or `exiftool`.
* **Your copyright?** Preserved, you're credited as author, and marked not for AI training.


# Rate Limits

Understand API and enhancement limits, how they are enforced, and how to handle them in your integration.

We limit the number of API requests and enhancements you can make in a given period. This protects the platform from unexpected traffic spikes, prevents runaway scripts, and keeps performance fast for everyone. Rate limits are standard, automated measures tailored to your account type and volume — they don't indicate a system failure.

{% hint style="info" %}
Rate limits currently apply to new customers first. Existing customers keep their current behaviour until we announce a change.
{% endhint %}

## How limits work

We don't send out-of-band notifications when you reach a limit. Instead, the API tells your application directly — either by returning an HTTP `429 Too Many Requests` response, or by putting an image into an error state with the reason in its `status_reason` field. Depending on which limit you hit, the restriction might last a few seconds, an hour, or until your capacity is upgraded.

There are three limits to be aware of:

| Limit type                     | Limit                                                                                  | Behavior                                      | Reset                                            |
| ------------------------------ | -------------------------------------------------------------------------------------- | --------------------------------------------- | ------------------------------------------------ |
| Global API request rate        | Up to **300 API requests per second** per IP address.                                  | The API returns HTTP `429 Too Many Requests`. | Resolves instantly as traffic slows.             |
| Duplicate file name protection | Up to **30 duplicate file names per hour** for the exact same filename string.         | The API returns HTTP `429 Too Many Requests`. | Resets hourly.                                   |
| Enhancement hard limit         | By default, up to **500 enhancements per day** unless your account has a custom limit. | Newly submitted images enter an error state.  | Resets daily, or when your capacity is upgraded. |

The **global API request rate** applies across all endpoints and protects the core stability of the API: you can make up to 300 requests per second per IP address, and exceeding it returns a `429` that clears as soon as your traffic slows.

The **duplicate file name protection** catches faulty scripts stuck in retry loops that keep registering the same image. When registering images or brackets, you can use the same filename string at most 30 times per hour; beyond that the API returns a `429`, resetting hourly. The simplest way to avoid it is to generate unique filenames — for example by appending a hash before registration — and to stop retrying a filename that has been rejected.

The **enhancement hard limit** governs our compute-heavy processing. By default you can run up to 500 enhancements per day unless your account has a custom limit. Beyond it, newly submitted images enter an error state (with `status_reason` indicating they were rate-limited) and can be reprocessed once the window resets or your capacity is upgraded. These limits scale with your account tier:

* **Testing / Trial accounts** — baseline limits for safe integration testing.
* **Essential / Standard plans** — limits for steady production usage and moderate bursts.
* **Enterprise plans** — custom, elevated limits for very high-volume workloads.

## Handling limits in your integration

Robust integrations expect rate limits and recover without manual intervention. A few patterns make this reliable:

* **Catch `429`s explicitly** rather than treating them as generic `500` server failures.
* **Back off exponentially** — when a request returns `429`, retry after a short delay and double it each time (for example, 1 second, then 2, then 4) to give the platform time to catch up.
* **Check `status_reason`** on image errors (whether you poll or use webhooks) to tell whether a hard limit was reached.
* **Throttle at the source** by spacing out large bursts of traffic, especially during bulk uploads.

## Need more capacity?

If you frequently hit hard limits, your workload has likely outgrown your current tier. We're happy to review your usage patterns and help configure the right capacity — just reach out based on your account status:

* **Leads and testing accounts** — contact Sales or Support.
* **Essential / Standard plans** — contact Support through in-app chat or email.
* **Enterprise plans** — contact your dedicated Account Manager.


