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

# List Assets

> List generated assets (images, videos, audio, text) from completed executions
in your workspace.

Use this to browse all content your workspace has produced, filter by execution
or output type, and retrieve CDN URLs for downstream use (publishing, further
processing, etc.).

Only assets from completed executions with status `completed` are returned.
Results are ordered by creation time, newest first.


Returns generated assets (images, videos, text) from past executions in your workspace.

Use this endpoint when you need to browse outputs across multiple executions, build a media library view, or let users pick previously generated assets as inputs for new runs. Results are paginated and can be filtered by media type.


## OpenAPI

````yaml GET /v1/assets
openapi: 3.1.0
info:
  title: Lamina Apps API
  version: 1.0.0
  description: >
    Professional creative content production for AI agents. Create brand-aligned
    images, videos, and designs from natural-language briefs using 30+
    specialized AI pipelines.


    Unlike raw model APIs (DALL-E, Flux, Kling), Lamina automatically applies
    brand guidelines, selects the optimal multi-model pipeline, scores output
    quality, and delivers permanent CDN-hosted URLs with composability metadata
    for chaining.


    ## Authentication

    All endpoints require an API key passed via one of these headers:

    - `x-api-key: lma_your_key` (recommended)

    - `Authorization: Bearer lma_your_key`


    API keys are workspace-scoped. Create them in **Settings -> API Keys**.


    ## Quick Start (One-Call Path)

    `POST /v1/create` with `{ "brief": "product photo of sneakers", "sync": true
    }` — returns completed output inline with CDN URL.


    ## Quick Start (Advanced)

    1. `GET /v1/apps` -- browse 30+ specialized creative apps

    2. `GET /v1/apps/{appId}` -- inspect input parameters

    3. `POST /v1/apps/{appId}/runs?webhook=<url>` -- run with your inputs

    4. Receive results via webhook, poll `GET /v1/runs/{runId}`, or stream via
    `GET /v1/runs/{runId}/stream`


    ## Rate Limits

    All `/v1/*` endpoints are currently limited to 100 requests per minute per
    IP.

    On `429`, read the `RateLimit-*` and `Retry-After` headers before retrying.


    ## How Inputs Work

    When running an app, provide inputs as a JSON object keyed by parameter
    **name** (from the app details response).


    - **text** parameters: send a string value (e.g. a prompt or description)

    - **options** parameters: send the **label** of the option (e.g.
    `"Caucasian"`), not an internal value

    - **url** parameters: send a publicly accessible URL to an image or video


    Every parameter is returned with `required: true`. Parameters with a
    `default` can safely be omitted -- the app will use the default value.


    ## Endpoint Groups

    | Group | Purpose |

    |-------|---------|

    | **Apps** | Discover and inspect available content creation apps |

    | **Runs** | Run workflows, track progress, and retrieve results |

    | **Assets** | Browse generated images, videos, and text from past
    executions |

    | **Intelligence** | Brand context, performance prediction, recommendations,
    and trends |

    | **Publishing** | Publish content to connected social channels |

    | **Content** | One-call agent operations: create, score, brief, batch |

    | **Account** | Credit balance and rate limit visibility |

    | **Templates** | Content creation templates and strategies |

    | **Webhooks** | Webhook signature verification |
servers:
  - url: https://app.uselamina.ai
    description: Production
security:
  - apiKey: []
tags:
  - name: Create
    description: Create content from briefs, run specific apps, and use templates
  - name: Discover
    description: Find and inspect available apps and their input schemas
  - name: Track
    description: Monitor execution progress, retrieve results, and browse generated assets
  - name: Intelligence
    description: >-
      Brand context, performance prediction, content recommendations, and trend
      signals
  - name: Distribute
    description: Publish content to social channels and transfer assets to CDN
  - name: Score
    description: Evaluate content quality, brand alignment, and engagement potential
  - name: Account
    description: Credit balance, rate limits, and health checks
  - name: Webhooks
    description: Webhook signature verification for secure callback handling
