openapi: 3.2.0 info: description: Photoshop v2 API Server for Adobe Firefly Services. license: name: Adobe Creative API License url: https://www.adobe.com/content/dam/cc/en/legal/terms/enterprise/pdfs/PSLT-AdobeCreativeAPI-WW-2024v2.pdf title: Photoshop v2 API endpoints Photoshop APIs API version: '2.0' servers: - url: https://photoshop-api.adobe.io description: Prod server. security: - Authorization: [] X-Api-Key: [] tags: - description: Photoshop APIs for image processing operations name: Photoshop APIs paths: /v1/auto-crop: post: description: Generates smart crops, subject bounding boxes, and detects objects for an input image. The request is processed asynchronously. Poll GET /v2/status/{jobId} with the returned jobId for completion. operationId: autoCrop requestBody: content: application/json: schema: $ref: '#/components/schemas/AutoCropRequest' required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/JobAcceptedResponse' description: Job accepted for processing '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad request - Invalid request payload '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid or missing access token '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Forbidden - User not authorized or quota exhausted '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Not found - Requested resource was not found '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Validation error - Invalid input data '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Too many requests - Rate limit exceeded. When present, Retry-After header (seconds) indicates delay before retrying. '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error servers: - description: Production server. url: https://image.adobe.io summary: Auto crop tags: - Photoshop APIs /v2/create-artboard: post: operationId: createArtboard requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateArtboardRequest' required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/JobAcceptedResponse' description: Job accepted for processing '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad request - Invalid request payload '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid or missing access token '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Forbidden - User not authorized or quota exhausted '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Validation error - Invalid input data '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Too many requests - Rate limit exceeded. When present, Retry-After header (seconds) indicates delay before retrying. '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Create an artboard tags: - Photoshop APIs /v2/create-composite: post: operationId: createComposite requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCompositeRequest' required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/JobAcceptedResponse' description: Job accepted for processing '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad request - Invalid request payload '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid or missing access token '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Forbidden - User not authorized or quota exhausted '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Validation error - Invalid input data '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Too many requests - Rate limit exceeded. When present, Retry-After header (seconds) indicates delay before retrying. '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Create or edit a composite tags: - Photoshop APIs /v2/edit: post: operationId: edit requestBody: content: application/json: schema: $ref: '#/components/schemas/EditRequest' required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/JobAcceptedResponse' description: Job accepted for processing '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad request - Invalid request payload '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid or missing access token '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Forbidden - User not authorized or quota exhausted '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Validation error - Invalid input data '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Too many requests - Rate limit exceeded. When present, Retry-After header (seconds) indicates delay before retrying. '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Edit an image with various adjustments tags: - Photoshop APIs /v2/execute-actions: post: operationId: executeActions requestBody: content: application/json: schema: $ref: '#/components/schemas/ActionsRequest' required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/JobAcceptedResponse' description: Job accepted for processing '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad request - Invalid request payload '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid or missing access token '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Forbidden - User not authorized or quota exhausted '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Validation error - Invalid input data '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Too many requests - Rate limit exceeded. When present, Retry-After header (seconds) indicates delay before retrying. '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Execute Photoshop actions, scripts, and transformations tags: - Photoshop APIs /v2/generate-manifest: post: operationId: generateManifest requestBody: content: application/json: schema: $ref: '#/components/schemas/GenerateManifestRequest' required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/JobAcceptedResponse' description: Job accepted for processing '400': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Bad request - Invalid request payload '401': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized - Invalid or missing access token '403': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Forbidden - User not authorized or quota exhausted '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Validation error - Invalid input data '429': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Too many requests - Rate limit exceeded. When present, Retry-After header (seconds) indicates delay before retrying. '500': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Generate a manifest for given input image tags: - Photoshop APIs components: schemas: FontRgb: required: - blue - green - red type: object description: RGB color values for fonts with 16-bit depth (red, green, blue components). allOf: - $ref: '#/components/schemas/FontColor' - type: object properties: blue: maximum: 32768 minimum: 0 type: integer description: Blue component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 green: maximum: 32768 minimum: 0 type: integer description: Green component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 red: maximum: 32768 minimum: 0 type: integer description: Red component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 ExportOptions: required: - mediaType type: object properties: mediaType: type: string description: Supported media types for output enum: - image/jpeg - image/png - image/tiff - image/vnd.adobe.photoshop - document/vnd.adobe.cpsd+dcxucf - document/vnd.adobe.cpsd+dcx - application/json description: Export options for the image. discriminator: propertyName: mediaType AdditionalFont: type: object properties: source: $ref: '#/components/schemas/PortableFileResourceInput' description: Array of custom fonts needed in this document. Optional. GenerateManifestRequest: required: - image - outputs type: object properties: exportOptions: oneOf: - $ref: '#/components/schemas/JpegExportOptions' - $ref: '#/components/schemas/PngExportOptions' extractSmartObjectData: type: boolean description: Optional. Extract embedded smart objects and include presigned URLs in the manifest. Only applies to embedded (non-linked) smart objects. Default is false. example: false default: false image: $ref: '#/components/schemas/Image' includeLayerThumbnails: type: boolean description: Optional. Indicates whether to generate renditions. Default is false. example: false default: false includeXmp: type: boolean description: Optional. Include the XMP metadata in the response. example: false default: false maximumThumbnailDepth: minimum: 0 type: integer description: Optional. Depth for layer renditions. If provided, must be greater than or equal to 0. 0 signifies no limit. format: int32 outputs: maxItems: 25 minItems: 1 type: array description: List of output destinations for the manifest. Required. Maximum of 25 outputs allowed. items: oneOf: - $ref: '#/components/schemas/ManifestJsonOutput' trimToTransparency: type: boolean description: Optional. Trim the layer to remove the transparent pixels. example: false default: false AddAdjustmentLayer: required: - adjustments - operation type: object description: Adjustment layer for applying image adjustments like brightness, contrast, hue/saturation, etc. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: adjustments: oneOf: - $ref: '#/components/schemas/BrightnessContrastAdjustments' - $ref: '#/components/schemas/ColorBalanceAdjustments' - $ref: '#/components/schemas/ExposureAdjustments' - $ref: '#/components/schemas/HueSaturationAdjustments' blendOptions: $ref: '#/components/schemas/BlendOptions' isClipped: type: boolean description: Whether the layer is clipped. Defaults to false when adding layers. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/PixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer ResourceInput: type: object description: 'Source for the UXP script. Can be external file reference or inline script content. UXP scripts can use the placeholder `__UXP_OUTPUT_PATH__` which will be replaced at runtime with the directory path for script output files. Example usage: `const outputPath = ''__UXP_OUTPUT_PATH__''; const outputFile = path.join(outputPath, ''uxpOutput.json'');`' CreativeCloudFileIdResourceInput: required: - creativeCloudFileId type: object description: Creative Cloud file ID resource input. References a resource via Creative Cloud file ID (URN). allOf: - $ref: '#/components/schemas/ResourceInput' - type: object properties: creativeCloudFileId: pattern: ^urn:aaid:.* type: string description: The file ID of the asset in Creative Cloud. Required. Must start with 'urn:aaid' (case-insensitive). Crop: required: - bounds type: object properties: bounds: $ref: '#/components/schemas/Bounds' hide: type: boolean description: When true, hides pixels outside the crop bounds (non-destructive). When false, permanently deletes pixels outside the crop bounds (destructive). Defaults to false. description: Options for cropping a document, specifying the bounds to crop to. BaseAdjustment: required: - type type: object properties: type: type: string description: 'Adjustment type. Allowed values: hue_saturation, brightness_contrast, exposure, color_balance' enum: - hue_saturation - brightness_contrast - exposure - color_balance description: Adjustment settings to apply. Must specify exactly one adjustment type (brightness_contrast, hue_saturation, exposure, or color_balance). discriminator: propertyName: type LrJpegOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/LightroomOutput' - type: object properties: quality: type: string description: JPEG quality levels enum: - very_poor - poor - low - medium - high - maximum - photoshop_max JpegOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/PhotoshopOutput' - type: object properties: quality: type: string description: JPEG quality levels enum: - very_poor - poor - low - medium - high - maximum - photoshop_max CharacterStyle: type: object properties: autoLeading: type: boolean description: When true, line height is calculated automatically based on the font size. When false, custom lineHeight is applied. Optional. default: false capsOption: type: string description: Text capitalization option enum: - normal_caps - small_caps - all_caps - all_small_caps font: $ref: '#/components/schemas/Font' fontAlpha: maximum: 1 minimum: 0 type: number description: Font alpha/transparency value. Optional. Default is 1.0. format: double fontColor: oneOf: - $ref: '#/components/schemas/FontCmyk' - $ref: '#/components/schemas/FontGray' - $ref: '#/components/schemas/FontLab' - $ref: '#/components/schemas/FontRgb' fontSize: type: number description: Font size in pixels. Optional. Default is 30. format: double letterSpacing: type: number description: Letter spacing in pixels. Optional. Default is 0. format: double lineHeight: type: number description: 'Line height (leading) in pixels. Optional. This value represents the unscaled leading stored on the character style. If the text layer carries a non-identity transform, for example because the bounding box was resized in Photoshop, the rendered leading becomes lineHeight x the layer''s vertical scale factor. To get exact rendered pixel leading, ensure the layer has no residual scaling (transformMode: none with no scaling Transform applied), or pre-divide the desired rendered leading by the layer''s current vertical scale. The same scaling behavior applies to fontSize.' format: double default: 36 syntheticBold: type: boolean description: Whether to apply synthetic bold. Optional. Default is false. syntheticItalic: type: boolean description: Whether to apply synthetic italic. Optional. Default is false. underline: type: boolean description: Whether to apply underline. Optional. Default is false. description: Character-level styling properties for text. CreateArtboardRequest: required: - images - outputs type: object properties: artboardSpacing: type: integer description: Horizontal spacing in pixels between each artboard. Defaults to 50. Optional. format: int32 images: maxItems: 25 minItems: 1 type: array description: List of input images for the artboard. Each image must have a source with an external file reference (URL, Creative Cloud file ID, or Creative Cloud path). Required. items: $ref: '#/components/schemas/ArtboardImageInput' outputs: maxItems: 25 minItems: 1 type: array description: List of output asset details. Each output specifies destination and output options. Maximum of 25 outputs allowed. items: oneOf: - $ref: '#/components/schemas/JpegOutput' - $ref: '#/components/schemas/JsonOutput' - $ref: '#/components/schemas/PngOutput' - $ref: '#/components/schemas/PsdOutput' - $ref: '#/components/schemas/PsdcOutput' - $ref: '#/components/schemas/TiffOutput' ErrorResponse: type: object properties: error_code: type: string description: The error code for this specific validation error errors: type: array description: List of detailed validation errors when multiple errors occur. This field is optional and only populated when there are multiple validation errors. items: $ref: '#/components/schemas/ValidationError' message: type: string description: Human-readable string describing this specific validation error description: 'Error response containing error code, message, and optional list of validation errors. Error Code Reference: | Error Code | Message | | ----------------------------- | ------------------------------------| | | | | 401013 | Oauth token is not valid | | validation_error | Validation failed | | unsupported_method | Method not allowed | | invalid_content_type | Unsupported media type | | unknown_job_id | Job not found | | unauthorized_forbidden | The quota for the calling user has exhausted OR | | The Service is experiencing high traffic. please retry after a brief wait OR | | The user is not entitled to call this service OR | | The user is currently blocked by the admin OR | | The user is having an invalid subscription OR | | The user is blocked due to a violation OR | | The user is having an invalid scope | | unauthorized_legal_reasons | The user is unauthorised due to geo ip blocking failure OR | | The user is unauthorised due to user profile region failure from floodgate | | unauthorized_rate_limited | The user is unauthorised due to rate limit. When present, Retry-After header (seconds) indicates delay before retrying. | | runtime_error | There was a problem while attempting to perform the operation. Please try again. | | invalid_json | The request payload is having invalid JSON (fallback) | ' JpegExportOptions: required: - mediaType type: object description: Jpeg Export options for the image. allOf: - $ref: '#/components/schemas/ExportOptions' - type: object properties: quality: type: string description: JPEG quality levels enum: - very_poor - poor - low - medium - high - maximum - photoshop_max EditSolidColorLayer: required: - operation type: object description: Fill layer for editing solid color layer. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' fill: $ref: '#/components/schemas/Fill' isClipped: type: boolean description: Whether the layer is clipped. Optional for edits. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/EditPixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer PortableFileResourceInput: type: object description: External file reference. Must be a URL, Creative Cloud path, or Creative Cloud file ID. Lightroom resources are not supported. oneOf: - $ref: '#/components/schemas/UrlResourceInput' - $ref: '#/components/schemas/CreativeCloudResourceInput' - $ref: '#/components/schemas/CreativeCloudFileIdResourceInput' PatternResource: required: - source type: object properties: source: $ref: '#/components/schemas/PortableFileResourceInput' description: External pattern file reference. Requires source (URL, Creative Cloud path, or Creative Cloud file ID). Inline content is not supported. JsonOutput: required: - destination - mediaType type: object description: JSON output configuration allOf: - $ref: '#/components/schemas/PhotoshopOutput' ImageSource: required: - source type: object properties: source: $ref: '#/components/schemas/FileResourceInput' description: The image input for the actions operation. Required. Operation: required: - type type: object properties: type: type: string description: Operation type enum enum: - add - edit - delete - move description: Layer operation settings including placement, delete, move and edit operations. discriminator: propertyName: type EditLayer: required: - operation type: object description: Image layer for editing existing image layers. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' image: $ref: '#/components/schemas/ImageSource' isClipped: type: boolean description: Whether the layer is clipped. Optional for edits. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/EditPixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer Exposure: type: object properties: exposureValue: maximum: 20.0 minimum: -20.0 type: number description: 'The layer''s exposure value. Range: -20 to 20. Defaults to 0.0 when adding new layers. Optional for edits' format: double gammaCorrection: maximum: 9.99 minimum: 0.01 type: number description: 'The layer''s gamma correction value. Range: 0.01 to 9.99. Defaults to 1.0 when adding new layers. Optional for edits' format: double offset: maximum: 0.5 minimum: -0.5 type: number description: 'The layer''s offset value. Range: -0.5 to 0.5. Defaults to 0.0 when adding new layers. Optional for edits' format: double description: Exposure adjustment settings DimensionMeasurement: required: - unit type: object properties: unit: type: string description: The unit of measurement for the dimension. 'pixels_unit' for absolute pixel measurements (default), 'percent_unit' for percentage-based scaling, 'distance_unit' for physical measurements, 'points_unit' for typographic points — converted to pixels using pixels = round(value × dpi / 72) before processing. Defaults to pixels_unit when omitted. default: pixels_unit enum: - pixels_unit - percent_unit - distance_unit - points_unit value: minimum: 0 type: integer description: The value of the dimension. Must be greater than or equal to 0. format: int32 description: Represents a dimension measurement for width or height with appropriate units. MoveLayer: required: - operation type: object description: Layer for move operations allOf: - $ref: '#/components/schemas/OperationBase' ValidationError: type: object properties: error_code: type: string description: The error code for this specific validation error message: type: string description: Human-readable string describing this specific validation error description: Represents a single validation error with error code and message AreaFrame: required: - type type: object description: Area text frame defining a bounded rectangular region for text content. Text will wrap within the specified bounds allOf: - $ref: '#/components/schemas/TextFrame' - type: object properties: bounds: $ref: '#/components/schemas/Bounds' Resize: type: object properties: constrainProportions: type: boolean description: Whether to constrain proportions during resizing. default: true height: $ref: '#/components/schemas/DimensionMeasurement' rasterize: type: boolean description: Whether to rasterize the image during resizing. Optional. resample: type: string description: The resampling method to use when resizing. default: bilinear enum: - nearest_neighbor - bilinear - bicubic - bicubic_smoother - bicubic_sharper resolution: $ref: '#/components/schemas/ResolutionMeasurement' scaleStyles: type: boolean description: Whether to scale styles during resizing. default: true width: $ref: '#/components/schemas/DimensionMeasurement' description: Options for resizing a document, including width, height, resolution, resample type, and additional flags. ParagraphStyleRange: type: object properties: apply: $ref: '#/components/schemas/Apply' paragraphStyle: $ref: '#/components/schemas/ParagraphStyle' description: Paragraph style range defining paragraph formatting for specific text ranges. LightAdjustments: type: object properties: blacks: maximum: 100 minimum: -100 type: integer description: 'Blacks adjustment. Range: -100 to +100' format: int32 example: -10 contrast: maximum: 100 minimum: -100 type: integer description: 'Contrast adjustment. Range: -100 to +100' format: int32 example: 10 exposure: maximum: 5 minimum: -5 type: number description: 'Exposure adjustment. Range: -5.0 to +5.0' format: double example: 1.2 highlights: maximum: 100 minimum: -100 type: integer description: 'Highlights adjustment. Range: -100 to +100' format: int32 example: -20 shadows: maximum: 100 minimum: -100 type: integer description: 'Shadows adjustment. Range: -100 to +100' format: int32 example: 15 whites: maximum: 100 minimum: -100 type: integer description: 'Whites adjustment. Range: -100 to +100' format: int32 example: 5 description: Light adjustments for image editing. EditTextLayer: required: - operation type: object description: Text layer for adding text content in the document. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' isClipped: type: boolean description: Whether the layer is clipped. Optional for edits. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/EditPixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest text: $ref: '#/components/schemas/Text' transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer ImageParameters: required: - height - width type: object allOf: - $ref: '#/components/schemas/ImageInput' - type: object properties: depth: type: string description: Bit depth options for image processing enum: - '1' - '8' - '16' - '32' fill: type: string description: Type of fill for the background layer enum: - white - background_color - transparent height: maximum: 32000 minimum: 1 type: integer description: Height of the canvas in pixels (or points when unit is points_unit). Defaults to 100. format: int32 default: 100 iccProfile: $ref: '#/components/schemas/IccProfile' mode: type: string description: 'Color mode for document creation. Supported depths vary by mode: bitmap(1), grayscale(8,16,32), indexed(8), rgb(8,16,32), cmyk(8,16), lab(8,16), hsb(8,16,32), multichannel(8,16), duotone(8).' enum: - rgb - bitmap - grayscale - indexed - hsb - cmyk - lab - duotone - multichannel name: maxLength: 255 minLength: 0 type: string description: Name/title of the document. Optional. Maximum 255 characters. pixelScaleFactor: minimum: 0.1 type: number description: Pixel scale factor. Optional. Must be positive (minimum 0.1). format: double default: 1.0 resolution: $ref: '#/components/schemas/ResolutionMeasurement' unit: type: string description: Unit applied to width and height values. Use 'points_unit' for V1 payloads where dimensions are in typographic points. Defaults to pixels_unit. default: pixels_unit enum: - pixels_unit - percent_unit - distance_unit - points_unit width: maximum: 32000 minimum: 1 type: integer description: Width of the canvas in pixels (or points when unit is points_unit). Defaults to 100. format: int32 default: 100 ColorBalanceAdjustments: required: - colorBalance - type type: object description: Color balance adjustment allOf: - $ref: '#/components/schemas/BaseAdjustment' - type: object properties: colorBalance: $ref: '#/components/schemas/ColorBalance' Placement: required: - type type: object properties: referenceLayer: $ref: '#/components/schemas/ReferenceLayer' type: type: string description: Type of placement operation (below, into, top, bottom, above). Defaults to top when omitted. default: top enum: - below - into - top - bottom - above description: Placement settings for positioning elements with alignment and insertion point. HueSaturationAdjustments: required: - hueSaturation - type type: object description: Hue and saturation adjustment allOf: - $ref: '#/components/schemas/BaseAdjustment' - type: object properties: hueSaturation: $ref: '#/components/schemas/HueSaturation' Origin: type: object properties: x: type: integer description: X coordinate format: int32 y: type: integer description: Y coordinate format: int32 description: 2D point coordinates Mask: required: - digest - source type: object properties: digest: type: string description: Fingerprint/digest of the mask for dictionary lookup. Required. source: $ref: '#/components/schemas/FileResourceInput' description: Mask input for XMP operations. Contains source file reference and digest for dictionary lookup. EditSmartObject: type: object properties: autoResize: type: boolean description: 'Controls how the embedded smart object content is sized when a replacement file is provided. Only applies to embedded smart objects (isLinked=false) with raster (PNG, JPEG, TIFF, PSD) or PDF/AI replacement files. SVG, vector formats without intrinsic dimensions, and linked smart objects are unaffected. true (default): scales the replacement to match the original smart object''s canvas dimensions and resolution. false: preserves the replacement file''s native dimensions and dpi.' default: true isLinked: type: boolean description: Whether the smart object is linked to the layer. default: false smartObjectFile: $ref: '#/components/schemas/SmartObjectFile' description: Smart object settings and file reference for edit operations. NoiseReduction: type: object properties: color: maximum: 100 minimum: 0 type: integer description: 'Color noise reduction. Range: 0 to 100' format: int32 example: 10 luminance: maximum: 100 minimum: 0 type: integer description: 'Luminance noise reduction. Range: 0 to 100' format: int32 example: 25 description: Noise reduction settings for image editing. Bounds: type: object properties: bottom: type: integer description: Bottom coordinate in pixels. Optional. format: int32 left: type: integer description: Left coordinate in pixels. Optional. format: int32 right: type: integer description: Right coordinate in pixels. Optional. format: int32 top: type: integer description: Top coordinate in pixels. Optional. format: int32 description: Area boundaries ImageInput: type: object description: Image input configuration. Can be either a source image or parameters to create a new image. CustomIccProfile: required: - name - source - type type: object description: Custom ICC profile with user-provided profile file allOf: - $ref: '#/components/schemas/IccProfile' - type: object properties: imageMode: type: string description: 'Image mode for custom ICC profiles. Allowed values: rgb, grayscale, cmyk. Optional' example: rgb enum: - rgb - grayscale - cmyk name: maxLength: 255 minLength: 0 type: string description: Custom ICC profile name. Provide a descriptive name (max 255 characters). Required. example: U.S. Web Coated (SWOP) v2 source: $ref: '#/components/schemas/FileResourceInput' AutoStraighten: required: - enabled type: object properties: constrainCrop: type: boolean description: Whether to constrain crop the straightened image to remove blank edges default: true enabled: type: boolean description: Whether auto straighten is enabled. Defaults to false when omitted. Explicit null is invalid. default: false uprightMode: type: string description: Upright mode options for auto straighten enum: - auto - full - level - vertical description: Auto straighten configuration with options CharacterStyleRange: type: object properties: apply: $ref: '#/components/schemas/Apply' characterStyle: $ref: '#/components/schemas/CharacterStyle' description: Character style range defining styling for specific text ranges. PsdcOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/PhotoshopOutput' ManifestJsonOutput: required: - destination - mediaType type: object description: JSON manifest output configuration allOf: - $ref: '#/components/schemas/ManifestOutput' PngOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/PhotoshopOutput' - type: object properties: compression: type: string description: PNG compression levels, from no compression to maximum compression. Values follow zlib/libpng standards. enum: - none - very_low - low - medium_low - medium - medium_high - default - high - very_high - maximum Destination: type: object description: Destination for output files. Can be either a URL with optional storage type or a Creative Cloud path. FontColor: type: object description: Font color definition supporting RGB, CMYK, LAB, and Grayscale color models in 16-bit depth. FontLab: required: - a - b - l type: object description: LAB color values for fonts with 16-bit depth (lightness and color channels). allOf: - $ref: '#/components/schemas/FontColor' - type: object properties: a: maximum: 16384 minimum: -16384 type: integer description: A component value (-16384 to 16384). 16-bit signed. Defaults to 0 when omitted. format: int32 default: 0 b: maximum: 16384 minimum: -16384 type: integer description: B component value (-16384 to 16384). 16-bit signed. Defaults to 0 when omitted. format: int32 default: 0 l: maximum: 32768 minimum: 0 type: integer description: Lightness component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 Edits: type: object properties: document: $ref: '#/components/schemas/Document' layers: type: array description: Array of layer edits to be applied. Optional. items: oneOf: - $ref: '#/components/schemas/AddAdjustmentLayer' - $ref: '#/components/schemas/AddBackgroundLayer' - $ref: '#/components/schemas/AddGroupLayer' - $ref: '#/components/schemas/AddLayer' - $ref: '#/components/schemas/AddSmartObjectLayer' - $ref: '#/components/schemas/AddSolidColorLayer' - $ref: '#/components/schemas/AddTextLayer' - $ref: '#/components/schemas/DeleteLayer' - $ref: '#/components/schemas/EditAdjustmentLayer' - $ref: '#/components/schemas/EditBackgroundLayer' - $ref: '#/components/schemas/EditGroupLayer' - $ref: '#/components/schemas/EditLayer' - $ref: '#/components/schemas/EditSmartObjectLayer' - $ref: '#/components/schemas/EditSolidColorLayer' - $ref: '#/components/schemas/EditTextLayer' - $ref: '#/components/schemas/MoveLayer' description: Edits to be applied to the input asset. Optional. AddSmartObjectLayer: required: - operation - smartObject type: object description: Smart object layer for embedding external files or vector graphics. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' isClipped: type: boolean description: Whether the layer is clipped. Defaults to false when adding layers. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/PixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest smartObject: $ref: '#/components/schemas/SmartObject' transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer PngExportOptions: required: - mediaType type: object description: Png Export options for the image. allOf: - $ref: '#/components/schemas/ExportOptions' - type: object properties: compression: type: string description: PNG compression levels, from no compression to maximum compression. Values follow zlib/libpng standards. enum: - none - very_low - low - medium_low - medium - medium_high - default - high - very_high - maximum SmartObject: type: object properties: isLinked: type: boolean description: Whether the smart object is linked to the layer. default: false smartObjectFile: $ref: '#/components/schemas/SmartObjectFile' description: Smart object settings and file reference. ArtboardImageInput: required: - source type: object properties: name: maxLength: 255 minLength: 1 type: string description: Name of the artboard. Optional. Defaults to rendition dimensions (e.g. "1920 x 1080"). source: $ref: '#/components/schemas/FileResourceInput' description: List of input images for the artboard. Each image must have a source with an external file reference (URL, Creative Cloud file ID, or Creative Cloud path). Required. Image: required: - source type: object properties: source: $ref: '#/components/schemas/FileResourceInput' description: The image input, which contains a source field of type ResourceInput. Required. Fill: type: object properties: solidColor: $ref: '#/components/schemas/SolidColor' description: Fill settings for layers. FileResourceInput: type: object description: 'The resource input for the image. Required. Must be a valid FileResourceInput subtype: UrlResourceInput, CreativeCloudResourceInput, CreativeCloudFileIdResourceInput, or LightroomResourceInput.' oneOf: - $ref: '#/components/schemas/UrlResourceInput' - $ref: '#/components/schemas/CreativeCloudResourceInput' - $ref: '#/components/schemas/CreativeCloudFileIdResourceInput' - $ref: '#/components/schemas/LightroomResourceInput' EffectsAdjustments: type: object properties: clarity: maximum: 100 minimum: -100 type: integer description: 'Clarity adjustment. Range: -100 to +100' format: int32 example: 5 dehaze: maximum: 100 minimum: -100 type: integer description: 'Dehaze adjustment. Range: -100 to +100' format: int32 example: 2 texture: maximum: 100 minimum: -100 type: integer description: 'Texture adjustment. Range: -100 to +100' format: int32 example: 10 vignette: maximum: 100 minimum: -100 type: integer description: 'Vignette amount. Range: -100 to +100' format: int32 example: -10 description: Effects adjustments for image editing. EditGroupLayer: required: - operation type: object description: Group layer for organizing layers hierarchically. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/EditPixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer AddOperation: required: - placement - type type: object description: Add operation for adding layers. allOf: - $ref: '#/components/schemas/Operation' - type: object properties: placement: $ref: '#/components/schemas/Placement' PointFrame: required: - type type: object description: Point frame for text starting at a single point allOf: - $ref: '#/components/schemas/TextFrame' - type: object properties: origin: $ref: '#/components/schemas/Origin' Document: type: object properties: crop: $ref: '#/components/schemas/Crop' resize: $ref: '#/components/schemas/Resize' trim: $ref: '#/components/schemas/Trim' description: Represents the editable document structure, including resize, crop and trim options. Each field corresponds to a specific type of document edit operation. LrPngOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/LightroomOutput' - type: object properties: compression: type: string description: PNG compression levels, from no compression to maximum compression. Values follow zlib/libpng standards. enum: - none - very_low - low - medium_low - medium - medium_high - default - high - very_high - maximum BrushResource: required: - source type: object properties: source: $ref: '#/components/schemas/PortableFileResourceInput' description: Single brush resource (.abr, etc.). When present, the 'source' field is required. EditPixelMask: required: - delete type: object properties: delete: type: boolean description: When true, removes the pixel mask from the layer. Takes precedence over all other options. Defaults to false. isEnabled: type: boolean description: Whether the pixel mask is enabled. Optional. Defaults to true when adding new layers. Optional for edits isLinked: type: boolean description: Whether the pixel mask is linked to the layer. Optional. Defaults to true when adding new layers. Optional for edits offset: $ref: '#/components/schemas/Offset' source: $ref: '#/components/schemas/FileResourceInput' description: Pixel mask settings for edit operations. Extends PixelMask with the ability to delete the mask. BrightnessContrast: type: object properties: brightness: maximum: 150 minimum: -150 type: integer description: 'The adjustment layer''s brightness. Range: -150 to 150. Defaults to 0 when adding new layers. Optional for edits' format: int32 contrast: maximum: 150 minimum: -150 type: integer description: 'The adjustment layer''s contrast. Range: -150 to 150. Defaults to 0 when adding new layers. Optional for edits' format: int32 description: Brightness and contrast adjustment settings Transform: type: object properties: anchor: $ref: '#/components/schemas/Anchor' angle: type: number description: Rotation angle in degrees format: double dimension: $ref: '#/components/schemas/Dimension' horizontalAlign: type: string description: Horizontal alignment options enum: - left - center - right offset: $ref: '#/components/schemas/Offset' skew: $ref: '#/components/schemas/Skew' verticalAlign: type: string description: Vertical alignment options enum: - top - center - bottom description: Transformation applied to the smart object or layer, optional TextFrame: required: - type type: object properties: type: type: string description: Text frame type enum: - point - area description: Frame configuration for text layers discriminator: propertyName: type Dimension: type: object properties: height: maximum: 32000 minimum: 0 type: integer description: Height after transformation. Optional. format: int32 unit: type: string description: 'Unit for width and height. Accepted values for transform dimensions: ''pixels_unit'' (default) and ''points_unit''. Optional — omitting this field defaults to pixels_unit.' default: pixels_unit enum: - pixels_unit - percent_unit - distance_unit - points_unit - pixels_unit - points_unit width: maximum: 32000 minimum: 0 type: integer description: Width after transformation. Optional. format: int32 description: Offset coordinates for positioning elements. ActionResource: required: - source type: object properties: actionName: type: string description: The name of a specific action to execute within the action set. If omitted, all actions in the file are executed. source: oneOf: - $ref: '#/components/schemas/CreativeCloudFileIdResourceInput' - $ref: '#/components/schemas/CreativeCloudResourceInput' - $ref: '#/components/schemas/InlineContentResourceInput' - $ref: '#/components/schemas/LightroomResourceInput' - $ref: '#/components/schemas/UrlResourceInput' description: Single Photoshop action resource (.atn or inline actionJSON). When present, the 'source' field is required. AutoCropInputImage: required: - source type: object properties: mediaType: $ref: '#/components/schemas/AutoCropImageMediaType' source: $ref: '#/components/schemas/AutoCropUrlResource' description: The input image for the auto-crop operation. FontGray: required: - gray type: object description: Grayscale color value for fonts with 16-bit depth. allOf: - $ref: '#/components/schemas/FontColor' - type: object properties: gray: maximum: 32768 minimum: 0 type: integer description: Gray component value (0-32768). 16-bit unsigned. 0 is black, 32768 is white. Defaults to 0 when omitted. format: int32 default: 0 DeleteOperation: required: - type type: object description: Delete operation for removing layers. allOf: - $ref: '#/components/schemas/Operation' - type: object properties: shouldIncludeChildren: type: boolean description: Whether to include child layers in the deletion. Optional. Default - true AddBackgroundLayer: required: - operation type: object description: Background layer for adding a background to the document. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' image: $ref: '#/components/schemas/ImageSource' isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/PixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer Offset: type: object properties: horizontal: type: integer description: Horizontal offset in pixels. Defaults to 0 when adding new layers. Optional for edits. format: int32 vertical: type: integer description: Vertical offset in pixels. Defaults to 0 when adding new layers. Optional for edits. format: int32 description: Offset coordinates for positioning elements. EditBackgroundLayer: required: - operation type: object description: Background layer for editing an existing background layer. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' convertToLayer: type: boolean description: When true, promotes the background layer to a regular layer. Mutually exclusive with image. convertedLayerName: type: string description: Name to set on the layer after conversion. Only applicable when convertToLayer is true. Optional. image: $ref: '#/components/schemas/ImageSource' isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/EditPixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer OperationBase: required: - operation type: object properties: id: type: integer description: Layer ID format: int32 name: type: string description: Layer name operation: oneOf: - $ref: '#/components/schemas/AddOperation' - $ref: '#/components/schemas/DeleteOperation' - $ref: '#/components/schemas/EditOperation' - $ref: '#/components/schemas/MoveOperation' description: Base for a single layer edit. When present, the 'operation' field is required. Font: type: object properties: postScriptName: type: string description: PostScript name of the font for precise identification. Optional. description: Font definition with PostScript name. ManifestOutput: required: - destination - mediaType type: object properties: destination: oneOf: - $ref: '#/components/schemas/CreativeCloudDestination' - $ref: '#/components/schemas/EmbeddedDestination' - $ref: '#/components/schemas/HostedDestination' - $ref: '#/components/schemas/UrlDestination' mediaType: type: string description: Supported media types for manifest output default: application/json enum: - application/json description: Export options for manifest output. discriminator: propertyName: mediaType AddSolidColorLayer: required: - fill - operation type: object description: Fill layer for adding solid color layer. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' fill: $ref: '#/components/schemas/Fill' isClipped: type: boolean description: Whether the layer is clipped. Defaults to false when adding layers. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/PixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer XmpOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/LightroomOutput' HostedDestination: required: - validityPeriod type: object allOf: - $ref: '#/components/schemas/Destination' - type: object properties: validityPeriod: maximum: 86400 minimum: 60 type: integer description: 'Validity period in seconds. Minimum: 60 seconds (1 minute). Maximum: 86400 seconds (1 day). Defaults to 3600 seconds (1 hour) when omitted.' format: int32 default: 3600 FontCmyk: required: - black - cyan - magenta - yellow type: object description: CMYK color values for fonts with 16-bit depth (cyan, magenta, yellow, black components). allOf: - $ref: '#/components/schemas/FontColor' - type: object properties: black: maximum: 32768 minimum: 0 type: integer description: Black component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 cyan: maximum: 32768 minimum: 0 type: integer description: Cyan component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 magenta: maximum: 32768 minimum: 0 type: integer description: Magenta component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 yellow: maximum: 32768 minimum: 0 type: integer description: Yellow component value (0-32768). 16-bit unsigned. Defaults to 0 when omitted. format: int32 default: 0 ParagraphStyle: type: object properties: alignment: type: string description: Text alignment options enum: - left - center - right - justify - justify_left - justify_right - justify_center endIndent: type: number description: End indent in pixels. Optional. Default is 0. format: double firstLineIndent: type: number description: First line indent in pixels. Optional. Default is 0. format: double spaceAfter: type: number description: Space after paragraph in pixels. Optional. Default is 0. format: double spaceBefore: type: number description: Space before paragraph in pixels. Optional. Default is 0. format: double startIndent: type: number description: Start indent in pixels. Optional. Default is 0. format: double writingDirection: type: string description: Text writing direction enum: - left_to_right - right_to_left description: Paragraph style properties. AutoCropMode: type: string description: Mode for the auto crop operation. 'smartCrop' and 'subjectCrop' generate crops using aspectRatio with optional zoom. 'fullSceneDetection' and 'objectDetection' detect subjects or objects in the scene. enum: - smartCrop - subjectCrop - fullSceneDetection - objectDetection InlineContentResourceInput: required: - content type: object description: Inline content resource input. Allows embedding content directly in the request. allOf: - $ref: '#/components/schemas/ResourceInput' - type: object properties: content: maxLength: 51200 minLength: 0 type: string description: 'Inline content as string (for scripts, JSON, or other text-based content). Required. Maximum size: 50KB (51,200 characters).' contentType: type: string description: MIME type of the content. Optional but recommended for proper processing. TiffOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/PhotoshopOutput' ActionsRequest: required: - image - options - outputs type: object properties: image: $ref: '#/components/schemas/ImageSource' options: $ref: '#/components/schemas/ActionsOptions' outputs: maxItems: 25 minItems: 1 type: array description: List of output asset details. Required. Maximum of 25 outputs allowed. items: oneOf: - $ref: '#/components/schemas/JpegOutput' - $ref: '#/components/schemas/JsonOutput' - $ref: '#/components/schemas/PngOutput' - $ref: '#/components/schemas/PsdOutput' - $ref: '#/components/schemas/PsdcOutput' - $ref: '#/components/schemas/TiffOutput' LrDngOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/LightroomOutput' AutoCropAspectRatio: type: string description: Desired aspect ratio for generated crops. enum: - '1:1' - '16:9' - '9:16' - '4:3' - '3:4' - '4:5' - '5:4' - '3:2' - '2:3' - '21:9' LightroomEdits: type: object properties: autoStraighten: $ref: '#/components/schemas/AutoStraighten' autoTone: type: boolean description: Auto tone adjustment. Optional. color: $ref: '#/components/schemas/ColorAdjustments' effects: $ref: '#/components/schemas/EffectsAdjustments' light: $ref: '#/components/schemas/LightAdjustments' noiseReduction: $ref: '#/components/schemas/NoiseReduction' presets: maxItems: 10 minItems: 0 type: array description: List of preset inputs to apply. Optional. items: $ref: '#/components/schemas/FileResourceInput' sharpen: $ref: '#/components/schemas/SharpenAdjustments' sharpness: maximum: 150 minimum: 0 type: integer description: 'Sharpness value. Optional. Range: 0 to 150' format: int32 xmp: $ref: '#/components/schemas/XmpInput' description: Lightroom edit adjustments including XMP, presets, and all adjustment parameters. Optional. FontOptions: type: object properties: additionalFonts: type: array description: Array of custom fonts needed in this document. Optional. items: $ref: '#/components/schemas/AdditionalFont' defaultFontPostScriptName: type: string description: The full postscript name of the font to be used as the global default for the document. Optional. missingFontStrategy: type: string description: Action to take if there are missing fonts. Optional. enum: - fail - use_default description: Font options configuration. Optional. AddLayer: required: - image - operation type: object description: Image layer for adding raster images to the document. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' image: $ref: '#/components/schemas/ImageSource' isClipped: type: boolean description: Whether the layer is clipped. Defaults to false when adding layers. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/PixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer ColorBalance: type: object properties: highlightLevels: maxItems: 3 minItems: 3 type: array description: Array of 3 integers for highlight levels. Each value must be between -100 and 100. Defaults to [0, 0, 0] when adding new layers. Optional for edits items: maximum: 100 minimum: -100 type: integer description: Array of 3 integers for highlight levels. Each value must be between -100 and 100. Defaults to [0, 0, 0] when adding new layers. Optional for edits format: int32 midtoneLevels: maxItems: 3 minItems: 3 type: array description: Array of 3 integers for midtone levels. Each value must be between -100 and 100. Defaults to [0, 0, 0] when adding new layers. Optional for edits items: maximum: 100 minimum: -100 type: integer description: Array of 3 integers for midtone levels. Each value must be between -100 and 100. Defaults to [0, 0, 0] when adding new layers. Optional for edits format: int32 preserveLuminosity: type: boolean description: Whether to preserve luminosity. Defaults to true when adding new layers. Optional for edits shadowLevels: maxItems: 3 minItems: 3 type: array description: Array of 3 integers for shadow levels. Each value must be between -100 and 100. Defaults to [0, 0, 0] when adding new layers. Optional for edits items: maximum: 100 minimum: -100 type: integer description: Array of 3 integers for shadow levels. Each value must be between -100 and 100. Defaults to [0, 0, 0] when adding new layers. Optional for edits format: int32 description: Color balance adjustment settings StandardIccProfile: required: - name - type type: object description: Standard ICC profile with predefined profile names allOf: - $ref: '#/components/schemas/IccProfile' - type: object properties: imageMode: type: string description: 'Image mode for standard ICC profiles. Allowed values: rgb, grayscale. Optional' example: rgb enum: - rgb - grayscale name: type: string description: Standard ICC profile names for color management example: sRGB IEC61966-2.1 default: sRGB IEC61966-2.1 enum: - Adobe RGB (1998) - Apple RGB - ColorMatch RGB - sRGB IEC61966-2.1 - Dot Gain 10% - Dot Gain 15% - Dot Gain 20% - Dot Gain 25% - Dot Gain 30% - Gray Gamma 1.8 - Gray Gamma 2.2 PixelMask: type: object properties: isEnabled: type: boolean description: Whether the pixel mask is enabled. Optional. Defaults to true when adding new layers. Optional for edits isLinked: type: boolean description: Whether the pixel mask is linked to the layer. Optional. Defaults to true when adding new layers. Optional for edits offset: $ref: '#/components/schemas/Offset' source: $ref: '#/components/schemas/FileResourceInput' description: Pixel mask settings for layer operations, including source input and pixel mask properties. EditOperation: required: - type type: object description: Edit operation for modifying existing layer properties allOf: - $ref: '#/components/schemas/Operation' EditImageInput: required: - source type: object properties: source: $ref: '#/components/schemas/FileResourceInput' description: 'The image input for the edit operation. Supported input source mime types: image/jpeg, image/png, image/x-adobe-dng, image/webp, image/tiff, image/vnd.adobe.photoshop, image/x-sony-arw, and other supported raw/camera formats. Required.' AutoCropImageMediaType: type: string description: The media type of the input image. Supported values are image/jpeg, image/png, and image/webp. enum: - image/jpeg - image/png - image/webp ReferenceLayer: type: object properties: id: type: integer format: int64 name: type: string description: Layers to export. Specify layers by id, name, or both. Optional. CreativeCloudDestination: required: - creativeCloudPath type: object allOf: - $ref: '#/components/schemas/Destination' - type: object properties: creativeCloudPath: type: string description: Path to Creative Cloud storage. Required. creativeCloudProjectId: pattern: ^urn:aaid:.* type: string description: 'The Creative Cloud project ID. Optional. Must be a valid URN starting with ''urn:aaid:sc:''. Example: urn:aaid:sc:US:a21c8629-413f-55d9-...' MoveOperation: required: - placement - type type: object description: Move operation for moving layers. allOf: - $ref: '#/components/schemas/Operation' - type: object properties: placement: $ref: '#/components/schemas/Placement' shouldIncludeChildren: type: boolean description: Whether to include child layers in the move. Optional. LocalRange: required: - channelId type: object properties: beginRamp: maximum: 360 minimum: 0 type: integer description: 'The beginning of the ramp (feather start). Range: 0-360 degrees.' format: int32 beginSustain: maximum: 360 minimum: 0 type: integer description: 'The beginning of the sustain (full effect start). Range: 0-360 degrees.' format: int32 channelId: type: string description: 'Channel for local range color adjustments. Allowed values: REDS, YELLOWS, GREENS, CYANS, BLUES, MAGENTAS' default: REDS enum: - REDS - YELLOWS - GREENS - CYANS - BLUES - MAGENTAS endRamp: maximum: 360 minimum: 0 type: integer description: 'The end of the ramp (feather end). Range: 0-360 degrees.' format: int32 endSustain: maximum: 360 minimum: 0 type: integer description: 'The end of the sustain (full effect end). Range: 0-360 degrees.' format: int32 description: Local range settings for targeted color adjustments. Defines the hue range boundaries for the adjustment. EmbeddedDestination: required: - embedded type: object allOf: - $ref: '#/components/schemas/Destination' - type: object properties: embedded: type: string description: Embedded format (string, base64, or json). Defaults to string when omitted. default: string enum: - string - base64 - json PsdOutput: required: - destination - mediaType type: object allOf: - $ref: '#/components/schemas/PhotoshopOutput' Trim: type: object properties: trimUpon: type: string description: The basis for the trim operation (background or transparent). Optional. enum: - transparent_pixels description: Options for trimming a document, specifying the basis for the trim operation. LightroomOutput: required: - destination - mediaType type: object properties: destination: oneOf: - $ref: '#/components/schemas/CreativeCloudDestination' - $ref: '#/components/schemas/EmbeddedDestination' - $ref: '#/components/schemas/HostedDestination' - $ref: '#/components/schemas/UrlDestination' mediaType: type: string description: Supported media types for edit output enum: - image/jpeg - image/png - image/x-adobe-dng - application/rdf+xml description: Export options for a single output. discriminator: propertyName: mediaType PhotoshopOutput: required: - destination - mediaType type: object properties: cropMode: type: string description: Crop mode for export output enum: - trim_to_transparency - document_bounds - layer_bounds destination: oneOf: - $ref: '#/components/schemas/CreativeCloudDestination' - $ref: '#/components/schemas/EmbeddedDestination' - $ref: '#/components/schemas/HostedDestination' - $ref: '#/components/schemas/UrlDestination' height: minimum: 0 type: integer description: Height in pixels. Must be >= 0. Optional. format: int32 iccProfile: oneOf: - $ref: '#/components/schemas/CustomIccProfile' - $ref: '#/components/schemas/StandardIccProfile' layers: maxItems: 100 minItems: 0 type: array description: Layers to export. Specify layers by id, name, or both. Optional. items: $ref: '#/components/schemas/ReferenceLayer' maxWidth: minimum: 0 type: integer description: Maximum width constraint in pixels. Must be >= 0. If specified and (width > maxWidth OR documentWidth > maxWidth), the output will be constrained to maxWidth. Optional. format: int32 mediaType: type: string description: Supported media types for output default: image/jpeg enum: - image/jpeg - image/png - image/tiff - image/vnd.adobe.photoshop - document/vnd.adobe.cpsd+dcxucf - document/vnd.adobe.cpsd+dcx - application/json resample: type: string description: 'Resampling algorithm used when resizing output to a target width. Valid values: nearest_neighbor, bilinear, bicubic, bicubic_smoother, bicubic_sharper. Defaults to bicubic_sharper when width or maxWidth is specified and this field is omitted. Optional.' enum: - nearest_neighbor - bilinear - bicubic - bicubic_smoother - bicubic_sharper scriptOutputPattern: maxLength: 255 minLength: 0 type: string description: 'Pattern for matching script output files in the UXP output directory. Supports both exact filenames and glob patterns. Examples: ''output.json'' (matches single specific file), ''*.json'' (matches all JSON files), ''result-*.png'' (matches result-1.png, result-2.png, etc.). Files are filtered based on the mediaType of this output definition. Only files with extensions matching the mediaType will be included. When a pattern matches multiple files, one output entry is created per file. When present, skips normal rendering/export and uses matched files instead. Output parameters like quality, compression, width, and height are ignored when this field is present. Only applicable for /v2/execute-actions endpoint. Optional, nullable.' shouldOverwrite: type: boolean description: Whether to overwrite existing files. Optional. width: minimum: 0 type: integer description: Width in pixels. Must be >= 0. Optional. format: int32 description: Export options for a single output. discriminator: propertyName: mediaType UrlDestination: required: - url type: object allOf: - $ref: '#/components/schemas/Destination' - type: object properties: storageType: type: string description: Storage type for the destination. Optional. enum: - azure - dropbox url: type: string description: Pre-signed URL for external storage. Must be HTTPS. Required. UrlResourceInput: required: - url type: object description: URL resource input. References a resource via a pre-signed URL. allOf: - $ref: '#/components/schemas/ResourceInput' - type: object properties: url: type: string description: The pre-signed URL of the resource. Required. AdditionalContentResource: required: - source type: object properties: source: $ref: '#/components/schemas/PortableFileResourceInput' description: Single additional resource (images, js, brushes, etc.). When present, the 'source' field is required. Apply: required: - from - to type: object properties: from: minimum: 0 type: integer description: From value. Required. format: int32 to: minimum: 0 type: integer description: To value. Required. format: int32 description: Inclusive range (from/to) for character or paragraph styling. When present, both 'from' and 'to' are required. Anchor: required: - horizontal - vertical type: object properties: horizontal: type: number description: Horizontal anchor position. Required. format: double vertical: type: number description: Vertical anchor position. Required. format: double description: Anchor point coordinates for transformations and positioning. AutoCropUrlResource: required: - url type: object properties: url: type: string description: The URL of the resource. Only allow-listed domains are accepted as input URLs (e.g. amazonaws.com, windows.net, dropboxusercontent.com, assets.frame.io, storage.googleapis.com, adobe.io, azureedge.net). description: The source of the input image. BlendOptions: type: object properties: blendMode: type: string description: Blend mode of a layer enum: - normal - dissolve - darken - multiply - color_burn - linear_burn - darker_color - lighten - screen - color_dodge - linear_dodge - lighter_color - overlay - soft_light - hard_light - vivid_light - pin_light - hard_mix - difference - exclusion - subtract - divide - hue - saturation - color - luminosity opacity: maximum: 100 minimum: 0 type: integer description: 'Opacity percentage for the blend effect. Range: 0-100. Defaults to 100 when adding new layers. Optional for edits.' format: int32 description: Blend options for layer effects, including opacity settings. ResolutionMeasurement: required: - unit type: object properties: unit: type: string description: The unit of measurement for resolution. 'density_unit' represents pixel density measurements like DPI (dots per inch) or PPI (pixels per inch). Defaults to density_unit when omitted. default: density_unit enum: - density_unit value: minimum: 1 type: integer description: The value of the resolution. Must be greater than or equal to 1. format: int32 description: Represents a resolution measurement with density unit. XmpInput: required: - source type: object properties: masks: type: array description: List of mask inputs. Optional. Each mask contains a source file reference and digest for dictionary lookup. items: $ref: '#/components/schemas/Mask' orientation: type: string description: XMP orientation values following EXIF/TIFF specification enum: - top_left - top_right - bottom_right - bottom_left - left_top - right_top - right_bottom - left_bottom source: $ref: '#/components/schemas/FileResourceInput' description: XMP metadata input. Requires source (external file reference). Inline content is not supported. ExposureAdjustments: required: - exposure - type type: object description: Exposure adjustment allOf: - $ref: '#/components/schemas/BaseAdjustment' - type: object properties: exposure: $ref: '#/components/schemas/Exposure' HueSaturationAdjustment: type: object properties: hue: type: integer description: 'The hue adjustment value. When colorize=false: -180 to 180. When colorize=true: 0 to 360. Defaults to 0 when adding new layers. Optional for edits' format: int32 lightness: type: integer description: 'The lightness adjustment value. When colorize=false: -100 to 100. When colorize=true: 0 to 100. Defaults to 0 when adding new layers. Optional for edits' format: int32 localRange: $ref: '#/components/schemas/LocalRange' saturation: type: integer description: 'The saturation adjustment value. When colorize=false: -100 to 100. When colorize=true: 0 to 100. Defaults to 0 when adding new layers. Optional for edits' format: int32 description: Array of hue/saturation adjustments. For master channel, LocalRange is not applicable. AutoCropOutputType: type: string description: Output type for the auto crop operation. 'images' returns cropped images with presigned URLs (default). 'boundingBoxes' returns only bounding box coordinates. default: images enum: - images - boundingBoxes CreativeCloudResourceInput: required: - creativeCloudPath type: object description: Creative Cloud resource input. References a resource via Creative Cloud path. allOf: - $ref: '#/components/schemas/ResourceInput' - type: object properties: creativeCloudPath: type: string description: The path to the asset in Creative Cloud. Required. creativeCloudProjectId: pattern: ^urn:aaid:.* type: string description: 'The Creative Cloud project ID. Optional. Must be a valid URN starting with ''urn:aaid:sc:''. Example: urn:aaid:sc:US:a21c8629-413f-55d9-...' ActionsOptions: type: object properties: actions: maxItems: 10 minItems: 0 type: array description: List of Photoshop actions. Can be .atn files or inline actionJSON. Optional. items: $ref: '#/components/schemas/ActionResource' additionalContents: maxItems: 25 minItems: 0 type: array description: List of additional resources. Optional. These images, js, brushes can be referenced in inline actionJSON or in UXPusing placeholders `__ADDITIONAL_CONTENTS_PATH_0__`, `__ADDITIONAL_CONTENTS_PATH_1__`, etc. based on their array index. items: $ref: '#/components/schemas/AdditionalContentResource' brushes: maxItems: 10 minItems: 0 type: array description: List of brush resources. External references only. Optional. items: $ref: '#/components/schemas/BrushResource' fontOptions: $ref: '#/components/schemas/FontOptions' patterns: maxItems: 10 minItems: 0 type: array description: List of pattern resources. External references only. Optional. items: $ref: '#/components/schemas/PatternResource' uxp: $ref: '#/components/schemas/UxpResource' description: Options configuration for the actions execution. At least one of actions or uxp is required. DeleteLayer: required: - operation type: object description: Layer for delete operations allOf: - $ref: '#/components/schemas/OperationBase' Rgb: required: - blue - green - red type: object properties: blue: maximum: 255 minimum: 0 type: integer description: Blue component value (0-255). Defaults to 0 when omitted. format: int32 default: 0 green: maximum: 255 minimum: 0 type: integer description: Green component value (0-255). Defaults to 0 when omitted. format: int32 default: 0 red: maximum: 255 minimum: 0 type: integer description: Red component value (0-255). Defaults to 0 when omitted. format: int32 default: 0 description: RGB color values with red, green, and blue components. SharpenAdjustments: type: object properties: detail: maximum: 100 minimum: 0 type: integer description: 'Sharpen detail. Range: 0 to 100' format: int32 example: 50 edgeMasking: maximum: 100 minimum: 0 type: integer description: 'Sharpen edge masking. Range: 0 to 100' format: int32 example: 25 radius: maximum: 3.0 minimum: 0.5 type: number description: 'Sharpen radius. Range: 0.5 to 3.0' format: double example: 1.0 description: Sharpen adjustments for image editing. LightroomResourceInput: required: - lightroomPath type: object description: Lightroom resource input. References a resource via Lightroom path. allOf: - $ref: '#/components/schemas/ResourceInput' - type: object properties: lightroomPath: pattern: ^/v2/.* type: string description: 'The path to the asset in Lightroom. Required. Must be a partial path that starts with ''/v2/''. The host/domain is always fixed server-side and cannot be supplied by the caller: absolute URLs, scheme prefixes, protocol-relative ''//host/...'' forms, and ''..'' path segments are all rejected.' IccProfile: required: - type type: object properties: type: type: string description: Type of ICC profile. 'standard' for predefined profiles, 'custom' for user-provided profiles. Defaults to standard when omitted; explicit null is invalid. example: standard default: standard enum: - standard - custom description: ICC profile configuration for color management discriminator: propertyName: type EditSmartObjectLayer: required: - operation type: object description: Smart object layer for embedding external files or vector graphics. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' isClipped: type: boolean description: Whether the layer is clipped. Optional for edits. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/EditPixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest smartObject: $ref: '#/components/schemas/EditSmartObject' transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer AddTextLayer: required: - operation - text type: object description: Text layer for adding text content in the document. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' isClipped: type: boolean description: Whether the layer is clipped. Defaults to false when adding layers. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/PixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest text: $ref: '#/components/schemas/Text' transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer Skew: required: - horizontal - vertical type: object properties: horizontal: type: integer description: Horizontal skew. Required. format: int32 vertical: type: integer description: Vertical skew. Required. format: int32 description: Skew transformation settings for horizontal and vertical distortion. AddGroupLayer: required: - operation type: object description: Group layer for organizing layers hierarchically. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: blendOptions: $ref: '#/components/schemas/BlendOptions' children: type: array description: Child layers in this group. Optional. items: oneOf: - $ref: '#/components/schemas/AddAdjustmentLayer' - $ref: '#/components/schemas/AddBackgroundLayer' - $ref: '#/components/schemas/AddGroupLayer' - $ref: '#/components/schemas/AddLayer' - $ref: '#/components/schemas/AddSmartObjectLayer' - $ref: '#/components/schemas/AddSolidColorLayer' - $ref: '#/components/schemas/AddTextLayer' - $ref: '#/components/schemas/DeleteLayer' - $ref: '#/components/schemas/EditAdjustmentLayer' - $ref: '#/components/schemas/EditBackgroundLayer' - $ref: '#/components/schemas/EditGroupLayer' - $ref: '#/components/schemas/EditLayer' - $ref: '#/components/schemas/EditSmartObjectLayer' - $ref: '#/components/schemas/EditSolidColorLayer' - $ref: '#/components/schemas/EditTextLayer' - $ref: '#/components/schemas/MoveLayer' isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/PixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer BrightnessContrastAdjustments: required: - brightnessContrast - type type: object description: Brightness and contrast adjustment allOf: - $ref: '#/components/schemas/BaseAdjustment' - type: object properties: brightnessContrast: $ref: '#/components/schemas/BrightnessContrast' Text: type: object properties: antiAliasing: type: string description: Anti-aliasing mode for text rendering enum: - none - sharp - crisp - strong - smooth characterStyles: type: array description: Character styles applied to text ranges. Optional. items: $ref: '#/components/schemas/CharacterStyleRange' content: type: string description: The text content. Optional. frame: oneOf: - $ref: '#/components/schemas/AreaFrame' - $ref: '#/components/schemas/PointFrame' paragraphStyles: type: array description: Paragraph styles applied to text ranges. Optional. items: $ref: '#/components/schemas/ParagraphStyleRange' textOrientation: type: string description: Text orientation enum: - horizontal - vertical description: Text content and formatting settings for text layers. UxpResource: required: - source type: object properties: source: oneOf: - $ref: '#/components/schemas/CreativeCloudFileIdResourceInput' - $ref: '#/components/schemas/CreativeCloudResourceInput' - $ref: '#/components/schemas/InlineContentResourceInput' - $ref: '#/components/schemas/LightroomResourceInput' - $ref: '#/components/schemas/UrlResourceInput' description: UXP plugin script resource. Requires source (external file reference or inline script content). AutoCropRequest: required: - image - mode type: object properties: aspectRatio: description: Desired aspect ratio(s) for generated crops. Accepts either a single enum string or an array of up to 20 strings. Allowed only for 'smartCrop' and 'subjectCrop'. When omitted, the service defaults to 1:1. An empty array is treated as absent. example: - '16:9' - '1:1' - '4:3' oneOf: - $ref: '#/components/schemas/AutoCropAspectRatio' - type: array items: $ref: '#/components/schemas/AutoCropAspectRatio' focus: type: array description: Focus labels, ordered by preference, used to prioritize objects during cropping or as detection targets. Required for 'subjectCrop' and 'objectDetection'; must be empty for 'smartCrop' and 'fullSceneDetection'. example: - logo - person items: type: string image: $ref: '#/components/schemas/AutoCropInputImage' mode: $ref: '#/components/schemas/AutoCropMode' outputType: $ref: '#/components/schemas/AutoCropOutputType' zoom: description: Optional zoom level(s) paired with aspectRatio. Accepts either a number or an array of up to 20 numbers in (0, 1]. Must not be sent without aspectRatio. When aspectRatio is an array, zoom may be omitted or must be a matching non-empty array. example: - 0.9 - 0.8 - 0.85 oneOf: - type: number - type: array items: type: number EditRequest: required: - image - outputs type: object properties: edits: $ref: '#/components/schemas/LightroomEdits' image: $ref: '#/components/schemas/EditImageInput' outputs: maxItems: 25 minItems: 1 type: array description: List of output asset details. Required. Maximum of 25 outputs allowed. items: oneOf: - $ref: '#/components/schemas/LrDngOutput' - $ref: '#/components/schemas/LrJpegOutput' - $ref: '#/components/schemas/LrPngOutput' - $ref: '#/components/schemas/XmpOutput' CreateCompositeRequest: required: - image - outputs type: object properties: edits: $ref: '#/components/schemas/Edits' fontOptions: $ref: '#/components/schemas/FontOptions' image: oneOf: - $ref: '#/components/schemas/ImageParameters' - $ref: '#/components/schemas/ImageSource' outputs: maxItems: 25 minItems: 1 type: array description: List of output asset details. Required. Maximum of 25 outputs allowed. items: oneOf: - $ref: '#/components/schemas/JpegOutput' - $ref: '#/components/schemas/JsonOutput' - $ref: '#/components/schemas/PngOutput' - $ref: '#/components/schemas/PsdOutput' - $ref: '#/components/schemas/PsdcOutput' - $ref: '#/components/schemas/TiffOutput' ColorAdjustments: type: object properties: saturation: maximum: 100 minimum: -100 type: integer description: 'Saturation adjustment. Range: -100 to +100' format: int32 example: 20 vibrance: maximum: 100 minimum: -100 type: integer description: 'Vibrance adjustment. Range: -100 to +100' format: int32 example: 15 whiteBalance: type: string description: White balance example: As Shot enum: - As Shot - Auto - Cloudy - Custom - Daylight - Flash - Fluorescent - Shade - Tungsten description: Color adjustments for image editing. SmartObjectFile: type: object properties: source: $ref: '#/components/schemas/FileResourceInput' description: 'File reference for the smart object. Supported file formats: PSD, PNG, JPEG, TIFF, SVG. Optional.' EditAdjustmentLayer: required: - operation type: object description: Adjustment layer for applying image adjustments like brightness, contrast, hue/saturation, etc. allOf: - $ref: '#/components/schemas/OperationBase' - type: object properties: adjustments: oneOf: - $ref: '#/components/schemas/BrightnessContrastAdjustments' - $ref: '#/components/schemas/ColorBalanceAdjustments' - $ref: '#/components/schemas/ExposureAdjustments' - $ref: '#/components/schemas/HueSaturationAdjustments' blendOptions: $ref: '#/components/schemas/BlendOptions' isClipped: type: boolean description: Whether the layer is clipped. Optional for edits. isVisible: type: boolean description: Whether the layer is visible. Defaults to true when adding layers. Optional for edits. pixelMask: $ref: '#/components/schemas/EditPixelMask' protection: type: array description: Protection flags for the layer (e.g. none, all, transparency, composite, position, artboard_autonest). Defaults to 'none' when adding layers. Optional for edits; omit, null, or empty array [] mean 'don't change'. When 'none' or 'all' is used, the array must contain only that element. items: type: string description: Protection flag for layer. Used in protection array. enum: - none - all - transparency - composite - position - artboard_autonest transform: $ref: '#/components/schemas/Transform' transformMode: type: string description: 'Transform mode applied to the layer. Defaults to ''none'' when adding layers. Optional for edits. Modes: ''none'' — applies no scaling. ''fit'' — scales the layer uniformly to fit within the canvas bounds while preserving aspect ratio. ''fill'' — scales the layer uniformly to fill the canvas bounds while preserving aspect ratio, cropping overflow if the layer''s aspect ratio differs from the canvas. ''custom'' — applies the exact width and height from the Transform without preserving aspect ratio. Important for text layers: Any mode other than ''none'' (or any non-identity scale on the Transform) causes the type engine to render glyphs and leading multiplied by the layer''s scale factors. fontSize and lineHeight in CharacterStyle are stored unscaled. The rendered output becomes: fontSize x horizontalScale and lineHeight x verticalScale. To produce text at exact pixel sizes, use transformMode ''none'' and avoid scaling Transforms on text layers.' enum: - fit - fill - custom - none type: type: string description: Layer type enum enum: - layer - solid_color_layer - text_layer - smart_object_layer - adjustment_layer - group_layer - background_layer JobAcceptedResponse: type: object properties: jobId: type: string statusUrl: type: string SolidColor: required: - rgb type: object properties: rgb: $ref: '#/components/schemas/Rgb' description: Solid color definition using RGB values. HueSaturation: type: object properties: colorize: type: boolean description: Whether to colorize the layer. When true, LocalRange cannot be used in any adjustment. Defaults to false when adding new layers. Optional for edits hueSaturationAdjustments: maxItems: 2147483647 minItems: 1 type: array items: $ref: '#/components/schemas/HueSaturationAdjustment' description: Hue/Saturation adjustment settings. When colorize is true, LocalRange cannot be used. When colorize is false, LocalRange can only be used for non-master channels (reds, yellows, greens, cyans, blues, magentas). securitySchemes: Authorization: description: User access token (Bearer xxx) scheme: Bearer type: http X-Api-Key: description: Api key (adobe.io) in: header name: X-Api-Key type: apiKey