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

# List files

> Lists files in a workspace with cursor-based pagination. Use the `after` parameter with the `nextCursor` value from the response to fetch subsequent pages.



## OpenAPI

````yaml /api-reference/openapi.json get /workspaces/{workspaceSlug}/files/
openapi: 3.1.0
info:
  title: Nvisy API
  summary: Document processing and annotation platform
  description: >-
    Nvisy provides intelligent document processing, annotation, and analysis
    capabilities. This API enables document upload, OCR processing, embedding
    generation, and semantic search across your document collections.
  termsOfService: https://nvisy.com/legal/terms-of-service
  contact:
    name: Nvisy Support
    url: https://nvisy.com
    email: hello@nvisy.com
  license:
    name: Proprietary
    url: https://nvisy.com/license
  version: 0.1.0
servers: []
security: []
tags:
  - name: Accounts
    description: Account management and profile operations
  - name: Authentication
    description: Login, signup, and token management
  - name: Workspaces
    description: Workspace creation and management
  - name: Files
    description: File upload, download, and management
  - name: Members
    description: Workspace member management
  - name: Invites
    description: Workspace invitation handling
  - name: API Tokens
    description: API token management
  - name: Connections
    description: External provider connections
  - name: Pipelines
    description: Redaction pipeline configuration
  - name: Pipeline Runs
    description: Pipeline run execution and review
  - name: Policies
    description: Redaction policy configuration
  - name: Webhooks
    description: Webhook configuration
  - name: Notifications
    description: Account notification management
  - name: Health
    description: Service health checks
