Adobe Suite Assets API

Information for assets, typically images or videos.

Operations 12

PUT /v2/catalogs/{catalog_id}/assets/{asset_id} Create asset #
GET /v2/catalogs/{catalog_id}/assets/{asset_id} Get a catalog asset #
GET /v2/catalogs/{catalog_id}/assets Retrieve assets #
PUT /v2/catalogs/{catalog_id}/assets/{asset_id}/master Create an asset original file #
POST /v2/catalogs/{catalog_id}/assets/{asset_id}/renditions Generate renditions for an original file #
GET /v2/catalogs/{catalog_id}/assets/{asset_id}/renditions/{rendition_type} Get latest asset rendition #
PUT /v2/catalogs/{catalog_id}/assets/{asset_id}/xmp/develop Create asset external xmp develop setting file #
GET /v2/catalogs/{catalog_id}/assets/{asset_id}/xmp/develop Get latest asset external xmp develop setting #
POST /assets Get upload pre-signed URI. #
GET /assets/{assetId} Get download pre-signed URI. #
DELETE /assets/{assetId} Delete the asset from storage. #
GET /assets/{assetId}/metadata Get asset metadata. #

Documentation

📖
Documentation
https://developer.adobe.com/photoshop/api/docs/
📖
Authentication
https://developer.adobe.com/developer-console/docs/guides/authentication/
📖
Documentation
https://developer.adobe.com/lightroom/api/docs/
📖
Documentation
https://developer.adobe.com/illustrator/api/docs/
📖
Documentation
https://developer.adobe.com/indesign/docs/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/
📖
GettingStarted
https://developer.adobe.com/document-services/docs/overview/pdf-extract-api/gettingstarted/
📖
Documentation
https://developer.adobe.com/document-services/docs/overview/pdf-accessibility-auto-tag-api/
📖
Documentation
https://developer.adobe.com/analytics-apis/docs/
📖
APIReference
https://developer.adobe.com/analytics-apis/docs/2.0/
📖
Documentation
https://developer.adobe.com/firefly-services/docs/
📖
APIReference
https://developer.adobe.com/firefly-services/docs/api/
📖
Documentation
https://developer.adobe.com/audio-video-firefly-services/
📖
GettingStarted
https://developer.adobe.com/audio-video-firefly-services/getting-started/
📖
Documentation
https://developer.adobe.com/creative-cloud-libraries/docs/
📖
APIReference
https://developer.adobe.com/creative-cloud-libraries/docs/api/
📖
Documentation
https://developer.adobe.com/express/embed-sdk/docs/guides/
📖
APIReference
https://developer.adobe.com/express/embed-sdk/docs/v4/
📖
GettingStarted
https://developer.adobe.com/express/embed-sdk/docs/guides/quickstart/
📖
Documentation
https://developer.adobe.com/experience-platform-apis/
📖
GettingStarted
https://experienceleague.adobe.com/en/docs/experience-platform/landing/platform-apis/api-guide
📖
Documentation
https://developer.adobe.com/marketo-apis/
📖
Authentication
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/authentication
📖
Documentation
https://developer.adobe.com/commerce/docs/
📖
GettingStarted
https://developer.adobe.com/commerce/webapi/get-started/
📖
Documentation
https://developer.adobe.com/experience-cloud/cloud-manager/
📖
Documentation
https://developer.adobe.com/journey-optimizer-apis/
📖
Documentation
https://developer.adobe.com/workfront-apis/
📖
Documentation
https://developer.adobe.com/firefly-services/docs/substance3d/
📖
Documentation
https://developer.adobe.com/data-collection-apis/
📖
Documentation
https://developer.adobe.com/adobe-status/
📖
Documentation
https://developer.adobe.com/vip-marketplace/

Specifications

Other Resources

