Adobe Suite Dynamic Graphics Render API

Endpoints for Dynamic Graphics Render (DGR): template describe, presets, render, job status, cancel a render job, and list render jobs. The Cancel (`PUT /v1/cancel/{jobId}`) and List Render Jobs (`GET /v1/templates/render-jobs`) endpoints, as well as the extended status fields (`createdDate`, `totalJobItems`, `retryPayloadUrl`, `startedDate`, `completedDate`, and the `canceling`/`canceled` statuses), apply **only to render jobs** submitted via `POST /v1/templates/render`.

Operations 5

POST /v1/templates/describe Describe template #
GET /v1/presets Fetch video rendering presets #
POST /v1/templates/render Render template #
PUT /v1/cancel/{jobId} Cancel a render job #
GET /v1/templates/render-jobs List render jobs #

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-dynamic-graphics-render-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-dynamic-graphics-render-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Firefly Services Audio and Video Dynamic Graphics Render API
  description: This RESTful API provides resources to use Firefly Services AI for audio and video generation and processing.
  termsOfService: https://www.adobe.com/content/dam/cc/en/legal/terms/enterprise/pdfs/PSLT-AdobeCreativeAPI-WW-2024v2.pdf
servers:
- url: https://audio-video-api.adobe.io
  description: Production server.
security:
- AccessToken: []
  X-Api-Key: []
tags:
- name: Dynamic Graphics Render
  description: 'Endpoints for Dynamic Graphics Render (DGR): template describe, presets, render, job status, cancel a render job, and list render jobs. The Cancel (`PUT /v1/cancel/{jobId}`) and List Render Jobs (`GET /v1/templates/render-jobs`) endpoints, as well as the extended status fields (`createdDate`, `totalJobItems`, `retryPayloadUrl`, `startedDate`, `completedDate`, and the `canceling`/`canceled` statuses), apply **only to render jobs** submitted via `POST /v1/templates/render`.'
