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

# List assets

> List assets with filtering, sorting, and pagination; returned signed URLs expire after 12 hours.



## OpenAPI

````yaml openapi/byteplus-assets.yaml POST /assets/list
openapi: 3.1.0
info:
  title: BytePlus Assets API
  version: 1.0.0
  description: >-
    GENGEN reference for BytePlus asset groups, reusable assets, the public
    asset library, and real-person verification.
servers:
  - url: https://gengen.farm/api/gengen/v1
    description: Production
security:
  - bearerAuth: []
paths:
  /assets/list:
    post:
      summary: List assets
      description: >-
        List assets in a workspace-owned group with filtering, sorting, and
        pagination. Signed asset URLs expire after 12 hours.
      operationId: listAssets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListAssetsRequest'
            example:
              Filter:
                GroupIds:
                  - group-20260424-abc
                GroupType: AIGC
                Statuses:
                  - Active
              PageNumber: 1
              PageSize: 10
              SortBy: CreateTime
              SortOrder: Desc
      responses:
        '200':
          description: A page of assets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetListResultEnvelope'
              example:
                ResponseMetadata:
                  RequestId: '20260427000000000000000000000000'
                  Action: ListAssets
                  Version: '2024-01-01'
                  Service: ark
                  Region: ap-southeast-1
                Result:
                  Items:
                    - Id: asset-20260427-abc
                      Name: portrait-front
                      URL: https://example.com/temporary-asset-url
                      GroupId: group-20260424-abc
                      AssetType: Image
                      Status: Active
                      ProjectName: default
                      CreateTime: '2026-04-24T00:00:00Z'
                      UpdateTime: '2026-04-24T00:00:00Z'
                  TotalCount: 1
                  PageNumber: 1
                  PageSize: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '502':
          $ref: '#/components/responses/ProviderError'
        default:
          $ref: '#/components/responses/ProviderError'
      x-codeSamples:
        - lang: bash
          label: List assets
          source: |
            curl --request POST \
              --url https://gengen.farm/api/gengen/v1/assets/list \
              --header 'Authorization: Bearer gengen_live_xxxxxxxxxxxxxxxx' \
              --header 'Content-Type: application/json' \
              --data '{
                "Filter": {
                  "GroupIds": [
                    "group-20260424-abc"
                  ],
                  "GroupType": "AIGC",
                  "Statuses": [
                    "Active"
                  ]
                },
                "PageNumber": 1,
                "PageSize": 10,
                "SortBy": "CreateTime",
                "SortOrder": "Desc"
              }'
components:
  schemas:
    ListAssetsRequest:
      type: object
      required:
        - Filter
        - PageNumber
        - PageSize
      properties:
        Filter:
          $ref: '#/components/schemas/AssetFilter'
        PageNumber:
          type: integer
          minimum: 1
          default: 1
        PageSize:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
        SortBy:
          type: string
          default: CreateTime
          description: |
            Supported sort fields:

            - CreateTime — creation time
            - UpdateTime — last update time
            - GroupId — owning asset group ID
          enum:
            - CreateTime
            - UpdateTime
            - GroupId
        SortOrder:
          type: string
          default: Desc
          description: |
            Supported sort orders:

            - Asc — ascending
            - Desc — descending
          enum:
            - Asc
            - Desc
      additionalProperties: false
    AssetListResultEnvelope:
      type: object
      required:
        - ResponseMetadata
        - Result
      properties:
        ResponseMetadata:
          $ref: '#/components/schemas/ResponseMetadata'
        Result:
          type: object
          required:
            - Items
            - TotalCount
            - PageNumber
            - PageSize
          properties:
            Items:
              type: array
              items:
                $ref: '#/components/schemas/ProviderAsset'
            TotalCount:
              type: integer
            PageNumber:
              type: integer
            PageSize:
              type: integer
          additionalProperties: true
      additionalProperties: true
    AssetFilter:
      type: object
      required:
        - GroupIds
        - GroupType
      properties:
        GroupIds:
          type: array
          minItems: 1
          description: >-
            Asset group IDs. The first entry must be owned by the current
            workspace.
          items:
            type: string
        GroupType:
          type: string
          description: |
            Supported group types:

            - AIGC — virtual-portrait group
            - LivenessFace — real-person portrait group
          enum:
            - AIGC
            - LivenessFace
        Statuses:
          type: array
          description: |
            Optional asset status filters:

            - Active — ready for generation
            - Processing — preprocessing is in progress
            - Failed — preprocessing failed
          items:
            type: string
            enum:
              - Active
              - Processing
              - Failed
        Name:
          type: string
          maxLength: 64
          description: Asset name filter.
      additionalProperties: false
    ResponseMetadata:
      type: object
      properties:
        RequestId:
          type: string
        Action:
          type: string
        Version:
          type: string
        Service:
          type: string
        Region:
          type: string
      additionalProperties: true
    ProviderAsset:
      type: object
      properties:
        Id:
          type: string
        Name:
          type: string
        URL:
          type: string
          format: uri
          description: Signed asset URL valid for 12 hours.
        AssetType:
          type: string
          description: |
            Asset type:

            - Image — image asset
            - Video — video asset
            - Audio — audio asset
          enum:
            - Image
            - Video
            - Audio
        GroupId:
          type: string
        Status:
          type: string
          description: |
            Preprocessing status:

            - Active — ready for generation
            - Processing — preprocessing is in progress
            - Failed — preprocessing failed
          enum:
            - Active
            - Processing
            - Failed
        Error:
          type: object
          additionalProperties: true
        CreateTime:
          type: string
          format: date-time
        UpdateTime:
          type: string
          format: date-time
        ProjectName:
          type: string
      additionalProperties: true
    Error:
      type: object
      properties:
        error_code:
          type: string
        error:
          type: string
        error_params:
          type: object
          additionalProperties: true
      additionalProperties: true
  responses:
    BadRequest:
      description: The request body or parameters are invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The bearer token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    PaymentRequired:
      description: The workspace does not have enough available balance.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The API key is not permitted to perform this operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested asset, group, or verification session was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: The resource state conflicts with the requested operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ProviderError:
      description: GENGEN or the asset provider could not complete the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: GENGEN API key
      description: A workspace API key beginning with gengen_live_.

````