{ "openapi": "3.0.0", "info": { "title": "Illustrator API - Firefly Services", "description": "Illustrator API allows you to perform various operations with an Adobe Illustrator template. The API processes requests asynchronously.", "version": "1.0.0", "license": { "name": "Adobe Creative API License", "url": "https://www.adobe.com/content/dam/cc/en/legal/terms/enterprise/pdfs/PSLT-AdobeCreativeAPI-WW-2024v2.pdf" } }, "servers": [ { "url": "https://illustrator-api.adobe.io", "description": "Production endpoint." } ], "security": [ { "apiKey": [] } ], "tags": [], "paths": { "/v1/merge-data": { "post": { "operationId": "dataMerge", "summary": "Data merge", "description": "This endpoint allows you to merge variable data from a CSV file with an Adobe Illustrator template. The request is processed asynchronously and the status of the job can be checked using the status URL provided in the response. The output is provided as an array of individual files, one for each row in the CSV data.", "x-ffs-async-job": true, "x-ffs-job-status-fetcher": "facadeJobStatus", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DataMergeRequest" }, "example": { "data": { "source": { "url": "https://your-bucket.s3.amazonaws.com/your-data.csv" } }, "template": { "source": { "url": "https://your-bucket.s3.amazonaws.com/your-template.ai" } }, "fontFiles": [ { "source": { "url": "https://your-bucket.s3.amazonaws.com/your-font.ttf" }, "mediaType": "font/ttf" } ], "settings": { "fontSettings": { "autoReduceFontSizeToFit": false, "minFontSize": 8, "fallBackFont": "Roboto-Thin" } }, "output": { "fileName": "your-output.pdf", "mediaType": "application/pdf" } } } } }, "responses": { "202": { "description": "Accepted", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "string" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "retry-after": { "description": "Indicates how long to wait before making a new request.", "schema": { "type": "string" } }, "link": { "description": "Provides a link to related resources.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "string" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobLinkResponse" }, "example": { "jobId": "f246bc8a-45ef-4cdc-8217-6c1ab74c5dc4", "statusUrl": "https://illustrator-api-beta.adobe.io/v1/status/f246bc8a-45ef-4cdc-8217-6c1ab74c5dc4" } } } }, "400": { "description": "Bad Request", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "string" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "string" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "example": { "error_code": "invalid_json", "message": "Unexpected token 'a', ...\"ntSize\" : a\n }\n\"... is not valid JSON" } } } }, "401": { "description": "Unauthorized", "headers": { "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "string" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnauthorizedError" }, "example": { "title": "ErrInvalidOauthToken", "status": 401, "error_code": 401013, "message": "Oauth token is not valid" } } } }, "403": { "description": "Forbidden", "headers": { "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "string" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForbiddenError" }, "example": { "title": "ErrMissingAPIKey", "status": 403, "error_code": 403000, "message": "API key is missing" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "string" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "string" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "example": { "error_code": "validation_error", "validation_errors": [ "minFontSize must be a positive number", "minFontSize must be a number conforming to the specified constraints" ] } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" } } } } } } }, "/v1/create-rendition": { "post": { "operationId": "createRendition", "summary": "Create rendition", "description": "This endpoint allows you to convert Adobe Illustrator files into various output formats. It supports conversion of .ai documents into multiple web- and print-ready formats. The request is processed asynchronously and the status of the job can be checked using the status URL provided in the response. The output is provided as a single converted file.", "x-ffs-async-job": true, "x-ffs-job-status-fetcher": "facadeJobStatus", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRenditionRequest" }, "example": { "input": { "source": { "url": "https://your-bucket.s3.amazonaws.com/your-document.ai" }, "mediaType": "application/illustrator" }, "output": { "mediaType": "application/pdf" }, "settings": { "documentLevel": 0, "artboardRange": "1-3", "resolution": 72 } } } } }, "responses": { "202": { "description": "Accepted", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "integer" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "retry-after": { "description": "Indicates how long to wait before making a new request.", "schema": { "type": "integer" } }, "link": { "description": "Provides a link to related resources.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "integer" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobLinkResponse" }, "example": { "jobId": "f246bc8a-45ef-4cdc-8217-6c1ab74c5dc4", "statusUrl": "https://illustrator-api-beta.adobe.io/v1/status/f246bc8a-45ef-4cdc-8217-6c1ab74c5dc4" } } } }, "400": { "description": "Bad Request", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "integer" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "integer" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "example": { "error_code": "invalid_json", "message": "Expected ',' or '}' after property value in JSON at position 276" } } } }, "401": { "description": "Unauthorized", "headers": { "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "integer" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LongJobError" }, "example": { "title": "ErrInvalidOauthToken", "status": 401, "error_code": 401013, "message": "Oauth token is not valid" } } } }, "403": { "description": "Forbidden", "headers": { "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "integer" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "Indicates the software used by the origin server to handle the request.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LongJobError" }, "example": { "title": "ErrMissingAPIKey", "status": 403, "error_code": 403000, "message": "API key is missing" } } } }, "422": { "description": "Unprocessable Entity", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "integer" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "integer" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "Indicates the software used by the origin server to handle the request.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "example": { "error_code": "validation_error", "validation_errors": [ "documentLevel must be one of the following values: 0, 1" ] } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "example": { "error_code": "runtime_error", "message": "An unexpected error occurred while processing your request. Please retry or contact support if the issue persists." } } } } } } }, "/v1/status/{jobId}": { "get": { "operationId": "facadeJobStatus", "summary": "Retrieve job status", "description": "Retrieve the status of a job by providing the job ID. The job ID can be obtained from the response of other APIs.", "x-ffs-status-fetcher": true, "x-ffs-job-name": "FacadeAsyncJob", "parameters": [ { "name": "jobId", "required": true, "in": "path", "description": "The job ID to retrieve the status of.", "schema": { "type": "string", "example": "f246bc8a-45ef-4cdc-8217-6c1ab74c5dc4" } } ], "responses": { "200": { "description": "OK", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "string" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "retry-after": { "description": "Indicates how long to wait before making a new request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "string" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "Indicates the software used by the origin server to handle the request.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/DataMergeJobApiResponse" }, { "$ref": "#/components/schemas/JobStatusPollPayload" }, { "$ref": "#/components/schemas/DataMergeJobFailedResponse" } ] }, "example": { "succeeded": { "summary": "Status: Succeeded", "value": { "jobId": "ef4f7daa-0d09-4dcf-9884-029bb7f374ac", "status": "succeeded", "outputs": [ { "destination": { "url": "https://example.com/output1.pdf" }, "mediaType": "application/pdf" }, { "destination": { "url": "https://example.com/output2.pdf" }, "mediaType": "application/pdf" } ] } }, "running": { "summary": "Status: Running", "value": { "jobId": "0e24f157-a5ca-4723-9009-6599e19887f6", "status": "running" } }, "failed": { "summary": "Status: Failed", "value": { "jobId": "ef4f7daa-0d09-4dcf-9884-029bb7f374ac", "status": "failed", "error_code": "runtime_error", "message": "Missing fonts detected: Chabplan-Rg. Please provide font files." } } } } } }, "401": { "description": "Unauthorized", "headers": { "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "integer" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "Indicates the software used by the origin server to handle the request.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LongJobError" }, "example": { "title": "ErrInvalidOauthToken", "status": 401, "error_code": 401013, "message": "Oauth token is not valid" } } } }, "403": { "description": "Forbidden", "headers": { "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "integer" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "Indicates the software used by the origin server to handle the request.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LongJobError" }, "example": { "title": "ErrMissingAPIKey", "status": 403, "error_code": 403000, "message": "API key is missing" } } } }, "404": { "description": "Not Found", "headers": { "access-control-allow-headers": { "description": "Indicates which headers can be used during the actual request.", "schema": { "type": "string" } }, "access-control-allow-methods": { "description": "Indicates which HTTP methods are allowed when accessing the resource.", "schema": { "type": "string" } }, "access-control-expose-headers": { "description": "Indicates which headers can be exposed as part of the response.", "schema": { "type": "string" } }, "access-control-allow-origin": { "description": "Indicates whether the response can be shared with requesting code from the given origin.", "schema": { "type": "string" } }, "access-control-max-age": { "description": "Indicates how long the results of a preflight request can be cached.", "schema": { "type": "string" } }, "x-request-id": { "description": "Unique identifier for the request.", "schema": { "type": "string" } }, "content-type": { "description": "Indicates the media type of the resource.", "schema": { "type": "string" } }, "content-length": { "description": "Indicates the size of the response body in bytes.", "schema": { "type": "string" } }, "date": { "description": "Indicates the date and time at which the message was originated.", "schema": { "type": "string" } }, "server": { "description": "Indicates the software used by the origin server to handle the request.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "example": { "error_code": "unknown_job_id", "message": "Job ID does not exist." } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobError" }, "example": { "error_code": "runtime_error", "message": "An unexpected error occurred while processing your request. Please retry or contact support if the issue persists." } } } } } } } }, "components": { "securitySchemes": { "apiKey": { "type": "apiKey", "name": "X-API-KEY", "in": "header", "description": "The S2S API key for authentication." } }, "schemas": { "DataMergeSourceUrl": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL pointing to the resource. Only the following allow-listed domains can be used: amazonaws.com, windows.net, dropboxusercontent.com, assets.frame.io, storage.googleapis.com.", "example": "https://your-bucket.s3.amazonaws.com/your-file.csv" } }, "required": [ "url" ] }, "DataMergeData": { "type": "object", "properties": { "source": { "description": "The source containing the CSV file with variable data. The media type defaults to `text/csv`.", "allOf": [ { "$ref": "#/components/schemas/DataMergeSourceUrl" } ] } }, "required": [ "source" ] }, "DataMergeTemplate": { "type": "object", "properties": { "source": { "description": "The source containing the Adobe Illustrator template file.", "allOf": [ { "$ref": "#/components/schemas/DataMergeSourceUrl" } ] } }, "required": [ "source" ] }, "DataMergeFontFileMediaType": { "type": "string", "description": "The media type of the font file. Supports font/ttf and font/otf.", "enum": [ "font/ttf", "font/otf" ] }, "DataMergeFontFile": { "type": "object", "properties": { "source": { "description": "The source containing the font file.", "allOf": [ { "$ref": "#/components/schemas/DataMergeSourceUrl" } ] }, "mediaType": { "$ref": "#/components/schemas/DataMergeFontFileMediaType" } }, "required": [ "source", "mediaType" ] }, "DataMergeFontSettings": { "type": "object", "properties": { "autoReduceFontSizeToFit": { "type": "boolean", "description": "Automatically reduce font size to fit text within text boxes. Defaults to false if not specified.", "default": false }, "minFontSize": { "type": "number", "description": "Minimum font size (in points) when `autoReduceFontSizeToFit` is enabled. Must be a positive number.", "example": 8 }, "fallBackFont": { "type": "string", "description": "A case-sensitive PostScript font name (like Roboto-Thin, Oxygen, or SourceSansPro-Bold) to use as a fallback when the fonts are missing in the template file.", "example": "Roboto-Thin" } } }, "DataMergeSettings": { "type": "object", "properties": { "fontSettings": { "description": "Settings for font handling during the merge operation.", "allOf": [ { "$ref": "#/components/schemas/DataMergeFontSettings" } ] } } }, "DataMergeOutputMediaType": { "type": "string", "description": "The desired output media type for the merged documents.", "enum": [ "image/png", "image/jpeg", "application/pdf", "image/svg+xml", "application/illustrator", "application/eps" ] }, "DataMergeOutputSpec": { "type": "object", "properties": { "fileName": { "type": "string", "description": "The output file name. May or may not have an extension. It is recommended to provide with extension (e.g., 'result.png', 'output.pdf').", "example": "your-output.pdf" }, "mediaType": { "$ref": "#/components/schemas/DataMergeOutputMediaType" } }, "required": [ "fileName", "mediaType" ] }, "DataMergeRequest": { "type": "object", "properties": { "data": { "description": "The data source containing variable data. Must be a CSV file.", "allOf": [ { "$ref": "#/components/schemas/DataMergeData" } ] }, "template": { "description": "The template source (Adobe Illustrator file).", "allOf": [ { "$ref": "#/components/schemas/DataMergeTemplate" } ] }, "fontFiles": { "description": "Optional array of font files to be used in the template. Supports .ttf and .otf font formats.", "type": "array", "items": { "$ref": "#/components/schemas/DataMergeFontFile" } }, "settings": { "description": "Settings for the data merge operation.", "allOf": [ { "$ref": "#/components/schemas/DataMergeSettings" } ] }, "output": { "description": "Output specification for the merge operation with file name and media type.", "allOf": [ { "$ref": "#/components/schemas/DataMergeOutputSpec" } ] } }, "required": [ "data", "template", "output" ] }, "JobLinkResponse": { "type": "object", "properties": { "jobId": { "type": "string", "description": "The job ID.", "example": "f246bc8a-45ef-4cdc-8217-6c1ab74c5dc4" }, "statusUrl": { "type": "string", "description": "The status URL.", "example": "https://illustrator-api-beta.adobe.io/v1/status/f246bc8a-45ef-4cdc-8217-6c1ab74c5dc4" } }, "required": [ "jobId", "statusUrl" ] }, "JobError": { "type": "object", "properties": { "error_code": { "type": "string", "description": "The error code.", "example": "validation_error" }, "message": { "type": "string", "description": "The error message.", "example": "Invalid request payload. Check validation_errors for details." }, "validation_errors": { "description": "An array of various validation errors.", "type": "array", "items": { "type": "string" } } }, "required": [ "error_code" ] }, "UnauthorizedError": { "type": "object", "properties": { "title": { "type": "string", "description": "The error title.", "example": "ErrInvalidOauthToken" }, "status": { "type": "integer", "description": "The HTTP status code." }, "error_code": { "type": "integer", "description": "The error code." }, "message": { "type": "string", "description": "The error message.", "example": "Oauth token is not valid" } }, "required": [ "status", "error_code" ] }, "ForbiddenError": { "type": "object", "properties": { "title": { "type": "string", "description": "The error title.", "example": "ErrMissingAPIKey" }, "status": { "type": "integer", "description": "The HTTP status code." }, "error_code": { "type": "integer", "description": "The error code." }, "message": { "type": "string", "description": "The error message.", "example": "API key is missing" } }, "required": [ "status", "error_code" ] }, "LongJobError": { "type": "object", "properties": { "title": { "type": "string", "description": "The error title.", "example": "ErrInvalidOauthToken" }, "status": { "type": "integer", "description": "The HTTP status code." }, "error_code": { "type": "integer", "description": "The error code." }, "message": { "type": "string", "description": "The error message.", "example": "Oauth token is not valid" } }, "required": [ "status", "error_code" ] }, "JobStatus": { "type": "string", "description": "The job status.", "enum": [ "running", "failed", "succeeded" ] }, "DataMergeOutputDestination": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL to the output file.", "example": "https://output-bucket.s3.amazonaws.com/merge-results/row-1.pdf" } }, "required": [ "url" ] }, "DataMergeOutput": { "type": "object", "properties": { "destination": { "description": "Details of the location where the output is located.", "allOf": [ { "$ref": "#/components/schemas/DataMergeOutputDestination" } ] }, "mediaType": { "type": "string", "description": "Media type of the output.", "example": "application/pdf" } }, "required": [ "destination", "mediaType" ] }, "DataMergeJobApiResponse": { "type": "object", "title": "Succeeded", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID.", "example": "ef4f7daa-0d09-4dcf-9884-029bb7f374ac" }, "outputs": { "description": "Array of output files from the data merge operation.", "type": "array", "items": { "$ref": "#/components/schemas/DataMergeOutput" } } }, "required": [ "status", "jobId", "outputs" ] }, "JobStatusPollPayload": { "type": "object", "title": "Running", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID.", "example": "0e24f157-a5ca-4723-9009-6599e19887f6" } }, "required": [ "status", "jobId" ] }, "DataMergeJobFailedResponse": { "type": "object", "title": "Failed", "properties": { "jobId": { "type": "string", "description": "The job ID.", "example": "ef4f7daa-0d09-4dcf-9884-029bb7f374ac" }, "status": { "type": "string", "enum": [ "failed" ], "description": "The job status." }, "error_code": { "type": "string", "description": "The error code.", "example": "runtime_error" }, "message": { "type": "string", "description": "The error message.", "example": "Missing fonts detected: Chabplan-Rg. Please provide font files." } }, "required": [ "jobId", "status", "error_code", "message" ] }, "CreateRenditionSourceUrl": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL pointing to the Adobe Illustrator file. Only the following allow-listed domains can be used: amazonaws.com, windows.net, dropboxusercontent.com, assets.frame.io, storage.googleapis.com.", "example": "https://your-bucket.s3.amazonaws.com/your-document.ai" } }, "required": [ "url" ] }, "CreateRenditionSourceMediaType": { "type": "string", "description": "The media type of the source file.", "enum": [ "application/illustrator" ] }, "CreateRenditionInput": { "type": "object", "properties": { "source": { "description": "The source containing the Adobe Illustrator file.", "allOf": [ { "$ref": "#/components/schemas/CreateRenditionSourceUrl" } ] }, "mediaType": { "description": "The media type of the source file. Optional, defaults to application/illustrator.", "allOf": [ { "$ref": "#/components/schemas/CreateRenditionSourceMediaType" } ] } }, "required": [ "source" ] }, "CreateRenditionOutputMediaType": { "type": "string", "description": "The desired output media type for the converted file.", "enum": [ "image/png", "image/jpeg", "image/webp", "image/svg+xml", "application/pdf", "application/eps" ] }, "CreateRenditionOutputSpec": { "type": "object", "properties": { "mediaType": { "$ref": "#/components/schemas/CreateRenditionOutputMediaType" } }, "required": [ "mediaType" ] }, "CreateRenditionSettings": { "type": "object", "properties": { "documentLevel": { "type": "number", "description": "Document level - 0 for artboard level, 1 for document level", "enum": [0, 1] }, "artboardRange": { "type": "string", "description": "Artboard range to export (e.g., '1-3', '1,2,5'). Required when documentLevel is 0.", "example": "1-3" }, "resolution": { "type": "number", "description": "Resolution in DPI (dots per inch) for the output. Must be an integer between 4 and 2400 for PNG and JPEG formats. Defaults to 72. Not applicable for other formats (PDF, EPS, SVG, or WEBP).", "minimum": 4, "maximum": 2400, "default": 72 } }, "required": [ "documentLevel" ] }, "CreateRenditionRequest": { "type": "object", "properties": { "input": { "description": "The input object containing source and media type.", "allOf": [ { "$ref": "#/components/schemas/CreateRenditionInput" } ] }, "output": { "description": "Output specification for the rendition operation with desired media type.", "allOf": [ { "$ref": "#/components/schemas/CreateRenditionOutputSpec" } ] }, "settings": { "description": "Settings for controlling the rendition process.", "allOf": [ { "$ref": "#/components/schemas/CreateRenditionSettings" } ] } }, "required": [ "input", "output", "settings" ] }, "CreateRenditionOutputDestination": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL to the output file.", "example": "https://output-bucket.s3.amazonaws.com/rendition-output.pdf" } }, "required": [ "url" ] }, "CreateRenditionOutput": { "type": "object", "properties": { "destination": { "description": "Details of the location where the output is located.", "allOf": [ { "$ref": "#/components/schemas/CreateRenditionOutputDestination" } ] }, "mediaType": { "type": "string", "description": "Media type of the output.", "example": "application/pdf" } }, "required": [ "destination", "mediaType" ] }, "CreateRenditionJobApiResponse": { "type": "object", "properties": { "status": { "$ref": "#/components/schemas/JobStatus" }, "jobId": { "type": "string", "description": "The job ID.", "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }, "outputs": { "type": "array", "description": "Array of converted output files (one for each artboard).", "items": { "$ref": "#/components/schemas/CreateRenditionOutput" } } }, "required": [ "status", "jobId", "outputs" ] } } } }