> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dreamlayer.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Discover available operations

> Read the operations and pricing available to the authenticated key. Does not start generation.



## OpenAPI

````yaml /openapi/managed.yaml get /v1/capabilities
openapi: 3.1.0
info:
  title: DreamLayer Agent API
  version: '1'
  description: >-
    Generate images, sprite sheets, and quoted videos; follow executions and
    retrieve owned outputs. Start with https://docs.dreamlayer.io/agent-api for
    authentication, limits, runnable examples, event recovery, and billing.
    Sprite sheets require account capability support and an approved credit
    ceiling. Video requires a quote before acceptance. Video schemas document
    the customer integration fields; response objects may contain additional
    fields. See https://docs.dreamlayer.io/agent-api/video.
servers:
  - url: https://api.dreamlayer.io
security:
  - bearerAuth: []
paths:
  /v1/capabilities:
    get:
      summary: Discover available operations
      description: >-
        Read the operations and pricing available to the authenticated key. Does
        not start generation.
      operationId: getCapabilities
      parameters:
        - name: pricing
          in: query
          required: false
          description: >-
            Use current for the current sprite formula. Legacy fields are
            historical compatibility estimates, not current charges.
          schema:
            type: string
            enum:
              - legacy
              - current
            default: legacy
      responses:
        '200':
          description: Closed public capability contract
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Capabilities'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '422':
          $ref: '#/components/responses/InvalidRequest'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    Capabilities:
      type: object
      additionalProperties: false
      required:
        - api_version
        - key_mode
        - operations
        - managed_execute
        - account_profile
        - managed_chat
        - managed_chat_versions
        - included_chat
        - image_batches
        - image_batch_versions
        - maximum_batch_images
        - image_workflows
        - image_workflow_versions
        - maximum_workflow_steps
        - server_sent_events
        - interactive_questions
        - maximum_input_bytes
        - maximum_input_dimension
        - staged_input_uploads
        - maximum_source_input_bytes
        - supported_input_extensions
        - sprite_sheet_credits
        - sprite_pricing
        - live_charge_credits_per_image
        - test_mode_uses_credits
      properties:
        api_version:
          type: string
          const: '1'
        key_mode:
          type: string
          enum:
            - test
            - live
        operations:
          type: array
          items:
            type: string
            enum:
              - text_to_image
              - image_to_image
              - background_remove
              - upscale
              - sprite_sheet
        managed_execute:
          type: boolean
          const: true
        account_profile:
          type: boolean
        managed_chat:
          type: boolean
        managed_chat_versions:
          type: array
          items:
            type: integer
        included_chat:
          type: boolean
        image_batches:
          type: boolean
        image_batch_versions:
          type: array
          items:
            type: integer
        maximum_batch_images:
          type: integer
        image_workflows:
          type: boolean
        image_workflow_versions:
          type: array
          items:
            type: integer
        maximum_workflow_steps:
          type: integer
          const: 2
        server_sent_events:
          type: boolean
          const: true
        interactive_questions:
          type: boolean
          const: true
        maximum_input_bytes:
          type: integer
          const: 20971520
        maximum_input_dimension:
          type: integer
          const: 4096
        staged_input_uploads:
          type: boolean
          const: true
        maximum_source_input_bytes:
          type: integer
          const: 209715200
        supported_input_extensions:
          type: array
          items:
            type: string
        live_charge_credits_per_image:
          type: integer
          const: 1
        sprite_sheet_credits:
          type:
            - number
            - 'null'
          minimum: 0.1
          maximum: 100
          description: >-
            Historical default-frame estimate unless pricing=current is
            requested. Deprecated for spending decisions; use the authenticated
            /v1/sprite-pricing account estimate.
        sprite_pricing:
          oneOf:
            - $ref: '#/components/schemas/SpritePricing'
            - $ref: '#/components/schemas/CurrentSpritePricing'
        test_mode_uses_credits:
          type: boolean
          const: false
    SpritePricing:
      type:
        - object
        - 'null'
      description: >-
        Deprecated historical fields for older clients. Not the current charge.
        Use pricing=current and the account-specific sprite estimate endpoint.
      additionalProperties: false
      properties:
        minimum_frames:
          type: integer
          const: 7
        maximum_frames:
          type: integer
          const: 100
        default_frames:
          type: integer
          const: 12
        tier_boundary:
          type: integer
          const: 14
        first_tier_cents:
          type: integer
          const: 14
        additional_frame_cents:
          type: integer
          const: 7
        credit_cents:
          type: integer
          const: 17
        charge_rounding:
          type: string
          const: up_to_tenth
        plain_frame_cents:
          type: integer
          const: 7
    CurrentSpritePricing:
      type: object
      additionalProperties: false
      required:
        - price_version
        - minimum_frames
        - maximum_frames
        - default_frames
        - transparent_base_credits
        - transparent_frame_credits
        - kept_base_reference_usd
        - kept_frame_reference_usd
        - charge_rounding
        - estimate_path
      properties:
        price_version:
          type: string
          const: sprite-base-frame-20261017-v1
        minimum_frames:
          type: integer
          const: 7
        maximum_frames:
          type: integer
          const: 100
        default_frames:
          type: integer
          const: 12
        transparent_base_credits:
          type: string
          const: '4.2'
        transparent_frame_credits:
          type: string
          const: '0.2'
        kept_base_reference_usd:
          type: string
          const: '0.32'
        kept_frame_reference_usd:
          type: string
          const: '0.01'
        charge_rounding:
          type: string
          const: up_to_four_decimals
        estimate_path:
          type: string
          const: /v1/sprite-pricing
    ErrorEnvelope:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - reason
            - message
            - category
            - retryable
            - request_id
          properties:
            code:
              type: string
              description: Legacy uppercase code retained for existing clients.
            reason:
              $ref: '#/components/schemas/PublicErrorReason'
            message:
              type: string
            category:
              type: string
            retryable:
              type: boolean
            request_id:
              type: string
              format: uuid
            details:
              type: object
              description: >-
                Optional sanitized validation detail. Submitted values are never
                echoed.
              additionalProperties: true
    PublicErrorReason:
      type: string
      enum:
        - invalid_request
        - authentication_failed
        - access_denied
        - resource_not_found
        - insufficient_credits
        - conflict
        - too_many_active_jobs
        - rate_limited
        - quota_exceeded
        - content_refused
        - temporarily_unavailable
        - generation_failed
        - insufficient_frames
        - prompt_policy_blocked
        - feature_unavailable
  responses:
    Unauthenticated:
      description: >-
        Invalid or revoked API key. A missing Authorization header returns 422
        invalid_request.
      headers:
        Cache-Control:
          schema:
            type: string
            const: no-store
        Pragma:
          schema:
            type: string
            const: no-cache
        X-Request-ID:
          schema:
            type: string
            format: uuid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    InvalidRequest:
      description: Invalid request, including a missing required Authorization header
      headers:
        Cache-Control:
          schema:
            type: string
            const: no-store
        Pragma:
          schema:
            type: string
            const: no-cache
        X-Request-ID:
          schema:
            type: string
            format: uuid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    RateLimited:
      description: >-
        Synchronous request or open-stream limit reached. See
        https://docs.dreamlayer.io/agent-api/limits for scopes and backoff.
        Retry-After and remaining-request headers are not guaranteed.
      headers:
        Cache-Control:
          schema:
            type: string
            const: no-store
        Pragma:
          schema:
            type: string
            const: no-cache
        X-Request-ID:
          schema:
            type: string
            format: uuid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            error:
              code: RATE_LIMITED
              reason: rate_limited
              message: Too many requests. Please try again shortly.
              category: RATE_LIMITED
              retryable: true
              request_id: d34db33f-0000-4000-8000-000000000001
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.