Adobe Suite Public API

The Public API from Adobe Suite — 6 operation(s) for public.

Operations 7

GET /public/api/v1/approvals/{assetType}/{assetId} Get an approval
PUT /public/api/v1/approvals/{assetType}/{assetId}/stages Create or update an approval
PUT /public/api/v1/approvals/{assetType}/{assetId}/decisions Make a decision on an approval
PUT /public/api/v1/approvals/{assetType}/{assetId}/participants Add or update approval participants
DELETE /public/api/v1/approvals/{assetType}/{assetId}/participants Delete approval participants
PUT /public/api/v1/approvals/{assetType}/{assetId}/stages/{stageId}/lock Lock a stage
PUT /public/api/v1/approvals/{assetType}/{assetId}/stages/{stageId}/unlock Unlock a stage

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-public-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-public-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Unified Approvals API (Deprecated) Public API
  version: '1.0'
  description: 'The Unified Approvals public API endpoints allow you to create and manage approval records along with making decisions on those records.


    Authentication is done through credentials obtained through the Adobe Developer Console. Currently, there is no ability to act on behalf of another user. This means if you are authenticating with a technical account, you will only be able to act as that technical account. For example, if you try to have the technical account make a decision on an approval that they are not a participant on, the API call will fail with a 404 saying they are not a participant. A user token for the actual participant on the approval would have to be used to authenticate to the API endpoint instead.


    These endpoints only support single-stage approvals. They will not work with multi-stage approvals.


    ### API Paths

    - **Gateway URL**: `https://workfront.adobe.io`

    - **Base Path**: `/unified-approvals`

    - **Example URL**: `https://workfront.adobe.io/unified-approvals/public/api/v1/approvals/test/123`'
  contact:
    name: ''
    email: ''
    url: ''
servers:
- url: https://workfront.adobe.io/unified-approvals/
  description: ''
