openapi: 3.1.0 info: title: Adobe Lightroom Lightroom Albums Album Assets 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: Assets description: CRUD operations on photo and video assets paths: /catalogs/{catalog_id}/assets: get: operationId: listAssets summary: Adobe Lightroom List Assets in a Catalog description: Retrieves a paginated list of assets in the specified catalog. Supports filtering by subtype (image or video) and capture date range. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/XApiKey' - name: subtype in: query description: Filter by asset subtype schema: type: string enum: - image - video example: image - name: captured_after in: query description: Filter assets captured after this ISO 8601 timestamp schema: type: string format: date-time example: '2026-01-15T10:30:00Z' - name: captured_before in: query description: Filter assets captured before this ISO 8601 timestamp schema: type: string format: date-time example: '2026-01-15T10:30:00Z' - name: limit in: query description: Maximum number of results schema: type: integer default: 100 minimum: 1 maximum: 500 example: 10 - name: offset in: query description: Pagination offset schema: type: integer default: 0 example: 10 responses: '200': description: Assets retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AssetsListResponse' examples: Listassets200Example: summary: Default listAssets 200 response x-microcks-default: true value: base: example_value resources: - id: abc123 type: example_value subtype: image created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' revision_ids: {} links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets/{asset_id}: get: operationId: getAsset summary: Adobe Lightroom Get Asset Metadata description: Retrieves complete metadata for a specific asset including EXIF data, capture date, import source, location, develop settings, and links to available renditions. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/XApiKey' responses: '200': description: Asset metadata retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AssetResponse' examples: Getasset200Example: summary: Default getAsset 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: captureDate: '2026-01-15T10:30:00Z' userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' importSource: fileName: example_value importedOnDevice: example_value importTimestamp: '2026-01-15T10:30:00Z' develop: example_value xmp: example_value location: latitude: 42.5 longitude: 42.5 altitude: 42.5 direction: 42.5 links: {} '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: createOrUpdateAsset summary: Adobe Lightroom Create or Update an Asset description: Creates a new asset or updates an existing asset in the catalog. The asset_id should be a client-generated UUID. After creating an asset, upload the master file using the master endpoint. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId' - $ref: '#/components/parameters/XApiKey' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetCreateRequest' examples: CreateorupdateassetRequestExample: summary: Default createOrUpdateAsset request x-microcks-default: true value: subtype: image payload: captureDate: '2026-01-15T10:30:00Z' userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' importSource: fileName: example_value importedOnDevice: example_value importTimestamp: '2026-01-15T10:30:00Z' responses: '200': description: Asset updated successfully content: application/json: schema: $ref: '#/components/schemas/AssetResponse' examples: Createorupdateasset200Example: summary: Default createOrUpdateAsset 200 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: captureDate: '2026-01-15T10:30:00Z' userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' importSource: fileName: example_value importedOnDevice: example_value importTimestamp: '2026-01-15T10:30:00Z' develop: example_value xmp: example_value location: latitude: 42.5 longitude: 42.5 altitude: 42.5 direction: 42.5 links: {} '201': description: Asset created successfully content: application/json: schema: $ref: '#/components/schemas/AssetResponse' examples: Createorupdateasset201Example: summary: Default createOrUpdateAsset 201 response x-microcks-default: true value: base: example_value id: abc123 type: example_value subtype: example_value created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' payload: captureDate: '2026-01-15T10:30:00Z' userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' importSource: fileName: example_value importedOnDevice: example_value importTimestamp: '2026-01-15T10:30:00Z' develop: example_value xmp: example_value location: latitude: 42.5 longitude: 42.5 altitude: 42.5 direction: 42.5 links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets/{asset_id}/master: put: operationId: uploadMasterAsset summary: Adobe Lightroom Upload the Master (original) File for an Asset description: Uploads the original master file for a previously created asset. The asset must already exist in the catalog. The request body should contain the binary image data. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId_2' - $ref: '#/components/parameters/XApiKey_2' - name: Content-Type in: header required: true schema: type: string enum: - image/jpeg - image/png - image/tiff - image/dng - video/mp4 example: image/jpeg - name: Content-Length in: header required: true schema: type: integer example: 10 requestBody: required: true content: application/octet-stream: schema: type: string format: binary examples: UploadmasterassetRequestExample: summary: Default uploadMasterAsset request x-microcks-default: true value: example_value responses: '200': description: Master file uploaded successfully '201': description: Master file created successfully '401': $ref: '#/components/responses/Unauthorized_2' '403': $ref: '#/components/responses/Forbidden_2' '404': $ref: '#/components/responses/NotFound_2' '413': description: File too large x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/assets/{asset_id}/xmp/develop: get: operationId: getAssetDevelopXmp summary: Adobe Lightroom Get the Develop Settings Xmp for an Asset description: Retrieves the external develop XMP sidecar file for the specified asset. Contains Lightroom develop settings as XMP metadata. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId_2' - $ref: '#/components/parameters/XApiKey_2' responses: '200': description: XMP develop settings retrieved successfully content: application/rdf+xml: schema: type: string examples: Getassetdevelopxmp200Example: summary: Default getAssetDevelopXmp 200 response x-microcks-default: true value: example_value '401': $ref: '#/components/responses/Unauthorized_2' '404': $ref: '#/components/responses/NotFound_2' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: putAssetDevelopXmp summary: Adobe Lightroom Upload Develop Settings Xmp for an Asset description: Uploads an external develop XMP sidecar file for the specified asset, applying Lightroom develop settings. tags: - Assets parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AssetId_2' - $ref: '#/components/parameters/XApiKey_2' requestBody: required: true content: application/rdf+xml: schema: type: string examples: PutassetdevelopxmpRequestExample: summary: Default putAssetDevelopXmp request x-microcks-default: true value: example_value responses: '200': description: XMP develop settings updated successfully '201': description: XMP develop settings created successfully '401': $ref: '#/components/responses/Unauthorized_2' '404': $ref: '#/components/responses/NotFound_2' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: parameters: AssetId: name: asset_id in: path required: true description: Unique identifier of the asset (UUID format) schema: type: string format: uuid CatalogId: name: catalog_id in: path required: true description: Unique identifier of the Lightroom catalog schema: type: string XApiKey_2: name: X-Api-Key in: header required: true description: API key from the Adobe Developer Console schema: type: string AssetId_2: name: asset_id in: path required: true description: Unique identifier of the asset schema: type: string XApiKey: name: X-Api-Key in: header required: true description: API key from Adobe Developer Console schema: type: string responses: NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden_2: description: Insufficient permissions. The user has not granted access or the partner application is not entitled. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_2' Unauthorized_2: description: Authentication required or invalid credentials content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_2' Forbidden: description: Insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound_2: description: The specified resource was not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_2' schemas: ErrorResponse: type: object properties: code: type: integer example: 10 description: type: string example: A sample description. Links: type: object additionalProperties: type: object properties: href: type: string AssetsListResponse: type: object properties: base: type: string description: Base URL for API example: example_value resources: type: array items: $ref: '#/components/schemas/Asset' example: [] links: $ref: '#/components/schemas/Links' AssetCreateRequest: type: object required: - subtype - payload properties: subtype: type: string enum: - image - video example: image payload: type: object properties: captureDate: type: string format: date-time userCreated: type: string format: date-time userUpdated: type: string format: date-time importSource: type: object properties: fileName: type: string importedOnDevice: type: string importTimestamp: type: string format: date-time example: example_value Asset: type: object properties: id: type: string description: Asset unique identifier example: abc123 type: type: string const: asset example: example_value subtype: type: string enum: - image - video example: image created: type: string format: date-time example: '2026-01-15T10:30:00Z' updated: type: string format: date-time example: '2026-01-15T10:30:00Z' revision_ids: type: array items: type: string example: [] payload: $ref: '#/components/schemas/AssetPayload' links: $ref: '#/components/schemas/Links' AssetPayload: type: object properties: captureDate: type: string format: date-time description: Date and time the photo was captured example: '2026-01-15T10:30:00Z' userCreated: type: string format: date-time example: '2026-01-15T10:30:00Z' userUpdated: type: string format: date-time example: '2026-01-15T10:30:00Z' importSource: type: object properties: fileName: type: string description: Original file name importedOnDevice: type: string description: Device used for import importTimestamp: type: string format: date-time example: example_value develop: type: object description: Develop settings snapshot example: example_value xmp: type: object description: Embedded XMP metadata example: example_value location: type: object properties: latitude: type: number longitude: type: number altitude: type: number direction: type: number example: example_value AssetResponse: type: object properties: base: type: string example: example_value id: type: string example: abc123 type: type: string const: asset example: example_value subtype: type: string example: example_value created: type: string format: date-time example: '2026-01-15T10:30:00Z' updated: type: string format: date-time example: '2026-01-15T10:30:00Z' payload: $ref: '#/components/schemas/AssetPayload' links: $ref: '#/components/schemas/Links' ErrorResponse_2: type: object properties: code: type: integer description: HTTP status code example: 10 description: type: string description: Error description example: A sample description. errors: type: array items: type: object properties: message: type: string field: type: string example: [] 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/