Adobe Suite Lightroom API

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

Operations 6

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /lrService/autoStraighten Auto straighten a photo · Auto straighten an image #
Ask an LLM
“How do I automatically level a crooked photo with Lightroom?”
“Can I fix a tilted horizon in an image without editing it by hand?”
Tell an agent
Auto straighten this image.
Start a job to level the tilted horizon in my photo.
POST /lrService/autoTone Auto tone a photo · Auto tone an image #
Ask an LLM
“How do I automatically fix exposure and contrast in a photo?”
“Can I get automatic tonal adjustments applied to an image?”
Tell an agent
Auto tone this image.
Run automatic exposure and contrast correction on my photo.
POST /lrService/edit Apply specific edit settings to a photo · Apply edits on an image #
Ask an LLM
“How do I apply my own exposure, contrast or saturation values to an image?”
“Can I set individual edit parameters on a photo through the API?”
Tell an agent
Apply these edit settings to my image.
Adjust the photo's exposure and saturation to the values I give.
POST /lrService/presets Apply a Lightroom preset to a photo · Apply a presets on an image #
Ask an LLM
“How do I apply a saved preset to an image?”
“Can I give a photo a consistent look using a preset file?”
Tell an agent
Apply this preset to my image.
Give the photo the look from my saved preset.
POST /lrService/xmp Apply XMP settings to a photo · Apply xmp on an image #
Ask an LLM
“Can I apply the settings from an XMP sidecar to an image?”
“What is the way to reuse XMP develop settings on another photo?”
Tell an agent
Apply this XMP file's settings to my image.
Copy XMP develop settings onto the photo.
GET /lrService/status/{jobId} Check a Lightroom editing job's status · Get the status of a job #
Ask an LLM
“How do I know when my photo edit job has finished?”
“Where do I get the output of an auto tone or preset job?”
Tell an agent
Check the status of Lightroom job {job}.
Tell me if image job {job} is done and where the result is.

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: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. \

        To get status of this job, call Status API.\

        To know more about this feature refer 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.

        To get status of this job, call Status API.\

        To know more about this feature refer 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.

        To get status of this job, call Status API.\

        To know more about this feature refer 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.

        To get status of this job, call Status API.\

        To know more about this feature refer 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.

        To get status of this job, call Status API.\

        To know more about this feature refer 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