paths:
  /v1/templates/describe:
    post:
      tags:
      - Dynamic Graphics Render
      summary: Describe template
      description: Analyzes a MOGRT (video template) file and returns a manifest of editable controls; fonts, images, audio, video and other supported values.
      operationId: template-describe
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateDescribeRequest'
            examples:
              SampleExample:
                summary: MOGRT template
                value:
                  source:
                    url: <pre-signed_URL_to_download_the_template>
              AEPDescribeExample:
                summary: After Effects project (AEP)
                value:
                  type: aep
                  source:
                    url: <pre-signed_URL_to_download_the_.zip>
                  compName: A. Variable Duration
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateDescribeResponse'
              examples:
                SuccessResponse:
                  value:
                    jobId: <job_ID>
                    statusUrl: https://audio-video-api.adobe.io/v1/status/<job_ID>
          headers:
            Link:
              schema:
                type: string
              description: URL to monitor the status of the job.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidJsonError:
                  value:
                    error_code: invalid_json
                    message: Invalid request. Please check the input data.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidToken:
                  value:
                    error_code: '401013'
                    message: OAuth token is not valid.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidContext:
                  value:
                    error_code: access_error
                    message: Token not allowed in the current context.
                ApiKeyIsRequired:
                  value:
                    error_code: '403000'
                    message: API key is required.
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                ValidationError:
                  value:
                    error_code: validation_error
                    message: Validation error occurred
                    messageId: '42206000'
                InvalidTemplateTypeError:
                  value:
                    error_code: validation_error
                    message: Input must contain a valid template type
                    messageId: '42206001'
                InvalidTemplateSourceError:
                  value:
                    error_code: validation_error
                    message: Invalid template source
                    messageId: '42206002'
                InvalidTemplateSourceUrlError:
                  value:
                    error_code: validation_error
                    message: Invalid template source URL
                    messageId: '42206003'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                ServerError:
                  value:
                    messageId: '50006000'
                    message: Internal Server Error
                    error_code: runtime_error
  /v1/presets:
    get:
      tags:
      - Dynamic Graphics Render
      summary: Fetch video rendering presets
      description: Returns a list of predefined social-first encoding presets for rendering outputs.
      operationId: get-presets
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PresetsResponse'
              examples:
                PresetsExample:
                  $ref: '#/components/examples/PresetsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  value:
                    error_code: '401013'
                    message: OAuth token is not valid.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Forbidden:
                  value:
                    error_code: '403000'
                    message: API key is required.
  /v1/templates/render:
    post:
      tags:
      - Dynamic Graphics Render
      summary: Render template
      description: Renders one or more video variations by applying overrides and export presets. Submit up to 10 overrides per call for a subset of editable layers and get a pre-signed URL link to download the video file. For layers that are not editable, the system defaults are automatically applied at export.
      operationId: template-render
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateRenderRequest'
            examples:
              RenderExample:
                summary: Sample render request
                value:
                  source:
                    url: <pre-signed mogrt url>
                  fonts:
                  - name: <Font postscript name>
                    source:
                      url: <pre-signed url for font .ttf/otf>
                  config:
                    handleMissingFonts: use_default
                  assets:
                  - source:
                      url: <pre-signed url for image or video asset>
                  - source:
                      url: <pre-signed url for audio asset>
                  presets:
                  - source:
                      presetId: ffs_video_api_vert_1920p_hq
                  - source:
                      url: <pre-signed url for Encoder preset file>
                  variations:
                  - variables:
                    - variableId: <unique template variable id>
                      selectedCheckboxValue: true
                    - variableId: <unique template variable id>
                      assetIndex: 0
                      scale: no_scale
                    - variableId: <unique template variable id>
                      selectedDropdownValue: '0'
                    - variableId: <unique template variable id>
                      text: First Name
                      fontName: font_name_1
                    - variableId: <unique template variable id>
                      selectedSliderValue: -18
                    - variableId: <unique template variable id>
                      assetIndex: 1
                      audioPreference: replace
                  - variables:
                    - variableId: <unique template variable id>
                      selectedCheckboxValue: true
                    - variableId: <unique template variable id>
                      assetIndex: 0
                      scale: fit_to_frame
                    - variableId: <unique template variable id>
                      selectedDropdownValue: '0'
                    - variableId: <unique template variable id>
                      text: First Name
                      fontName: font_name_1
                    - variableId: <unique template variable id>
                      selectedSliderValue: -18
                    - variableId: <unique template variable id>
                      assetIndex: 1
                      audioPreference: mix
                  outputs:
                  - variationIndex: 0
                    presetIndex: 0
                    fileName: some_custom_file_name
                    destination: <pre-signed_URL_for_output_video>
                  - variationIndex: 1
                    presetIndex: 0
                    fileName: output_vert_1920p_hq
                    destination: <pre-signed_URL_for_output_video>
                  - variationIndex: 1
                    presetIndex: 1
                    fileName: my_custom_file_name
                    destination: <pre-signed_URL_for_output_video>
              AEPRenderExample:
                summary: 'AEP: replace media with scaling'
                value:
                  type: aep
                  compName: A. Variable Duration
                  source:
                    url: <pre-signed_URL_to_download_the_.zip>
                  config:
                    handleMissingFonts: use_default
                  presets:
                  - source:
                      presetId: ffs_video_api_land_1080p_hq
                  assets:
                  - source:
                      url: <pre-signed_URL_for_video_asset>
                  variations:
                  - variables:
                    - variableId: c259:l261:media
                      assetIndex: 0
                      scale: fill_frame
                  outputs:
                  - variationIndex: 0
                    presetIndex: 0
                    fileName: aep_media_replace
              AEPRenderTextExample:
                summary: 'AEP: replace a text control'
                value:
                  type: aep
                  compName: A. Variable Duration
                  source:
                    url: <pre-signed_URL_to_download_the_.zip>
                  config:
                    handleMissingFonts: use_default
                  fonts:
                  - name: SourceSans3-Bold
                    source:
                      url: <pre-signed_URL_for_font_.ttf>
                  presets:
                  - source:
                      presetId: ffs_video_api_land_1080p_hq
                  variations:
                  - variables:
                    - variableId: c169:l193:layer:sourceText
                      text: Certification Test Title
                  outputs:
                  - variationIndex: 0
                    presetIndex: 0
                    fileName: aep_text_replacement
              AEPRenderAudioExample:
                summary: 'AEP: replace audio'
                value:
                  type: aep
                  compName: C. Audio Replacement
                  source:
                    url: <pre-signed_URL_to_download_the_.zip>
                  config:
                    handleMissingFonts: use_default
                  presets:
                  - source:
                      presetId: ffs_video_api_land_1080p_hq
                  assets:
                  - source:
                      url: <pre-signed_URL_for_audio_asset>
                  variations:
                  - variables:
                    - variableId: c840:l921:audio
                      assetIndex: 0
                      audioPreference: replace
                  outputs:
                  - variationIndex: 0
                    presetIndex: 0
                    fileName: aep_audio_replace
              AEPRenderLayerOperationsExample:
                summary: 'AEP: layer operations (variable-duration timeline)'
                value:
                  type: aep
                  compName: A. Variable Duration
                  source:
                    url: <pre-signed_URL_to_download_the_.zip>
                  config:
                    handleMissingFonts: use_default
                  fonts:
                  - name: SourceSans3-Bold
                    source:
                      url: <pre-signed_URL_for_font_.ttf>
                  presets:
                  - source:
                      presetId: ffs_video_api_land_1080p_hq
                  assets:
                  - source:
                      url: <pre-signed_URL_for_video_asset>
                  variations:
                  - variables:
                    - variableId: c259:l261:media
                      assetIndex: 0
                  layerOperations:
                  - operation: match_source_duration
                    layerId: c259:l261:layer
                  - operation: shift_inpoint
                    layerId: c259:l263:layer
                    refLayerId: c259:l261:layer
                    refInOut: out
                    offsetSeconds: -1
                  - operation: shift_inpoint
                    layerId: c259:l265:layer
                    refLayerId: c259:l263:layer
                    refInOut: in
                    offsetFrames: 90
                  - operation: trim_comp
                    startSeconds: 0
                    endLayerId: c259:l265:layer
                  - operation: trim_outpoint
                    layerId: c259:l263:layer
                    refLayerId: c259:l265:layer
                    refInOut: out
                  - operation: trim_outpoint
                    layerId: c259:l262:layer
                    refLayerId: c259:l261:layer
                    refInOut: out
                  - operation: trim_outpoint
                    layerId: c259:l819:layer
                    refLayerId: c259:l265:layer
                    refInOut: out
                  - operation: enable_layer
                    layerId: c259:l398:layer
                    videoEnabled: false
                  outputs:
                  - variationIndex: 0
                    presetIndex: 0
                    fileName: aep_layer_operations
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateRenderResponse'
              examples:
                SuccessResponse:
                  value:
                    jobId: <job_ID>
                    statusUrl: https://audio-video-api.adobe.io/v1/status/<job_ID>
                    cancelUrl: https://audio-video-api.adobe.io/v1/cancel/<job_ID>
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidJsonError:
                  value:
                    error_code: invalid_json
                    message: Invalid request. Please check the input data.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidToken:
                  value:
                    error_code: '401013'
                    message: OAuth token is not valid.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidContext:
                  value:
                    error_code: access_error
                    message: Token not allowed in the current context.
                ApiKeyIsRequired:
                  value:
                    error_code: '403000'
                    message: API key is required.
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidTemplateTypeError:
                  value:
                    error_code: validation_error
                    message: Input must contain a valid template type
                    messageId: '42205000'
                InvalidTemplateSourceUrlError:
                  value:
                    error_code: validation_error
                    message: Invalid template source URL
                    messageId: '42205001'
                InvalidPresetIdError:
                  value:
                    error_code: validation_error
                    message: '{presetId} export preset does not exist'
                    messageId: '42205002'
                InvalidFontDetailsError:
                  value:
                    error_code: validation_error
                    message: Invalid font details in variation {variationIndex} control {controlIndex}
                    messageId: '42205003'
                InvalidMediaDetailsError:
                  value:
                    error_code: validation_error
                    message: Invalid media details in variation {variationIndex} control {controlIndex}
                    messageId: '42205004'
                InvalidScaleTypeError:
                  value:
                    error_code: validation_error
                    message: Invalid scale type in variation {variationIndex} control {controlIndex}
                    messageId: '42205005'
                InvalidControlTypeError:
                  value:
                    error_code: validation_error
                    message: Invalid control type in variation {variationIndex} control {controlIndex}
                    messageId: '42205006'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InternalServerError:
                  value:
                    error_code: runtime_error
                    message: Internal Server Error
                    messageId: '50005001'
  /v1/cancel/{jobId}:
    put:
      tags:
      - Dynamic Graphics Render
      summary: Cancel a render job
      description: 'Aborts an in-flight render job. Returns `202 Accepted` as soon as the cancellation has been accepted; subsequent calls to `GET /v1/status/{jobId}` will report `"status": "canceled"` once the worker has fully stopped the underlying render.


        **Applicable only to render jobs submitted via `POST /v1/templates/render`.** This endpoint does not apply to Describe, Reframe, TLS, TTS, or Avatar jobs.


        **Notes:**

        - Cancellation is idempotent.

        - Once propagated to the worker, in-progress outputs are not uploaded to the destinations specified in the original render request.

        - For a short window after the PUT, the status endpoint may still report `running`; poll until it transitions to `canceled`.'
      operationId: cancel-render-job
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: UUID of the render job to cancel, as returned in the `jobId` field of the original 202 submit response or in the `cancelUrl` property of a List Render Jobs response item.
      - $ref: '#/components/parameters/XRequestIdHeader'
      responses:
        '202':
          description: Cancellation accepted. The job is transitioning to `canceled`; poll `GET /v1/status/{jobId}` to observe the terminal state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelAcceptedResponse'
              examples:
                CancelAccepted:
                  $ref: '#/components/examples/CancelAccepted'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidJsonError:
                  value:
                    error_code: invalid_json
                    message: Invalid request. Please check the input data.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidToken:
                  value:
                    error_code: '401013'
                    message: OAuth token is not valid.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidContext:
                  value:
                    error_code: access_error
                    message: Token not allowed in the current context.
        '404':
          description: Not Found — `jobId` is unknown or no longer accessible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                JobNotFound:
                  $ref: '#/components/examples/CancelJobNotFound'
        '409':
          description: Conflict — the job is already in a terminal state and cannot be canceled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                JobAlreadyCompleted:
                  $ref: '#/components/examples/CancelJobAlreadyCompleted'
                JobAlreadyCanceled:
                  $ref: '#/components/examples/CancelJobAlreadyCanceled'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                RateLimited:
                  value:
                    error_code: rate_limit_exceeded
                    message: Too many requests. Please retry after some time.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InternalServerError:
                  value:
                    error_code: runtime_error
                    message: Internal Server Error
                    messageId: '50005001'
  /v1/templates/render-jobs:
    get:
      tags:
      - Dynamic Graphics Render
      summary: List render jobs
      description: 'Returns a paginated list of template render jobs owned by the authenticated caller, optionally filtered by status and creation date.


        **Applicable only to render jobs submitted via `POST /v1/templates/render`.** Jobs from other API types (Describe, Reframe, TLS, TTS, Avatar) are not returned.


        **Filter syntax (FIQL):**

        - `status==running` — single status equality

        - `status=in=(running,not_started)` — status set membership

        - `createdDate=ge=2026-05-01T00:00:00Z` — absolute ISO 8601 lower bound

        - `createdDate=ge=-P7D` — relative ISO 8601 duration (last 7 days)

        - Combine with `;` (AND): `status==running;createdDate=ge=-P7D`


        **Default filter:** all statuses, `createdDate` within the last 30 days.


        **Retention:** `createdDate` filter values must fall within the 30-day retention window.


        **Pagination:** follow `paging.nextUrl` until it is absent (last page).'
      operationId: list-render-jobs
      parameters:
      - name: filter
        in: query
        required: false
        description: 'FIQL filter string. Supported sub-params: `status` (enum) and `createdDate` (ISO 8601 date-time or relative duration). Default: `createdDate=ge=-P30D;status=in=(not_started,running,succeeded,partially_succeeded,failed,canceled)`.'
        schema:
          type: string
        examples:
          RunningOnly:
            summary: Running jobs only
            value: status==running
          Last7DaysRunning:
            summary: Running jobs in last 7 days
            value: createdDate=ge=-P7D;status==running
          AbsoluteDateRange:
            summary: Absolute date range
            value: createdDate=ge=2026-05-14T00:00:00Z;createdDate=le=2026-05-21T00:00:00Z
          MultipleStatuses:
            summary: Multiple statuses
            value: status=in=(running,not_started)
      - name: limit
        in: query
        required: false
        description: Maximum number of job entries to return per page. Must be between 1 and 100 (inclusive). Defaults to 20.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
      - name: cursor
        in: query
        required: false
        description: Opaque pagination cursor returned in `paging.nextUrl` of a previous response. Omit to fetch the first page.
        schema:
          type: string
      - $ref: '#/components/parameters/XRequestIdHeader'
      responses:
        '200':
          description: Success — list of render jobs (may be empty).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderJobListResponse'
              examples:
                FirstPageWithMore:
                  $ref: '#/components/examples/RenderJobListFirstPage'
                LastPage:
                  $ref: '#/components/examples/RenderJobListLastPage'
                EmptyResult:
                  $ref: '#/components/examples/RenderJobListEmpty'
        '400':
          description: Bad request — invalid filter, limit, cursor, or date range.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidStatusFilter:
                  $ref: '#/components/examples/ListJobsInvalidStatusFilter'
                LimitOutOfRange:
                  $ref: '#/components/examples/ListJobsLimitOutOfRange'
                InvalidCursor:
                  $ref: '#/components/examples/ListJobsInvalidCursor'
                InvalidFilter:
                  $ref: '#/components/examples/ListJobsInvalidFilter'
                FilterOutOfRetention:
                  $ref: '#/components/examples/ListJobsFilterOutOfRetention'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidToken:
                  value:
                    error_code: '401013'
                    message: OAuth token is not valid.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidContext:
                  value:
                    error_code: access_error
                    message: Token not allowed in the current context.
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                RateLimited:
                  value:
                    error_code: rate_limit_exceeded
                    message: Too many requests. Please retry after some time.
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InternalServerError:
                  value:
                    error_code: runtime_error
                    message: Internal Server Error
                    messageId: '50005001'
