openapi: 3.1.0 info: title: Adobe Lightroom Lightroom Albums Album Assets Presets API description: API for creating and managing albums and collections within an Adobe Lightroom cloud catalog. Albums organize assets into user-defined collections. Supports listing, creating, updating, and deleting albums as well as managing the assets within each album. version: '2' contact: name: Adobe Lightroom Developer Support url: https://community.adobe.com/t5/lightroom/ct-p/ct-lightroom license: name: Adobe Terms of Service url: https://www.adobe.com/legal/terms.html termsOfService: https://www.adobe.com/legal/terms.html servers: - url: https://lr.adobe.io/v2 description: Lightroom Services Production Server security: - oauth2: - lr_partner_apis - apiKey: [] tags: - name: Presets description: Apply Lightroom presets (XMP develop settings) to images paths: /lrService/presets: post: operationId: applyPresets summary: Adobe Lightroom Apply Lightroom Presets to an Image description: Applies one or more Lightroom presets (XMP develop settings files) to an image. Presets are provided as references to XMP files stored in cloud storage. Multiple presets can be applied in sequence, with later presets overriding earlier settings where they overlap. tags: - Presets parameters: - $ref: '#/components/parameters/XApiKey' - $ref: '#/components/parameters/Authorization' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ApplyPresetsRequest' examples: ApplypresetsRequestExample: summary: Default applyPresets request x-microcks-default: true value: inputs: source: href: example_value storage: adobe presets: - {} outputs: - href: example_value storage: adobe type: image/jpeg overwrite: true quality: 10 responses: '200': description: Presets applied successfully content: application/json: schema: $ref: '#/components/schemas/JobResponse' examples: Applypresets200Example: summary: Default applyPresets 200 response x-microcks-default: true value: jobId: '500123' created: '2026-01-15T10:30:00Z' modified: '2026-01-15T10:30:00Z' outputs: - input: example_value status: pending href: example_value errors: type: example_value title: Example Title code: 10 _links: self: href: example_value '202': description: Job accepted and processing content: application/json: schema: $ref: '#/components/schemas/JobResponse' examples: Applypresets202Example: summary: Default applyPresets 202 response x-microcks-default: true value: jobId: '500123' created: '2026-01-15T10:30:00Z' modified: '2026-01-15T10:30:00Z' outputs: - input: example_value status: pending href: example_value errors: type: example_value title: Example Title code: 10 _links: self: href: example_value '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: responses: Forbidden: description: Insufficient permissions or quota exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Authentication required or invalid token content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' TooManyRequests: description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: StorageInput: type: object description: Reference to an input file stored in cloud storage required: - href - storage properties: href: type: string description: URL or path to the input file. For Creative Cloud, use the asset path. For external storage, use the presigned URL. example: example_value storage: type: string description: Storage type where the input file is located enum: - adobe - external - azure - dropbox example: adobe ApplyPresetsRequest: type: object required: - inputs - outputs properties: inputs: type: object required: - source - presets properties: source: $ref: '#/components/schemas/StorageInput' presets: type: array description: List of preset XMP files to apply. Presets are applied in order, with later presets overriding earlier ones. items: $ref: '#/components/schemas/StorageInput' example: example_value outputs: type: array items: $ref: '#/components/schemas/StorageOutput' example: [] JobResponse: type: object properties: jobId: type: string description: Unique job identifier for tracking example: '500123' created: type: string format: date-time description: Job creation timestamp example: '2026-01-15T10:30:00Z' modified: type: string format: date-time description: Job last modified timestamp example: '2026-01-15T10:30:00Z' outputs: type: array items: type: object properties: input: type: string description: Reference to the input file status: type: string description: Processing status for this output enum: - pending - running - succeeded - failed href: type: string description: URL of the completed output errors: type: object description: Error details if processing failed properties: type: type: string title: type: string code: type: integer example: [] _links: type: object properties: self: type: object properties: href: type: string example: example_value ErrorResponse: type: object properties: type: type: string description: Error type URI example: example_value title: type: string description: Short error description example: Example Title code: type: integer description: Error code example: 10 detail: type: string description: Detailed error message example: example_value StorageOutput: type: object description: Reference to the output destination in cloud storage required: - href - storage - type properties: href: type: string description: URL or path for the output file example: example_value storage: type: string description: Storage type for the output enum: - adobe - external - azure - dropbox example: adobe type: type: string description: Output image format enum: - image/jpeg - image/png - image/tiff - image/dng example: image/jpeg overwrite: type: boolean description: Whether to overwrite existing files default: true example: true quality: type: integer description: JPEG quality (1-12) when output type is image/jpeg minimum: 1 maximum: 12 example: 10 parameters: Authorization: name: Authorization in: header required: true description: Bearer token from Adobe IMS schema: type: string pattern: ^Bearer .+$ XApiKey: name: X-Api-Key in: header required: true description: API key (client_id) from Adobe Developer Console schema: type: string securitySchemes: oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://ims-na1.adobelogin.com/ims/authorize/v2 tokenUrl: https://ims-na1.adobelogin.com/ims/token/v3 scopes: lr_partner_apis: Access Lightroom partner APIs apiKey: type: apiKey name: X-Api-Key in: header externalDocs: description: Lightroom Albums API Documentation url: https://developer.adobe.com/lightroom/lightroom-api-docs/api/