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

# Get Asset

> Get asset details by ID.



## OpenAPI

````yaml /api-reference/openapi.json get /assets/{asset_id}
openapi: 3.1.0
info:
  title: Aspect Platform API
  description: A FastAPI application for Aspect Platform functionality
  version: 0.0.0
servers:
  - url: https://api.aspect.inc
security:
  - BearerAuth: []
  - ApiKeyAuth: []
paths:
  /assets/{asset_id}:
    get:
      tags:
        - Assets
      summary: Get Asset
      description: Get asset details by ID.
      operationId: get_Assets_assets_asset_id
      parameters:
        - name: asset_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Asset ID
            description: The ID of the asset to get
          description: The ID of the asset to get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    AssetResponse:
      properties:
        is_symlink:
          type: boolean
          title: Is Symlink
          description: True when this item is a projected symlink
          default: false
        target_path:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Target Path
          description: Symlink target path components
        target_path_type:
          anyOf:
            - $ref: '#/components/schemas/SymlinkTargetPathType'
            - type: 'null'
          description: Symlink target path type
        target_resource_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Target Resource Id
          description: Resolved target resource ID
        target_resource_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Resource Name
          description: Resolved target resource name
        target_resource_type:
          anyOf:
            - $ref: '#/components/schemas/ResourceType'
            - type: 'null'
          description: Resolved or hinted target resource type
        target_resolution_status:
          anyOf:
            - $ref: '#/components/schemas/SymlinkResolutionStatus'
            - type: 'null'
          description: Symlink resolution status
        id:
          type: string
          format: uuid
          title: Id
        type:
          $ref: '#/components/schemas/AssetType'
          description: Type of the asset (video, image, etc)
        name:
          type: string
          title: Name
        size_bytes:
          type: integer
          title: Size Bytes
        duration:
          anyOf:
            - type: number
            - type: 'null'
          title: Duration
          description: >-
            Duration in seconds for time-based assets. NULL for non-time-based
            assets.
        page_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Page Count
          description: Number of pages for document assets. NULL for non-document assets.
        mime_type:
          type: string
          title: Mime Type
        save_original:
          type: boolean
          title: Save Original
        path:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Path
          description: Original file path for the asset (e.g., ['path', 'to', 'file.mov'])
        features:
          anyOf:
            - $ref: '#/components/schemas/FeatureStateMapResponse'
            - type: 'null'
          description: Admin-only feature state diagnostics for this asset
        is_uploaded:
          type: boolean
          title: Is Uploaded
        user_id:
          type: string
          format: uuid
          title: User Id
        workspace_id:
          type: string
          format: uuid
          title: Workspace Id
          description: ID of the workspace this asset belongs to
        project_id:
          type: string
          format: uuid
          title: Project Id
          description: ID of the project this asset belongs to
        parent_id:
          type: string
          format: uuid
          title: Parent Id
          description: ID of the parent resource (directory or project)
        actions:
          anyOf:
            - type: integer
            - type: 'null'
          title: Actions
        comment_count:
          type: integer
          title: Comment Count
          description: Total number of visible comments on this asset, including replies
        stream_proxy:
          anyOf:
            - $ref: '#/components/schemas/ProxyDeliveryGetResponse'
            - $ref: '#/components/schemas/ProxyGetResponse'
            - type: 'null'
          title: Stream Proxy
        scrub_proxy:
          anyOf:
            - $ref: '#/components/schemas/ProxyDeliveryGetResponse'
            - $ref: '#/components/schemas/ProxyGetResponse'
            - type: 'null'
          title: Scrub Proxy
        audio_proxy:
          anyOf:
            - $ref: '#/components/schemas/ProxyDeliveryGetResponse'
            - $ref: '#/components/schemas/ProxyGetResponse'
            - type: 'null'
          title: Audio Proxy
        doc_proxy:
          anyOf:
            - $ref: '#/components/schemas/ProxyDeliveryGetResponse'
            - $ref: '#/components/schemas/ProxyGetResponse'
            - type: 'null'
          title: Doc Proxy
        scrub_preview:
          anyOf:
            - $ref: '#/components/schemas/PreviewDeliveryGetResponse'
            - $ref: '#/components/schemas/PreviewGetResponse'
            - type: 'null'
          title: Scrub Preview
        preview:
          anyOf:
            - $ref: '#/components/schemas/PreviewDeliveryGetResponse'
            - $ref: '#/components/schemas/PreviewGetResponse'
            - type: 'null'
          title: Preview
        created_by_user:
          anyOf:
            - $ref: '#/components/schemas/UserInfo'
            - type: 'null'
          description: User who created this asset
        created_by_user_id:
          type: string
          format: uuid
          title: Created By User Id
          description: ID of the user that created the asset
        client_performed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Client Performed At
          description: >-
            Server-recorded timestamp of the latest user action on this asset,
            flattened from the asset's current revision. NULL when no revision
            exists. Used by the desktop renderer to compare against a per-pin
            coverage cursor.
        version_stack_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Version Stack Id
          description: Version stack ID. NULL if not in a stack.
        version_number:
          anyOf:
            - type: integer
            - type: 'null'
          title: Version Number
          description: 1-indexed position in version stack. NULL if not in a stack.
        is_top_version:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Top Version
          description: TRUE for top version in stack. NULL if not in a stack.
        revision_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Revision Id
          description: ID of the revision created by this operation (set on rename/move)
        is_latest:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Latest
          description: Whether the revision is the overall latest (set on rename/move)
        created:
          type: string
          format: date-time
          title: Created
        updated:
          type: string
          format: date-time
          title: Updated
      type: object
      required:
        - id
        - type
        - name
        - size_bytes
        - mime_type
        - save_original
        - is_uploaded
        - user_id
        - workspace_id
        - project_id
        - parent_id
        - comment_count
        - created_by_user_id
        - created
        - updated
      title: AssetResponse
      description: API response schema for asset entity
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SymlinkTargetPathType:
      type: string
      enum:
        - relative
        - internal_absolute
        - external_absolute
      title: SymlinkTargetPathType
    ResourceType:
      type: string
      enum:
        - workspace
        - project
        - directory
        - asset
        - symlink
        - collection
      title: ResourceType
      description: |-
        Types of resources in the system hierarchy.

        - Python enum value (``.value``) is the lowercase wire format, e.g.
          ``"workspace"``. This is what crosses the JSON boundary.
        - Python enum name (``.name``) is the uppercase identifier used as the
          PostgreSQL ENUM literal, e.g. ``'WORKSPACE'`` — SQLAlchemy uses
          ``.name`` by default for ``sa.Enum`` columns, so no DB migration is
          needed when this pattern is adopted.

        Raw SQL comparisons against the ``resources.type`` column must use
        ``.name`` (not ``.value``) to match the PG ENUM literal.
    SymlinkResolutionStatus:
      type: string
      enum:
        - resolved
        - dangling
        - permission_denied
        - external
      title: SymlinkResolutionStatus
    AssetType:
      type: string
      enum:
        - video
        - image
        - audio
        - document
        - vector
        - other
      title: AssetType
    FeatureStateMapResponse:
      additionalProperties:
        $ref: '#/components/schemas/FeatureStateMapValueResponse'
      propertyNames:
        $ref: '#/components/schemas/FeatureType'
      type: object
      title: FeatureStateMapResponse
      description: API response feature states keyed by feature type.
    ProxyDeliveryGetResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Resource identifier
        url:
          type: string
          title: Url
          description: Presigned URL for upload or download
        url_expires_at:
          type: string
          format: date-time
          title: Url Expires At
          description: UTC datetime when the URL expires
        playback_mode:
          anyOf:
            - $ref: '#/components/schemas/AssetPlaybackMode'
            - type: 'null'
          description: >-
            How the returned proxy URL should be played. None means the URL is
            not stream playback media.
        size_bytes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Size Bytes
          description: >-
            Size of the proxy file in bytes. Used so proxy downloads track the
            proxy size, not the original.
      type: object
      required:
        - id
        - url
        - url_expires_at
      title: ProxyDeliveryGetResponse
      description: API response schema for in-app proxy playback URLs.
    ProxyGetResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
      type: object
      required:
        - id
      title: ProxyGetResponse
      description: API response schema for proxy information
    PreviewDeliveryGetResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Resource identifier
        url:
          type: string
          title: Url
          description: Presigned URL for upload or download
        url_expires_at:
          type: string
          format: date-time
          title: Url Expires At
          description: UTC datetime when the URL expires
        scrub_metadata:
          anyOf:
            - $ref: '#/components/schemas/PreviewScrubMetadata'
            - type: 'null'
          description: Metadata for scrub preview sprite sheet
      type: object
      required:
        - id
        - url
        - url_expires_at
      title: PreviewDeliveryGetResponse
      description: API response schema for in-app preview rendering URLs.
    PreviewGetResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
      type: object
      required:
        - id
      title: PreviewGetResponse
      description: API response schema for preview information
    UserInfo:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: User ID
        first_name:
          type: string
          title: First Name
          description: User's first name
        last_name:
          type: string
          title: Last Name
          description: User's last name
        email:
          type: string
          title: Email
          description: User's email address
        avatar_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Avatar Url
          description: User's avatar URL
      type: object
      required:
        - id
        - first_name
        - last_name
        - email
      title: UserInfo
      description: Lightweight user information for API responses
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    FeatureStateMapValueResponse:
      properties:
        state:
          $ref: '#/components/schemas/FeatureState'
        payload_out:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Payload Out
      type: object
      required:
        - state
        - payload_out
      title: FeatureStateMapValueResponse
      description: API response value inside a feature-state map.
    AssetPlaybackMode:
      type: string
      enum:
        - mp4
        - hls
      title: AssetPlaybackMode
    PreviewScrubMetadata:
      properties:
        frame_count:
          type: integer
          title: Frame Count
        width:
          type: integer
          title: Width
        height:
          type: integer
          title: Height
        frames_x:
          type: integer
          title: Frames X
        frames_y:
          type: integer
          title: Frames Y
        frame_width:
          type: integer
          title: Frame Width
        frame_height:
          type: integer
          title: Frame Height
      type: object
      required:
        - frame_count
        - width
        - height
        - frames_x
        - frames_y
        - frame_width
        - frame_height
      title: PreviewScrubMetadata
    FeatureState:
      type: string
      enum:
        - queued
        - processing
        - completed
        - failed
        - cancelled
        - na
      title: FeatureState
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT in Authorization header. 'Bearer ' prefix optional.
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Aspect API key (sk_...) in Authorization header. 'Bearer ' optional.

````