{ "openapi": "3.0.0", "info": { "description": "Firefly Service's RESTful InDesign API offers resources to automate tedious, time-consuming design tasks through scalable cloud services, encouraging more personalization at scale, creative automation, and faster content delivery.", "version": "", "title": "Firefly Services - InDesign API", "termsOfService": "https://www.adobe.com/content/dam/cc/en/legal/terms/enterprise/pdfs/PSLT-AdobeCreativeAPI-WW-2024v2.pdf", "contact": { "email": "idservices@adobe.com" } }, "servers": [ { "url": "https://indesign.adobe.io" } ], "security": [ { "AccessToken": [], "X-Api-Key": [] } ], "tags": [ { "name": "Data Merge", "description": "Create document variations from CSV data and InDesign templates. Supports UTF-16BE encoding for CSV files, which is necessary for languages or characters requiring multi-byte representation. For plain English characters, the CSV will function correctly even without this encoding." }, { "name": "Remap Links", "description": "Replace file-based links in InDesign documents with AEM URLs. Particularly useful for customers working with Adobe Experience Manager (AEM) using Adobe Asset Link, enabling designers to work with output files that have direct links to AEM URLs." }, { "name": "Rendition", "description": "Create file renditions in specified formats (e.g., PNG, JPEG, or PDF)." }, { "name": "Custom Scripts", "description": "Submit and execute custom scripts for InDesign automation. Supports comprehensive scripting capabilities for document manipulation and processing." }, { "name": "Document Info", "description": "Retrieve information from INDD / IDML documents including layers, links and fonts." }, { "name": "Convert PDF to InDesign", "description": "Convert PDF documents to InDesign (INDD or IDML) format. The output is a ZIP file containing the converted documents and all associated assets." }, { "name": "Job Status", "description": "Track job execution status and lifecycle events. Retrieves the most recent status event for jobs across different execution stages: `not_started` (job creation), `running` (execution begins), `succeeded` (complete), `partial_success` (complete with non-critical errors), `failed` (execution failure)." } ], "paths": { "/v3/merge-data": { "post": { "summary": "Perform a data merge", "description": "Creates InDesign documents or PDFs by merging CSV data with InDesign templates. Supports multiple output formats: JPEG (`image/jpeg`), PNG (`image/png`), PDF (`application/pdf`), and InDesign (`application/x-indesign`).", "operationId": "dataMerge", "tags": [ "Data Merge" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergeDataRequest" } } }, "description": "This job request object specifies parameters for merging the data with the given template.", "required": true }, "responses": { "202": { "$ref": "#/components/responses/Accepted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/merge-data-tags": { "post": { "summary": "Get data merge tags", "description": "Retrieves the data merge tags from a document.", "operationId": "dataMergeTags", "tags": [ "Data Merge" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergeDataTagsRequest" } } }, "description": "This job request object specifies parameters for retrieving the data merge tags.", "required": true }, "responses": { "202": { "$ref": "#/components/responses/Accepted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/remap-links": { "post": { "summary": "Remap links", "description": "Replaces file-based links in InDesign documents with AEM URLs. Particularly useful for customers working with Adobe Experience Manager (AEM) using Adobe Asset Link, enabling designers to work with output files that have direct links to AEM URLs.", "operationId": "remapLinks", "tags": [ "Remap Links" ], "parameters": [ { "name": "x-aem-token", "in": "header", "description": "Bearer token generated for the AEM technical account without the bearer keyword.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RemapLinksRequest" } } }, "description": "Job request object that specifies parameters for remapping links in the InDesign document.", "required": true }, "responses": { "202": { "$ref": "#/components/responses/Accepted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/create-rendition": { "post": { "summary": "Create JPEG, PNG, or PDF renditions", "description": "Creates JPEG, PNG, or PDF renditions of InDesign documents. Supports multiple output formats: JPEG (`image/jpeg`), PNG (`image/png`), and PDF (`application/pdf`).", "operationId": "renditionJob", "tags": [ "Rendition" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRenditionRequest" } } }, "description": "This object specifies parameters for the JPEG, PNG or PDF output.", "required": true }, "responses": { "202": { "$ref": "#/components/responses/Accepted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/scripts": { "post": { "summary": "Submit a Custom Script", "description": "Submits custom script bundles for registration. Returns a URL for posting execution requests for the registered script.", "operationId": "submitCustomScript", "tags": [ "Custom Scripts" ], "parameters": [], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object" } } }, "description": "The custom script bundle, in ZIP format. This package describes the script to the app engine.", "required": true }, "responses": { "202": { "description": "Status of a job execution.", "content": { "application/json": { "schema": { "properties": { "capability": { "type": "string", "description": "The name of the custom script, as specified in the custom script manifest." }, "version": { "type": "string", "description": "The version of the custom script, as specified in the custom script manifest." }, "url": { "type": "string", "description": "The URL to submit an execution request for the custom script." } } } } } }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } }, "get": { "summary": "List custom scripts API", "description": "Retrieves details of the latest version of all registered custom scripts. Includes version, download link, registration date, and script name. Response is paginated based on list length.", "operationId": "listCustomScripts", "tags": [ "Custom Scripts" ], "parameters": [ { "name": "page", "in": "query", "description": "Page number for pagination", "required": false, "schema": { "type": "integer", "default": 0 } } ], "responses": { "200": { "description": "List of registered custom scripts", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomScriptsListResponse" } } } }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/{script_id}/{script_name}": { "post": { "summary": "Submit a custom script execution request", "description": "Submits execution requests for custom scripts. Defines input assets and parameters that the custom script will use during execution.", "operationId": "executeCustomScript", "tags": [ "Custom Scripts" ], "parameters": [ { "name": "script_id", "in": "path", "description": "script_id as reported in the response to custom script submit request.", "required": true, "schema": { "type": "string" } }, { "name": "script_name", "in": "path", "description": "The name of the custom script, specified in the custom script manifest.", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BaseJobRequestWithOutput" } } }, "description": "This job request object specifies parameters for the execution of the custom script.", "required": true }, "responses": { "202": { "$ref": "#/components/responses/Accepted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/scripts/{script_name}": { "get": { "summary": "Get Custom Script details", "description": "Retrieves details of a single registered custom script. Includes version, download link, registration date, and script name.", "operationId": "getCustomScriptDetails", "tags": [ "Custom Scripts" ], "parameters": [ { "name": "script_name", "in": "path", "description": "Name of the custom script", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Details of the custom script", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomScriptDetails" } } } }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "500": { "$ref": "#/components/responses/InternalServerError" } } }, "delete": { "summary": "Delete a Custom Script", "description": "Deletes a single registered custom script. All versions of the script will be permanently removed.", "operationId": "deleteCustomScript", "tags": [ "Custom Scripts" ], "parameters": [ { "name": "script_name", "in": "path", "description": "Name of the custom script to delete", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "Script successfully deleted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/scripts/{script_name}/app-version": { "put": { "summary": "Update Custom Script App Version", "description": "Updates the InDesign app version configuration for a registered custom script. Allows customers to specify version strategies: use latest version, fix to a major version, or fix to a specific major and minor version.", "operationId": "updateScriptAppVersion", "tags": [ "Custom Scripts" ], "parameters": [ { "name": "script_name", "in": "path", "description": "Name of the custom script to update", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AppVersionUpdateRequest" } } }, "description": "Configuration for the app version strategy. The majorAppVersion and minorAppVersion fields are optional and their requirement depends on the selected strategy." }, "responses": { "200": { "description": "App version configuration updated successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "example": "App version configuration updated successfully" } } } } } }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/app-versions": { "get": { "summary": "Get Current App Versions", "description": "Retrieves information about all available InDesign app versions. Returns major version, minor version, and status for each registered app version.", "operationId": "listAppVersions", "tags": [ "Custom Scripts" ], "parameters": [], "responses": { "200": { "description": "List of registered app versions for the product", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AppVersionInfo" } } } } }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/document-info": { "post": { "summary": "Get document information", "description": "Retrieve comprehensive information about INDD/IDML documents. Returns data based on the enabled information types specified in the request.", "operationId": "getDocumentInfo", "tags": [ "Document Info" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DocumentInfoRequest" } } }, "description": "This job request object specifies parameters for extracting document information.", "required": true }, "responses": { "202": { "$ref": "#/components/responses/Accepted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/status/{document-info_job_id}": { "get": { "operationId": "getDocumentInfoJobStatus", "summary": "Get status - Document Info API", "description": "Returns the latest status of a Document Info job. Poll this endpoint to retrieve the extracted document information including pages, links, fonts, page items, and text stories.", "tags": [ "Document Info" ], "parameters": [ { "name": "document-info_job_id", "in": "path", "description": "The ID of the Document Info job you want to see the status of. This comes from the response of the Document Info request.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Status of a Document Info job execution.", "content": { "application/json": { "schema": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/notstartedEvent" }, { "$ref": "#/components/schemas/runningEvent" }, { "$ref": "#/components/schemas/succeededEvent" }, { "$ref": "#/components/schemas/failedEvent" }, { "$ref": "#/components/schemas/partialSuccessEvent" } ] }, "examples": { "succeeded": { "summary": "Document Info Job Succeeded", "description": "Example response when a Document Info job completes successfully with extracted document information.", "value": { "jobId": "f54e0fcb-260b-47c8-b340-f5a3bcf6b623", "status": "succeeded", "data": { "numSpreads": 6, "numPages": 10, "hiddenSpreads": 2, "pageInfo": { "items": [ { "isParentSpread": false, "spreadId": 215, "spreadIndex": 3, "spreadName": "", "isHiddenSpread": false, "pages": [ { "pageId": 237, "pageIndexInDocument": 5, "pageIndexInSpread": 0, "appliedParentSpread": 248, "pageSide": "left_hand", "pageName": "6", "bounds": { "left": 0, "right": 595.275590551, "top": 0, "bottom": 841.889763778 } } ] } ] }, "pageItemInfo": { "items": [ { "type": "TextFrame", "itemId": 255, "itemName": "", "locked": false, "visible": true, "layerName": "Layer 1", "bounds": { "left": 201, "right": 570, "top": 168, "bottom": 475 }, "parentType": "Spread", "parentId": 207, "pageId": 212, "pageIndex": 0, "spreadIndex": 0, "spreadId": 207, "liesOnParentPage": false, "liesOnPasteboard": false } ], "layers": [ { "layerName": "Layer 1", "layerId": 204, "visible": true, "locked": false, "layerIndex": 0 } ] }, "textStoryInfo": { "items": [ { "storyId": 237, "textOnPath": false, "textContainers": [ { "startIndex": 0, "endIndex": 529, "textContainerId": 255, "paragraphStyles": [ { "paragraphIndex": 0, "styleName": "[Basic Paragraph]", "fontName": "Krungthep Regular", "fontStyle": "Regular", "fontSize": 12, "startCharIndex": 0, "endCharIndex": 239 } ], "characterStyles": [ { "styleName": "[None]", "fontName": "Krungthep Regular", "fontStyle": "Regular", "fontSize": 12, "startCharIndex": 0, "endCharIndex": 238 } ] } ] } ] }, "fontInfo": { "items": [ { "fontFamily": "Minion Pro", "fontStyleName": "Regular", "postscriptName": "MinionPro-Regular", "available": true, "fontType": "OPENTYPE_CFF" }, { "fontFamily": "Krungthep", "fontStyleName": "Regular", "postscriptName": "Krungthep", "available": false, "fontType": "OPENTYPE_CFF" } ] }, "linkInfo": { "items": [ { "linkId": 406, "status": "link_missing", "uri": "file:/Users/paraggupta/Downloads/image1.jpg", "linkType": "JPEG", "linkName": "image1.jpg", "pages": [ { "pageId": 234, "pageIndex": 2, "spreadIndex": 1, "spreadId": 213, "liesOnParentPage": false, "liesOnPasteboard": false } ] } ] } } } } } } }, "headers": { "retry-after": { "schema": { "type": "integer" }, "description": "The number of seconds until the user should try again." }, "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response." } } } } } }, "/v3/convert-pdf-to-indesign": { "post": { "summary": "Convert PDF to InDesign document", "description": "Converts PDF documents to editable InDesign (INDD or IDML) format. The output is a ZIP file (default name 'output.zip') containing subfolders (named after each input PDF) with the converted document and associated assets. If `embedLinks` is false, assets are provided in a separate folder within the ZIP. If `embedLinks` is true, all links are embedded in the InDesign file. Returns warnings for missing fonts and links.", "operationId": "convertPDFToInDesign", "tags": [ "Convert PDF to InDesign" ], "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConvertToInDesignRequest" } } }, "description": "This job request object specifies parameters for converting PDF to InDesign format.", "required": true }, "responses": { "202": { "$ref": "#/components/responses/Accepted" }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/status/{convert-pdf-to-indesign_job_id}": { "get": { "operationId": "getConvertPDFToInDesignJobStatus", "summary": "Get status - Convert PDF to InDesign API", "description": "Returns the latest status of a job, in this case a PDF to InDesign conversion job. Poll this endpoint to retrieve the job results, warnings, and download URL of the output, in this case an output ZIP file.", "tags": [ "Convert PDF to InDesign" ], "parameters": [ { "name": "convert-pdf-to-indesign_job_id", "in": "path", "description": "The ID of the Convert PDF to InDesign job you want to see the status of. This comes from the response of the Convert PDF to InDesign request.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Status of a Convert to InDesign job execution.", "content": { "application/json": { "schema": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/notstartedEvent" }, { "$ref": "#/components/schemas/runningEvent" }, { "$ref": "#/components/schemas/succeededEvent" }, { "$ref": "#/components/schemas/failedEvent" }, { "$ref": "#/components/schemas/partialSuccessEvent" } ] }, "examples": { "succeeded": { "summary": "Convert to InDesign Job Succeeded", "description": "Example response when a PDF to InDesign conversion job completes successfully. The output is a ZIP file containing the converted INDD/IDML documents and assets.", "value": { "jobId": "413d57e8-1092-4476-8a9f-16eacabd2d6d", "timestamp": "2025-12-17T06:08:45.267Z", "status": "succeeded", "data": { "outputs": [ { "outputPath": "output/test", "input": "test.pdf", "warnings": { "missingLinks": [ "file:/Users/labuser/Downloads/Untitled-1%20Folder1/doc1%20Folder/Links/testAI-3.ai" ], "missingFonts": [ "Abelone Regular" ] } } ] }, "outputs": [ { "destination": { "url": "" }, "source": "output.zip" } ] } } } } }, "headers": { "retry-after": { "schema": { "type": "integer" }, "description": "The number of seconds until the user should try again." }, "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response." } } }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } }, "/v3/status/{id}": { "get": { "operationId": "getJobStatus", "summary": "Get the status of a job", "description": "Returns the latest status of an executed custom script job.", "tags": [ "Job Status" ], "parameters": [ { "name": "id", "in": "path", "description": "The ID of the job you want to see the status of. This comes from the response of the executed job request.", "required": true, "schema": { "type": "string" } }, { "name": "size", "in": "query", "description": "Number of output items to return per page when outputs are paginated. Defaults to 10.", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 10 } }, { "name": "page", "in": "query", "description": "Zero-based page index to retrieve when outputs are paginated. Defaults to 0.", "required": false, "schema": { "type": "integer", "minimum": 0, "default": 0 } } ], "responses": { "200": { "description": "Status of an API Job execution.", "content": { "application/json": { "schema": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/notstartedEvent" }, { "$ref": "#/components/schemas/runningEvent" }, { "$ref": "#/components/schemas/succeededEvent" }, { "$ref": "#/components/schemas/failedEvent" }, { "$ref": "#/components/schemas/partialSuccessEvent" } ] } } }, "headers": { "retry-after": { "schema": { "type": "integer" }, "description": "The number of seconds until the user should try again." }, "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response." } } }, "400": { "$ref": "#/components/responses/BadParams" }, "401": { "$ref": "#/components/responses/Unauthorized" }, "403": { "$ref": "#/components/responses/Forbidden" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/TooManyRequests" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } } }, "components": { "securitySchemes": { "AccessToken": { "type": "http", "scheme": "bearer", "description": "The Adobe-generated access token, S2S format." }, "X-Api-Key": { "type": "apiKey", "name": "x-api-key", "in": "header", "description": "The client ID for authentication." } }, "schemas": { "HyphenationLanguage": { "type": "string", "description": "Supported hyphenation dictionary languages.", "enum": [ "Arabic", "Bengali (India)", "Bulgarian", "Burmese (Myanmar [Burma])", "Catalan", "Croatian", "Czech", "Danish", "Dutch: 2005 Reform", "Dutch: Old Rules", "English: Canadian", "English: UK", "English: USA", "English: USA Legal", "English: USA Medical", "Estonian", "Finnish", "French", "French: Canadian", "German: 1996 Reform", "German: 2006 Reform", "German: Austria 2006 Reform", "German: Old Rules", "German: Swiss", "German: Swiss 2006 Reform", "Greek", "Gujarati (India)", "Hebrew", "Hindi (India)", "Hungarian", "Indonesian (Indonesia)", "Italian", "Kannada (India)", "Khmer (Cambodia)", "Lao (Laos)", "Latvian", "Lithuanian", "Malayalam (India)", "Marathi (India)", "Norwegian: Bokm\u00e5l", "Norwegian: Nynorsk", "Oriya (India)", "Polish", "Portuguese", "Portuguese: Brazilian", "Portuguese: Orthographic Agreement", "Punjabi (India)", "Romanian", "Russian", "Sinhala (Sri Lanka)", "Slovak", "Slovenian", "Spanish", "Swedish", "Tamil (India)", "Telugu (India)", "Thai", "Turkish", "Ukrainian", "Vietnamese" ] }, "InputAsset": { "type": "object", "description": "The URL where the asset will be fetched.", "required": [ "source" ], "properties": { "source": { "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "description": "The pre-signed URL of the input asset. This is the URL of the asset that will be downloaded and acted upon during the job." } } }, "destination": { "type": "string", "description": "This provides a path relative to a temporary base directory (working directory) where the resource would be downloaded. This would be used to identify the assets within the parameters. It cannot go up using '..' or '/'. Should be a valid file name." } } }, "BaseJobRequest": { "description": "The base job request for any job.", "required": [ "assets" ], "properties": { "assets": { "type": "array", "items": { "$ref": "#/components/schemas/InputAsset" }, "description": "Information about the assets, which will be used to process the job." }, "params": { "type": "object", "properties": { "generalSettings": { "description": "General settings.", "type": "object", "properties": { "fonts": { "description": "Settings related to fonts. It is recommended to include fonts to avoid missing fonts warnings when processing the job.", "type": "object", "properties": { "fontsDirectories": { "description": "This lists the font directories for the input InDesign documents. \"Document Fonts\" in parallel to the document will continue to work even without specifying them.

If none are specified, a temporary base directory (working directory) will be considered as a font directory.", "type": "array", "items": { "type": "string", "description": "This provides a path to a directory relative to a temporary base directory (working directory) where the fonts can be found. It cannot go up using '..' or '/'. Should be a valid path. For specifying a working directory, mention '.'." } } } }, "links": { "description": "Settings related to links.", "type": "object", "properties": { "replaceLinks": { "type": "array", "items": { "type": "object", "required": [ "targetDocument", "mapping" ], "properties": { "targetDocument": { "description": "The document in which the relinking is to be done. Relinking of assets is required to ensure that there are no missing links in the output document.", "type": "string" }, "mapping": { "type": "array", "items": { "type": "object", "required": [ "newAssetRelativePath" ], "properties": { "newAssetRelativePath": { "type": "string", "description": "This provides a path relative to a temporary base directory (working directory) where the asset to be linked to can be found. It cannot go up using '..' or '/'. Should be a valid file name." }, "currentURI": { "type": "string", "description": "The existing URI of the link that needs relinking. If multiple links with this URI are found, all will be relinked. If `linkID` is provided, this attribute will be ignored. Either `currentURI` or `linkID` should be present." }, "linkID": { "type": "integer", "description": "The ID of the link which is to be relinked. If `currentURI` is also provided, it will be ignored. Either `currentURI` or `linkID` should be present." } } } } } } } } }, "appLogs": { "description": "Describes parameters regarding application logs.", "type": "object", "properties": { "logsRelativePath": { "type": "string", "description": "This provides a path to a file, relative to the temporary base directory (working directory). This file is where the application's logs are to be dumped." } } } } } } } } }, "OutputAsset": { "description": "The URL where the output assets are to be posted after the job is processed.", "type": "object", "required": [ "destination", "source" ], "properties": { "destination": { "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "description": "The URL of the asset." }, "storageType": { "type": "string", "description": "This is an optional parameter, however IT IS RECOMMENDED to provide this information.", "enum": [ "Azure", "Dropbox", "AWS" ] } } }, "source": { "type": "string", "description": "This provides a path relative of the output where the resource would be generated. It cannot go up using '..' or '/'. Should be a valid file name." } } }, "BaseJobRequestWithOutput": { "allOf": [ { "$ref": "#/components/schemas/BaseJobRequest" }, { "description": "The base job request for any job with the option to specify output URLs.", "type": "object", "properties": { "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/OutputAsset" } } } } ] }, "MergeDataRequest": { "allOf": [ { "$ref": "#/components/schemas/BaseJobRequestWithOutput" }, { "description": "Inputs for the data merge request.", "type": "object", "required": [ "params" ], "properties": { "params": { "type": "object", "required": [ "targetDocument", "dataSource" ], "properties": { "targetDocument": { "description": "The tagged document to be used as the template for merging.", "type": "string" }, "dataSource": { "description": "The data source files to be used.", "type": "string" }, "outputMediaType": { "description": "The type of output.", "type": "string", "enum": [ "image/jpeg", "image/png", "application/pdf", "application/x-indesign" ], "default": "application/x-indesign" }, "exportSettings": { "type": "object", "description": "The settings corresponding to the output format.", "properties": { "jobOptionsFile": { "type": "string", "description": "File path reference to a `.joboptions` file (Adobe PDF preset file) containing custom PDF export settings. This file must be included as part of the input assets. It defines detailed PDF output configurations such as compression, color management, and security settings. When provided, this takes precedence over the `pdfPreset` attribute. Only applicable when generating PDF output.", "default": "PDF preset `High Quality Print` will be used if not provided." }, "pdfPreset": { "type": "string", "description": "The PDF export style to be used. This is relevant if `outputMediaType` is `application/pdf`.", "default": "High Quality Print", "enum": [ "High Quality Print", "PDF/X-1a:2001", "PDF/X-3:2002", "PDF/X-4:2008", "Press Quality", "Smallest File Size" ] }, "quality": { "type": "string", "description": "Defines the quality of the output for JPEG and PNG formats.", "default": "medium", "enum": [ "low", "medium", "high", "maximum" ] }, "linkImages": { "description": "If `true`, links images to the target document. If `false`, embeds linked images already referred in the target document. Only relevant if `outputMediaType` is `application/x-indesign`.", "type": "boolean", "default": false } } }, "recordRange": { "description": "The ranges of records to process for this job. Value can be `All`, along with numeral ranges. For example, '1-2, 5'.", "type": "string", "default": "All" }, "allowMultipleRecordsPerPage": { "description": "If `true`, will show as many records as will fit on a page.", "type": "boolean", "default": false }, "multipleRecordLayoutOptions": { "description": "The options to be used when `allowMultipleRecordsPerPage` is set to `true`.", "type": "object", "properties": { "arrangeBy": { "description": "The order that records will be arranged in the target document.\n* `rows_first` - Arranges records by row.\n* `columns_first` - Arranges records by column.\n", "type": "string", "default": "rows_first", "enum": [ "rows_first", "columns_first" ] }, "bottomMargin": { "description": "The offset value of the bottom margin in the target document. The values can be specified like `1 pt`, `1 pica`, `1`, etc. If a number is mentioned in the string, it will be used as a value in pica.", "type": "string" }, "topMargin": { "description": "The offset value of the top margin in the target document. The values can be specified like `1 pt`, `1 pica`, `1`, etc. If a number is mentioned in the string, it will be used as a value in pica.", "type": "string" }, "leftMargin": { "description": "The offset value of the left margin in the target document. The values can be specified like `1 pt`, `1 pica`, `1`, etc. If a number is mentioned in the string, it will be used as a value in pica.", "type": "string" }, "rightMargin": { "description": "The offset value of the right margin in the target document. The values can be specified like `1 pt`, `1 pica`, `1`, etc. If a number is mentioned in the string, it will be used as a value in pica.", "type": "string" }, "columnSpacing": { "description": "The amount of spacing between columns of records in the target document. The values can be specified like `1 pt`, `1 pica`, `1`, etc. If a number is mentioned in the string, it will be used as a value in pica.", "type": "string" }, "rowSpacing": { "description": "The amount of spacing between rows of records in the target document. The values can be specified like `1 pt`, `1 pica`, `1`, etc. If a number is mentioned in the string, it will be used as a value in pica.", "type": "string" } } }, "imagePlacementOptions": { "description": "These are the options for image placement which will be used while merging images in the document.", "type": "object", "properties": { "centerImage": { "description": "If true, this centers the image in the frame while preserving the frame size as content size and proportions. If the content is larger than the frame, content around the edges is obscured by the bounding box of the frame.

This won't work when `fittingOption` is `Content_Aware_Fit`.", "type": "boolean", "default": false }, "fittingOption": { "description": "The method of fitting content in a frame.\n* `content_aware_fit` - Selects best crop region of the content for the frame based on Adobe Sensei. This preserves frame size but it might scale the content size. If this fitting is set, the `centerImage` property is turned-off.\n* `fill_proportional` - Resizes content to fill the frame while preserving the proportions of the content. If the content and frame have different proportions, some of the content is obscured by the bounding box of the frame.\n* `fit_content_to_frame` - Resizes content to fit the frame. Content that is a different size than the frame appears stretched or squeezed.\n* `fit_frame_to_content` - Resizes the frame so it fits the content.\n* `honor_existing_style` - Applies the frame fitting based on existing settings applied on the original frame.\n* `preserve_sizes` - Preserves the original sizes of the frame and the content. Content that is larger than the frame is obscured around the edges.\n* `proportional` - Resizes content to fit the frame while preserving content proportions. If the content and frame have different proportions, an empty space occurs in the frame.\n", "type": "string", "default": "proportional", "enum": [ "content_aware_fit", "fill_proportional", "fit_content_to_frame", "fit_frame_to_content", "honor_existing_style", "preserve_sizes", "proportional" ] }, "linkImages": { "description": "This applies to the images being brought in the document while merging. If true, this links images to the target document. If false, it embeds images in the target document.", "type": "boolean", "default": false } } }, "hyphenationSettings": { "description": "Hyphenation settings to control word breaking and hyphenation behavior during merge.", "type": "object", "properties": { "afterFirst": { "type": "integer", "description": "Minimum number of characters at the start of a word before a hyphen may be inserted." }, "beforeLast": { "type": "integer", "description": "Minimum number of characters at the end of a word after a hyphen." }, "wordsLongerThan": { "type": "integer", "description": "Minimum word length for hyphenation to apply." }, "ladderLimit": { "type": "integer", "description": "Maximum allowed consecutive hyphenated lines." }, "zone": { "type": "number", "description": "Whitespace ratio allowed at the end of a line before hyphenation begins (0\u20131)." }, "capitalizedWords": { "type": "boolean", "description": "If true, allows hyphenation of capitalized words." }, "lastWord": { "type": "boolean", "description": "If true, allows hyphenation of the last word in a paragraph." }, "acrossColumns": { "type": "boolean", "description": "If true, allows hyphenation across columns." }, "dictionarySettings": { "type": "array", "description": "Special hyphenation definitions by language.", "items": { "type": "object", "required": [ "language", "wordList" ], "properties": { "language": { "$ref": "#/components/schemas/HyphenationLanguage" }, "wordList": { "type": "array", "description": "List of special hyphenation definitions (use `~` to mark break points, e.g., `Know~how`, `check~in`. Put `~` at the beginning of the word to exclude it from hyphenation, e.g., `~Wallstreet`, `~Starbucks`).", "items": { "type": "string" } } } } } } }, "pagesPerDocument": { "description": "The maximum number of pages per document.", "type": "integer", "default": "By default this would not be applicable." }, "removeBlankLines": { "description": "If true, removes blank lines caused by empty fields.", "type": "boolean", "default": false }, "convertUrlToHyperlink": { "description": "If true, all URLs in the merged document are converted into hyperlinks.", "type": "boolean", "default": true }, "outputFileBaseString": { "type": "string", "description": "The name of the output file.", "default": "It is derived from the original document filename." }, "outputFolderPath": { "type": "string", "description": "The path of the output folder.", "default": "A unique temporary folder name would be created." } } } } } ] }, "Error": { "type": "object", "properties": { "message": { "type": "string" }, "error_code": { "type": "string" } }, "required": [ "message", "error_code" ] }, "MergeDataTagsRequest": { "allOf": [ { "$ref": "#/components/schemas/BaseJobRequest" }, { "description": "Filters according to which the information related to data merge tags would be retrieved.", "type": "object", "required": [ "params" ], "properties": { "params": { "type": "object", "required": [ "targetDocument" ], "properties": { "targetDocument": { "description": "The target document that will have its tags extracted.", "type": "string" }, "dataSource": { "description": "The data source file to be used for extracting and matching the tags.", "type": "string" }, "filter": { "description": "The filter applied for tags. Accepts multiple values.", "type": "array", "example": ["text", "image"], "default": ["all"], "items": { "type": "string", "enum": [ "all", "text", "image", "qr" ] } }, "includePageItemIdentifiers": { "type": "boolean", "description": "If true, the information for associated page items is added to the tags extracted from the document.", "default": false } } } } } ] }, "RemapLinksRequest": { "description": "Inputs for the link remapping request.", "type": "object", "required": [ "assets", "params" ], "properties": { "assets": { "type": "array", "items": { "$ref": "#/components/schemas/InputAsset" } }, "params": { "type": "object", "required": [ "targetDocument", "dataSource" ], "properties": { "targetDocument": { "description": "The InDesign documents in which links need to be remapped.", "type": "array", "minItems": 1, "items": { "type": "string" } }, "dataSource": { "description": "Array of link mappings containing source and destination URIs.", "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "sourceURI", "destinationURI" ], "properties": { "sourceURI": { "type": "string", "description": "File path/resource URI for the existing link that needs to be remapped." }, "destinationURI": { "type": "string", "description": "AEM URI that will replace the existing link." } } } } } }, "outputs": { "type": "array", "items": { "$ref": "#/components/schemas/OutputAsset" } } } }, "DocumentInfoRequest": { "allOf": [ { "$ref": "#/components/schemas/BaseJobRequest" }, { "description": "Inputs for the document information request.", "type": "object", "required": [ "params" ], "properties": { "params": { "type": "object", "required": [ "targetDocument" ], "properties": { "targetDocument": { "description": "The document to be used for data extraction.", "type": "string" }, "pageInfo": { "description": "Settings for extracting page information.", "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, return pages information.", "default": true } } }, "linkInfo": { "description": "Settings for extracting link information.", "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, return links information.", "default": false } } }, "fontInfo": { "description": "Settings for extracting font information.", "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, return fonts information.", "default": false } } }, "pageItemInfo": { "description": "Settings for extracting page item information.", "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, return page items details.", "default": false } } }, "textStoryInfo": { "description": "Settings for extracting text story information.", "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, return text stories information.", "default": false } } } } } } } ] }, "ConvertToInDesignRequest": { "allOf": [ { "$ref": "#/components/schemas/BaseJobRequestWithOutput" }, { "description": "Inputs for converting PDF to InDesign document.", "type": "object", "required": [ "params" ], "properties": { "params": { "type": "object", "required": [ "targetDocuments", "outputMediaType" ], "properties": { "targetDocuments": { "description": "Array of PDF documents to convert. Each entry corresponds to the filename of the PDF document to convert. Currently supports one document at a time.", "type": "array", "items": { "type": "string" }, "minItems": 1, "maxItems": 1 }, "outputMediaType": { "description": "The MIME type of the output file.", "type": "string", "enum": [ "application/x-indesign", "application/vnd.adobe.indesign-idml-package" ], "default": "application/x-indesign" }, "embedLinks": { "description": "If true, all links (images and other assets) from the PDF are embedded directly in the resulting INDD/IDML file. If false (default), the INDD/IDML file is created with external links, and all assets are provided in a separate folder within the output ZIP.", "type": "boolean", "default": false }, "outputFilebaseString": { "description": "The name of the output ZIP file. If not specified, defaults to 'output.zip'.", "type": "string", "default": "output.zip" } } } } } ] }, "ConvertToInDesignResponse": { "type": "object", "description": "Response data returned when PDF to InDesign conversion is successful. This data is returned in the `data` field of the succeeded status response. The output is always a ZIP file containing subfolders for each converted PDF with the requested INDD/IDML file and associated assets.", "properties": { "outputs": { "type": "array", "description": "Array of conversion outputs. Each item provides information about the conversion result for a specific input PDF.", "items": { "type": "object", "properties": { "outputPath": { "type": "string", "description": "Path to the output folder for the particular input PDF file within the ZIP archive." }, "input": { "type": "string", "description": "Name of the input PDF file that was converted." }, "warnings": { "type": "object", "description": "Warnings encountered during conversion.", "properties": { "missingLinks": { "type": "array", "description": "Array of links that are missing or inaccessible in the converted document.", "items": { "type": "string" } }, "missingFonts": { "type": "array", "description": "Array of fonts that are not available in the runtime environment.", "items": { "type": "string" } }, "otherWarnings": { "type": "array", "description": "Array of other warnings generated during conversion.", "items": { "type": "string" } } } } } } } } }, "CreateRenditionRequest": { "allOf": [ { "$ref": "#/components/schemas/BaseJobRequestWithOutput" }, { "description": "Inputs and properties with which the job should be processed.", "type": "object", "required": [ "params" ], "properties": { "params": { "type": "object", "required": [ "targetDocuments", "outputMediaType" ], "properties": { "targetDocuments": { "description": "The documents that will be processed and rendered. Currently, only one document at a time is supported.", "type": "array", "items": { "type": "string" }, "minItems": 1, "maxItems": 1 }, "outputMediaType": { "description": "The MIME type output of the rendered file.", "type": "string", "enum": [ "image/jpeg", "image/png", "application/pdf" ] }, "exportingSpread": { "type": "boolean", "default": false, "description": "Specify `true` if you consider range as spread numbers. Use `false` if you treat range as pages." }, "pageRange": { "type": "string", "default": "All", "description": "The page ranges, based on the index of the page within the document. The value can be 'All', as well as numeral ranges. If `exportingSpread` is true, this range would represent spread indices in the document." }, "quality": { "type": "string", "description": "Defines the quality of the output.", "default": "medium", "enum": [ "low", "medium", "high", "maximum" ] }, "renderingStyle": { "type": "string", "description": "Specifies formatting options for the converted JPEG images.", "default": "baseline_encoding", "enum": [ "baseline_encoding", "progressive_encoding" ] }, "resolution": { "type": "integer", "default": 72, "description": "Specifies the resolution of the final image.", "minimum": 1, "maximum": 2400 }, "colorSpace": { "type": "string", "description": "Specifies formatting options for converted JPEG images.", "default": "rgb", "enum": [ "rgb", "cmyk", "gray" ] }, "embedColorProfile": { "type": "boolean", "default": true, "description": "Specify `true` to embed the color profile. Otherwise, use `false`." }, "antiAlias": { "type": "boolean", "default": true, "description": "If `true`, anti-aliasing is used for text and vectors during export." }, "simulateOverprint": { "type": "boolean", "default": false, "description": "If `true`, this simulates the effects of overprinting spot and processes colors in the same way they would occur with a print." }, "useDocumentBleeds": { "type": "boolean", "default": false, "description": "If `true`, the document's bleed settings are used in the exported JPEG." }, "colorSettingsFile": { "type": "string", "description": "This is the color settings file to be used for generating a rendition." }, "transparentBackground": { "type": "boolean", "default": false, "description": "If `true`, this uses a transparent background for the exported PNG. This is valid only for PNG renditions." }, "createSeparateFiles": { "type": "boolean", "default": false, "description": "Specify `true` to create separate PDF files for all the specified pages/spreads. This is applicable only in case of PDF rendition." }, "optimizeForFastWebView": { "type": "boolean", "default": true, "description": "Specify `true` to optimize the PDF for faster web viewing. This is applicable only in case of PDF rendition." }, "embedPageThumbnails": { "type": "boolean", "default": false, "description": "Specify `true` for embedding page thumbnails. This is applicable only in case of PDF rendition." }, "includeBookmarks": { "type": "boolean", "default": false, "description": "If `true`, this displays bookmarks and table-of-contents entries as links in the bookmarks pane of the PDF document. If `false`, bookmarks are not exported. This is applicable only in case of PDF rendition." }, "includeHyperlinks": { "type": "boolean", "default": false, "description": "If `true`, this includes the hyperlinks when exporting the document. This is applicable only in case of PDF rendition." }, "exportNonprintingObjects": { "type": "boolean", "default": false, "description": "If `true`, this makes non-printing objects visible in the PDF document. This is applicable only in case of PDF rendition." }, "exportGuidesAndGrids": { "type": "boolean", "default": false, "description": "If `true`, this includes visible guides and baseline grids in the PDF. This is applicable only in case of PDF rendition. document." }, "createTaggedPDF": { "type": "boolean", "default": true, "description": "If `true`, this creates a tagged PDF file. This is applicable only in case of PDF rendition." }, "includeInteractiveElements": { "type": "string", "description": "Specifies the option to draw interactive elements. This is applicable only in case of PDF rendition.", "default": "do_not_include", "enum": [ "do_not_include", "appearance_only" ] }, "exportWhichLayers": { "type": "string", "description": "This indicates the image layers to be exported. This is applicable only in case of PDF rendition.", "default": "export_all_layers", "enum": [ "export_all_layers", "export_visible_layers", "export_visible_printable_layers" ] }, "jobOptionsFile": { "type": "string", "description": "File path reference to a `.joboptions` file (Adobe PDF preset file) containing custom PDF export settings. This file must be included as part of the input assets. It defines detailed PDF output configurations such as compression, color management, and security settings. When provided, this takes precedence over the `pdfPreset` attribute. Only applicable when generating PDF output.", "default": "PDF preset `High Quality Print` will be used if not provided." }, "pdfPreset": { "type": "string", "description": "The export style to be used. This is applicable only in case of PDF rendition.", "default": "High Quality Print", "enum": [ "High Quality Print", "PDF/X-1a:2001", "PDF/X-3:2002", "PDF/X-4:2008", "Press Quality", "Smallest File Size" ] }, "outputFileBaseString": { "type": "string", "description": "The name of the output file.", "default": "It is derived from the original document filename." }, "outputFolderPath": { "type": "string", "description": "The path of the output folder.", "default": "A unique temporary folder name would be created." } } } } } ] }, "CustomScriptsListResponse": { "type": "object", "description": "Response containing list of registered custom scripts", "properties": { "capabilities": { "type": "array", "items": { "$ref": "#/components/schemas/CustomScriptDetails" } }, "paging": { "type": "object", "properties": { "nextUrl": { "type": "string", "description": "URL for the next page of results", "example": "https://indesign.adobe.io/api/v3/scripts?page=1" } } } } }, "CustomScriptDetails": { "type": "object", "description": "Details of a custom script", "properties": { "version": { "type": "string", "description": "Version of the custom script", "example": "1.0.2" }, "url": { "type": "string", "description": "URL that was generated during registration", "example": "https://indesign.adobe.io/v3/634aaf2dd50c8d198/idml/export" }, "downloadurl": { "type": "string", "description": "Pre-signed URL for downloading the script (valid for 30 minutes)", "example": "https://example.com/download/script.zip" }, "createdDate": { "type": "string", "format": "date-time", "description": "Registration date of the script", "example": "2025-07-03T08:44:26.051Z" }, "scriptName": { "type": "string", "description": "Name of the custom script", "example": "3p-testing/test1" }, "appVersionStrategy": { "type": "string", "description": "Strategy used to determine the InDesign app version for this script", "enum": [ "latest_version", "fixed_major_version", "fixed_major_and_minor_version" ], "example": "fixed_major_and_minor_version" }, "majorAppVersion": { "type": "string", "description": "Major version of the InDesign app required for this script", "example": "20" }, "minorAppVersion": { "type": "string", "description": "Minor version of the InDesign app required for this script", "example": "1" } } }, "AppVersionUpdateRequest": { "type": "object", "description": "Request body for updating app version configuration for a custom script", "required": [ "appVersionStrategy" ], "properties": { "appVersionStrategy": { "type": "string", "description": "Strategy for determining the InDesign app version to use. latest_version uses the most recent version, fixed_major_version locks to a major version, fixed_major_and_minor_version locks to a specific version.", "enum": [ "latest_version", "fixed_major_version", "fixed_major_and_minor_version" ], "example": "fixed_major_and_minor_version" }, "majorAppVersion": { "type": "string", "description": "Major version of the InDesign app. Required when appVersionStrategy is fixed_major_version or fixed_major_and_minor_version.", "example": "20" }, "minorAppVersion": { "type": "string", "description": "Minor version of the InDesign app. Required when appVersionStrategy is fixed_major_and_minor_version.", "example": "1" } } }, "AppVersionInfo": { "type": "object", "description": "Information about a registered InDesign app version", "properties": { "product": { "type": "string", "description": "The product name", "example": "indesign" }, "majorAppVersion": { "type": "string", "description": "Major version of the InDesign app", "example": "20" }, "minorAppVersion": { "type": "string", "description": "Minor version of the InDesign app", "example": "1" }, "status": { "type": "string", "description": "Status of this app version", "enum": [ "active", "preview" ], "example": "active" } } }, "BaseEvent": { "type": "object", "description": "The job event response object.", "properties": { "jobId": { "description": "The GUID for the job.", "type": "string" } } }, "notstartedEvent": { "allOf": [ { "$ref": "#/components/schemas/BaseEvent" }, { "description": "The status when a job is in queued state.", "type": "object", "properties": { "status": { "type": "string", "description": "The current state of the job.", "enum": [ "not_started" ] } } } ] }, "runningEvent": { "allOf": [ { "$ref": "#/components/schemas/BaseEvent" }, { "description": "Job is in running state.", "type": "object", "properties": { "status": { "type": "string", "description": "The current state of the job.", "enum": [ "running" ] }, "message": { "type": "string", "description": "A description of the current running state." } } } ] }, "succeededEvent": { "allOf": [ { "$ref": "#/components/schemas/BaseEvent" }, { "description": "The job has succeeded.", "type": "object", "properties": { "status": { "type": "string", "description": "The current state of the job.", "enum": [ "succeeded" ] }, "data": { "type": "object", "description": "The output response from the current state of the job." }, "dataURL": { "type": "string", "description": "The data returned from the execution of the job. If the data size is between 250 KB and 20 MB, it will be provided as a pre-signed URL. If it is larger than 20 MB, the job will fail." }, "outputs": { "type": "object", "description": "A list of URLs for all the generated assets." } } } ] }, "failedEvent": { "allOf": [ { "$ref": "#/components/schemas/BaseEvent" }, { "description": "The job is in a failed state.", "type": "object", "properties": { "status": { "type": "string", "description": "The current state of the job.", "enum": [ "failed" ] }, "errors": { "type": "array", "description": "A list of errors that caused the job to fail.", "items": { "type": "object", "properties": { "error_code": { "type": "string", "description": "The error code for the failure." }, "message": { "type": "string", "description": "The error message for the failure" }, "source": { "type": "string", "description": "The source file of the error, if applicable." }, "url": { "type": "string", "description": "A URL related to an asset causing the failure(if any), if applicable." } } } } } } ] }, "partialSuccessEvent": { "allOf": [ { "$ref": "#/components/schemas/BaseEvent" }, { "description": "The job has succeeded with some non-critical errors.", "type": "object", "properties": { "status": { "type": "string", "description": "The current state of the job.", "enum": [ "partial_success" ] }, "data": { "type": "object", "description": "The output response from the current state of the job." }, "dataURL": { "type": "string", "description": "The data returned from the execution of the job. If the data size is between 250 KB and 20 MB, it will be provided as a pre-signed URL. If it is larger than 20 MB, the job will fail." }, "outputs": { "type": "object", "description": "A list of URLs for all the successfully generated assets." }, "errors": { "type": "array", "description": "A list of errors that occurred during a partially successful job.", "items": { "type": "object", "properties": { "error_code": { "type": "string", "description": "The error code for the partial failure." }, "message": { "type": "string", "description": "The error message for the partial failure" }, "source": { "type": "string", "description": "The source file of the partial failure error, if applicable." }, "url": { "type": "string", "description": "A URL related to an asset causing the partial failure(if any), if applicable." } } } } } } ] } }, "responses": { "Accepted": { "description": "The job has been accepted for processing.", "content": { "application/json": { "schema": { "properties": { "jobId": { "type": "string", "description": "The job ID." }, "statusUrl": { "type": "string", "description": "The status URL." } } } } }, "headers": { "link": { "schema": { "type": "string" }, "description": "The status URL for a retry." }, "retry-after": { "schema": { "type": "integer" }, "description": "The number of seconds until the user should try again." }, "Content-Type": { "schema": { "type": "string" }, "description": "The type of content that is returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response content." }, "Access-Control-Allow-Origin": { "schema": { "type": "string" }, "description": "The Cross Origin Resource Sharing (CORS) header." }, "Access-Control-Allow-Methods": { "schema": { "type": "string" }, "description": "This indicates what HTTP methods are allowed." }, "Access-Control-Allow-Headers": { "schema": { "type": "string" }, "description": "This indicates which HTTP headers can be used during the actual request." }, "Access-Control-Allow-Credentials": { "schema": { "type": "string" }, "description": "This header is used by servers to indicate that the client shall share HTTP responses." }, "Access-Control-Max-Age": { "schema": { "type": "integer" }, "description": "This indicates how long the results of a preflight request can be cached." } } }, "BadParams": { "description": "Bad Parameter", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "headers": { "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response content." }, "Access-Control-Allow-Origin": { "schema": { "type": "string" }, "description": "The Cross Origin Resource Sharing (CORS) header." }, "Access-Control-Allow-Methods": { "schema": { "type": "string" }, "description": "This header indicates what HTTP methods are allowed." }, "Access-Control-Allow-Headers": { "schema": { "type": "string" }, "description": "This indicates which HTTP headers can be used during the actual request." }, "Access-Control-Allow-Credentials": { "schema": { "type": "string" }, "description": "This header is used by servers to indicate that the client shall share HTTP responses." }, "Access-Control-Max-Age": { "schema": { "type": "integer" }, "description": "This indicates how long the results of a preflight request can be cached." } } }, "Unauthorized": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "headers": { "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response content." }, "Access-Control-Allow-Origin": { "schema": { "type": "string" }, "description": "The Cross Origin Resource Sharing (CORS) header." }, "Access-Control-Allow-Methods": { "schema": { "type": "string" }, "description": "This indicates what HTTP methods are allowed." }, "Access-Control-Allow-Headers": { "schema": { "type": "string" }, "description": "This indicates which HTTP headers can be used during the actual request." }, "Access-Control-Allow-Credentials": { "schema": { "type": "string" }, "description": "This header is used by servers to indicate that the client shall share HTTP responses." }, "Access-Control-Max-Age": { "schema": { "type": "integer" }, "description": "This indicates how long the results of a preflight request can be cached." } } }, "Forbidden": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "headers": { "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response content." }, "Access-Control-Allow-Origin": { "schema": { "type": "string" }, "description": "The Cross Origin Resource Sharing (CORS) header." }, "Access-Control-Allow-Methods": { "schema": { "type": "string" }, "description": "This header indicates what HTTP methods are allowed." }, "Access-Control-Allow-Headers": { "schema": { "type": "string" }, "description": "This indicates which HTTP headers can be used during the actual request." }, "Access-Control-Allow-Credentials": { "schema": { "type": "string" }, "description": "This header is used by servers to indicate that the client shall share HTTP responses." }, "Access-Control-Max-Age": { "schema": { "type": "integer" }, "description": "This indicates how long the results of a preflight request can be cached." } } }, "NotFound": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "headers": { "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response content." }, "Access-Control-Allow-Origin": { "schema": { "type": "string" }, "description": "The Cross Origin Resource Sharing (CORS) header." }, "Access-Control-Allow-Methods": { "schema": { "type": "string" }, "description": "This header indicates what HTTP methods are allowed." }, "Access-Control-Allow-Headers": { "schema": { "type": "string" }, "description": "This indicates which HTTP headers can be used during the actual request." }, "Access-Control-Allow-Credentials": { "schema": { "type": "string" }, "description": "This header is used by servers to indicate that the client shall share HTTP responses." }, "Access-Control-Max-Age": { "schema": { "type": "integer" }, "description": "This indicates how long the results of a preflight request can be cached." } } }, "InternalServerError": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "headers": { "Content-Type": { "schema": { "type": "string" }, "description": "The type of content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response content." }, "Access-Control-Allow-Origin": { "schema": { "type": "string" }, "description": "The Cross Origin Resource Sharing (CORS) header." }, "Access-Control-Allow-Methods": { "schema": { "type": "string" }, "description": "This header indicates what HTTP methods are allowed." }, "Access-Control-Allow-Headers": { "schema": { "type": "string" }, "description": "This indicates which HTTP headers can be used during the actual request." }, "Access-Control-Allow-Credentials": { "schema": { "type": "string" }, "description": "This header is used by servers to indicate that the client shall share HTTP responses." }, "Access-Control-Max-Age": { "schema": { "type": "integer" }, "description": "This indicates how long the results of a preflight request can be cached." } } }, "TooManyRequests": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } }, "headers": { "Content-Type": { "schema": { "type": "string" }, "description": "The format of the content returned (e.g., `application/json`)." }, "Content-Length": { "schema": { "type": "integer" }, "description": "The length of the response content." }, "Retry-After": { "schema": { "type": "integer" }, "description": "The number of seconds until the user should try again." }, "Access-Control-Allow-Origin": { "schema": { "type": "string" }, "description": "The Cross Origin Resource Sharing (CORS) header." }, "Access-Control-Allow-Methods": { "schema": { "type": "string" }, "description": "This indicates what HTTP methods are allowed." }, "Access-Control-Allow-Headers": { "schema": { "type": "string" }, "description": "This indicates which HTTP headers can be used during the actual request." }, "Access-Control-Allow-Credentials": { "schema": { "type": "string" }, "description": "This header is used by servers to indicate that the client shall share HTTP responses." }, "Access-Control-Max-Age": { "schema": { "type": "integer" }, "description": "This indicates how long the results of a preflight request can be cached." } } } } } }