tags:
- name: Public
paths:
  /public/api/v1/approvals/{assetType}/{assetId}:
    parameters:
    - $ref: '#/components/parameters/AssetType'
    - $ref: '#/components/parameters/AssetId'
    - $ref: '#/components/parameters/Subdomain'
    - $ref: '#/components/parameters/ApiKey'
    - $ref: '#/components/parameters/RequestId'
    get:
      summary: Get an approval
      description: Gets the approval required for the given assetType and assetId.
      security:
      - developer-console-auth: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalResponse'
      tags:
      - Public
  /public/api/v1/approvals/{assetType}/{assetId}/stages:
    parameters:
    - $ref: '#/components/parameters/AssetType'
    - $ref: '#/components/parameters/AssetId'
    - $ref: '#/components/parameters/Subdomain'
    - $ref: '#/components/parameters/ApiKey'
    - $ref: '#/components/parameters/RequestId'
    put:
      summary: Create or update an approval
      description: Creates a new approval with a single stage. If the approval already exists, it will be updated.
      security:
      - developer-console-auth: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stages:
                  type: array
                  minItems: 1
                  maxItems: 1
                  items:
                    title: AddStageBody
                    type: object
                    description: Model for adding a new stage to an approval
                    properties:
                      name:
                        type:
                        - string
                        - 'null'
                        example: Marketing stage
                      stageMetadata:
                        type: object
                        additionalProperties:
                          oneOf:
                          - type: string
                          - type: number
                          - type: boolean
                          - type: array
                          - type: object
                      deadlineDate:
                        type:
                        - string
                        - 'null'
                        description: date object
                        example: '2024-11-25T22:48:13.598Z'
                      participants:
                        type: array
                        minItems: 1
                        items:
                          title: AddParticipantBody
                          type: object
                          description: Participant details
                          properties:
                            participantId:
                              type:
                              - string
                              - 'null'
                              example: 59281F01631245820A49421E@0000000000000000000000.e
                            participantType:
                              type: string
                              enum:
                              - USER
                              - TEAMOB
                              example: USER
                            participantRole:
                              type: string
                              enum:
                              - approver
                              - reviewer
                              example: approver
                            participantMetadata:
                              type: object
                              additionalProperties:
                                oneOf:
                                - type: string
                                - type: number
                                - type: boolean
                                - type: array
                                - type: object
                          required:
                          - participantId
                          - participantType
                          - participantRole
                      config:
                        type: object
                        properties:
                          autoLockEnabled:
                            type: boolean
                            default: true
                    required:
                    - participants
      tags:
      - Public
  /public/api/v1/approvals/{assetType}/{assetId}/decisions:
    parameters:
    - $ref: '#/components/parameters/AssetType'
    - $ref: '#/components/parameters/AssetId'
    - $ref: '#/components/parameters/Subdomain'
    - $ref: '#/components/parameters/ApiKey'
    - $ref: '#/components/parameters/RequestId'
    put:
      summary: Make a decision on an approval
      description: Make a decision on a stage. If the decision is already made, it will be updated. Overall stage and approval status will be updated based on the decision and other participants. Throws an error if the approval is not found or if participant is not allowed.
      security:
      - developer-console-auth: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalResponse'
      requestBody:
        content:
          application/json:
            schema:
              title: DecisionBody
              type: object
              properties:
                decision:
                  type: string
                  enum:
                  - needs work
                  - approved with changes
                  - approved
                  - reviewed
              required:
              - decision
      tags:
      - Public
  /public/api/v1/approvals/{assetType}/{assetId}/participants:
    parameters:
    - $ref: '#/components/parameters/AssetType'
    - $ref: '#/components/parameters/AssetId'
    - $ref: '#/components/parameters/Subdomain'
    - $ref: '#/components/parameters/ApiKey'
    - $ref: '#/components/parameters/RequestId'
    put:
      security:
      - developer-console-auth: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                title: MultiStagesParticipantsBody
                type: object
                properties:
                  stageId:
                    type:
                    - string
                    - 'null'
                    pattern: ^[\w-:]+$
                    minLength: 24
                    example: design-review
                  participants:
                    type: array
                    minItems: 1
                    items:
                      title: AddParticipantBody
                      type: object
                      description: Participant details
                      properties:
                        participantId:
                          type:
                          - string
                          - 'null'
                          example: 59281F01631245820A49421E@0000000000000000000000.e
                        participantType:
                          type: string
                          enum:
                          - USER
                          - TEAMOB
                          example: USER
                        participantRole:
                          type: string
                          enum:
                          - approver
                          - reviewer
                          example: approver
                        participantMetadata:
                          type: object
                          additionalProperties:
                            oneOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: array
                            - type: object
                      required:
                      - participantId
                      - participantType
                      - participantRole
                required:
                - stageId
                - participants
      summary: Add or update approval participants
      description: Adds new participants to an approval. You can also update an existing participants role by passing in the same participantId again but with their new role.
      tags:
      - Public
    delete:
      summary: Delete approval participants
      description: Removes requested participants from an approval. Removing the last participant on an approval will result in the approval being deleted.
      security:
      - developer-console-auth: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                stageId:
                  type: string
                participants:
                  type: array
                  minItems: 1
                  items:
                    title: AddParticipantBody
                    type: object
                    description: Participant details
                    properties:
                      participantId:
                        type:
                        - string
                        - 'null'
                        example: 59281F01631245820A49421E@0000000000000000000000.e
                      participantType:
                        type: string
                        enum:
                        - USER
                        - TEAMOB
                        example: USER
                      participantRole:
                        type: string
                        enum:
                        - approver
                        - reviewer
                        example: approver
                        description: Required but ignored.
                      participantMetadata:
                        type: object
                        additionalProperties:
                          oneOf:
                          - type: string
                          - type: number
                          - type: boolean
                          - type: array
                          - type: object
                    required:
                    - participantId
                    - participantType
                    - participantRole
      tags:
      - Public
  /public/api/v1/approvals/{assetType}/{assetId}/stages/{stageId}/lock:
    parameters:
    - $ref: '#/components/parameters/AssetType'
    - $ref: '#/components/parameters/AssetId'
    - $ref: '#/components/parameters/StageId'
    - $ref: '#/components/parameters/Subdomain'
    - $ref: '#/components/parameters/ApiKey'
    - $ref: '#/components/parameters/RequestId'
    put:
      summary: Lock a stage
      description: Locks the requested stage of the approval. When a stage is locked, participants cannot make a decision on it. Participants cannot be added or removed.
      security:
      - developer-console-auth: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalResponse'
      tags:
      - Public
  /public/api/v1/approvals/{assetType}/{assetId}/stages/{stageId}/unlock:
    parameters:
    - $ref: '#/components/parameters/AssetType'
    - $ref: '#/components/parameters/AssetId'
    - $ref: '#/components/parameters/StageId'
    - $ref: '#/components/parameters/Subdomain'
    - $ref: '#/components/parameters/ApiKey'
    - $ref: '#/components/parameters/RequestId'
    put:
      summary: Unlock a stage
      description: Unlocks the requested stage of the approval. Participants will be able to make a decision on the stage again. Participants can be added or removed from the approval.
      security:
      - developer-console-auth: []
      responses:
        '200':
          $ref: '#/components/responses/ApprovalResponse'
      tags:
      - Public
