{ "openapi": "3.0.3", "info": { "title": "Adobe Photoshop API", "description": "This is the comprehesive reference for the Adobe Photoshop API, including all available API endpoints, request formats, parameters, authentication requirements, and example responses to use when integrating with or building on top of our APIs.", "version": "1.0" }, "servers": [ { "url": "https://image.adobe.io", "description": "Adobe Photoshop Production", "variables": {} } ], "tags": [ { "name": "Common operations", "description": "General Photoshop API operations and utilities" }, { "name": "Masking", "description": "Operations for creating and manipulating masks" }, { "name": "Remove background", "description": "AI-powered background removal and subject isolation operations" }, { "name": "actionJSON", "description": "Operations for working with Photoshop actions in JSON format" }, { "name": "Get status", "description": "Utility endpoints for checking job status and system health" } ], "paths": { "/sensei/status/{jobId}": { "get": { "tags": [ "Get status" ], "summary": "Get status - mask", "description": "This endpoint returns the status of a job for Remove Background and Create Mask. Please expand `200 Successful operation` under `Responses` to know details of the status returned.", "operationId": "senseiJobStatus", "parameters": [ { "name": "jobId", "in": "path", "description": "The job ID.", "required": true, "schema": { "type": "string" } }, { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Job status", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SenseiJobApiResponse" } } } } }, "deprecated": false } }, "/sensei/cutout": { "post": { "tags": [ "Remove background" ], "summary": "Remove background v1 (Deprecated)", "description": "⚠️ **DEPRECATED**: This endpoint is deprecated and will no longer be accessible after Oct 15, 2025. Use `/v2/remove-background` instead. This endpoint will identify the main subject of your image and removes the background automatically. It also provides options to return a PNG file in 4 channel RGBA or 3 channel RGB format. To check the status of this process, utilize the `Get Status - Mask` endpoint.", "operationId": "removeBackgroundAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input image and the cutout mask parameters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RemoveBackgroundRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Unauthorized", "headers": { "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" }, "X-Access-Error": { "$ref": "#/components/headers/X-Access-Error" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "429": { "description": "Too many requests", "headers": { "X-Access-Rate-Limit-Level": { "$ref": "#/components/headers/X-Access-Rate-Limit-Level" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": true } }, "/v2/remove-background": { "post": { "tags": [ "Remove background" ], "operationId": "removeBackground", "summary": "Remove background v2", "description": "This endpoint allows you to remove the background from an image. The request is processed asynchronously and the status of the running job can be checked with the Get Status endpoint.", "x-ffs-async-job": true, "x-ffs-job-status-fetcher": "facadeJobStatus", "parameters": [ { "name": "Authorization", "description": "The bearer token for the user. This is the access token.", "in": "header", "required": true, "schema": { "type": "string" } }, { "name": "x-api-key", "description": "The API key/Client ID", "in": "header", "required": true, "schema": { "type": "string" } }, { "name": "Content-Type", "description": "The content type of the request. The value is `application/json`.", "in": "header", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RemoveBackgroundV2Request" } } } }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobLinkResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "examples": { "unauthorized": { "value": { "error_code": "unauthorized", "message": "User is not entitled to perform the requested operation." } } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "examples": { "access_error": { "value": { "error_code": "access_error", "message": "User is not entitled to perform the requested operation." } } } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "examples": { "rate_limited": { "value": { "error_code": "rate_limited", "message": "Too many requests." } } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "examples": { "runtime_error": { "value": { "error_code": "runtime_error", "message": "Internal Server Error." } } } } } } } } }, "/v2/status/{jobId}": { "get": { "operationId": "facadeJobStatus", "tags": [ "Get status" ], "summary": "Get status - v2", "description": "Retrieve the status of a running job by providing the job ID. The job ID is obtained from the response of the asynchronous API call.", "x-ffs-status-fetcher": true, "x-ffs-job-name": "FacadeAsyncJob", "parameters": [ { "name": "jobId", "required": true, "in": "path", "description": "The job ID from the response of the Remove Background API call.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusPollPayload" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } } } }, "/sensei/mask": { "post": { "tags": [ "Masking" ], "summary": "Create mask", "description": "This endpoint uses the Remove Background AI/ML model to return a PNG file with a mask applied around the subject. To check the status of this process, utilize the `Get Status - Mask` endpoint.", "operationId": "createMaskAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input image and the mask parameters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMaskRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Unauthorized", "headers": { "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" }, "X-Access-Error": { "$ref": "#/components/headers/X-Access-Error" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "429": { "description": "Too many requests", "headers": { "X-Access-Rate-Limit-Level": { "$ref": "#/components/headers/X-Access-Rate-Limit-Level" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/status/{jobId}": { "get": { "tags": [ "Get status" ], "summary": "Get status", "description": "Get job status of a Photoshop job", "operationId": "psJobStatus", "parameters": [ { "name": "jobId", "in": "path", "description": "The job ID.", "required": true, "schema": { "type": "string" } }, { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Job Status", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PsJobResponse" } } } } }, "deprecated": false } }, "/pie/psdService/documentManifest": { "post": { "tags": ["Common operations"], "summary": "Extract document manifest", "description": "Extract metadata from PSD document, including general file and layer information.", "operationId": "getDocumentManifestAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The PSD file with the layer information you want to extract.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentManifestRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/documentCreate": { "post": { "tags": ["Common operations"], "summary": "Create PSD", "description": "Create new PSD with layers.", "operationId": "createDocumentAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input psd file to create a new psd from", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDocumentRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/documentOperations": { "post": { "tags": ["Common operations"], "summary": "Apply photoshop edits", "description": "Apply basic layer edits (name, state, etc.), add/edit adjustment, pixel, and shape layers.", "operationId": "modifyDocumentAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input psd file to apply edits to and generate renditions and/or save as a new psd", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModifyDocumentRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/renditionCreate": { "post": { "tags": ["Common operations"], "summary": "Create renditions", "description": "Create flat image representations of a PSD in multiple formats.", "operationId": "createRenditionAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input psd file to create renditions from", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRenditionRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/smartObject": { "post": { "tags": ["Common operations"], "summary": "Replace smart object", "description": "Replace Smart Object in a PSD.", "operationId": "replaceSmartObjectAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input psd file to apply edits for replacing embedded smart object to and generate renditions and/or save as a new psd", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReplaceSmartObjectRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/photoshopActions": { "post": { "tags": ["Common operations"], "summary": "Run photoshop actions", "description": "Executes Photoshop Action file against a PSD, JPEG, PNG, or TIFF.", "operationId": "playPhotoshopActionsAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input file to apply Photoshop Actions to and generate renditions and/or save as a new image", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayPhotoshopActionsRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/actionJSON": { "post": { "tags": [ "actionJSON" ], "summary": "Run actionJSON", "description": "Execute given Photoshop Action specified in actionJSON format.", "operationId": "playPhotoshopActionsJsonAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input psd file to apply Photoshop actionJSON to and generate renditions and/or save as a new image", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlayPhotoshopActionsJsonRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "429": { "description": "Too many requests", "headers": { "X-Access-Rate-Limit-Level": { "$ref": "#/components/headers/X-Access-Rate-Limit-Level" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/actionJsonCreate": { "post": { "tags": [ "actionJSON" ], "summary": "Convert to actionJSON", "description": "Convert an ATN file to actionJSON format.", "operationId": "convertToActionsJsonAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input ATN file to convert to actionJSON.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConvertToActionsJsonRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/productCrop": { "post": { "tags": ["Common operations"], "summary": "Product crop", "description": "This endpoint identifies the subject of the input file and automatically crops the image to keep the subject in the center. Check the status of this process with the `Get Status` endpoint.", "operationId": "applyAutoCropAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input image to apply product crop to.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyAutoCropRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "429": { "description": "Too many requests", "headers": { "X-Access-Rate-Limit-Level": { "$ref": "#/components/headers/X-Access-Rate-Limit-Level" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/depthBlur": { "post": { "tags": ["Common operations"], "summary": "Depth blur", "description": "Apply depth blur to an image input.", "operationId": "applyDepthBlurAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events.", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input image to apply depth blur to.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyDepthBlurRequest" } } }, "required": true }, "responses": { "202": { "description": "Success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "429": { "description": "Too many requests", "headers": { "X-Access-Rate-Limit-Level": { "$ref": "#/components/headers/X-Access-Rate-Limit-Level" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/text": { "post": { "tags": ["Common operations"], "summary": "Edit text layer", "description": "Change the contents of a text layer in a PSD, e.g. for localization.", "operationId": "editTextLayerAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input text to be edited.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EditTextLayerRequest" } } }, "required": true }, "responses": { "202": { "description": "success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "429": { "description": "Too many requests", "headers": { "X-Access-Rate-Limit-Level": { "$ref": "#/components/headers/X-Access-Rate-Limit-Level" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/pie/psdService/artboardCreate": { "post": { "tags": ["Common operations"], "summary": "Create artboards", "description": "Create artboards from multiple PSD inputs.", "operationId": "createArtboardAsync", "parameters": [ { "name": "x-gw-ims-org-id", "in": "header", "description": "The IMS organization ID. This only needs to be sent if you want to receive the job status through Adobe I/O Events", "required": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The input artboard to be created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateArtboardRequest" } } }, "required": true }, "responses": { "202": { "description": "success", "headers": { "X-Access-Consumption-Status": { "$ref": "#/components/headers/X-Access-Consumption-Status" }, "X-Access-Applied-Until-Date": { "$ref": "#/components/headers/X-Access-Applied-Until-Date" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobStatusLinkResponse" } } } }, "400": { "description": "Input Validation Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "402": { "description": "Trial Limit Exceeded Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrialLimitExceededError" } } } }, "403": { "description": "Forbidden", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "404": { "description": "Requested Resource Was Not Found", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "409": { "description": "Unable to upload asset", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "410": { "description": "Asset Link Invalid", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } }, "500": { "description": "Internal Server Error", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } }, "deprecated": false } }, "/v1/mask-objects": { "post": { "tags": [ "Masking" ], "operationId": "maskObjects", "summary": "Generate object and background masks", "description": "Given an image, this API generates semantic masks for the foreground objects and a list of background masks that segment the background elements of the image. Each mask includes a label and a URL for the mask image. To check the status of this process, utilize the `Get Status - V1` endpoint.", "x-ffs-async-job": true, "x-ffs-job-status-fetcher": "facadeJobStatus", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MaskObjectsRequest" } } } }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobLinkResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "404": { "description": "Resource Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } } } }, "/v1/mask-body-parts": { "post": { "tags": [ "Masking" ], "operationId": "maskBodyParts", "summary": "Generate human item masks", "description": "This endpoint processes an input image of a human, then identifies and creates masks for various items and sections on the body including sunglasses, hats, upper body apparel, lower body apparel, left arm, right arm, and more. The API returns an array of masks corresponding to each detected item and body part. To check the status of this process, utilize the `Get Status - V1` endpoint.", "x-ffs-async-job": true, "x-ffs-job-status-fetcher": "facadeJobStatus", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MaskBodyPartsRequest" } } } }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobLinkResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "404": { "description": "Resource Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } } } }, "/v1/refine-mask": { "post": { "tags": [ "Masking" ], "operationId": "refineMask", "summary": "Refine mask", "description": "This endpoint allows you to refine and improve the quality of existing masks. The API will enhance the edges and details of the provided masks to create more precise and accurate results. To check the status of this process, utilize the `Get Status - V1` endpoint.", "x-ffs-async-job": true, "x-ffs-job-status-fetcher": "facadeJobStatus", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefineMaskRequest" } } } }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobLinkResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "404": { "description": "Resource Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } } } }, "/v1/fill-masked-areas": { "post": { "tags": [ "Masking" ], "operationId": "fillMaskedAreas", "summary": "Fill masked areas", "description": "This endpoint allows you to inpaint masked areas within an image. The API will remove the objects represented by these masks and inpaint the specified areas. Provide a list of masks corresponding to the regions you wish to modify. To check the status of this process, utilize the `Get Status - V1` endpoint.", "x-ffs-async-job": true, "x-ffs-job-status-fetcher": "facadeJobStatus", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FillMaskedAreasRequest" } } } }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobLinkResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "404": { "description": "Resource Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InputValidationError" } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } } } }, "/v1/status/{jobId}": { "get": { "tags": [ "Get status" ], "operationId": "getJobStatus", "summary": "Get status - V1", "description": "This endpoint allows you to check the status of an asynchronous job for a masking operation. The schema of a 200 response varies depending on the status of the job. A job with a `succeeded` status will include the results in the response and the result objects vary depending on the operation.", "parameters": [ { "name": "jobId", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "description": "The schema of a 200 response varies depending on the status of the job. A job with a `succeeded` status will include the results in the response. Result objects vary depending on the operation.", "oneOf": [ { "$ref": "#/components/schemas/JobStatusNotStarted" }, { "$ref": "#/components/schemas/JobStatusRunning" }, { "$ref": "#/components/schemas/JobStatusSucceeded" }, { "$ref": "#/components/schemas/JobStatusFailed" } ], "discriminator": { "propertyName": "status", "mapping": { "not_started": "#/components/schemas/JobStatusNotStarted", "running": "#/components/schemas/JobStatusRunning", "succeeded": "#/components/schemas/JobStatusSucceeded", "failed": "#/components/schemas/JobStatusFailed" } } }, "examples": { "not_started": { "summary": "Job has not started", "value": { "jobId": "12345678-1234-1234-1234-123456789012", "status": "not_started" } }, "running": { "summary": "Job is running", "value": { "jobId": "12345678-1234-1234-1234-123456789012", "status": "running" } }, "succeeded": { "summary": "Job completed successfully", "value": { "jobId": "12345678-1234-1234-1234-123456789012", "status": "succeeded", "semanticMasks": [ { "mediaType": "image/png", "destination": { "url": "https://example.com/semantic-mask-1.png" }, "label": "person", "boundingBox": { "x": 100, "y": 150, "width": 200, "height": 300 }, "score": 0.95 }, { "mediaType": "image/png", "destination": { "url": "https://example.com/semantic-mask-2.png" }, "label": "car", "boundingBox": { "x": 400, "y": 200, "width": 150, "height": 100 }, "score": 0.87 } ], "backgroundMasks": [ { "mediaType": "image/png", "destination": { "url": "https://example.com/background-mask-1.png" }, "label": "sky", "boundingBox": { "x": 0, "y": 0, "width": 800, "height": 200 }, "score": 0.92 }, { "mediaType": "image/png", "destination": { "url": "https://example.com/background-mask-2.png" }, "label": "road", "boundingBox": { "x": 0, "y": 400, "width": 800, "height": 200 }, "score": 0.89 } ] } }, "failed": { "summary": "Job failed", "value": { "jobId": "12345678-1234-1234-1234-123456789012", "status": "failed", "error_code": "processing_error", "message": "Failed to process image due to invalid format" } } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } } } } }, "components": { "schemas": { "JobError": { "title": "JobError", "type": "object", "properties": { "type": { "type": "string", "description": "The error type." }, "code": { "type": "string", "description": "The error code." }, "title": { "type": "string", "description": "The error description." }, "error_code": { "type": "string", "description": "The internal error code." }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/ErrorDetails" }, "description": "The details of the error returned." } }, "description": "Any errors reported in the requested output." }, "InputValidationError": { "title": "InputValidationError", "type": "object", "properties": { "type": { "type": "string", "description": "The error type." }, "code": { "type": "string", "description": "The error code." }, "title": { "type": "string", "description": "The error description." }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/InputValidationErrorDetail" }, "description": "The details of the error returned." } }, "description": "Any errors reported in the requested output." }, "TrialLimitExceededError": { "title": "TrialLimitExceededError", "type": "object", "properties": { "type": { "type": "string", "description": "The error type." }, "code": { "type": "string", "description": "The error code." }, "title": { "type": "string", "description": "The error description." }, "details": { "type": "string", "description": "The details of the error returned.", "default": "You have exceeded the limit for the free trial. To subscribe and get more API calls, check out our pricing page at https://developer.adobe.com/photoshop/api/pricing/" } }, "description": "Any errors reported in the requested output." }, "InputValidationErrorDetail": { "title": "InputValidationErrorDetail", "type": "object", "properties": { "allowedValues": { "type": "string", "description": "The name of the input parameter.", "default": "adobe, external, dropbox, azure" }, "reason": { "type": "string", "description": "The reason for the error." } }, "description": "Details of the input validation error returned." }, "StorageDetails": { "title": "StorageDetails", "type": "object", "required": [ "href", "storage" ], "properties": { "href": { "type": "string", "description": "A pre-signed GET URL." }, "storage": { "$ref": "#/components/schemas/StorageType" } }, "description": "A file located on Adobe's cloud or a supported external service." }, "SenseiColor": { "title": "SenseiColor", "type": "object", "properties": { "space": { "$ref": "#/components/schemas/ColorSpaceType" } }, "description": "Color space for output image" }, "ColorSpaceType": { "title": "ColorSpaceType", "type": "string", "enum": [ "rgb", "rgba" ], "description": "Color space for output image" }, "SenseiOutputDetails": { "title": "SenseiOutputDetails", "type": "object", "required": [ "href", "storage" ], "properties": { "href": { "type": "string", "description": "A pre-signed POST URL to the output file." }, "storage": { "$ref": "#/components/schemas/StorageType" }, "mask": { "$ref": "#/components/schemas/MaskFormat" }, "color": { "$ref": "#/components/schemas/SenseiColor" }, "overwrite": { "type": "boolean", "description": "If the file already exists, indicates if the output file should be overwritten. Will eventually support eTags. Only applies to CC Storage.", "default": true } }, "description": "A PNG file." }, "SenseiJobApiResponse": { "title": "SenseiJobApiResponse", "type": "object", "properties": { "jobId": { "type": "string", "description": "The job ID requested." }, "created": { "type": "string", "description": "Created timestamp of the job (YYYY-DD-MMThh:mm:ss.mmmmmZ)." }, "modified": { "type": "string", "description": "Modified timestamp of the job (YYYY-DD-MMThh:mm:ss.mmmmmZ)." }, "status": { "$ref": "#/components/schemas/JobStatus" }, "output": { "$ref": "#/components/schemas/SenseiOutputDetails" }, "errors": { "$ref": "#/components/schemas/JobError" }, "_links": { "$ref": "#/components/schemas/JobStatusLink" } } }, "JobStatusLink": { "title": "JobStatusLink", "type": "object", "properties": { "self": { "$ref": "#/components/schemas/SelfLink" } } }, "RemoveBackgroundRequest": { "title": "RemoveBackgroundRequest", "type": "object", "required": [ "input", "output" ], "properties": { "input": { "$ref": "#/components/schemas/StorageDetails" }, "output": { "$ref": "#/components/schemas/SenseiOutputDetails" } } }, "CreateMaskRequest": { "title": "CreateMaskRequest", "type": "object", "required": [ "input", "output" ], "properties": { "input": { "$ref": "#/components/schemas/StorageDetails" }, "output": { "$ref": "#/components/schemas/SenseiOutputDetails" } } }, "JobStatusLinkResponse": { "title": "JobStatusLinkResponse", "type": "object", "properties": { "_links": { "$ref": "#/components/schemas/JobStatusLink" } } }, "IccProfileDetails": { "title": "IccProfileDetails", "type": "object", "properties": { "imageMode": { "$ref": "#/components/schemas/ImageModeType" }, "input": { "$ref": "#/components/schemas/StorageDetails" }, "profileName": { "$ref": "#/components/schemas/ColorProfileType" } } }, "SmartObjectOutputDetails": { "title": "SmartObjectOutputDetails", "type": "object", "required": [ "href", "storage", "type" ], "properties": { "href": { "type": "string", "description": "A pre-signed POST URL to the output file." }, "storage": { "$ref": "#/components/schemas/StorageType" }, "type": { "$ref": "#/components/schemas/ImageFormatType" }, "overwrite": { "type": "boolean", "description": "If the file already exists, indicates if the output file should be overwritten. Will eventually support eTags. Only applies to CC Storage.", "default": true }, "width": { "type": "integer", "description": "The width, in pixels, of the renditions. A width of 0 generates a full size rendition. Height is generated automatically using the aspect ratio. Only supported for image rendition.", "format": "int32", "default": 0 }, "quality": { "maximum": 7.0, "minimum": 1.0, "type": "integer", "description": "The quality of the renditions for JPEG. The range is 1 to 7, 7 being the highest quality.", "format": "int32", "default": 7 }, "compression": { "$ref": "#/components/schemas/CompressionType" } }, "description": "An output object." }, "ActionOutputDetails": { "title": "ActionOutputDetails", "type": "object", "required": [ "href", "storage", "type" ], "properties": { "href": { "type": "string", "description": "A pre-signed POST URL to the output file." }, "storage": { "$ref": "#/components/schemas/StorageType" }, "type": { "$ref": "#/components/schemas/ImageFormatType" }, "overwrite": { "type": "boolean", "description": "If the file already exists, indicates if the output file should be overwritten. Will eventually support eTags. Only applies to CC Storage.", "default": true }, "quality": { "maximum": 12, "minimum": 1, "type": "integer", "description": "The quality of the renditions for JPEG. The range is 1 to 7, 7 being the highest quality.", "format": "int32", "default": 7 }, "compression": { "$ref": "#/components/schemas/CompressionType" } }, "description": "An output object." }, "PsOutputDetails": { "title": "PsOutputDetails", "type": "object", "required": [ "href", "storage", "type" ], "properties": { "href": { "type": "string", "description": "A pre-signed POST URL to the output file." }, "storage": { "$ref": "#/components/schemas/StorageType" }, "type": { "$ref": "#/components/schemas/ImageFormatType" }, "overwrite": { "type": "boolean", "description": "If the file already exists, indicates if the output file should be overwritten. Will eventually support eTags. Only applies to CC Storage.", "default": true }, "width": { "type": "integer", "description": "The width, in pixels, of the renditions. A width of 0 generates a full size rendition. Height is generated automatically using the aspect ratio. Only supported for image rendition.", "format": "int32", "default": 0 }, "maxWidth": { "type": "integer", "description": "The size, in pixels, of the renditions. When width is 0, maxWidth can be provided to get the rendition size. maxWidth when less than document width gets precedence over width. Height is not necessary as the rendition generate will automatically maintain the aspect ratio.", "format": "int32", "default": 0 }, "quality": { "maximum": 7.0, "minimum": 1.0, "type": "integer", "description": "The quality of the renditions for JPEG. The range is 1 to 7, 7 being the highest quality.", "format": "int32", "default": 7 }, "compression": { "$ref": "#/components/schemas/CompressionType" }, "trimToCanvas": { "$ref": "#/components/schemas/TrimToCanvasType" }, "layers": { "type": "array", "items": { "$ref": "#/components/schemas/LayerReference" }, "description": "An array of layer objects.\nBy including this array you are signaling that you'd like a rendition created from these layer id's or layer names. Excluding it will generate a document-level rendition." }, "iccProfile": { "$ref": "#/components/schemas/IccProfileDetails" } }, "description": "An output object." }, "RenditionLinkDetails": { "title": "RenditionLinkDetails", "type": "object", "properties": { "href": { "type": "string", "description": "The rendition location." }, "storage": { "$ref": "#/components/schemas/StorageType" }, "width": { "type": "integer", "description": "The requested rendition width in pixels.", "format": "int32" }, "type": { "$ref": "#/components/schemas/ImageFormatType" } }, "description": "A rendition object." }, "ManifestJobApiResponse": { "title": "ManifestJobApiResponse", "type": "object", "properties": { "jobId": { "type": "string", "description": "The job ID requested." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/ManifestJobStatusOutputDetails" }, "description": "The outputs requested." }, "_links": { "$ref": "#/components/schemas/JobStatusLink" } } }, "PsJobApiResponse": { "title": "PsJobApiResponse", "type": "object", "properties": { "jobId": { "type": "string", "description": "The job ID requested." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/JobOutputDetails" }, "description": "API output details." }, "_links": { "$ref": "#/components/schemas/JobStatusLink" } } }, "PsJobResponse": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/ManifestJobApiResponse" }, { "$ref": "#/components/schemas/PsJobApiResponse" } ], "description": "Photoshop Job response." }, "DocumentManifestRequest": { "title": "DocumentManifestRequest", "type": "object", "required": [ "inputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. Each input object represents a file to be processed." }, "options": { "allOf": [ { "$ref": "#/components/schemas/DocumentManifestOptions" }, { "description": "Options to apply to all input files." } ] } } }, "LayerPosition": { "title": "LayerPosition", "type": "object", "properties": { "insertAbove": { "$ref": "#/components/schemas/LayerReference" }, "insertBelow": { "$ref": "#/components/schemas/LayerReference" }, "insertInto": { "$ref": "#/components/schemas/LayerReference" }, "insertTop": { "type": "boolean" }, "insertBottom": { "type": "boolean" } } }, "DeleteDetails": { "title": "DeleteDetails", "type": "object", "properties": { "includeChildren": { "type": "boolean", "default": false, "description": "Indicates that child layers are included when deleting a group layer." }, "id": { "type": "integer", "description": "The layer ID." }, "name": { "type": "string", "description": "The layer name. You can identify a layer by id or name. That makes either id or name a required field." } }, "description": "Indicates you want to delete the layer, identified by the `id` or `name`. Note the object is currently empty but leaves room for further enhancements." }, "LayerReference": { "title": "LayerReference", "description": "A layer reference object.", "type": "object", "properties": { "id": { "type": "integer", "description": "The id of the layer. Use either `id` OR `name`.", "format": "int32" }, "name": { "type": "string", "description": "The name of the layer. Use either `id` OR `name`." } } }, "CreateDocumentRequest": { "title": "CreateDocumentRequest", "type": "object", "required": [ "outputs", "options" ], "properties": { "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/PsOutputDetails" }, "description": "An array of output objects. Each output object represents a file to be created." }, "options": { "$ref": "#/components/schemas/DocumentCreateOptions" } } }, "ModifyDocumentRequest": { "title": "ModifyDocumentRequest", "type": "object", "required": [ "inputs", "options", "outputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. Each input object represents a file to be processed." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/PsOutputDetails" }, "description": "An array of output objects. Each output object represents a file to be created." }, "options": { "$ref": "#/components/schemas/DocumentOperationOptions" } } }, "CreateRenditionRequest": { "title": "CreateRenditionRequest", "type": "object", "required": [ "inputs", "outputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. Only one input object is currently supported." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/PsOutputDetails" }, "description": "An array of output objects." } } }, "ReplaceSmartObjectRequest": { "title": "ReplaceSmartObjectRequest", "type": "object", "required": [ "inputs", "options", "outputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. Only one input object is currently supported." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/SmartObjectOutputDetails" }, "description": "An array of output objects." }, "options": { "$ref": "#/components/schemas/SmartObjectOptions" } } }, "PlayPhotoshopActionsRequest": { "title": "PlayPhotoshopActionsRequest", "type": "object", "required": [ "inputs", "options", "outputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. Only one input object is currently supported." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/ActionOutputDetails" }, "description": "An array of output objects." }, "options": { "$ref": "#/components/schemas/ActionOptions" } } }, "PlayPhotoshopActionsJsonRequest": { "title": "PlayPhotoshopActionsJsonRequest", "type": "object", "required": [ "inputs", "options", "outputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. Only one input object is currently supported." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/ActionOutputDetails" }, "description": "An array of output objects." }, "options": { "$ref": "#/components/schemas/ActionJsonOptions" } } }, "ConvertToActionsJsonRequest": { "title": "ConvertToActionsJsonRequest", "type": "object", "required": [ "inputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input action sets in ATN format. Only one input object is currently supported." }, "options": { "$ref": "#/components/schemas/ActionJsonCreateOptions" } } }, "ApplyAutoCropRequest": { "title": "ApplyAutoCropRequest", "type": "object", "required": [ "inputs", "outputs", "options" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. Only one input object is currently supported." }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/ActionOutputDetails" }, "description": "An array of output objects" }, "options": { "$ref": "#/components/schemas/CropOptions" } } }, "ApplyDepthBlurRequest": { "title": "ApplyDepthBlurRequest", "type": "object", "required": [ "inputs", "outputs" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. We currently only support one input object" }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/ActionOutputDetails" }, "description": "An array of output objects" }, "options": { "$ref": "#/components/schemas/DepthBlurDetails" } } }, "EditTextLayerRequest": { "title": "EditTextLayerRequest", "type": "object", "required": [ "inputs", "outputs", "options" ], "properties": { "inputs": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of input objects. We currently only support one input object" }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/ActionOutputDetails" }, "description": "An array of output objects" }, "options": { "$ref": "#/components/schemas/TextOptions" } } }, "CreateArtboardRequest": { "title": "CreateArtboardRequest", "type": "object", "required": [ "outputs", "options" ], "properties": { "options": { "$ref": "#/components/schemas/ArtboardDetails" }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/PsOutputDetails" }, "description": "An array of output objects" } } }, "DocumentDetails": { "title": "DocumentDetails", "type": "object", "required": [ "height", "width", "resolution", "fill", "mode" ], "properties": { "height": { "type": "integer", "description": "In pixels", "format": "int32" }, "width": { "type": "integer", "description": "In pixels", "format": "int32" }, "resolution": { "maximum": 300.0, "minimum": 72.0, "type": "integer", "description": "In pixels per inch", "format": "int32" }, "fill": { "$ref": "#/components/schemas/FillType" }, "mode": { "$ref": "#/components/schemas/ChannelModeType" }, "depth": { "$ref": "#/components/schemas/DepthType" } } }, "ManifestJobDocumentDetails": { "title": "ManifestJobDocumentDetails", "type": "object", "properties": { "name": { "type": "string", "description": "The name of the document" }, "height": { "type": "integer", "description": "In pixels", "format": "int32" }, "width": { "type": "integer", "description": "In pixels", "format": "int32" }, "photoshopBuild": { "type": "string", "description": "The version of Photoshop used to create the document" }, "imageMode": { "$ref": "#/components/schemas/ImageModeType" }, "bitDepth": { "$ref": "#/components/schemas/ChannelModeType" }, "iccProfileName": { "type": "string", "description": "The name of the ICC profile used for the document" } } }, "ChildrenLayerDetails": { "title": "ChildrenLayerDetails", "type": "object", "properties": { "id": { "type": "integer", "description": "The layer ID. An ID of -1 is valid and indicates a PSD that only contains a background image and no layers.", "format": "int32" }, "index": { "type": "integer", "description": "The layer index.", "format": "int32" }, "thumbnail": { "type": "string", "description": "If thumbnails were requested, a pre-signed GET URL to the thumbnail" }, "type": { "$ref": "#/components/schemas/LayerType" }, "name": { "type": "string", "description": "The layer name." }, "locked": { "type": "boolean", "description": "Whether the layer is locked" }, "visible": { "type": "boolean", "description": "Whether the layer is visible" }, "adjustments": { "$ref": "#/components/schemas/AdjustmentDetails" }, "bounds": { "$ref": "#/components/schemas/Bounds" }, "blendOptions": { "$ref": "#/components/schemas/BlendDetails" }, "mask": { "$ref": "#/components/schemas/LayerMaskDetails" }, "smartObject": { "$ref": "#/components/schemas/SmartObjectDetails" }, "fill": { "$ref": "#/components/schemas/FillDetails" }, "text": { "$ref": "#/components/schemas/TextLayerDetails" } } }, "LayerDetails": { "title": "LayerDetails", "type": "object", "properties": { "id": { "type": "integer", "description": "The layer ID. An ID of -1 is valid and indicates a PSD that only contains a background image and no layers.", "format": "int32" }, "index": { "type": "integer", "description": "The layer index.", "format": "int32" }, "thumbnail": { "type": "string", "description": "If thumbnails were requested, this is a pre-signed GET URL to the thumbnail." }, "children": { "type": "array", "description": "An array of nested layer objects. Only layerSections (group layers) can include children.", "items": { "$ref": "#/components/schemas/ChildrenLayerDetails" } }, "type": { "$ref": "#/components/schemas/LayerType" }, "name": { "type": "string", "description": "The layer name." }, "locked": { "type": "boolean", "description": "Whether the layer is locked." }, "visible": { "type": "boolean", "description": "Whether the layer is visible." }, "adjustments": { "$ref": "#/components/schemas/ManifestJobAdjustmentDetails" }, "bounds": { "$ref": "#/components/schemas/Bounds" }, "blendOptions": { "$ref": "#/components/schemas/BlendDetails" }, "mask": { "$ref": "#/components/schemas/LayerMaskDetails" }, "smartObject": { "$ref": "#/components/schemas/SmartObjectDetails" }, "fill": { "$ref": "#/components/schemas/FillDetails" }, "text": { "$ref": "#/components/schemas/TextLayerDetails" } } }, "Action": { "title": "Action", "type": "object", "properties": { "storage": { "allOf": [ { "$ref": "#/components/schemas/StorageType" }, { "description": "storage platforms supported" } ] }, "href": { "type": "string", "description": "Presigned GET URL" }, "actionName": { "type": "string", "description": "If you only want to execute a particular action, you may specify which action to play from the ActionSet" } }, "description": "An object describing the input Photoshop Actions to play." }, "ActionDetails": { "title": "ActionDetails", "minProperties": 1, "type": "object", "properties": { "actionName": { "type": "string", "description": "If you only want to execute a particular action, you may specify whcih action to convert from the ActionSet" } }, "description": "Details of Actions from the ActionSet." }, "AdjustmentDetails": { "title": "AdjustmentDetails", "type": "object", "properties": { "brightnessContrast": { "$ref": "#/components/schemas/BrightnessContrast" }, "exposure": { "$ref": "#/components/schemas/ExposureDetails" }, "hueSaturation": { "$ref": "#/components/schemas/HueSaturation" }, "colorBalance": { "$ref": "#/components/schemas/ColorBalance" } }, "description": "Adjustment layer information." }, "ManifestJobAdjustmentDetails": { "title": "ManifestJobAdjustmentDetails", "type": "object", "properties": { "brightness_contrast": { "$ref": "#/components/schemas/BrightnessContrast" }, "exposure": { "$ref": "#/components/schemas/ExposureDetails" }, "hue_saturation": { "$ref": "#/components/schemas/HueSaturation" }, "color_balance": { "$ref": "#/components/schemas/ColorBalance" } }, "description": "Adjustment layer information." }, "BrightnessContrast": { "title": "BrightnessContrast", "type": "object", "properties": { "brightness": { "maximum": 150.0, "minimum": -150.0, "type": "integer", "description": "The adjustment layer's brightness.", "format": "int32" }, "contrast": { "maximum": 150.0, "minimum": -150.0, "type": "integer", "description": "The adjustment layer's contrast.", "format": "int32" } }, "description": "Brightness and contrast settings." }, "ExposureDetails": { "title": "ExposureDetails", "description": "Exposure settings.", "type": "object", "properties": { "exposure": { "maximum": 20.0, "minimum": -20.0, "type": "number", "description": "The layer's exposure.", "default": 0 }, "offset": { "maximum": 0.5, "minimum": -0.5, "type": "number", "description": "The layer's offset.", "default": 0 }, "gammaCorrection": { "maximum": 9.99, "minimum": 0.01, "type": "number", "description": "The layer's gamma correction.", "default": 1 } } }, "HueSaturation": { "title": "HueSaturation", "type": "object", "properties": { "colorize": { "type": "boolean", "description": "Whether to colorize." }, "channels": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelDetails" }, "description": "An array of hashes representing the 'master' channel (the remaining five channels of 'magentas', 'yellows', 'greens', etc. are not yet supported)." } } }, "ColorBalance": { "title": "ColorBalance", "description": "Color balance settings.", "type": "object", "properties": { "preserveLuminosity": { "type": "boolean", "description": "Whether to preserve luminosity." }, "shadowLevels": { "type": "array", "items": { "maximum": 100.0, "minimum": -100.0, "type": "integer", "format": "int32" }, "description": "Shadow levels." }, "midtoneLevels": { "type": "array", "items": { "maximum": 100.0, "minimum": -100.0, "type": "integer", "format": "int32" }, "description": "Midtone levels." }, "highlightLevels": { "type": "array", "items": { "maximum": 100.0, "minimum": -100.0, "type": "integer", "format": "int32" }, "description": "Highlight levels." } } }, "Bounds": { "title": "Bounds", "description": "The bounds of the layer.", "type": "object", "properties": { "top": { "type": "integer", "description": "The top position in pixels.", "format": "int32" }, "left": { "type": "integer", "description": "The left position in pixels.", "format": "int32" }, "width": { "type": "integer", "description": "The width in pixels.", "format": "int32" }, "height": { "type": "integer", "description": "The height in pixels.", "format": "int32" } } }, "CharacterStyleDetails": { "title": "CharacterStyleDetails", "minProperties": 1, "type": "object", "properties": { "size": { "maximum": 5400.0, "minimum": 0.04, "type": "number", "description": "The font size, in pixels." }, "fontPostScriptName": { "type": "string", "description": "The font's PostScript name to be used to set the font for this layer." }, "color": { "$ref": "#/components/schemas/ColorDetails" }, "leading": { "type": "number", "description": "The font's leading value, where leading is the distance between each line of text." }, "tracking": { "type": "number", "description": "The font's tracking value, where tracking is the horizontal spacing between a range of characters." }, "baseline": { "$ref": "#/components/schemas/BaselineType" }, "fontCaps": { "$ref": "#/components/schemas/FontCaps" }, "autoKern": { "$ref": "#/components/schemas/AutoKernType" }, "strikethrough": { "type": "boolean", "description": "Toggle strikethrough for selected text." }, "syntheticBold": { "type": "boolean", "description": "Toggle bold for selected text." }, "syntheticItalic": { "type": "boolean", "description": "Toggle italic for selected text." }, "underline": { "type": "boolean", "description": "Toggle underlining of text." }, "ligature": { "type": "boolean", "description": "Toggle text ligature, which are special characters in a font that combine two (or more)." }, "fractions": { "type": "boolean", "description": "Toggle automatic formatting of fractions: numbers separated by a slash (such as 1/2)." }, "stylisticAlternates": { "type": "boolean", "description": "Toggle stylistic alternates, which formats stylized characters that create a purely aesthetic effect." }, "verticalScale": { "maximum": 1000.0, "minimum": 0.0, "type": "number", "description": "The amount of vertical scaling to apply to the font." }, "horizontalScale": { "maximum": 1000.0, "minimum": 0.0, "type": "number", "description": "The amount of horizontal scaling to apply to the font." } }, "description": "Character style settings." }, "ParagraphStyleDetails": { "title": "ParagraphStyleDetails", "minProperties": 1, "type": "object", "properties": { "alignment": { "$ref": "#/components/schemas/ParagraphStyleAlignmentType", "description": "The paragraph alignment." }, "startIndent": { "type": "number", "description": "The amount of indent to add to the left margin." }, "endIndent": { "type": "number", "description": "The amount of indent to add to the right margin." }, "hyphenate": { "type": "boolean", "description": "Toggle hyphenate for paragraph text." }, "firstLineIndent": { "type": "number", "description": "The amount of indent to add to the first line of the paragraph." }, "spaceBefore": { "type": "number", "description": "The amount of space to add before the paragraph." }, "spaceAfter": { "type": "number", "description": "The amount of space to add after the paragraph." } }, "description": "Paragraph style settings." }, "LayerMaskDetails": { "title": "LayerMaskDetails", "type": "object", "properties": { "clip": { "type": "boolean", "description": "Indicates if this is a clipped layer." }, "enabled": { "type": "boolean", "description": "Indicates whether a mask is enabled on that layer." }, "linked": { "type": "boolean", "description": "Indicates whether a mask is linked to the layer." }, "offset": { "$ref": "#/components/schemas/Offset" } }, "description": "An object describing the input mask replaced or added to the layer." }, "Offset": { "title": "Offset", "description": "Offset details.", "type": "object", "properties": { "x": { "type": "integer", "description": "Offset to indicate horizontal move of the mask.", "format": "int32" }, "y": { "type": "integer", "description": "Offset to indicate vertical move of the mask.", "format": "int32" } } }, "SmartObjectDetails": { "title": "SmartObjectDetails", "description": "Smart object details.", "type": "object", "properties": { "type": { "type": "string", "description": "Desired image format for the smart object." }, "linked": { "type": "boolean", "description": "Indicates if the smart object is linked. Currently we support embedded smart object only, which means \"linked = false\".", "default": false }, "name": { "type": "string", "description": "Name of the embedded or linked smart object. Currently we support embedded smart object only." }, "path": { "type": "string", "description": "Only for a linked smart object. Indicates the relative path for the linked smart object." }, "instanceId": { "type": "string", "description": "Only for an embedded smart object. Indicates the instance ID of the embedded smart object. This ID is unique and the value is derived from the RAW data of the document. `instanceId` may show a value as unknown, if the embedded smart object is generated using a non-Adobe application." } } }, "FillDetails": { "title": "FillDetails", "type": "object", "properties": { "solidColor": { "$ref": "#/components/schemas/SolidColor" } } }, "SolidColor": { "title": "SolidColor", "type": "object", "required": [ "rgb" ], "properties": { "rgb": { "$ref": "#/components/schemas/RgbColor" } } }, "RgbColor": { "title": "RgbColor", "type": "object", "properties": { "red": { "maximum": 255.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "green": { "maximum": 255.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "blue": { "maximum": 255.0, "minimum": 0.0, "type": "integer", "format": "int32" } }, "description": "An object describing the RGB color format in 8 bits." }, "FontColorRgb": { "title": "FontColorRgb", "type": "object", "properties": { "red": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "green": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "blue": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" } }, "description": "An object describing the RGB color format in 16 bits." }, "FontColorCmyk": { "title": "FontColorCmyk", "type": "object", "properties": { "cyan": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "magenta": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "yellowColor": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "black": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" } }, "description": "The font color settings for CMYK mode in 16-bit representation." }, "FontColorGray": { "title": "FontColorGray", "type": "object", "properties": { "gray": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" } }, "description": "The font color settings for gray mode in 16-bit representation." }, "FontColorLab": { "title": "FontColorLab", "type": "object", "properties": { "luminance": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "a": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" }, "b": { "maximum": 32768.0, "minimum": 0.0, "type": "integer", "format": "int32" } }, "description": "The font color settings for Lab mode in 16-bit representation." }, "TextLayerDetails": { "title": "TextLayerDetails", "type": "object", "properties": { "content": { "type": "string", "description": "The text string." }, "characterStyles": { "type": "array", "items": { "$ref": "#/components/schemas/TextLayerCharacterStyleDetails" }, "description": "Character style settings. If the same supported attributes apply to all characters in the layer, then this will be an array of one item. Otherwise, each `characterStyle` object will have a 'from' and 'to' value indicating the range of characters that style applies to." }, "paragraphStyles": { "type": "array", "items": { "$ref": "#/components/schemas/TextLayerParagraphStyleDetails" }, "description": "Paragraph style settings. If the same supported attributes apply to all characters in the layer then this will be an array of one item, otherwise each paragraph style object will have a 'from' and 'to' value indicating the range of characters that the style applies to." } }, "description": "Text settings." }, "TextLayerCharacterStyleDetails": { "title": "TextLayerCharacterStyleDetails", "type": "object", "properties": { "from": { "minimum": 0.0, "type": "integer", "description": "The beginning of the range of characters that this character style applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1.", "format": "int32" }, "to": { "minimum": 0.0, "type": "integer", "description": "The ending of the range of characters that this character style applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1.", "format": "int32" }, "fontSize": { "type": "number", "description": "The font size in points." }, "fontName": { "type": "string", "description": "The font's PostScript name from the [list of supported fonts](../../getting_started/technical_usage_notes/index.md#photoshop-api-supported-fonts)." }, "orientation": { "$ref": "#/components/schemas/OrientationType" }, "fontColor": { "$ref": "#/components/schemas/FontColorDetails" } } }, "TextLayerParagraphStyleDetails": { "title": "TextLayerParagraphStyleDetails", "type": "object", "properties": { "from": { "minimum": 0.0, "type": "integer", "description": "The beginning of the range of characters that this paragraph style applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1.", "format": "int32" }, "to": { "minimum": 0.0, "type": "integer", "description": "The ending of the range of characters that this paragraph style applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1.", "format": "int32" }, "alignment": { "$ref": "#/components/schemas/AlignmentType" } }, "description": "If the same supported attributes apply to all characters in the layer then this will be an array of one item, otherwise each paragraph style object will have a 'from' and 'to' value indicating the range of characters that the style applies to." }, "BlendDetails": { "title": "BlendDetails", "type": "object", "properties": { "opacity": { "maximum": 100.0, "minimum": 0.0, "type": "integer", "description": "Indicates the opacity value of a layer.", "format": "int32" }, "blendMode": { "$ref": "#/components/schemas/BlendModeType" } }, "description": "Blend options of a layer, including opacity and blend mode." }, "AlignmentType": { "title": "AlignmentType", "enum": [ "left", "center", "right", "justify", "justifyLeft", "justifyCenter", "justifyRight" ], "type": "string", "description": "The paragraph alignment." }, "ParagraphStyleAlignmentType": { "title": "ParagraphStyleAlignmentType", "enum": [ "left", "center", "right", "justify", "justifyLeft", "justifyCenter", "justifyRight", "justifyAll" ], "type": "string", "description": "The paragraph alignment." }, "AntiAliasType": { "title": "AntiAliasType", "enum": [ "antiAliasNone", "antiAliasSharp", "antiAliasCrisp", "antiAliasStrong", "antiAliasSmooth", "antiAliasPlatformLCD", "antiAliasPlatformGray" ], "type": "string", "description": "The text's aliasing type which determines the smoothness of the jagged edges of the text." }, "AutoKernType": { "title": "AutoKernType", "enum": [ "opticalKern", "metricsKern" ], "type": "string", "description": "The text's kerning setting. Optical: set based on the shape of the font. Metrics: uses kern pairs included in fonts." }, "BasedOnType": { "title": "BasedOnType", "enum": [ "transparentPixels" ], "type": "string", "description": "Based on type." }, "BaselineType": { "title": "BaselineType", "enum": [ "subScript", "superScript" ], "type": "string", "description": "Indicates if the text is raised or lowered in relation to a font's baseline." }, "BlendModeType": { "title": "BlendModeType", "enum": [ "normal", "dissolve", "darken", "multiply", "colorBurn", "linearBurn", "darkerColor", "lighten", "screen", "colorDodge", "linearDodge", "lighterColor", "overlay", "softLight", "hardLight", "vividLight", "linearLight", "pinLight", "hardMix", "difference", "exclusion", "subtract", "divide", "hue", "saturation", "color", "luminosity" ], "type": "string", "description": "Blend mode of layer." }, "CanvasSize": { "title": "CanvasSize", "type": "object", "required": [ "bounds" ], "properties": { "bounds": { "$ref": "#/components/schemas/Bounds" } } }, "ChannelDetails": { "title": "ChannelDetails", "type": "object", "properties": { "channel": { "$ref": "#/components/schemas/ChannelType" }, "hue": { "maximum": 180.0, "minimum": -180.0, "type": "integer", "format": "int32" }, "saturation": { "maximum": 100.0, "minimum": -100.0, "type": "integer", "format": "int32" }, "lightness": { "maximum": 100.0, "minimum": -100.0, "type": "integer", "format": "int32" } } }, "ChannelType": { "title": "ChannelType", "enum": [ "master" ], "type": "string", "description": "The channel type." }, "ColorDetails": { "title": "ColorDetails", "required": [ "red", "green", "blue" ], "type": "object", "properties": { "red": { "maximum": 65535.0, "minimum": 0.0, "type": "integer", "description": "The color red value.", "format": "int32" }, "green": { "maximum": 65535.0, "minimum": 0.0, "type": "integer", "description": "The color green value.", "format": "int32" }, "blue": { "maximum": 65535.0, "minimum": 0.0, "type": "integer", "description": "The color blue value.", "format": "int32" } }, "description": "Font color in RGB format." }, "CompressionType": { "title": "CompressionType", "enum": [ "small", "medium", "large" ], "type": "string", "description": "Desired PNG compression level." }, "DepthType": { "title": "DepthType", "enum": [ 8, 16, 32 ], "type": "integer", "description": "Bit depth. This is either 8, 16 or 32 bit." }, "OperationDocument": { "title": "OperationDocument", "type": "object", "properties": { "canvasSize": { "$ref": "#/components/schemas/CanvasSize" }, "imageSize": { "$ref": "#/components/schemas/ImageSize" }, "trim": { "$ref": "#/components/schemas/Trim" } } }, "EastAsianFeatures": { "title": "EastAsianFeatures", "minProperties": 1, "type": "object", "properties": { "textStyle": { "allOf": [ { "$ref": "#/components/schemas/TextStyleType" }, { "description": "Base line direction for text style." } ] } }, "description": "Text features specifically for East Asian languages." }, "ErrorDetails": { "title": "ErrorDetails", "description": "Error details.", "type": "object", "properties": { "name": { "type": "string", "description": "The parameter name." }, "reason": { "type": "string", "description": "The error." } } }, "FillType": { "title": "FillType", "enum": [ "white", "backgroundColor", "transparent" ], "type": "string", "description": "Type of fill for the background layer." }, "FocalSelector": { "title": "FocalSelector", "description": "Focal selector.", "minProperties": 2, "type": "object", "properties": { "x": { "type": "number", "description": "X coordinate." }, "y": { "type": "number", "description": "Y coordinate." } } }, "FontCaps": { "title": "FontCaps", "enum": [ "allCaps", "smallCaps" ], "type": "string", "description": "The text's capitalization values." }, "FontColorDetails": { "title": "FontColorDetails", "type": "object", "properties": { "rgb": { "allOf": [ { "$ref": "#/components/schemas/FontColorRgb" }, { "description": "An object describing the RGB color format in 16 bits." } ] }, "cmyk": { "allOf": [ { "$ref": "#/components/schemas/FontColorCmyk" }, { "description": "The font color settings for CMYK mode in 16-bit representation." } ] }, "gray": { "allOf": [ { "$ref": "#/components/schemas/FontColorGray" }, { "description": "The font color settings for gray mode in 16-bit representation." } ] }, "lab": { "allOf": [ { "$ref": "#/components/schemas/FontColorLab" }, { "description": "The font color settings for Lab mode in 16-bit representation." } ] } } }, "MaskFormatType": { "title": "MaskFormatType", "enum": [ "binary", "soft" ], "type": "string", "description": "Soft mask or binary mask." }, "ImageModeType": { "title": "ImageModeType", "enum": [ "grayscale", "rgb", "cmyk" ], "type": "string", "description": "The image mode." }, "ImageSize": { "title": "ImageSize", "description": "The size of the image", "type": "object", "required": [ "height", "width" ], "properties": { "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" } } }, "DocumentCreateLayer": { "title": "DocumentCreateLayer", "type": "object", "required": [ "type", "input" ], "properties": { "type": { "$ref": "#/components/schemas/LayerType" }, "input": { "allOf": [ { "$ref": "#/components/schemas/StorageDetails" }, { "description": "File on Adobe's cloud or an external service (like AWS S3, Azure, Dropbox)" } ] }, "name": { "type": "string" }, "locked": { "type": "boolean", "description": "is the layer locked", "default": false }, "visible": { "type": "boolean", "description": "is the layer visible", "default": true }, "adjustments": { "$ref": "#/components/schemas/AdjustmentDetails" }, "bounds": { "$ref": "#/components/schemas/Bounds" }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/ChildrenLayerDetails" } }, "mask": { "$ref": "#/components/schemas/MaskDetails" }, "smartObject": { "allOf": [ { "$ref": "#/components/schemas/SmartObject" }, { "description": "An object describing the attributes specific to creating or editing a smart object. `smartObject` properties operate on the input smart object file. This is required with a linked smart object and optional with an embedded smart object." } ] }, "fill": { "$ref": "#/components/schemas/FillDetails" }, "text": { "allOf": [ { "$ref": "#/components/schemas/TextLayerDetails" }, { "description": "text settings" } ] }, "blendOptions": { "allOf": [ { "$ref": "#/components/schemas/BlendDetails" }, { "description": "Blend options of a layer, including opacity and blend mode" } ] } } }, "DocumentOperationLayer": { "title": "DocumentOperationLayer", "type": "object", "required": [ "id", "delete" ], "properties": { "edit": { "type": "object", "description": "Indicates the layer to edit, by it's ID or name. Note the object is currently empty but leaves room for further enhancements. The layer block should contain changes from the original manifest. If you apply it to a group layer, you will be affecting the attributes of the group layer itself, not the child layers. This edit is supported for layer type `smartObject` and `fillLayer` only." }, "move": { "$ref": "#/components/schemas/MoveDetails" }, "add": { "$ref": "#/components/schemas/LayerPosition" }, "delete": { "$ref": "#/components/schemas/DeleteDetails" }, "id": { "type": "integer", "description": "The layer ID.", "format": "int32" }, "index": { "type": "integer", "description": "The layer index. Required when deleting a layer, otherwise not used.", "format": "int32" }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/ChildrenLayerDetails" }, "description": "A tree of layer objects representing the PSD layer structure extracted from the PSD document." }, "type": { "$ref": "#/components/schemas/LayerType" }, "input": { "$ref": "#/components/schemas/StorageDetails" }, "name": { "type": "string" }, "locked": { "type": "boolean", "description": "is the layer locked", "default": false }, "visible": { "type": "boolean", "description": "is the layer visible", "default": true }, "adjustments": { "$ref": "#/components/schemas/AdjustmentDetails" }, "mask": { "$ref": "#/components/schemas/MaskDetails" }, "bounds": { "$ref": "#/components/schemas/Bounds" }, "smartObject": { "allOf": [ { "$ref": "#/components/schemas/SmartObject" }, { "description": "An object describing the attributes specific to creating or editing a smart object. Smart object properties operate on the input smart object file. Currently if you're creating a linked smart object, this is a required. If you're creating an embedded smart object, this is optional." } ] }, "fill": { "$ref": "#/components/schemas/FillDetails" }, "text": { "allOf": [ { "$ref": "#/components/schemas/TextLayerDetails" }, { "description": "text settings" } ] }, "blendOptions": { "allOf": [ { "$ref": "#/components/schemas/BlendDetails" }, { "description": "Blend options of a layer, including opacity and blend mode" } ] }, "horizontalAlign": { "$ref": "#/components/schemas/HorizontalAlignType" }, "verticalAlign": { "$ref": "#/components/schemas/VerticalAlignType" }, "fillToCanvas": { "type": "boolean", "description": "Indicates if the pixels need to proportionally fill into the entire canvas of the document." } } }, "SmartObjectLayer": { "title": "SmartObjectLayer", "type": "object", "required": [ "input" ], "properties": { "add": { "$ref": "#/components/schemas/LayerPosition" }, "id": { "type": "integer", "description": "the layer id", "format": "int32" }, "name": { "type": "string" }, "locked": { "type": "boolean", "description": "is the layer locked", "default": false }, "visible": { "type": "boolean", "description": "is the layer visible", "default": true }, "input": { "$ref": "#/components/schemas/StorageDetails" }, "bounds": { "$ref": "#/components/schemas/Bounds" } } }, "TextOptionsLayer": { "title": "TextOptionsLayer", "type": "object", "properties": { "name": { "type": "string", "description": "The name of the layer you want to insert. Use either ID or name." }, "id": { "type": "integer", "description": "The ID of the layer you want to insert. Use either ID or name.", "format": "int32" }, "bounds": { "$ref": "#/components/schemas/Bounds" }, "locked": { "type": "boolean", "description": "Is the layer editable." }, "visible": { "type": "boolean", "description": "Is the layer visible." }, "text": { "allOf": [ { "$ref": "#/components/schemas/TextDetails" }, { "description": "Supported text layer attributes." } ] } } }, "RenditionLinks": { "title": "RenditionLinks", "type": "object", "properties": { "renditions": { "type": "array", "items": { "$ref": "#/components/schemas/RenditionLinkDetails" }, "description": "Array of rendition objects." } }, "description": "The rendition links." }, "ManageMissingFonts": { "title": "ManageMissingFonts", "enum": [ "useDefault", "fail" ], "type": "string", "description": "Action to take if there are one or more missing fonts in the document. Using `fail` - the job will not succeed and the status will be set to `failed` with the details of the error provided in the `details` section in the status. Using `useDefault` - the job will succeed, however all the missing fonts will use the font: ArialMT." }, "MaskFormat": { "title": "MaskFormat", "type": "object", "properties": { "format": { "$ref": "#/components/schemas/MaskFormatType" } } }, "MaskDetails": { "title": "MaskDetails", "type": "object", "properties": { "input": { "$ref": "#/components/schemas/StorageDetails" }, "clip": { "type": "boolean", "description": "Indicates if this is a clipped layer" }, "enabled": { "type": "boolean", "description": "Indicates a mask is enabled on that layer or not" }, "linked": { "type": "boolean", "description": "Indicates a mask is linked to the layer or not" }, "offset": { "$ref": "#/components/schemas/Offset" } } }, "ChannelModeType": { "title": "ChannelModeType", "enum": [ "bitmap", "greyscale", "indexed", "rgb", "cmyk", "hsl", "hsb", "multichannel", "duotone", "lab", "xyz" ], "type": "string", "description": "The document's bit/channel depth." }, "MoveDetails": { "title": "MoveDetails", "type": "object", "properties": { "moveChildren": { "type": "boolean", "default": true }, "insertAbove": { "$ref": "#/components/schemas/LayerReference" }, "insertBelow": { "$ref": "#/components/schemas/LayerReference" }, "insertInto": { "$ref": "#/components/schemas/LayerReference" }, "insertTop": { "type": "boolean" }, "insertBottom": { "type": "boolean" } } }, "DocumentManifestOptions": { "title": "DocumentManifestOptions", "type": "object", "properties": { "thumbnails": { "allOf": [ { "$ref": "#/components/schemas/Thumbnails" }, { "description": "Include pre-signed GET URLs to small preview thumbnails for any renderable layer." } ] } }, "description": "Available options to apply to all input files." }, "DocumentCreateOptions": { "title": "DocumentCreateOptions", "type": "object", "required": [ "document" ], "properties": { "manageMissingFonts": { "allOf": [ { "$ref": "#/components/schemas/ManageMissingFonts" }, { "description": "Action to take if there are one or more missing fonts in the document. Using `fail` - the job will not succeed and the status will be set to `failed` with the details of the error provided in the `details` section in the status. Using `useDefault` - the job will succeed, however all the missing fonts will use the font: ArialMT." } ] }, "globalFont": { "type": "string", "description": "The PostScript name of the font to be used as the global default for the document. If this font is also missing, the option specified in `manageMissingFonts` will take effect." }, "fonts": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom fonts needed in this document" }, "document": { "$ref": "#/components/schemas/DocumentDetails" }, "layers": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentCreateLayer" }, "description": "Array of layers to be created in the document." } } }, "DocumentOperationOptions": { "title": "DocumentOperationOptions", "type": "object", "properties": { "manageMissingFonts": { "allOf": [ { "$ref": "#/components/schemas/ManageMissingFonts" }, { "description": "Action to take if there are one or more missing fonts. Using `fail` - the job will not succeed and the status will be set to `failed` with the details of the error provided in the `details` section in the status. Using `useDefault` - the job will succeed, however all the missing fonts will use the font: ArialMT." } ] }, "globalFont": { "type": "string", "description": "The PostScript name of the font to be used as the global default. If this font is also missing, the option specified in `manageMissingFonts` will take effect" }, "fonts": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom fonts needed in this document" }, "document": { "$ref": "#/components/schemas/OperationDocument" }, "layers": { "type": "array", "items": { "$ref": "#/components/schemas/DocumentOperationLayer" }, "description": "Array of layers to be created in the document." } } }, "SmartObjectOptions": { "title": "SmartObjectOptions", "type": "object", "required": [ "layers" ], "properties": { "layers": { "type": "array", "items": { "$ref": "#/components/schemas/SmartObjectLayer" }, "description": "Array of Smart Object layers to be created in the document" } } }, "ActionOptions": { "title": "ActionOptions", "type": "object", "required": [ "actions" ], "properties": { "actions": { "type": "array", "items": { "$ref": "#/components/schemas/Action" }, "description": "Array of Photoshop Actions to play." }, "patterns": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom pattern preset to be used in Photoshop Actions" }, "fonts": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom fonts needed in this document" }, "brushes": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom brushes needed in this document" } } }, "ActionJsonOptions": { "title": "ActionJsonOptions", "type": "object", "required": [ "actionJSON" ], "properties": { "actionJSON": { "type": "array", "items": { "type": "object" }, "description": "Array of Photoshop JSON-formatted Actions to play." }, "patterns": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom pattern preset to be used in Photoshop Actions" }, "fonts": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom fonts needed in this document" }, "brushes": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "array of custom brushes needed in this document" }, "additionalImages": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "Array of references to additional images, which can be referred by actionJson commands." } } }, "ActionJsonCreateOptions": { "title": "ActionJsonCreateOptions", "required": [ "actions" ], "type": "object", "properties": { "actions": { "maxItems": 1, "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/ActionDetails" }, "description": "Array of action objects." } }, "description": "This block is needed only if you want to specify which action to convert from the ActionSet." }, "CropOptions": { "title": "CropOptions", "type": "object", "required": [ "unit", "width", "height" ], "properties": { "unit": { "allOf": [ { "$ref": "#/components/schemas/UnitType" }, { "description": "Unit for width and height." } ] }, "width": { "type": "integer", "description": "The width to be added as padding.", "format": "int32" }, "height": { "type": "integer", "description": "The height to be added as padding.", "format": "int32" } } }, "DepthBlurDetails": { "title": "DepthBlurDetails", "type": "object", "properties": { "focalDistance": { "maximum": 100.0, "minimum": 0.0, "type": "integer", "description": "The distance of the point to be in focus. 0 would be the nearest point, 100 would be the furthest point.", "format": "int32", "default": 0 }, "focalRange": { "maximum": 100.0, "minimum": 0.0, "type": "integer", "description": "The range of the focal point.", "format": "int32", "default": 0 }, "focalSelector": { "allOf": [ { "$ref": "#/components/schemas/FocalSelector" }, { "description": "Coordinates of the specific focal point to select." } ] }, "focusSubject": { "type": "boolean", "description": "If enabled uses select subject to automatically select the prominent subject for focus. Also would override focalDistance.", "default": false }, "blurStrength": { "maximum": 100.0, "minimum": 0.0, "type": "integer", "description": "The amount of blur to apply.", "format": "int32", "default": 50 }, "haze": { "maximum": 100.0, "minimum": 0.0, "type": "integer", "description": "The amount of haze to apply.", "format": "int32", "default": 0 }, "temp": { "maximum": 50.0, "minimum": -50.0, "type": "integer", "description": "The value of the temperature to apply. -50 would be coldest and 50 would be the warmest setting.", "format": "int32", "default": 0 }, "tint": { "maximum": 50.0, "minimum": -50.0, "type": "integer", "description": "The amount of the tint to apply.", "format": "int32", "default": 0 }, "saturation": { "maximum": 50.0, "minimum": -50.0, "type": "integer", "description": "The amount of the saturation to apply. -50 implies fully unsaturated colors and 50 will fully saturate the colors.", "format": "int32", "default": 0 }, "brightness": { "maximum": 50.0, "minimum": -50.0, "type": "integer", "description": "The amount of the brightness to apply.", "format": "int32", "default": 0 }, "grain": { "maximum": 100.0, "minimum": 0.0, "type": "integer", "description": "The amount of the graining to add to the image.", "format": "int32", "default": 0 } } }, "TextOptions": { "title": "TextOptions", "type": "object", "required": [ "layers" ], "properties": { "manageMissingFonts": { "allOf": [ { "$ref": "#/components/schemas/ManageMissingFonts" }, { "description": "Action to take if there are one or more missing fonts in the document. If not provided it takes the default font." } ] }, "globalFont": { "type": "string", "description": "The PostScript name of the font to be used as the global default. If this font is also missing, the option specified in `manageMissingFonts` will take effect" }, "layers": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/TextOptionsLayer" }, "description": "Array of text layer objects you wish to act upon." }, "fonts": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "Array of custom fonts needed in this document." } } }, "ArtboardDetails": { "title": "ArtboardDetails", "type": "object", "required": [ "artboard" ], "properties": { "artboard": { "type": "array", "items": { "$ref": "#/components/schemas/StorageDetails" }, "description": "An array of hashes describing the input files to edit. Each input object will be either 'external', 'adobe', 'azure' or 'dropbox'." } } }, "OrientationType": { "title": "OrientationType", "enum": [ "horizontal", "vertical" ], "type": "string", "description": "The text orientation." }, "ManifestJobStatusOutputDetails": { "title": "ManifestJobStatusOutputDetails", "type": "object", "properties": { "input": { "type": "string", "description": "the original input href" }, "created": { "type": "string", "description": "Created timestamp of the job (YYYY-DD-MMThh:mm:ss.mmmmmZ)" }, "modified": { "type": "string", "description": "Modified timestamp of the job (YYYY-DD-MMThh:mm:ss.mmmmmZ)" }, "status": { "$ref": "#/components/schemas/JobStatus" }, "document": { "$ref": "#/components/schemas/ManifestJobDocumentDetails" }, "layers": { "type": "array", "items": { "$ref": "#/components/schemas/LayerDetails" }, "description": "A tree of layer objects representing the PSD layer structure extracted from the PSD document." } } }, "JobOutputDetails": { "title": "JobOutputDetails", "type": "object", "properties": { "input": { "type": "string", "description": "the original input href" }, "created": { "type": "string", "description": "Created timestamp of the job (YYYY-DD-MMThh:mm:ss.mmmmmZ)" }, "modified": { "type": "string", "description": "Modified timestamp of the job (YYYY-DD-MMThh:mm:ss.mmmmmZ)" }, "status": { "$ref": "#/components/schemas/JobOutputStatus" }, "_links": { "$ref": "#/components/schemas/RenditionLinks" } } }, "ColorProfileType": { "title": "ColorProfileType", "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" ], "type": "string", "description": "The name of the color profile." }, "SelfLink": { "title": "SelfLink", "description": "Self link.", "type": "object", "properties": { "href": { "type": "string", "description": "Job Status URL." } } }, "SmartObject": { "title": "SmartObject", "type": "object", "properties": { "linked": { "type": "boolean", "description": "Indicates if this Smart Object is linked. Currently we support Embedded Smart Object only which means \"linked = false\".", "default": false } }, "description": "An object describing the attributes specific to creating or editing a smart object. `SmartObject` properties operate on the input smart object file. When creating a linked smart object, this is a required. When creating an embedded smart object, it is optional." }, "JobStatus": { "title": "JobStatus", "enum": [ "pending", "running", "succeeded", "failed" ], "type": "string", "description": "Job status." }, "JobOutputStatus": { "title": "JobOutputStatus", "enum": [ "pending", "running", "uploading", "succeeded", "failed" ], "type": "string", "description": "The child job status. Using `pending` - the request has been accepted and is waiting to start. Using `running` - the child job is running. Using `uploading` - files have been generated and are uploading to destination. Using `succeeded` - the child job has succeeded. Using `failed` - the child job has failed." }, "StorageType": { "title": "StorageType", "enum": [ "external", "azure", "dropbox" ], "type": "string", "description": "Storage platforms supported." }, "TextDetails": { "title": "TextDetails", "minProperties": 1, "type": "object", "properties": { "content": { "type": "string", "description": "The content of the text layer." }, "orientation": { "$ref": "#/components/schemas/OrientationType" }, "rotate": { "maximum": 180.0, "minimum": -180.0, "type": "integer", "description": "The text's rotation in angle.", "format": "int32" }, "antiAlias": { "allOf": [ { "$ref": "#/components/schemas/AntiAliasType" }, { "description": "The text's aliasing type which determines the smoothness of the jagged edges of the text." } ] }, "eastAsianFeatures": { "allOf": [ { "$ref": "#/components/schemas/EastAsianFeatures" }, { "description": "Text features specifically for East Asian languages." } ] }, "characterStyles": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/CharacterStyleDetails" }, "description": "Array of character style objects. Any of the `characterStyles` property is required." }, "paragraphStyles": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/ParagraphStyleDetails" }, "description": "Array of paragraph style objects. Any of the `paragraphStyles` properties is required." }, "textType": { "allOf": [ { "$ref": "#/components/schemas/TextType" }, { "description": "The type of text's contents, point or paragraph." } ] } }, "description": "Supported text layer attributes." }, "TextStyleType": { "title": "TextStyleType", "enum": [ "cross", "rotated", "withSream" ], "type": "string", "description": "Base line direction for text style." }, "TextType": { "title": "TextType", "enum": [ "point", "paragraph" ], "type": "string", "description": "The type of text's contents, point or paragraph." }, "Thumbnails": { "title": "Thumbnails", "type": "object", "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/ThumbnailType" }, { "description": "Desired image format." } ] } }, "description": "Include pre-signed GET URLs to small preview thumbnails for any renderable layer." }, "Trim": { "title": "Trim", "type": "object", "required": [ "basedOn" ], "properties": { "basedOn": { "$ref": "#/components/schemas/BasedOnType" } } }, "TrimToCanvasType": { "title": "TrimToCanvasType", "enum": [ true, false ], "type": "boolean", "description": "Use this if the renditions needs to be of Canvas size. Using `True` trims the renditions to Canvas size, while `False` makes the renditions Layer Size." }, "ImageFormatType": { "title": "ImageFormatType", "enum": [ "image/vnd.adobe.photoshop", "image/jpeg", "image/png", "image/tiff", "vnd.adobe.photoshop" ], "type": "string", "description": "The desired image format. Using `image/vnd.adobe.photoshop` - create a new PSD file. Using `image/jpeg`, `image/png`, `image/tiff` - create a new JPEG, PNG or TIFF rendition. Certain image modes (RGB, CMYK, greyscale, etc.) must be converted to another image mode before a rendition can be created. With TIFF requested, Multichannel and Duotone will convert to RGB. With PNG requested, CMYK, HSL, HSB, Multichannel, Duotone, Lab and XYZ will convert to RGB." }, "LayerType": { "title": "LayerType", "enum": [ "layer", "textLayer", "adjustmentLayer", "smartObject", "fillLayer", "backgroundLayer", "layerSection" ], "type": "string", "description": "The layer type. Using `layer` - a pixel layer. Using `textLayer` - a text layer. Using `adjustmentLayer` - an adjustment layer. Using `layerSection` - a grouping layer. Using `smartObject` - a smart object. Using `backgroundLayer` - a background layer. Using `fillLayer` - a fill layer." }, "ThumbnailType": { "title": "ThumbnailType", "enum": [ "image/jpeg", "image/png", "image/tiff" ], "type": "string", "description": "Desired image format." }, "UnitType": { "title": "UnitType", "enum": [ "Pixels", "Percent" ], "type": "string", "description": "Unit for width and height." }, "HorizontalAlignType": { "title": "HorizontalAlignType", "enum": [ "left", "center", "right" ], "type": "string", "description": "Indicates the relative horizontal position of the layer with respect to the canvas of the document." }, "VerticalAlignType": { "title": "VerticalAlignType", "enum": [ "top", "center", "bottom" ], "type": "string", "description": "Indicates the relative vertical position of the layer with respect to the canvas of the document." }, "UrlResource": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL of the resource. Only these listed domains are accepted in the request: \n " } }, "required": [ "url" ] }, "RemoveBgInputImage": { "type": "object", "properties": { "source": { "description": "The source path for the input image. Dimensions of the image should not be greater than 6000px X 6000px. The image media type must be `image/jpeg`, `image/png`, `image/webp`, or `image/tiff`.", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] } }, "required": [ "source" ] }, "RemoveBgMode": { "type": "string", "description": "The mode of background removal.", "default": "cutout", "enum": [ "cutout", "mask", "psd" ] }, "RemoveBgOutputImageMediaType": { "type": "string", "description": "The media type of the output image. By default this will match the input source file format.", "enum": [ "image/jpeg", "image/png", "image/webp", "image/vnd.adobe.photoshop" ] }, "RemoveBgOutputImageOptions": { "type": "object", "properties": { "mediaType": { "$ref": "#/components/schemas/RemoveBgOutputImageMediaType" } } }, "RemoveBgColor": { "type": "object", "properties": { "red": { "type": "number", "description": "The red value of the color.", "minimum": 0, "maximum": 255 }, "green": { "type": "number", "description": "The green value of the color.", "minimum": 0, "maximum": 255 }, "blue": { "type": "number", "description": "The blue value of the color.", "minimum": 0, "maximum": 255 }, "alpha": { "type": "number", "description": "The transparency value. 0 is fully transparent and 1 is fully opaque.", "minimum": 0, "maximum": 1 } }, "required": [ "red", "green", "blue", "alpha" ] }, "RemoveBackgroundV2Request": { "type": "object", "properties": { "image": { "description": "The image to be processed.", "allOf": [ { "$ref": "#/components/schemas/RemoveBgInputImage" } ] }, "mode": { "$ref": "#/components/schemas/RemoveBgMode" }, "output": { "description": "The options for the output image.", "allOf": [ { "$ref": "#/components/schemas/RemoveBgOutputImageOptions" } ] }, "trim": { "type": "boolean", "description": "If true, the image returned is cropped to the cutout border. Transparent pixels are removed.", "default": false }, "backgroundColor": { "description": "The background color.", "allOf": [ { "$ref": "#/components/schemas/RemoveBgColor" } ] }, "colorDecontamination": { "type": "number", "description": "If the value is greater than 0, automatically removes colored reflections that have been left on the main subject by the background.", "minimum": 0, "maximum": 1, "default": 1, "example": 1 } }, "required": [ "image" ] }, "JobLinkResponse": { "type": "object", "properties": { "jobId": { "type": "string", "description": "The job ID for the asynchronous job." }, "statusUrl": { "type": "string", "description": "The URL to check the status of the asynchronous job." } }, "required": [ "jobId", "statusUrl" ] }, "JobStatusPollPayload": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID." } }, "required": [ "status", "jobId" ] }, "FillMaskedAreasInputImage": { "type": "object", "properties": { "source": { "description": "The source of the input image. Dimensions of the image should not be greater than (4000px X 4000px).", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] } }, "required": [ "source" ] }, "FillMaskedAreasRequest": { "type": "object", "properties": { "image": { "description": "The image to be processed.", "allOf": [ { "$ref": "#/components/schemas/FillMaskedAreasInputImage" } ] }, "masks": { "description": "The areas of the image represented by this list of masks will be inpainted.", "type": "array", "items": { "$ref": "#/components/schemas/FillMaskedAreasInputImage" } } }, "required": [ "image", "masks" ] }, "MaskBodyPartsImageMediaType": { "type": "string", "description": "The media type of the input image.", "enum": [ "image/jpeg", "image/png" ] }, "MaskBodyPartsInputImage": { "type": "object", "properties": { "source": { "description": "The source of the input image. Dimensions of the image should not be greater than (4000px X 4000px).", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] } }, "required": [ "source" ] }, "MaskBodyPartsMaskMediaType": { "type": "string", "description": "The media type of the mask.", "enum": [ "image/png" ] }, "MaskBodyPartsInputMask": { "type": "object", "properties": { "source": { "description": "The URL of the mask. Dimensions of the mask should not be greater than (4000px X 4000px).", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] } }, "required": [ "source" ] }, "MaskBodyPartsRequest": { "type": "object", "properties": { "image": { "description": "The input image.", "allOf": [ { "$ref": "#/components/schemas/MaskBodyPartsInputImage" } ] }, "mask": { "description": "The mask of the subject in the input image.", "allOf": [ { "$ref": "#/components/schemas/MaskBodyPartsInputMask" } ] } }, "required": [ "image", "mask" ] }, "MaskObjectsInputImageMediaType": { "type": "string", "description": "The media type of the input image.", "enum": [ "image/jpeg", "image/png" ] }, "MaskObjectsInputImage": { "type": "object", "properties": { "source": { "description": "The source of the input image. Dimensions of the image should not be greater than (4000px X 4000px).", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] } }, "required": [ "source" ] }, "MaskObjectsRequest": { "type": "object", "properties": { "image": { "description": "The input image.", "allOf": [ { "$ref": "#/components/schemas/MaskObjectsInputImage" } ] } }, "required": [ "image" ] }, "RefineMaskImageMediaType": { "type": "string", "description": "The media type of the input image.", "enum": [ "image/jpeg", "image/png" ] }, "RefineMaskInputImage": { "type": "object", "properties": { "source": { "description": "The source of the input image. Dimensions of the image should not be greater than (4000px X 4000px).", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] } }, "required": [ "source" ] }, "RefineMaskRequest": { "type": "object", "properties": { "image": { "description": "The input image.", "allOf": [ { "$ref": "#/components/schemas/RefineMaskInputImage" } ] }, "mask": { "description": "The mask in the input image that needs to be refined.", "allOf": [ { "$ref": "#/components/schemas/RefineMaskInputImage" } ] }, "colorDecontamination": { "type": "boolean", "description": "When `true`, this returns an RGBA image where the masked area has been further refined with color decontamination. A `false` value (default) means that the output will simply be the refined mask.", "default": false } }, "required": [ "image", "mask" ] }, "OutputImageDetails": { "type": "object", "properties": { "destination": { "description": "Details of the location where the output image is located.", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] }, "mediaType": { "type": "string", "description": "Media type of the output image.", "enum": [ "image/jpeg", "image/png" ] } }, "required": [ "destination", "mediaType" ] }, "FillMaskedAreasJobApiResponse": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID." }, "image": { "description": "The output image.", "allOf": [ { "$ref": "#/components/schemas/OutputImageDetails" } ] } }, "required": [ "status", "jobId", "image" ] }, "ImageBoundingBox": { "type": "object", "properties": { "x": { "type": "number", "description": "The x coordinate of the upper-left corner of the bounding box. The origin (0,0) is at the upper-left corner of the image." }, "y": { "type": "number", "description": "The y coordinate of the upper-left corner of the bounding box. The origin (0,0) is at the upper-left corner of the image." }, "width": { "type": "number", "description": "The width of the bounding box, starting from the x coordinate." }, "height": { "type": "number", "description": "The height of the bounding box, starting from the y coordinate." } }, "required": [ "x", "y", "width", "height" ] }, "MaskBodyPartsOutputImage": { "type": "object", "properties": { "label": { "type": "string", "description": "The label of the identified body part." }, "boundingBox": { "description": "The bounding box of the identified body part.", "allOf": [ { "$ref": "#/components/schemas/ImageBoundingBox" } ] }, "score": { "type": "number", "description": "The probability or confidence score of the match." }, "destination": { "description": "Details of the location where the mask of the identified body part is located.", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] }, "mediaType": { "type": "string", "description": "Media type of the mask of the identified body part.", "enum": [ "image/png" ] } }, "required": [ "label", "boundingBox", "score", "destination", "mediaType" ] }, "MaskBodyPartsJobApiResponse": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID." }, "masks": { "description": "An array of output image masks.", "type": "array", "items": { "$ref": "#/components/schemas/MaskBodyPartsOutputImage" } } }, "required": [ "status", "jobId", "masks" ] }, "MaskObjectsOutputImage": { "type": "object", "properties": { "label": { "type": "string", "description": "The label of the identified object or area of interest." }, "boundingBox": { "description": "The bounding box of the object or area of interest.", "allOf": [ { "$ref": "#/components/schemas/ImageBoundingBox" } ] }, "score": { "type": "number", "description": "The probability or confidence score of the match." }, "destination": { "description": "Details of the location where the mask is located.", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] }, "mediaType": { "type": "string", "description": "Media type of the mask.", "enum": [ "image/png" ] } }, "required": [ "label", "boundingBox", "score", "destination", "mediaType" ] }, "MaskObjectsJobApiResponse": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID." }, "semanticMasks": { "description": "List of masks representing foreground objects.", "type": "array", "items": { "$ref": "#/components/schemas/MaskObjectsOutputImage" } }, "backgroundMasks": { "description": "List of masks representing background regions.", "type": "array", "items": { "$ref": "#/components/schemas/MaskObjectsOutputImage" } } }, "required": [ "status", "jobId", "semanticMasks", "backgroundMasks" ] }, "RefineMaskOutputImage": { "type": "object", "properties": { "destination": { "description": "Details of the location where the refined mask or image is located.", "allOf": [ { "$ref": "#/components/schemas/UrlResource" } ] }, "mediaType": { "type": "string", "description": "Media type of the refined mask or image.", "enum": [ "image/jpeg", "image/png" ] }, "boundingBox": { "description": "The bounding box of the refined mask or image.", "allOf": [ { "$ref": "#/components/schemas/ImageBoundingBox" } ] } }, "required": [ "destination", "mediaType", "boundingBox" ] }, "RefineMaskJobApiResponse": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID." }, "mask": { "description": "The refined mask. This will only be attached to the response when mask is specified as an input. Only applicable when colorDecontamination is false.", "allOf": [ { "$ref": "#/components/schemas/RefineMaskOutputImage" } ] }, "image": { "description": "The image with color decontamination. This will only be attached to the response when mask is specified as an input. Only applicable when colorDecontamination is true.", "allOf": [ { "$ref": "#/components/schemas/RefineMaskOutputImage" } ] } }, "required": [ "status", "jobId" ] }, "JobStatusResponse": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "results": { "type": "object", "description": "The results of the job if completed." } }, "required": [ "status", "results" ] }, "JobStatusRunning": { "type": "object", "description": "Response when a job is currently being processed. The job has started but is not yet complete.", "properties": { "jobId": { "type": "string", "description": "The job ID." }, "status": { "type": "string", "description": "The status of the job.", "enum": [ "running" ] } }, "required": [ "jobId", "status" ] }, "JobStatusSucceeded": { "type": "object", "description": "Response when a job has completed successfully. In addition to the jobId and status, the response includes the results of the job which vary depending on the operation.", "properties": { "jobId": { "type": "string", "description": "The job ID." }, "status": { "type": "string", "description": "The status of the job.", "enum": [ "succeeded" ] } }, "required": [ "jobId", "status" ] }, "JobStatusFailed": { "type": "object", "description": "Response when a job has failed during processing. Contains error details explaining what went wrong.", "properties": { "jobId": { "type": "string", "description": "The job ID." }, "status": { "type": "string", "description": "The status of the job.", "enum": [ "failed" ] }, "error_code": { "type": "string", "description": "The error code." }, "message": { "type": "string", "description": "The error message." } }, "required": [ "jobId", "status", "error_code", "message" ] }, "JobStatusNotStarted": { "type": "object", "description": "Response when a job has been created but processing has not yet begun. This status indicates the job is queued and waiting to start.", "properties": { "jobId": { "type": "string", "description": "The job ID." }, "status": { "type": "string", "description": "The status of the job.", "enum": [ "not_started" ] } }, "required": [ "jobId", "status" ] } }, "headers":{ "X-Access-Consumption-Status": { "description": "This is the value of different consumption statuses based on credits remaining from the user. Possible values can be quota_available, quota_warning_hard_cap, quota_exhausted_using_daily_credits.", "schema": { "type": "string", "enum": [ "quota_available", "quota_warning_hard_cap", "quota_exhausted_using_daily_credits" ] } }, "X-Access-Applied-Until-Date": { "description": "This is the date when credits will be refilled and will be returned as it is from the access profile response. Only available when consumption status is quota_warning_hard_cap, quota_exhausted_using_daily_credits and quota_exhausted.", "schema": { "type": "string", "format": "date-time" } }, "X-Access-Error": { "description": "Represents the reason of authorization failure. This will be a unique string in snake case. Possible values: quota_exhausted, user_profile_denied, user_not_entitled, user_blocked_by_admin, invalid_subscription, user_blocked_due_to_violation, invalid_ims_scope. This will not be available in case of geo IP blocking failure or User Profile region failure from Floodgate.", "schema": { "type": "string", "enum": [ "quota_exhausted", "user_profile_denied", "user_not_entitled", "user_blocked_by_admin", "invalid_subscription", "user_blocked_due_to_violation", "invalid_ims_scope" ] } }, "X-Access-Rate-Limit-Level": { "description": "This is only applicable for third party clients hitting rate limits. This header indicates the level at which the rate limit was applied. Possible values are: org (The rate limit was applied to the entire org), account (The rate limit was applied to the particular tech account of an org).", "schema": { "type": "string", "enum": [ "org", "account" ] } } }, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer" }, "ApiKeyAuth": { "type": "apiKey", "name": "x-api-key", "in": "header" } } }, "security": [ { "ApiKeyAuth": [] }, { "BearerAuth": [] } ] }