components:
  examples:
    ListJobsInvalidStatusFilter:
      summary: Invalid status value in filter
      value:
        error_code: invalid_status_filter
        message: status must be one of not_started, running, succeeded, partially_succeeded, failed, canceled.
    ListJobsInvalidFilter:
      summary: Syntactically invalid FIQL expression
      value:
        error_code: invalid_filter
        message: 'Invalid filter: unexpected token at position 5.'
    PresetsResponse:
      summary: List of supported presets
      value:
        items:
        - presetId: ffs_video_api_land_1080p_hq
          label: Landscape 1920×1080 – HQ
          mediaType: video/mp4
          codec: H.264
          maxFps:
            numerator: 30
            denominator: 1
          bitrateMode: vbr
          targetBitrateInKbps: 8000
          maxBitrateInKbps: 12000
          alpha: false
          primaryUsage: Youtube, Web Promos
        - presetId: ffs_video_api_land_1080p_lq
          label: Landscape 1920×1080 – LQ
          mediaType: video/mp4
          codec: H.264
          maxFps:
            numerator: 30
            denominator: 1
          bitrateMode: vbr
          targetBitrateInKbps: 6000
          maxBitrateInKbps: 8000
          alpha: false
          primaryUsage: Previews
        - presetId: ffs_video_api_square_1080p_hq
          label: Square 1080×1080 – HQ
          mediaType: video/mp4
          codec: H.264
          maxFps:
            numerator: 30
            denominator: 1
          bitrateMode: vbr
          targetBitrateInKbps: 6000
          maxBitrateInKbps: 8000
          alpha: false
          primaryUsage: IG / FB feed ads, LinkedIn videos, X
        - presetId: ffs_video_api_square_1080p_lq
          label: Square 1080×1080 – LQ
          mediaType: video/mp4
          codec: H.264
          maxFps:
            numerator: 30
            denominator: 1
          bitrateMode: vbr
          targetBitrateInKbps: 3000
          maxBitrateInKbps: 4000
          alpha: false
          primaryUsage: Previews
        - presetId: ffs_video_api_vert_1920p_hq
          label: Vertical 1080×1920 – HQ
          mediaType: video/mp4
          codec: H.264
          profile: high
          maxFps:
            numerator: 30
            denominator: 1
          bitrateMode: vbr
          targetBitrateInKbps: 6000
          maxBitrateInKbps: 8000
          alpha: false
          primaryUsage: Reels, TikTok, Snapchat Paid Ads
        - presetId: ffs_video_api_vert_1920p_lq
          label: Vertical 1080×1920 – LQ
          mediaType: video/mp4
          codec: H.264
          profile: high
          maxFps:
            numerator: 30
            denominator: 1
          bitrateMode: vbr
          targetBitrateInKbps: 3000
          maxBitrateInKbps: 4000
          alpha: false
          primaryUsage: Previews
        - presetId: ffs_video_api_prores
          label: ProRes export preset supporting Alpha channel
          mediaType: video/quicktime
          codec: Apple ProRes 4444
          profile: high
          maxFps:
            numerator: 30
            denominator: 1
          bitrateMode: vbr
          alpha: true
          pr

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