🔗
Pricing
https://developer.adobe.com/document-services/pricing/
🔗
SDKs
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/sdks/
🔗
ReleaseNotes
https://developer.adobe.com/document-services/docs/overview/pdf-services-api/releasenotes
🔗
Guides
https://developer.adobe.com/analytics-apis/docs/2.0/guides/
🔗
Guides
https://developer.adobe.com/firefly-services/docs/guides/
🔗
Usage Notes
https://developer.adobe.com/audio-video-firefly-services/getting_started/usage/
🔗
Overview
https://developer.adobe.com/creative-cloud-libraries/docs/overview/
🔗
Integration Guide
https://developer.adobe.com/creative-cloud-libraries/docs/integrate/
🔗
API Fundamentals
https://experienceleague.adobe.com/en/docs/experience-platform/landing/platform-apis/api-fundamentals
🔗
Developer Guide
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/home
🔗
REST API
https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/rest-api
🔗
REST API
https://developer.adobe.com/commerce/webapi/rest/
🔗
GraphQL API
https://developer.adobe.com/commerce/webapi/graphql-api/
🔗
REST API Reference
https://developer.adobe.com/commerce/webapi/reference/rest/paas/
🔗
GraphQL
https://raw.githubusercontent.com/api-evangelist/adobe-suite/refs/heads/main/graphql/adobe-suite-graphql.md
🔗
Webhooks
https://developer.adobe.com/experience-cloud/cloud-manager/guides/getting-started/create-event-integration/
🔗
StatusPage
https://status.adobe.com/

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/adobe-suite-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 email required.

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

OpenAPI Specification

adobe-suite-assets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Adobe Suite Assets API
  version: '1.0'
  description: 'Operations tagged Assets across 2 of this provider''s published API definitions: adobe-suite-lightroom-openapi.json, adobe-suite-pdf-services-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://lr.adobe.io/
- url: https://pdf-services-ue1.adobe.io
- url: https://pdf-services-ew1.adobe.io
tags:
- name: Assets
  description: Information for assets, typically images or videos.
