Adobe Suite Lightroom API

The Lightroom API from Adobe Suite — 6 operation(s) for lightroom.

Operations 6

POST /lrService/autoStraighten Auto straighten an image #
POST /lrService/autoTone Auto tone an image #
POST /lrService/edit Apply edits on an image #
POST /lrService/presets Apply a presets on an image #
POST /lrService/xmp Apply xmp on an image #
GET /lrService/status/{jobId} Get the status of a job #

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-lightroom-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

adobe-suite-lightroom-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Photoshop API documentation Lightroom API
  description: API Documentation
  version: '1.0'
servers:
- url: https://image.adobe.io
security: []
tags:
- name: Lightroom
paths:
  /lrService/autoStraighten:
    post:
      tags:
      - Lightroom
      summary: Auto straighten an image
      description: "Initiates an asynchronous job to auto straighten an image. \\\nTo get status of this job, call [Status API](./#operation/acrstatus).\\\n To know more about this feature refer [AutoStraighten](../features/#autoStraighten)"
      operationId: autoStraighten
      parameters:
      - name: Authorization
        description: 'Bearer: ${Authorization Token}'
        in: header
        required: true
        schema:
          type: string
      - name: x-api-key
        description: API key/client id
        in: header
        required: true
        schema:
          type: string
      - name: Content-Type
        description: application/json
        in: header
        required: true
        schema:
          type: string
      - name: x-gw-ims-org-id
        description: IMS organization ID. This needs to be sent only if it is desirable to receive the job status through Adobe I/O Events.
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./acr/post_auto_straighten.schema.json
        required: true
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: ./acr/api_response_success_schema.json
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: ./api_response_400_error_schema.json
        '402':
          description: Trial Limit Exceeded
          content:
            application/json:
              schema:
                $ref: ./api_response_402_error_schema.json
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: ./api_response_403_error_schema.json
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: ./api_response_404_error_schema.json
        '409':
          description: File Overwrite Error
          content:
            application/json:
              schema:
                $ref: ./api_response_409_error_schema.json
        '410':
          description: Asset Link Invalid
          content:
            application/json:
              schema:
                $ref: ./api_response_410_error_schema.json
        '500':
          description: Internal Server Error
      x-codeSamples:
      - lang: shell
        source: "curl --request POST \\\n  --url https://image.adobe.io/lrService/autoStraighten \\\n  --header 'Authorization: Bearer $token' \\\n  --header 'content-type: application/json' \\\n  --header 'x-api-key: $x-api-key' \\\n  --data '{\"inputs\":{\"href\":\"string\",\"storage\":\"external\"},\\\n\"options\":{\"uprightMode\":\"full\",\"constrainCrop\":false},\"outputs\":[{\"href\":\"string\",\"storage\":\"external\",\"type\":\"image/jpeg\"}]}'"
  /lrService/autoTone:
    post:
      tags:
      - Lightroom
      summary: Auto tone an image
      description: "Initiates an asynchronous job to auto tone an image.\nTo get status of this job, call [Status API](./#operation/acrstatus).\\\n To know more about this feature refer [AutoTone](../features/#autotone)"
      operationId: autoTone
      parameters:
      - name: Authorization
        description: 'Bearer: ${Authorization Token}'
        in: header
        required: true
        schema:
          type: string
      - name: x-api-key
        description: API key/client id
        in: header
        required: true
        schema:
          type: string
      - name: Content-Type
        description: application/json
        in: header
        required: true
        schema:
          type: string
      - name: x-gw-ims-org-id
        description: IMS organization ID. This needs to be sent only if it is desirable to receive the job status through Adobe I/O Events.
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./acr/post_auto_tone.schema.json
        required: true
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: ./acr/api_response_success_schema.json
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: ./api_response_400_error_schema.json
        '402':
          description: Trial Limit Exceeded
          content:
            application/json:
              schema:
                $ref: ./api_response_402_error_schema.json
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: ./api_response_403_error_schema.json
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: ./api_response_404_error_schema.json
        '409':
          description: File Overwrite Error
          content:
            application/json:
              schema:
                $ref: ./api_response_409_error_schema.json
        '410':
          description: Asset Link Invalid
          content:
            application/json:
              schema:
                $ref: ./api_response_410_error_schema.json
        '500':
          description: Internal Server Error
      x-codeSamples:
      - lang: shell
        source: "curl --request POST \\\n  --url https://image.adobe.io/lrService/autoTone \\\n  --header 'Authorization: Bearer $token' \\\n  --header 'content-type: application/json' \\\n  --header 'x-api-key: $x-api-key' \\\n  --data '{\"inputs\":{\"href\":\"string\",\"storage\":\"external\"},\"outputs\":[{\"href\":\"string\",\"storage\":\"external\",\"type\":\"image/jpeg\"}]}'"
  /lrService/edit:
    post:
      tags:
      - Lightroom
      summary: Apply edits on an image
      description: "Initiates an asynchronous job to apply a set of edit parameters on an image.\nTo get status of this job, call [Status API](./#operation/acrstatus).\\\n To know more about this feature refer [Edit](../features/#edit)"
      operationId: edit
      parameters:
      - name: Authorization
        description: 'Bearer: ${Authorization Token}'
        in: header
        required: true
        schema:
          type: string
      - name: x-api-key
        description: API key/client id
        in: header
        required: true
        schema:
          type: string
      - name: Content-Type
        description: application/json
        in: header
        required: true
        schema:
          type: string
      - name: x-gw-ims-org-id
        description: IMS organization ID. This needs to be sent only if it is desirable to receive the job status through Adobe I/O Events.
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./acr/post_image_edit.schema.json
        required: true
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: ./acr/api_response_success_schema.json
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: ./api_response_400_error_schema.json
        '402':
          description: Trial Limit Exceeded
          content:
            application/json:
              schema:
                $ref: ./api_response_402_error_schema.json
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: ./api_response_403_error_schema.json
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: ./api_response_404_error_schema.json
        '409':
          description: File Overwrite Error
          content:
            application/json:
              schema:
                $ref: ./api_response_409_error_schema.json
        '410':
          description: Asset Link Invalid
          content:
            application/json:
              schema:
                $ref: ./api_response_410_error_schema.json
        '500':
          description: Internal Server Error
      x-codeSamples:
      - lang: shell
        source: "curl --request POST \\\n  --url https://image.adobe.io/lrService/edit \\\n  --header 'Authorization: Bearer $token' \\\n  --header 'content-type: application/json' \\\n  --header 'x-api-key: $x-api-key' \\\n  --data '{\"inputs\": {\"source\": {\"href\":\"string\",\"storage\":\"external\"}, \\\n\"options\": \"<options>\"},\"outputs\":[{\"href\":\"string\",\"storage\":\"external\",\"type\":\"type\"}]}'"
  /lrService/presets:
    post:
      tags:
      - Lightroom
      summary: Apply a presets on an image
      description: "Initiates an asynchronous job to apply a preset on an image.\nTo get status of this job, call [Status API](./#operation/acrstatus).\\\n To know more about this feature refer [Presets](../features/#presets)"
      operationId: presets
      parameters:
      - name: Authorization
        description: 'Bearer: ${Authorization Token}'
        in: header
        required: true
        schema:
          type: string
      - name: x-api-key
        description: API key/client id
        in: header
        required: true
        schema:
          type: string
      - name: Content-Type
        description: application/json
        in: header
        required: true
        schema:
          type: string
      - name: x-gw-ims-org-id
        description: IMS organization ID. This needs to be sent only if it is desirable to receive the job status through Adobe I/O Events.
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./acr/post_presets.schema.json
        required: true
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: ./acr/api_response_success_schema.json
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: ./api_response_400_error_schema.json
        '402':
          description: Trial Limit Exceeded
          content:
            application/json:
              schema:
                $ref: ./api_response_402_error_schema.json
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: ./api_response_403_error_schema.json
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: ./api_response_404_error_schema.json
        '409':
          description: File Overwrite Error
          content:
            application/json:
              schema:
                $ref: ./api_response_409_error_schema.json
        '410':
          description: Asset Link Invalid
          content:
            application/json:
              schema:
                $ref: ./api_response_410_error_schema.json
        '500':
          description: Internal Server Error
      x-codeSamples:
      - lang: shell
        source: "curl --request POST \\\n  --url https://image.adobe.io/lrService/presets \\\n  --header 'Authorization: Bearer $token' \\\n  --header 'content-type: application/json' \\\n  --header 'x-api-key: $x-api-key' \\\n  --data '{\"inputs\": {\"source\": {\"href\":\"string\",\"storage\":\"external\"}, \\\n\"presets\": [{\"href\":\"string\",\"storage\":\"external\"}]},\"outputs\":[{\"href\":\"string\",\"storage\":\"external\",\"type\":\"type\"}]}'"
  /lrService/xmp:
    post:
      tags:
      - Lightroom
      summary: Apply xmp on an image
      description: "Initiates an asynchronous job to apply an XMP setting to an image.\nTo get status of this job, call [Status API](./#operation/acrstatus).\\\n To know more about this feature refer [XMP](../features/#xmp)"
      operationId: xmp
      parameters:
      - name: Authorization
        description: 'Bearer: ${Authorization Token}'
        in: header
        required: true
        schema:
          type: string
      - name: x-api-key
        description: API key/client id
        in: header
        required: true
        schema:
          type: string
      - name: Content-Type
        description: application/json
        in: header
        required: true
        schema:
          type: string
      - name: x-gw-ims-org-id
        description: IMS organization ID. This needs to be sent only if it is desirable to receive the job status through Adobe I/O Events.
        in: header
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: ./acr/post_xmp.schema.json
        required: true
      responses:
        '202':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: ./acr/api_response_success_schema.json
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: ./api_response_400_error_schema.json
        '402':
          description: Trial Limit Exceeded
          content:
            application/json:
              schema:
                $ref: ./api_response_402_error_schema.json
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: ./api_response_403_error_schema.json
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: ./api_response_404_error_schema.json
        '409':
          description: File Overwrite Error
          content:
            application/json:
              schema:
                $ref: ./api_response_409_error_schema.json
        '410':
          description: Asset Link Invalid
          content:
            application/json:
              schema:
                $ref: ./api_response_410_error_schema.json
        '500':
          description: Internal Server Error
      x-codeSamples:
      - lang: shell
        source: "curl --request POST \\\n  --url https://image.adobe.io/lrService/xmp \\\n  --header 'Authorization: Bearer $token' \\\n  --header 'content-type: application/json' \\\n  --header 'x-api-key: $x-api-key' \\\n  --data '{\"inputs\": {\"source\": {\"href\":\"string\",\"storage\":\"external\"}, \\\n\"options\": {\"xmp\":\"string\", \"orientation\":\"orientation\"},\"outputs\":[{\"href\":\"string\",\"storage\":\"external\",\"type\":\"type\"}]}'"
  /lrService/status/{jobId}:
    get:
      tags:
      - Lightroom
      summary: Get the status of a job
      description: Returns the status of a job. Please expand `200 Successful operation` under `Responses` to know details of the status returned.
      operationId: acrstatus
      parameters:
      - name: Authorization
        description: 'Bearer: ${Authorization Token}'
        in: header
        required: true
        schema:
          type: string
      - name: x-api-key
        description: API key/client id
        in: header
        required: true
        schema:
          type: string
      - name: Content-Type
        description: application/json
        in: header
        required: true
        schema:
          type: string
      - name: x-gw-ims-org-id
        description: IMS organization ID. This needs to be sent only if it is desirable to receive the job status through Adobe I/O Events.
        in: header
        required: false
        schema:
          type: string
      - name: jobId
        in: path
        description: The jobId to get status for.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: ./acr/get_status.schema.json