Export Layers Migration Guide

Overview

This guide describes how to migrate exporting one or more layers from a document to the V2 /v2/create-composite endpoint: schema changes, enum support for single-layer export, PSD support (single-layer only; multi-layer does not support PSD as of now), default quality and compression, and sample V1/V2 requests.

Key differences (single-layer vs multi-layer export)

Enum support for single-layer export (V2)

When exporting a single layer, you can use these options.

Crop mode (cropMode)

Only applicable when exactly one layer is specified in output.layers. Omit cropMode when exporting multiple layers or no layers.

Value
Description
layer_bounds
Use the layer’s own bounds (default when not specified).
trim_to_transparency
Crop to tight bounds of non-transparent pixels.
document_bounds
Use full document (or artboard) bounds.

Media type (mediaType)

For single-layer export, V2 supports: image/jpeg, image/png, image/tiff, image/vnd.adobe.photoshop (PSD). See Output Types Migration for full enum details.

Defaults when exporting layers

Sample: Single-layer export

V1 (example)

curl -X POST "https://image.adobe.io/pie/psdService/renditionCreate" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": [{"href": "https://my-bucket.s3.amazonaws.com/input.psd", "storage": "external"}],
    "outputs": [{
      "href": "https://my-bucket.s3.amazonaws.com/out.png",
      "storage": "external",
      "type": "image/png",
      "layers": [{"id": 1096}],
      "compression": "medium"
    }]
  }'

V2 (example)

curl -X POST "https://photoshop-api.adobe.io/v2/create-composite" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "image": {"source": {"url": "https://my-bucket.s3.amazonaws.com/input.psd"}},
    "outputs": [{
      "destination": {"url": "https://my-bucket.s3.amazonaws.com/out.png"},
      "mediaType": "image/png",
      "layers": [{"id": 1096}],
      "cropMode": "trim_to_transparency",
      "compression": "medium"
    }]
  }'

Schema changes (single-layer): inputs[].hrefimage.source.url; outputs[].hrefoutputs[].destination.url; outputs[].typeoutputs[].mediaType; outputs[].layers remains per output. Optional in V2: cropMode (single-layer only), quality / compression as string enums.

Sample: Multi-layer export

V1 (example)

curl -X POST "https://image.adobe.io/pie/psdService/renditionCreate" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": [{"href": "https://my-bucket.s3.amazonaws.com/input.psd", "storage": "external"}],
    "outputs": [{
      "href": "https://my-bucket.s3.amazonaws.com/out.jpg",
      "storage": "external",
      "type": "image/jpeg",
      "layers": [{"id": 1096}, {"id": 996}],
      "quality": 7
    }]
  }'

V2 (example)

curl -X POST "https://photoshop-api.adobe.io/v2/create-composite" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "image": {"source": {"url": "https://my-bucket.s3.amazonaws.com/input.psd"}},
    "outputs": [{
      "destination": {"url": "https://my-bucket.s3.amazonaws.com/out.jpg"},
      "mediaType": "image/jpeg",
      "layers": [{"id": 1096}, {"id": 996}],
      "quality": "maximum"
    }]
  }'

Schema changes (multi-layer): Same as above. Note: Multi-layer export does not support PSD as of now; use mediaType: image/jpeg, image/png, or image/tiff only. Use string enums for quality (e.g. maximum, photoshop_max) and compression for PNG.

Migration checklist for export layers

Last Updated: February 2026