paths:
  /v2/catalogs/{catalog_id}/assets/{asset_id}:
    put:
      tags:
      - Assets
      summary: Create asset
      description: Create a new asset with initial metadata and import information.
      operationId: createAsset
      parameters:
      - name: X-API-Key
        in: header
        description: Client ID (API Key) which is subscribed to the Lightroom APIs through console.adobe.io
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer [token] - User access token of an authenticated Lightroom customer
        required: true
        schema:
          type: string
      - name: catalog_id
        in: path
        description: Identifier of the catalog in which the asset will be created.
        required: true
        schema:
          type: string
      - name: asset_id
        in: path
        description: Client-generated Lightroom unique identifier for the new asset.
        required: true
        schema:
          type: string
      requestBody:
        description: Initial asset metadata and import information.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - captureDate
              properties:
                subtype:
                  type: string
                  enum:
                  - image
                  - video
                payload:
                  type: object
                  properties:
                    userCreated:
                      $ref: '#/components/schemas/iso8601DateTime'
                    userUpdated:
                      $ref: '#/components/schemas/iso8601DateTime'
                    captureDate:
                      type: string
                      enum:
                      - '0000-00-00T00:00:00'
                      - iso8601DateTime
                      description: Capture date of the asset in ISO-8601 format. Will be populated by the server automatically from the master if set to '0000-00-00T00:00:00'
                    importSource:
                      type: object
                      required:
                      - fileName
                      - importedOnDevice
                      - importedBy
                      - importTimestamp
                      properties:
                        fileName:
                          type: string
                        importedOnDevice:
                          type: string
                          description: Name of the device that imported the image.
                        importedBy:
                          type: string
                          description: Account ID of the user who imported the asset.
                        importTimestamp:
                          $ref: '#/components/schemas/iso8601DateTime'
      responses:
        '201':
          description: Created
        '400':
          description: The request failed due to an invalid input
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvaildRequestGUID'
                - $ref: '#/components/schemas/InvaildRequestJSON'
                - $ref: '#/components/schemas/InvaildRequestSubtype'
                - $ref: '#/components/schemas/InvaildRequestPayload'
              examples:
                InvaildRequestGUID:
                  $ref: '#/components/examples/AssetInvaildRequestGUIDExample'
                InvaildRequestJSON:
                  $ref: '#/components/examples/InvaildRequestJSONExample'
                InvaildRequestSubtype:
                  $ref: '#/components/examples/InvaildRequestSubtypeExample'
                InvaildRequestPayload:
                  $ref: '#/components/examples/InvaildRequestPayloadExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: The request failed due to insufficient permissions
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ForbiddenKeyError'
                - $ref: '#/components/schemas/ResourceExistsError'
                - $ref: '#/components/schemas/QuotaExceededError'
              examples:
                InvalidApiKey:
                  $ref: '#/components/examples/ForbiddenKeyExample'
                ResourceExists:
                  $ref: '#/components/examples/ResourceExistsErrorExample'
                QuotaExceeded:
                  $ref: '#/components/examples/AssetQuotaExceededErrorExample'
        '404':
          description: The request failed because the resource being requested does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                ResourceNotFound:
                  $ref: '#/components/examples/AssetNotFoundExample'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '503':
          description: The request failed because the service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ServiceUnavailable'
                - $ref: '#/components/schemas/MaintenanceError'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailableExample'
                MaintenanceError:
                  $ref: '#/components/examples/MaintenanceErrorExample'
    get:
      tags:
      - Assets
      summary: Get a catalog asset
      description: Retrieves information about a single asset in a catalog that the caller owns. Successful response may also return invalid flag in the rendition link for the asset. A rendition becomes invalid when an asset is edited after rendition has been generated. New renditions (only 2560 and fullsize) can be generated via Generate Renditions API. The read xmp/develop link in the response will have the invalid flag as true if asset with SHA256 has been created but external xmp/develop has not been uploaded yet.
      operationId: getAsset
      parameters:
      - name: X-API-Key
        in: header
        description: Client ID (API Key) which is subscribed to the Lightroom APIs through console.adobe.io
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer [token] - User access token of an authenticated Lightroom customer
        required: true
        schema:
          type: string
      - name: catalog_id
        in: path
        description: Identifier of the catalog
        required: true
        schema:
          type: string
      - name: asset_id
        in: path
        description: Identifier of the asset
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/SuccessImageAsset'
                - $ref: '#/components/schemas/SuccessVideoAsset'
              examples:
                SuccessImageAsset:
                  $ref: '#/components/examples/SuccessImageAssetExample'
                SuccessVideoAsset:
                  $ref: '#/components/examples/SuccessVideoAssetExample'
        '400':
          description: The request failed due to an invalid input
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvaildRequestGUID'
                - $ref: '#/components/schemas/InvaildRequestAssetIds'
                - $ref: '#/components/schemas/InvaildRequestGroup'
                - $ref: '#/components/schemas/InvaildRequestName'
                - $ref: '#/components/schemas/InvaildRequestFavorite'
                - $ref: '#/components/schemas/InvaildRequestMissingSubtypeWithGroupOrName'
                - $ref: '#/components/schemas/InvaildRequestMissingSubtypeWithFavorite'
                - $ref: '#/components/schemas/InvaildRequestInvalidDateTime'
              examples:
                InvaildRequestGUID:
                  $ref: '#/components/examples/AssetInvaildRequestGUIDExample'
                InvaildRequestAssetIds:
                  $ref: '#/components/examples/InvaildRequestAssetIdsExample'
                InvaildRequestGroup:
                  $ref: '#/components/examples/InvaildRequestGroupExample'
                InvaildRequestName:
                  $ref: '#/components/examples/InvaildRequestNameExample'
                InvaildRequestFavorite:
                  $ref: '#/components/examples/InvaildRequestFavoriteExample'
                InvaildRequestMissingSubtypeWithGroupOrName:
                  $ref: '#/components/examples/InvaildRequestMissingSubtypeWithGroupOrNameExample'
                InvaildRequestMissingSubtypeWithFavorite:
                  $ref: '#/components/examples/InvaildRequestMissingSubtypeWithFavoriteExample'
                InvaildRequestInvalidDateTime:
                  $ref: '#/components/examples/InvaildRequestInvalidDateTimeExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: The request failed due to insufficient permissions
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ForbiddenKeyError'
                - $ref: '#/components/schemas/ForbiddenClientError'
              examples:
                InvalidApiKey:
                  $ref: '#/components/examples/ForbiddenKeyExample'
                ForbiddenClient:
                  $ref: '#/components/examples/ForbiddenClientErrorExample'
        '503':
          description: The request failed because the service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ServiceUnavailable'
                - $ref: '#/components/schemas/MaintenanceError'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailableExample'
                MaintenanceError:
                  $ref: '#/components/examples/MaintenanceErrorExample'
    servers:
    - url: https://lr.adobe.io/
  /v2/catalogs/{catalog_id}/assets:
    get:
      tags:
      - Assets
      summary: Retrieve assets
      description: Retrieve a list of existing assets that caller owns. Successful response may also return invalid flag in the rendition link for the asset. A rendition becomes invalid when an asset is edited after rendition has been generated. New renditions (only 2560 and fullsize) can be generated via Generate Renditions API. The read xmp/develop link in the response will have the invalid flag as true if asset with SHA256 has been created but external xmp/develop has not been uploaded yet.
      operationId: getAssets
      parameters:
      - name: X-API-Key
        in: header
        description: Client ID (API Key) which is subscribed to the Lightroom APIs through console.adobe.io
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer [token] - User access token of an authenticated Lightroom customer
        required: true
        schema:
          type: string
      - name: catalog_id
        in: path
        description: Identifier of the catalog containing the album.
        required: true
        schema:
          type: string
      - name: updated_since
        in: query
        description: Starting timestamp
        schema:
          type: string
      - name: captured_before
        in: query
        description: Used to request assets captured before a given time. captured_before will be found in the "links.next.href" link. If no links.next is included in a listing response, this is a hint from the server that there are no assets in the catalog with a date captured_before the last asset in the list (the client has reached the "bottom" of the list). captured_before may not be used in conjunction with captured_after.
        schema:
          type: string
      - name: captured_after
        in: query
        description: 'Used to request assets captured after a given time. captured_after will be found in the "links.prev.href" link. If no links.prev is included in a listing response, this is a hint from the server that there are no assets in the catalog with a date captured_after the first asset in the list (the client has reached the "top" of the list). Note: assets imported without a captureDate payload property default to the value "0000-00-00T00:00:00". To list these assets set captured_after to "-0001-12-31T23:59:59". captured_after may not be used in conjunction with captured_before.'
        schema:
          type: string
      - name: limit
        in: query
        description: Number of assets to return. Default value is 100. Maximum is 500. Please note that the response may contain more than 'limit' number of assets returned if the assets at the 'limit' boundary has the same capture_date. For example if there are 5 assets in a catalog and the 3rd, 4th and 5th assets all have the same capture dates the response will contain all 5 assets whether 'limit' is 3, 4 or 5.
        schema:
          type: integer
      - name: sha256
        in: query
        description: SHA256 hash value of original file. Assets with a matching SHA256 hash will be returned. May be used in conjunction with subtype.
        schema:
          type: string
      - name: hide_stacked_assets
        in: query
        description: To show or hide assets inside stacks in the catalog. If hide_stacked_assets is passed as true, assets inside stacks won't be returned. Default value is false.
        schema:
          type: boolean
      - name: subtype
        in: query
        description: Semi-colon separated asset subtype values.
        schema:
          type: string
      - name: asset_ids
        in: query
        description: Set of 1 - 100 comma separated asset_id values. Other parameters can not be used in conjunction with this parameter.
        schema:
          type: string
      - name: exclude
        in: query
        description: Used to request the list for different types of assets excluding incomplete or complete image and video assets. The valid values are "incomplete" and "complete". An image or video asset is considered to be complete if its proxy or original upload exists. An asset of subtypes profile, preset, camera_profile or lens_profile is considered complete if its original upload exists.
        schema:
          type: string
      - name: group
        in: query
        description: Semi-colon separated group values. Subtype parameter of "preset" or "profile" is required when using this parameter.
        schema:
          type: string
      - name: name
        in: query
        description: Semi-colon separated name values. Subtype parameter of "preset" or "profile" is required when using this parameter.
        schema:
          type: string
      - name: favorite
        in: query
        description: Favorite status, subtype parameter of "preset" is required when using this parameter.
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/Success'
                - $ref: '#/components/schemas/SuccessAssetIdsQueryParam'
              examples:
                Success:
                  $ref: '#/components/examples/SuccessExample'
                SuccessQueryParam:
                  $ref: '#/components/examples/SuccessQueryParamExample'
        '400':
          description: The request failed due to an invalid input
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvaildRequestGUID'
                - $ref: '#/components/schemas/InvaildRequestAssetIds'
                - $ref: '#/components/schemas/InvaildRequestGroup'
                - $ref: '#/components/schemas/InvaildRequestName'
                - $ref: '#/components/schemas/InvaildRequestFavorite'
                - $ref: '#/components/schemas/InvaildRequestMissingSubtypeWithGroupOrName'
                - $ref: '#/components/schemas/InvaildRequestMissingSubtypeWithFavorite'
                - $ref: '#/components/schemas/InvaildRequestInvalidDateTime'
              examples:
                InvaildRequestGUID:
                  $ref: '#/components/examples/AssetInvaildRequestGUIDExample'
                InvaildRequestAssetIds:
                  $ref: '#/components/examples/InvaildRequestAssetIdsExample'
                InvaildRequestGroup:
                  $ref: '#/components/examples/InvaildRequestGroupExample'
                InvaildRequestName:
                  $ref: '#/components/examples/InvaildRequestNameExample'
                InvaildRequestFavorite:
                  $ref: '#/components/examples/InvaildRequestFavoriteExample'
                InvaildRequestMissingSubtypeWithGroupOrName:
                  $ref: '#/components/examples/InvaildRequestMissingSubtypeWithGroupOrNameExample'
                InvaildRequestMissingSubtypeWithFavorite:
                  $ref: '#/components/examples/InvaildRequestMissingSubtypeWithFavoriteExample'
                InvaildRequestInvalidDateTime:
                  $ref: '#/components/examples/InvaildRequestInvalidDateTimeExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: The request failed due to insufficient permissions
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ForbiddenKeyError'
                - $ref: '#/components/schemas/ForbiddenClientError'
              examples:
                InvalidApiKey:
                  $ref: '#/components/examples/ForbiddenKeyExample'
                ForbiddenClient:
                  $ref: '#/components/examples/ForbiddenClientErrorExample'
        '503':
          description: The request failed because the service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ServiceUnavailable'
                - $ref: '#/components/schemas/MaintenanceError'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailableExample'
                MaintenanceError:
                  $ref: '#/components/examples/MaintenanceErrorExample'
    servers:
    - url: https://lr.adobe.io/
  /v2/catalogs/{catalog_id}/assets/{asset_id}/master:
    put:
      tags:
      - Assets
      summary: Create an asset original file
      description: Create and upload an original file for the asset. Up to 200 MB may be uploaded per invocation, and larger files may be uploaded by calling this API multiple times with Content-Range headers for each part. When all parts are received the upload will be consolidated asynchronously. All partial uploads should include optional rendition type parameters to ensure the last part received has the necessary options for request post-processing.
      operationId: createAssetOriginal
      parameters:
      - name: X-API-Key
        in: header
        description: Client ID (API Key) which is subscribed to the Lightroom APIs through console.adobe.io
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer [token] - User access token of an authenticated Lightroom customer
        required: true
        schema:
          type: string
      - name: Content-Length
        in: header
        description: Length in bytes of the content.
        schema:
          type: integer
      - name: Content-Range
        in: header
        description: Byte range for the request, including first and last bytes and entity length as defined in RFC 2616. Should be included only when the data cannot be uploaded in a single call.
        schema:
          type: string
      - name: Content-Type
        in: header
        description: Content type. For jpeg assets, the only allowed type is 'image/jpeg'. For camera raw assets the type is 'application/octet-stream'. For video assets, the content-type is of the format video/* where * depends upon the video type and can contain only ASCII characters. Or the content-type of video can be application/octet-stream;video
        required: true
        schema:
          type: string
      - name: catalog_id
        in: path
        description: Identifier of the catalog in which the asset will be created.
        required: true
        schema:
          type: string
      - name: asset_id
        in: path
        description: Identifier of the asset to which the XMP settings are associated.
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
        '400':
          description: The request failed due to an invalid resource identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvaildRequestGUID'
              examples:
                InvaildRequestGUID:
                  $ref: '#/components/examples/AssetInvaildRequestGUIDExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenKey'
        '413':
          $ref: '#/components/responses/TooLarge'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '503':
          description: The request failed because the service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ServiceUnavailable'
                - $ref: '#/components/schemas/MaintenanceError'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailableExample'
                MaintenanceError:
                  $ref: '#/components/examples/MaintenanceErrorExample'
    servers:
    - url: https://lr.adobe.io/
  /v2/catalogs/{catalog_id}/assets/{asset_id}/renditions:
    post:
      tags:
      - Assets
      summary: Generate renditions for an original file
      description: Generate renditions for an original file asynchronously. Allowed rendition types are fullsize and 2560. Generated rendition will be deleted after 1 day automatically.
      operationId: generateRenditions
      parameters:
      - name: X-API-Key
        in: header
        description: Client ID (API Key) which is subscribed to the Lightroom APIs through console.adobe.io
        required: true
        schema:
          type: string
      - name: X-Generate-Renditions
        in: header
        description: 'One or multiple of the supported rendition types separated by '',''. Supported rendition types are : [''fullsize'', ''2560''].'
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer [token] - User access token of an authenticated Lightroom customer
        required: true
        schema:
          type: string
      - name: Content-Length
        in: header
        description: Length in bytes of the content.
        schema:
          type: integer
      - name: catalog_id
        in: path
        description: Identifier of the catalog in which the asset was created.
        required: true
        schema:
          type: string
      - name: asset_id
        in: path
        description: Identifier of the asset for which rendition gets generated.
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Accepted.(Client needs to poll on rendition link in response and accessing it might not immediately returns a success response.)
          content:
            application/json:
              schema:
                type: object
                properties:
                  base:
                    type: string
                    description: Base URL that can be prepended to the 'href' values in the 'links' to produce fully qualified URLs for future queries.
                  links:
                    type: object
                example:
                  base: <base_url>
                  links:
                    /rels/rendition_type/<rendition_type>:
                      href: assets/<asset_id>/renditions/<rendition_type>
        '400':
          description: The request failed due to an invalid input
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvaildRequestGUID'
                - $ref: '#/components/schemas/InvaildRequestSubtype'
                - $ref: '#/components/schemas/InvaildRequestMissingParameter'
                - $ref: '#/components/schemas/InvaildRequestRenditionType'
              examples:
                InvaildRequestGUID:
                  $ref: '#/components/examples/AssetInvaildRequestGUIDExample'
                InvaildRequestSubtype:
                  $ref: '#/components/examples/InvaildRequestSubtypeExample'
                InvaildRequestMissingParameter:
                  $ref: '#/components/examples/InvaildRequestMissingParameterExample'
                InvaildRequestRenditionType:
                  $ref: '#/components/examples/InvaildRequestRenditionTypeExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenKey'
        '404':
          description: The request failed because the resource being requested does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                ResourceNotFound:
                  $ref: '#/components/examples/AssetNotFoundExample'
        '503':
          description: The request failed because the service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ServiceUnavailable'
                - $ref: '#/components/schemas/MaintenanceError'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailableExample'
                MaintenanceError:
                  $ref: '#/components/examples/MaintenanceErrorExample'
    servers:
    - url: https://lr.adobe.io/
  /v2/catalogs/{catalog_id}/assets/{asset_id}/renditions/{rendition_type}:
    get:
      tags:
      - Assets
      summary: Get latest asset rendition
      description: Get latest asset rendition of specified type. It returns 404 if rendition does not exist. It returns 404 in another case when rendition is invalid (only for rendition type 2560 and fullsize)
      operationId: getAssetRendition
      parameters:
      - name: X-API-Key
        in: header
        description: Client ID (API Key) which is subscribed to the Lightroom APIs through console.adobe.io
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer [token] - User access token of an authenticated Lightroom customer
        required: true
        schema:
          type: string
      - name: catalog_id
        in: path
        description: Identifier of the catalog in which asset exists.
        required: true
        schema:
          type: string
      - name: asset_id
        in: path
        description: Identifier of the asset for which to fetch rendition.
        required: true
        schema:
          type: string
      - name: rendition_type
        in: path
        description: 'One of the supported rendition types. Supported rendition types are : [''thumbnail2x'', ''fullsize'', ''640'', ''1280'', ''2048'', ''2560''].'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'Asset rendition file. Response content type : image/jpeg'
        '400':
          description: The request failed due to an invalid input
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/InvaildRequestGUID'
                - $ref: '#/components/schemas/InvaildRequestRenditionType'
              examples:
                InvaildRequestGUID:
                  $ref: '#/components/examples/RenditionInvaildRequestGUIDExample'
                InvaildRequestRenditionType:
                  $ref: '#/components/examples/InvaildRequestRenditionTypeExample'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: The request failed because the resource being requested does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
              examples:
                ResourceNotFound:
                  $ref: '#/components/examples/RenditionNotFoundExample'
        '503':
          description: The request failed because the service is temporarily unavailable. Try again later.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ServiceUnavailable'
                - $ref: '#/components/schemas/MaintenanceError'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailableExample'
                MaintenanceError:
                  $ref: '#/components/examples/MaintenanceErrorExample'
    servers:
    - url: https://lr.adobe.io/
  /v2/catalogs/{catalog_id}/assets/{asset_id}/xmp/develop:
    put:
      tags:
      - Assets
      summary: Create asset external xmp develop setting file
      description: This API support two workflows. The first workflow is to upload external XMP develop settings file for the asset. Content-type header for this case is application/rdf+xml. The second workflow is to create an external XMP develop settings file by copying from another asset's external xmp develop setting file. Content-type header for this case is application/json.
      operationId: putAssetExternalXmpDevelopSetting
      parameters:
      - name: X-API-Key
        in: header
        description: Client ID (API Key) which is subscribed to the Lightroom APIs through console.adobe.io
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer [token] - User access token of an authenticated Lightroom customer
        required: true
        schema:
          type: string
      - name: catalog_id
        in: path
        description: Identifier of the catalog in which the asset will be created.
        required: true
        schema:
          type: string
      - name: Content-Length
        in: header
        description: Content length, in bytes. Current maximum size is 200 Mb.
        required: true
        schema:
          type: integer
      - name: Content-Type
        in: header
        description: For uploading a new xmp/develop file content-type='application/rdf+xml' and for copying xmp/develop file from another asset content-type='application/json'
        req

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adobe-suite/refs/heads/main/openapi/adobe-suite-assets-api-openapi.yml