Adobe Lightroom Assets API

CRUD operations on photo and video assets

Operations 6

GET /catalogs/{catalog_id}/assets Adobe Lightroom List Assets in a Catalog #
GET /catalogs/{catalog_id}/assets/{asset_id} Adobe Lightroom Get Asset Metadata #
PUT /catalogs/{catalog_id}/assets/{asset_id} Adobe Lightroom Create or Update an Asset #
PUT /catalogs/{catalog_id}/assets/{asset_id}/master Adobe Lightroom Upload the Master (original) File for an Asset #
GET /catalogs/{catalog_id}/assets/{asset_id}/xmp/develop Adobe Lightroom Get the Develop Settings Xmp for an Asset #
PUT /catalogs/{catalog_id}/assets/{asset_id}/xmp/develop Adobe Lightroom Upload Develop Settings Xmp for an Asset #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lightroom-assets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lightroom-assets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lightroom Assets API
  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
  description: 'Operations tagged Assets across 2 of this provider''s published API definitions: lightroom-assets-openapi.yml, lightroom-services-openapi.yml. Each path carries the servers of the definition it was published in.'
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
    servers:
    - url: https://lr.adobe.io/v2
      description: Lightroom Services Production Server
  /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
    servers:
    - url: https://lr.adobe.io/v2
      description: Lightroom Services Production Server
  /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
    servers:
    - url: https://lr.adobe.io/v2
      description: Lightroom Services Production Server
  /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
    servers:
    - url: https://lr.adobe.io/v2
      description: Lightroom Services Production Server
components:
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Insufficient permissions
      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'
    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'
  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
    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'
    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'
    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
    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
    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: []
    Links_2:
      type: object
      description: HATEOAS links for resource navigation
      additionalProperties:
        type: object
        properties:
          href:
            type: string
            description: URL for the linked resource
    AssetResponse_2:
      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:
          type: object
          example: example_value
        links:
          $ref: '#/components/schemas/Links_2'
    AssetsListResponse_2:
      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_2'
          example: []
        links:
          $ref: '#/components/schemas/Links_2'
    Asset_2:
      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'
    AssetRevisionRequest:
      type: object
      required:
      - subtype
      - payload
      properties:
        subtype:
          type: string
          description: Asset subtype
          enum:
          - image
          - video
          example: image
        payload:
          type: object
          description: Asset metadata payload
          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
  parameters:
    CatalogId:
      name: catalog_id
      in: path
      required: true
      description: Unique identifier of the Lightroom catalog
      schema:
        type: string
    XApiKey:
      name: X-Api-Key
      in: header
      required: true
      description: API key from Adobe Developer Console
      schema:
        type: string
    AssetId:
      name: asset_id
      in: path
      required: true
      description: Unique identifier of the asset (UUID format)
      schema:
        type: string
        format: uuid
    Offset:
      name: offset
      in: query
      required: false
      description: Number of results to skip for pagination
      schema:
        type: integer
        default: 0
        minimum: 0
    Limit:
      name: limit
      in: query
      required: false
      description: Maximum number of results to return
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 500
    SubtypeFilter:
      name: subtype
      in: query
      required: false
      description: Filter assets by subtype
      schema:
        type: string
        enum:
        - image
        - video
    XApiKey_2:
      name: X-Api-Key
      in: header
      required: true
      description: API key from the Adobe Developer Console
      schema:
        type: string
    CapturedBefore:
      name: captured_before
      in: query
      required: false
      description: Filter assets captured before this ISO 8601 timestamp
      schema:
        type: string
        format: date-time
    CapturedAfter:
      name: captured_after
      in: query
      required: false
      description: Filter assets captured after this ISO 8601 timestamp
      schema:
        type: string
        format: date-time
    AssetId_2:
      name: asset_id
      in: path
      required: true
      description: Unique identifier of the asset
      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
x-refined-from:
- lightroom-assets-openapi.yml
- lightroom-services-openapi.yml