openapi: 3.1.0 info: title: Adobe Lightroom Lightroom Album Assets Albums 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: Albums description: CRUD operations on albums paths: /catalogs/{catalog_id}/albums: get: operationId: listAlbums summary: Adobe Lightroom List Albums in a Catalog description: Retrieves a paginated list of all albums in the specified catalog. Albums may be of subtype collection, collection_set, or project. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/XApiKey' - name: subtype in: query description: Filter albums by subtype schema: type: string enum: - collection - collection_set - project example: collection - 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: Albums retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AlbumsListResponse' examples: Listalbums200Example: summary: Default listAlbums 200 response x-microcks-default: true value: base: example_value resources: - id: abc123 type: example_value subtype: collection created: '2026-01-15T10:30:00Z' updated: '2026-01-15T10:30:00Z' 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}/albums/{album_id}: get: operationId: getAlbum summary: Adobe Lightroom Get Album Details description: Retrieves detailed metadata for a specific album including its name, subtype, cover asset reference, parent album reference, and timestamps. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' responses: '200': description: Album retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AlbumResponse' examples: Getalbum200Example: summary: Default getAlbum 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: name: Example Title userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' cover: id: abc123 parent: id: abc123 links: {} '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: createOrUpdateAlbum summary: Adobe Lightroom Create or Update an Album description: Creates a new album or updates an existing album. The album_id should be a client-generated UUID for new albums. Set the subtype to collection for a regular album, collection_set for a folder that contains other albums, or project for a managed project. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AlbumCreateRequest' examples: CreateorupdatealbumRequestExample: summary: Default createOrUpdateAlbum request x-microcks-default: true value: subtype: collection payload: name: Example Title userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' cover: id: abc123 parent: id: abc123 responses: '200': description: Album updated content: application/json: schema: $ref: '#/components/schemas/AlbumResponse' examples: Createorupdatealbum200Example: summary: Default createOrUpdateAlbum 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: name: Example Title userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' cover: id: abc123 parent: id: abc123 links: {} '201': description: Album created content: application/json: schema: $ref: '#/components/schemas/AlbumResponse' examples: Createorupdatealbum201Example: summary: Default createOrUpdateAlbum 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: name: Example Title userCreated: '2026-01-15T10:30:00Z' userUpdated: '2026-01-15T10:30:00Z' cover: id: abc123 parent: id: abc123 links: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteAlbum summary: Adobe Lightroom Delete an Album description: Deletes the specified album from the catalog. Assets within the album are not deleted; they remain in the catalog. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId' - $ref: '#/components/parameters/XApiKey' responses: '204': description: Album deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /catalogs/{catalog_id}/albums/{album_id}/assets: get: operationId: listAlbumAssets summary: Adobe Lightroom List Assets in an Album description: Retrieves a paginated list of assets contained within the specified album. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId_2' - $ref: '#/components/parameters/XApiKey_2' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' responses: '200': description: Album assets retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AssetsListResponse' examples: Listalbumassets200Example: summary: Default listAlbumAssets 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: {} payload: {} links: {} '401': $ref: '#/components/responses/Unauthorized_2' '403': $ref: '#/components/responses/Forbidden_2' '404': $ref: '#/components/responses/NotFound_2' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: addAssetsToAlbum summary: Adobe Lightroom Add Assets to an Album description: Adds one or more existing assets to the specified album. The assets must already exist in the catalog. tags: - Albums parameters: - $ref: '#/components/parameters/CatalogId' - $ref: '#/components/parameters/AlbumId_2' - $ref: '#/components/parameters/XApiKey_2' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AlbumAssetsRequest' examples: AddassetstoalbumRequestExample: summary: Default addAssetsToAlbum request x-microcks-default: true value: resources: - id: abc123 payload: order: example_value responses: '200': description: Assets added to album successfully '401': $ref: '#/components/responses/Unauthorized_2' '403': $ref: '#/components/responses/Forbidden_2' '404': $ref: '#/components/responses/NotFound_2' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: Album: type: object properties: id: type: string description: Album unique identifier example: abc123 type: type: string const: album example: example_value subtype: type: string description: Album subtype enum: - collection - collection_set - project example: collection 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/AlbumPayload' links: $ref: '#/components/schemas/Links' Links_2: type: object description: HATEOAS links for resource navigation additionalProperties: type: object properties: href: type: string description: URL for the linked resource 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 AlbumPayload: type: object properties: name: type: string description: Display name of the album example: Example Title userCreated: type: string format: date-time description: When the user created the album example: '2026-01-15T10:30:00Z' userUpdated: type: string format: date-time description: When the user last modified the album example: '2026-01-15T10:30:00Z' cover: type: object description: Cover asset for the album properties: id: type: string description: Asset ID used as cover example: example_value parent: type: object description: Parent album reference for nested albums properties: id: type: string description: Parent album ID example: example_value AssetsListResponse: type: object properties: base: type: string description: Base URL for the API example: example_value resources: type: array description: List of asset resources items: $ref: '#/components/schemas/Asset' example: [] links: $ref: '#/components/schemas/Links_2' AlbumsListResponse: type: object properties: base: type: string example: example_value resources: type: array items: $ref: '#/components/schemas/Album' example: [] links: $ref: '#/components/schemas/Links' Asset: type: object properties: id: type: string description: Unique identifier of the asset example: abc123 type: type: string description: Resource type const: asset example: example_value subtype: type: string description: Asset subtype enum: - image - video example: image created: type: string format: date-time description: Asset creation timestamp example: '2026-01-15T10:30:00Z' updated: type: string format: date-time description: Asset last updated timestamp example: '2026-01-15T10:30:00Z' revision_ids: type: array description: List of revision identifiers items: type: string example: [] payload: type: object description: Asset payload containing metadata properties: captureDate: type: string format: date-time description: Date and time the photo was captured userCreated: type: string format: date-time description: When the user created the asset userUpdated: type: string format: date-time description: When the user last updated the asset importSource: type: object description: Import source information properties: fileName: type: string description: Original file name importedOnDevice: type: string description: Device used for import importTimestamp: type: string format: date-time description: When the asset was imported develop: type: object description: Develop settings applied to the asset xmp: type: object description: XMP metadata location: type: object description: GPS location data properties: latitude: type: number description: GPS latitude longitude: type: number description: GPS longitude altitude: type: number description: GPS altitude direction: type: number description: Direction the camera was facing example: example_value links: $ref: '#/components/schemas/Links_2' AlbumResponse: type: object properties: base: type: string example: example_value id: type: string example: abc123 type: type: string const: album 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/AlbumPayload' links: $ref: '#/components/schemas/Links' AlbumCreateRequest: type: object required: - subtype - payload properties: subtype: type: string enum: - collection - collection_set - project example: collection payload: type: object required: - name properties: name: type: string description: Display name for the album userCreated: type: string format: date-time userUpdated: type: string format: date-time cover: type: object properties: id: type: string parent: type: object properties: id: type: string example: example_value AlbumAssetsRequest: type: object required: - resources properties: resources: type: array description: List of asset references to add to the album items: type: object required: - id properties: id: type: string description: Asset ID to add payload: type: object properties: order: type: string description: Sort order within the album example: [] 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: [] parameters: Offset: name: offset in: query required: false description: Number of results to skip for pagination schema: type: integer default: 0 minimum: 0 AlbumId_2: name: album_id in: path required: true description: Unique identifier of the album schema: type: string AlbumId: name: album_id in: path required: true description: Unique identifier of the album (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 Limit: name: limit in: query required: false description: Maximum number of results to return schema: type: integer default: 100 minimum: 1 maximum: 500 XApiKey_2: name: X-Api-Key in: header required: true description: API key from the Adobe Developer Console 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' 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/