paths:
  /workspaces/{workspaceSlug}/files/:
    get:
      tags:
        - Files
      summary: List files
      description: >-
        Lists files in a workspace with cursor-based pagination. Use the `after`
        parameter with the `nextCursor` value from the response to fetch
        subsequent pages.
      parameters:
        - in: path
          name: workspaceSlug
          description: URL-safe workspace identifier.
          required: true
          schema:
            description: URL-safe workspace identifier.
            type: string
          style: simple
        - in: query
          name: formats
          description: |-
            Filter by file extension. Each entry expands to its format's full
            extension set (so `jpg` also matches `jpeg`).
          schema:
            description: |-
              Filter by file extension. Each entry expands to its format's full
              extension set (so `jpg` also matches `jpeg`).
            type: array
            items:
              $ref: '#/components/schemas/FormatToken'
          style: form
        - in: query
          name: modality
          description: Filter by modality (`text`, `tabular`, `image`, `audio`).
          schema:
            description: Filter by modality (`text`, `tabular`, `image`, `audio`).
            type: array
            items:
              $ref: '#/components/schemas/ModalityToken'
          style: form
        - in: query
          name: search
          description: Search by file name (case-insensitive, partial match).
          schema:
            description: Search by file name (case-insensitive, partial match).
            type: string
          style: form
        - in: query
          name: after
          description: |-
            Cursor pointing to the last item of the previous page.
            Obtain this from the `nextCursor` field in the response.
          schema:
            description: |-
              Cursor pointing to the last item of the previous page.
              Obtain this from the `nextCursor` field in the response.
            type: string
          style: form
        - in: query
          name: limit
          description: 'The maximum number of records to return (1-100, default: 20).'
          schema:
            description: 'The maximum number of records to return (1-100, default: 20).'
            type: integer
            format: uint32
            maximum: 100
            minimum: 1
          style: form
      responses:
        '200':
          description: >-
            Generic paginated response wrapper.


            Provides a consistent structure for all paginated API responses with

            cursor-based pagination support. When `next_cursor` is present,
            there

            are more items to fetch.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilePage'
        '401':
          description: >-
            HTTP error response representation with security-conscious design.


            This struct contains all the information needed to serialize an
            error

            response, including the error name, message, HTTP status code,
            resource

            information, and user-friendly messages.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            HTTP error response representation with security-conscious design.


            This struct contains all the information needed to serialize an
            error

            response, including the error name, message, HTTP status code,
            resource

            information, and user-friendly messages.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    FormatToken:
      description: A supported file extension.
      type: string
      enum:
        - csv
        - docx
        - htm
        - html
        - jpeg
        - jpg
        - json
        - log
        - pdf
        - png
        - rtf
        - tif
        - tiff
        - txt
        - wav
        - xlsx
        - xml
    ModalityToken:
      description: A supported document modality.
      type: string
      enum:
        - audio
        - image
        - tabular
        - text
    FilePage:
      description: |-
        Generic paginated response wrapper.

        Provides a consistent structure for all paginated API responses with
        cursor-based pagination support. When `next_cursor` is present, there
        are more items to fetch.
      type: object
      properties:
        items:
          description: Items in this page.
          type: array
          items:
            $ref: '#/components/schemas/File'
        nextCursor:
          description: Cursor to fetch the next page. Present only when more items exist.
          type: string
        total:
          description: Total count of items matching the query (if requested).
          type: integer
          format: int64
      required:
        - items
    ErrorResponse:
      description: |-
        HTTP error response representation with security-conscious design.

        This struct contains all the information needed to serialize an error
        response, including the error name, message, HTTP status code, resource
        information, and user-friendly messages.
      type: object
      properties:
        message:
          description: User-friendly error message safe for client display
          type: string
        name:
          description: The error name/type identifier
          type: string
        resource:
          description: The resource that the error relates to (optional, set by handler)
          type: string
        suggestion:
          description: Helpful suggestion for resolving the error (optional)
          type: string
        validation:
          description: Validation error details for field-specific errors
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorDetail'
      required:
        - name
        - message
    File:
      description: Represents a file in responses.
      type: object
      properties:
        createdAt:
          description: Creation timestamp.
          type: string
          format: date-time
        displayName:
          description: Display name.
          type: string
        fileExtension:
          description: File extension (without dot).
          type: string
        fileKind:
          description: The file's role (original, redacted, audit).
          allOf:
            - $ref: '#/components/schemas/FileKind'
        fileSize:
          description: File size in bytes.
          type: integer
          format: int64
        id:
          description: Unique file identifier.
          type: string
          format: uuid
        originalFilename:
          description: Original filename when uploaded.
          type: string
        parentId:
          description: Parent file ID if this is a newer version.
          type: string
          format: uuid
        updatedAt:
          description: Last update timestamp.
          type: string
          format: date-time
        uploadedBy:
          description: Account that uploaded/created the file.
          allOf:
            - $ref: '#/components/schemas/AccountRef'
        versionNumber:
          description: Version number (1 for original, higher for newer versions).
          type: integer
          format: int32
        workspaceSlug:
          description: Handle of the workspace this file belongs to.
          allOf:
            - $ref: '#/components/schemas/Handle'
      required:
        - id
        - workspaceSlug
        - displayName
        - originalFilename
        - fileExtension
        - fileSize
        - fileKind
        - uploadedBy
        - versionNumber
        - createdAt
        - updatedAt
    ValidationErrorDetail:
      description: Validation error details for field-specific errors.
      type: object
      properties:
        code:
          description: Error code for the validation failure
          type: string
        field:
          description: Field name that failed validation
          type: string
        message:
          description: Human-readable error message
          type: string
        params:
          description: Additional parameters related to the validation error
          type: object
          additionalProperties: true
      required:
        - field
        - code
        - message
    FileKind:
      description: >-
        The role a file plays, which drives its data-retention scope and whether
        it

        is a user-facing document.


        Corresponds to the `FILE_KIND` PostgreSQL enum. Orthogonal to the
        `parent_id`

        version chain (lineage); import origin (connection and remote key) lives
        in

        the `workspace_file_imports` satellite.
      oneOf:
        - description: Source document, uploaded or imported.
          type: string
          const: original
        - description: Redacted output produced by a pipeline.
          type: string
          const: redacted
        - description: Engine analysis blob, not shown in file lists.
          type: string
          const: audit
    AccountRef:
      description: >-
        Public reference to the account behind a resource — whoever created it,

        uploaded it, triggered it, or performed it.


        Reused across resource responses so an account is always presented the
        same

        way: a handle plus an optional avatar.
      type: object
      properties:
        avatarUrl:
          description: Serve path of the account's avatar, when set.
          type: string
        displayName:
          description: Human-readable display name, when set.
          type: string
        username:
          description: Handle of the account.
          allOf:
            - $ref: '#/components/schemas/Handle'
      required:
        - username
    Handle:
      description: >-
        Lowercase, dash-separated identifier used in URLs and as account
        handles.
      type: string
      maxLength: 32
      minLength: 3
      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$

````