Adobe Express Embed SDK
Embed the full Adobe Express editor and quick actions into web applications for creating and editing visual content with thousands of templates and assets.
Embed the full Adobe Express editor and quick actions into web applications for creating and editing visual content with thousands of templates and assets.
{
"openapi": "3.0.3",
"info": {
"title": "Express API",
"description": "Express API to automate bulk creation, export renditions and various other use cases.",
"version": "beta",
"contact": {
"name": "Express API support",
"email": "express-api-support@adobe.com"
},
"x-spec-type": "version",
"x-spec-version": "beta"
},
"servers": [
{
"url": "https://express-api.adobe.io",
"description": "Prod endpoint"
}
],
"paths": {
"/beta/tagged-documents": {
"get": {
"summary": "Tagged documents",
"description": "This API retrieves a list of tagged documents that users can access, including those they own or those shared with them, along with relevant metadata. It supports pagination and sorting, allowing users to specify the starting point, define the number of documents to return, and choose the order in which to list them. The response includes the requested documents and their metadata.",
"operationId": "taggedDocuments",
"parameters": [
{
"name": "start",
"in": "query",
"required": false,
"description": "Pagination start index. Default is 0.",
"schema": {
"type": "integer"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"description": "Pagination limit. Default is 10 and maximum value allowed is 25.",
"schema": {
"type": "integer"
}
},
{
"name": "sortBy",
"in": "query",
"required": false,
"description": "Use `sortBy` to sort the response.",
"schema": {
"$ref": "#/components/schemas/TaggedDocumentsSortBy"
}
}
],
"responses": {
"200": {
"description": "Successfully retrieved the tagged documents.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TaggedDocumentsResponse"
},
"examples": {
"taggedDocumentsResponseSample": {
"$ref": "#/components/examples/taggedDocumentsResponseSample"
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsBadRequest": {
"$ref": "#/components/examples/errorResponseDetailsBadRequest"
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsUnauthorized": {
"$ref": "#/components/examples/errorResponseDetailsUnauthorized"
}
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsForbidden": {
"$ref": "#/components/examples/errorResponseDetailsForbidden"
},
"errorResponseDetailsForbiddenMissingExpressEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingExpressEntitlement"
},
"errorResponseDetailsForbiddenMissingExpressApiEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingExpressApiEntitlement"
},
"errorResponseDetailsForbiddenExpressApiRequiresPremiumAccount": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenExpressApiRequiresPremiumAccount"
},
"errorResponseDetailsForbiddenMissingTypekitEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingTypekitEntitlement"
},
"errorResponseDetailsForbiddenTechnicalAccountNonFreeTypekit": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenTechnicalAccountNonFreeTypekit"
}
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsNotFound": {
"$ref": "#/components/examples/errorResponseDetailsNotFound"
}
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsUnprocessableEntity": {
"$ref": "#/components/examples/errorResponseDetailsUnprocessableEntity"
}
}
}
}
},
"429": {
"description": "Too Many Requests",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsTooManyRequests": {
"$ref": "#/components/examples/errorResponseDetailsTooManyRequests"
}
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsRuntimeError": {
"$ref": "#/components/examples/errorResponseDetailsRuntimeError"
}
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsServiceUnavailable": {
"$ref": "#/components/examples/errorResponseDetailsServiceUnavailable"
}
}
}
}
}
}
}
},
"/beta/tagged-documents/{documentId}": {
"get": {
"summary": "Tagged document details",
"description": "This API retrieves details of the pages and tagged elements within a specified document. It returns a paginated list of the document's pages and metadata about each page. If the document has tagged elements, the API includes their respective details, such as size and position. If the document does not have tagged elements, it returns an empty array. The response includes pagination information to help users navigate the document’s pages. A maximum of 10 pages can be returned in 1 API call.",
"operationId": "taggedDocumentDetails",
"parameters": [
{
"name": "documentId",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The unique identifier of the document."
},
{
"name": "start",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "Specifies the starting document page number from which details need to be fetched. Default is 1."
}
],
"responses": {
"200": {
"description": "Successfully retrieved the details of the tagged document.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TaggedDocumentDetailsResponse"
},
"examples": {
"taggedDocumentDetailsResponseSampleOne": {
"$ref": "#/components/examples/taggedDocumentDetailsResponseSampleOne"
},
"taggedDocumentDetailsResponseSampleTwo": {
"$ref": "#/components/examples/taggedDocumentDetailsResponseSampleTwo"
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsBadRequest": {
"$ref": "#/components/examples/errorResponseDetailsBadRequest"
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsUnauthorized": {
"$ref": "#/components/examples/errorResponseDetailsUnauthorized"
}
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsUnprocessableEntity": {
"$ref": "#/components/examples/errorResponseDetailsUnprocessableEntity"
}
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsRuntimeError": {
"$ref": "#/components/examples/errorResponseDetailsRuntimeError"
}
}
}
}
}
}
}
},
"/beta/generate-variation": {
"post": {
"summary": "Generate variation",
"description": "This API creates a document variation based on provided input parameters. After processing, it temporarily stores the generated document and makes it available to the user within a designated folder. The document remains accessible for 30 days, after which the system automatically removes it.",
"operationId": "generateVariation",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenerateVariationRequest"
},
"examples": {
"generateVariationRequestSample": {
"$ref": "#/components/examples/generateVariationRequestSample"
}
}
}
}
},
"responses": {
"202": {
"description": "The request has been accepted and the job is in progress.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/JobResponse"
},
"examples": {
"jobResponseSample": {
"$ref": "#/components/examples/jobResponseSample"
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsBadRequest": {
"$ref": "#/components/examples/errorResponseDetailsBadRequest"
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsUnauthorized": {
"$ref": "#/components/examples/errorResponseDetailsUnauthorized"
}
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsForbidden": {
"$ref": "#/components/examples/errorResponseDetailsForbidden"
},
"errorResponseDetailsForbiddenMissingExpressEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingExpressEntitlement"
},
"errorResponseDetailsForbiddenMissingExpressApiEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingExpressApiEntitlement"
},
"errorResponseDetailsForbiddenExpressApiRequiresPremiumAccount": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenExpressApiRequiresPremiumAccount"
},
"errorResponseDetailsForbiddenMissingTypekitEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingTypekitEntitlement"
},
"errorResponseDetailsForbiddenTechnicalAccountNonFreeTypekit": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenTechnicalAccountNonFreeTypekit"
}
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsNotFound": {
"$ref": "#/components/examples/errorResponseDetailsNotFound"
}
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsUnprocessableEntity": {
"$ref": "#/components/examples/errorResponseDetailsUnprocessableEntity"
}
}
}
}
},
"429": {
"description": "Too Many Requests",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsTooManyRequests": {
"$ref": "#/components/examples/errorResponseDetailsTooManyRequests"
}
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsRuntimeError": {
"$ref": "#/components/examples/errorResponseDetailsRuntimeError"
}
}
}
}
},
"503": {
"description": "Service Unavailable",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsServiceUnavailable": {
"$ref": "#/components/examples/errorResponseDetailsServiceUnavailable"
}
}
}
}
}
}
}
},
"/beta/export-rendition": {
"post": {
"summary": "Export rendition",
"description": "Export one or more pages from an Adobe Express document in supported formats. This endpoint accepts an export request and returns pre-signed URLs for accessing the rendered files.\n\n**Supported formats:**\n- Image formats: `image/jpeg` (JPG), `image/png` (PNG)\n- Video format: `video/mp4` (MP4)\n- Document format: `application/pdf` (PDF)\n\n**Rendition availability:**\n- Image renditions: Valid for 4 hours, maximum size 8192px on the longest side\n- Video and PDF renditions: Valid for 24 hours, maximum size 4096px on the longest side\n\n**Asynchronous processing:**\nExport requests are processed asynchronously. The response includes a `jobId` and `statusUrl` that you can use to track the export progress and retrieve the final rendition URLs.\n\n**Restrictions:**\n\n| Condition | Behavior | Error |\n| --- | --- | --- |\n| Public templates (Adobe-owned documents not copied to the user account) | Export is not allowed | `400 bad_request` |\n| Document contains Adobe Stock–licensed assets | Export fails | `422 stock_content_detected` |",
"operationId": "exportRendition",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExportRenditionRequest"
},
"examples": {
"exportRenditionRequestSampleOne": {
"$ref": "#/components/examples/exportRenditionRequestSampleOne"
},
"exportRenditionRequestSampleTwo": {
"$ref": "#/components/examples/exportRenditionRequestSampleTwo"
},
"exportRenditionRequestSampleThree": {
"$ref": "#/components/examples/exportRenditionRequestSampleThree"
},
"exportRenditionRequestSampleFour": {
"$ref": "#/components/examples/exportRenditionRequestSampleFour"
},
"exportRenditionRequestSampleFive": {
"$ref": "#/components/examples/exportRenditionRequestSampleFive"
},
"exportRenditionRequestSampleSix": {
"$ref": "#/components/examples/exportRenditionRequestSampleSix"
},
"exportRenditionRequestSampleSeven": {
"$ref": "#/components/examples/exportRenditionRequestSampleSeven"
},
"exportRenditionRequestPublicTemplate": {
"$ref": "#/components/examples/exportRenditionRequestPublicTemplate"
},
"exportRenditionRequestStockContent": {
"$ref": "#/components/examples/exportRenditionRequestStockContent"
}
}
}
}
},
"responses": {
"202": {
"description": "The request has been accepted and the job is in progress.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/JobResponse"
},
"examples": {
"jobResponseSample": {
"$ref": "#/components/examples/jobResponseSample"
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsBadRequest": {
"$ref": "#/components/examples/errorResponseDetailsBadRequest"
},
"errorResponseDetailsPublicTemplate": {
"$ref": "#/components/examples/errorResponseDetailsPublicTemplate"
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsUnauthorized": {
"$ref": "#/components/examples/errorResponseDetailsUnauthorized"
}
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseDetails"
},
"examples": {
"errorResponseDetailsForbidden": {
"$ref": "#/components/examples/errorResponseDetailsForbidden"
},
"errorResponseDetailsForbiddenMissingExpressEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingExpressEntitlement"
},
"errorResponseDetailsForbiddenMissingExpressApiEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingExpressApiEntitlement"
},
"errorResponseDetailsForbiddenExpressApiRequiresPremiumAccount": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenExpressApiRequiresPremiumAccount"
},
"errorResponseDetailsForbiddenMissingTypekitEntitlement": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenMissingTypekitEntitlement"
},
"errorResponseDetailsForbiddenTechnicalAccountNonFreeTypekit": {
"$ref": "#/components/examples/errorResponseDetailsForbiddenTechnicalAccountNonFreeTypekit"
}
}
}
}
},
"404": {
# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adobe-suite/refs/heads/main/openapi/adobe-suite-firefly-express-openapi.json