components:
  responses:
    ApprovalResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AssetApproval'
  parameters:
    AssetId:
      description: The id of the asset being approved
      schema:
        type: string
        pattern: ^[\w-:|~]+$
        example: 673fc29b0006af515e33732d1ebdc39a
      name: assetId
      in: path
      required: true
    AssetType:
      name: AssetType
      in: path
      required: true
      schema:
        type: string
        description: The type of the entity
        enum:
        - DOCV
        example: test
    Subdomain:
      in: header
      name: x-gw-subdomain
      description: Customer's Workfront subdomain
      required: true
      schema:
        type: string
        example: your-workfront-subdomain
    RequestId:
      in: header
      name: x-request-id
      description: A unique identifier for the request
      required: true
      schema:
        type: string
        format: uuid
    StageId:
      schema:
        type: string
        pattern: ^[\w-:]+$
        example: design-review
      name: stageId
      in: path
      required: true
    ApiKey:
      in: header
      name: x-api-key
      description: Generated API key from Adobe Developer Console
      required: true
      schema:
        type: string
  schemas:
    AssetApproval:
      type: object
      description: The approval response object
      title: Approval response
      properties:
        approvalGuid:
          type: string
          description: Unique identifier for the approval
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        assetId:
          type: string
          description: The id of the asset being approved
          example: 673fc29b0006af515e33732d1ebdc39a
        assetType:
          type: string
          description: The type of the entity
          enum:
          - DOCV
          example: DOCV
        creatorId:
          type: string
          description: User ID of the approval creator
          example: 59281F01631245820A49421E@0000000000000000000000.e
        customerDomain:
          type: string
          description: Customer domain
          example: example.workfront.com
        templateId:
          type: string
          description: Template ID if approval was created from a template
          example: 65a86af23f71808d4583be0a
        productId:
          type: string
          description: Product identifier
          example: workfront
        imsOrgId:
          type: string
          description: IMS Organization ID
          example: 1269195F66C8C84F0A494025@AdobeOrg
        status:
          type: string
          description: Overall approval status
          enum:
          - not started
          - notified
          - pending review
          - in review
          - needs work
          - reviewed
          - approved
          - approved with changes
          - withdrawn
          example: pending review
        isLocked:
          type: boolean
          description: Rollup of the stages isLocked field. If all stages are locked, this will be true, otherwise this will be false
        decisionDate:
          type: string
          format: date-time
          description: Date when final decision was made
          example: '2024-01-15T10:30:00.000Z'
        createdAt:
          type: string
          format: date-time
          description: Creation timestamp
          example: '2024-01-10T08:00:00.000Z'
        updatedAt:
          type: string
          format: date-time
          description: Last update timestamp
          example: '2024-01-15T10:30:00.000Z'
        stages:
          type: array
          description: Array of approval stages
          items:
            type: object
            properties:
              stageId:
                type: string
                description: Unique identifier for the stage
                example: 6744feadafbbfb97a7c1c325
              name:
                type: string
                description: Name of the stage
                example: Design Review
              stageMetadata:
                type: object
                description: Additional metadata for the stage
                additionalProperties: true
              status:
                type: string
                description: Stage status
                enum:
                - not started
                - notified
                - pending review
                - in review
                - needs work
                - reviewed
                - approved
                - approved with changes
                - withdrawn
                example: pending review
              deadlineDate:
                type: string
                format: date-time
                description: Deadline for this stage
                example: '2024-01-20T17:00:00.000Z'
              decisionDate:
                type: string
                format: date-time
                description: Date when stage decision was made
                example: '2024-01-18T14:30:00.000Z'
              isLocked:
                type: boolean
                description: Whether the stage is locked
              isActive:
                type: boolean
                description: Whether the stage is currently active
              isLockOverridden:
                type: boolean
                description: Whether the lock has been overridden
              participants:
                type: array
                description: Participants in this stage
                items:
                  type: object
                  required:
                  - participantId
                  - participantType
                  - participantRole
                  properties:
                    participantId:
                      type: string
                      description: User or team ID
                      example: 59281F01631245820A49421E@0000000000000000000000.e
                    participantType:
                      type: string
                      description: Type of participant
                      enum:
                      - USER
                      - TEAMOB
                      example: USER
                    participantRole:
                      type: string
                      description: Role of the participant
                      enum:
                      - reviewer
                      - approver
                      example: approver
                    participantMetadata:
                      type: object
                      description: Additional metadata for the participant
                      additionalProperties: true
                    requesterId:
                      type: string
                      description: ID of user who requested this participant
                    realRequesterId:
                      type: string
                      description: Real requester ID if done on behalf of someone
                    status:
                      type: string
                      description: Participant status
                      enum:
                      - notified
                      - not started
                      - opened
                      - not required
                      - approved
                      - approved with changes
                      - needs work
                      - reviewed
                      example: notified
                    activities:
                      type: array
                      description: Activity history for this participant
                      items:
                        type: object
                        required:
                        - userId
                        properties:
                          userId:
                            type: string
                            description: User who performed the activity
                          realUserId:
                            type:
                            - string
                            - 'null'
                            description: Real user ID if done on behalf of someone
                          decision:
                            type: string
                            enum:
                            - approved
                            - approved with changes
                            - needs work
                            - reviewed
                            description: Decision made
                          decisionDate:
                            type: string
                            format: date-time
                            description: When decision was made
                          openedAt:
                            type: string
                            format: date-time
                            description: When participant opened the approval
                          notifiedAt:
                            type: string
                            format: date-time
                            description: When participant was notified
                    firstDecisionAt:
                      type: string
                      format: date-time
                      description: Timestamp of first decision
                    decisionDate:
                      type: string
                      format: date-time
                      description: Timestamp of decision
                    createdAt:
                      type: string
                      format: date-time
                      description: When participant was added
                    updatedAt:
                      type: string
                      format: date-time
                      description: When participant was last updated
              createdAt:
                type: string
                format: date-time
                description: When stage was created
              updatedAt:
                type: string
                format: date-time
                description: When stage was last updated
        structure:
          type:
          - array
          - 'null'
          description: Stage structure and dependencies
          items:
            type: object
            properties:
              stageId:
                type: string
                description: Stage identifier
              parentIds:
                type: array
                description: Parent stage IDs
                items:
                  type: string
        paths:
          type: array
          description: Parallel approval paths on this approval. Always empty for these endpoints since they only support single-stage approvals.
          items:
            type: object
            properties:
              pathId:
                type: string
                description: Path identifier
              name:
                type: string
                description: Display name for the path
              status:
                type: string
                description: Rollup status of the path
              stages:
                type: array
                description: Stages on this path
                items:
                  type: object
              structure:
                type: array
                description: Stage structure and dependencies for this path
                items:
                  type: object
  securitySchemes:
    developer-console-auth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token from the Adobe Developer Console project