paths:
  /v1/assets:
    get:
      tags:
        - Track
      summary: List Assets
      description: >
        List generated assets (images, videos, audio, text) from completed
        executions

        in your workspace.


        Use this to browse all content your workspace has produced, filter by
        execution

        or output type, and retrieve CDN URLs for downstream use (publishing,
        further

        processing, etc.).


        Only assets from completed executions with status `completed` are
        returned.

        Results are ordered by creation time, newest first.
      operationId: listAssets
      parameters:
        - name: runId
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Filter assets to a specific run. Returns only outputs from that run.
          example: fc32ae7d-6840-4be3-8fb1-539a60e33fc3
        - name: outputType
          in: query
          required: false
          schema:
            type: string
            enum:
              - image
              - video
              - audio
              - text
          description: Filter by output type. Omit to return all types.
          example: image
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 25
            maximum: 100
          description: Maximum number of assets to return per page.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
          description: Number of assets to skip (for pagination).
      responses:
        '200':
          description: Paginated list of generated assets
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AssetRecord'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
              example:
                data:
                  - id: out-001
                    runId: fc32ae7d-6840-4be3-8fb1-539a60e33fc3
                    nodeLabel: AI Designer
                    outputType: image
                    sourceUrl: https://fal.media/files/generated/output-001.png
                    cdnUrl: https://media.getmason.io/api/assetlib/abc123.png
                    textContent: null
                    status: completed
                    createdAt: '2026-04-15T10:32:10.000Z'
                  - id: out-002
                    runId: fc32ae7d-6840-4be3-8fb1-539a60e33fc3
                    nodeLabel: Copy Writer
                    outputType: text
                    sourceUrl: null
                    cdnUrl: null
                    textContent: >-
                      Discover our new spring collection -- where comfort meets
                      style.
                    status: completed
                    createdAt: '2026-04-15T10:31:55.000Z'
                pagination:
                  total: 2
                  limit: 25
                  offset: 0
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    AssetRecord:
      type: object
      description: A generated asset from a completed execution output.
      required:
        - id
        - runId
        - outputType
        - status
        - createdAt
      properties:
        id:
          type: string
          description: Unique asset identifier
        runId:
          type: string
          format: uuid
          description: The run that produced this asset
        nodeLabel:
          type: string
          nullable: true
          description: Human-readable name of the processing node that generated this asset
        outputType:
          type: string
          description: Type of output (`image`, `video`, `audio`, `text`)
        sourceUrl:
          type: string
          nullable: true
          description: >-
            Original provider URL for the asset (may be temporary -- use
            `cdnUrl` for permanent access)
        cdnUrl:
          type: string
          nullable: true
          description: >-
            Permanent CDN URL (available after transfer via `POST
            /v1/publishing/transfer-asset`)
        textContent:
          type: string
          nullable: true
          description: Text content (only for `text` output type)
        status:
          type: string
          description: Asset status (always `completed` in list responses)
        createdAt:
          type: string
          format: date-time
          description: When the asset was created
    Pagination:
      type: object
      description: Pagination metadata for list endpoints
      required:
        - total
        - limit
        - offset
      properties:
        total:
          type: integer
          description: Total number of records matching the query
        limit:
          type: integer
          description: Maximum records per page (as requested)
        offset:
          type: integer
          description: Number of records skipped (as requested)
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
          example:
            error: Invalid API key
    TooManyRequests:
      description: >-
        Rate limit exceeded. All `/v1/*` endpoints are currently limited to 100
        requests per minute per IP.
      headers:
        RateLimit-Policy:
          description: Active rate limit policy.
          schema:
            type: string
            example: 100;w=60
        RateLimit-Limit:
          description: Max requests allowed in the current window.
          schema:
            type: integer
            example: 100
        RateLimit-Remaining:
          description: Requests remaining in the current window.
          schema:
            type: integer
            example: 0
        RateLimit-Reset:
          description: Seconds until the current window resets.
          schema:
            type: integer
            example: 60
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            example: 60
      content:
        text/plain:
          schema:
            type: string
          example: Too many requests from this IP, please try again in a minute
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Workspace API key. Prefix: `lma_`. Example: `lma_abc123...`'

````