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

# List Files

> Retrieve a paginated list of all files uploaded by the authenticated user. Supports filtering by status and namespace.

Retrieve a paginated list of all audio/video files you have uploaded. Supports filtering by status and namespace.

## Overview

Use this endpoint to get basic information on every file you have uploaded, including status, metadata, and namespace assignments. Supports pagination with `limit` and `offset` query parameters.

## Query Parameters

* `limit` (integer, default `50`): Maximum number of files to return (1-100)
* `offset` (integer, default `0`): Number of files to skip for pagination
* `status` (string): Filter by processing status (`processing`, `completed`, `failed`, `cancelled`)
* `namespace_id` (string): Filter by namespace ID. Only returns files belonging to this namespace. If not set, returns files from all namespaces.

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -G "https://api.vidnavigator.com/v1/files" \
    -H "X-API-Key: YOUR_API_KEY" \
    --data-urlencode "limit=25" \
    --data-urlencode "offset=0" \
    --data-urlencode "status=completed"
  ```

  ```bash cURL (filter by namespace) theme={null}
  curl -G "https://api.vidnavigator.com/v1/files" \
    -H "X-API-Key: YOUR_API_KEY" \
    --data-urlencode "namespace_id=64a1b2c3d4e5f6789abc0002"
  ```
</CodeGroup>

## Success Response

```json theme={null}
{
  "status": "success",
  "data": {
    "files": [
      {
        "id": "file_abc123",
        "name": "session.mp4",
        "size": 15728640,
        "type": "video/mp4",
        "duration": 330,
        "status": "completed",
        "created_at": "2024-01-15T10:00:00Z",
        "updated_at": "2024-01-15T10:00:00Z",
        "has_transcript": true,
        "namespace_ids": ["64a1b2c3d4e5f6789abc0001", "64a1b2c3d4e5f6789abc0002"],
        "namespaces": [
          { "id": "64a1b2c3d4e5f6789abc0001", "name": "default" },
          { "id": "64a1b2c3d4e5f6789abc0002", "name": "Client Calls" }
        ]
      }
    ],
    "total_count": 1,
    "limit": 25,
    "offset": 0,
    "has_more": false
  }
}
```


## OpenAPI

````yaml GET /files
openapi: 3.0.3
info:
  title: VidNavigator Developer API
  description: >-
    The VidNavigator Developer API provides programmatic access to video
    analysis, transcription, and search capabilities.


    ## Authentication

    All endpoints require API key authentication via the `X-API-Key` header:

    ```

    X-API-Key: YOUR_API_KEY

    ```


    ## Rate Limits

    Check the documentation for the rate limits for each endpoint.


    ## Error Handling

    The API uses standard HTTP status codes and returns error responses in JSON
    format:

    ```json

    {
      "status": "error",
      "error": "error_type",
      "message": "Human readable error message"
    }

    ```
  version: 1.0.0
  contact:
    name: VidNavigator Support
    url: https://vidnavigator.com/support
    email: support@vidnavigator.com
  license:
    name: Proprietary
    url: https://vidnavigator.com/terms
servers:
  - url: https://api.vidnavigator.com/v1
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Transcripts
    description: Extract transcripts from online videos
  - name: TikTok
    description: Scrape TikTok profile metadata and per-video stats
  - name: Files
    description: Manage uploaded audio/video files
  - name: Analysis
    description: AI-powered content analysis
  - name: Extraction
    description: >-
      Extract structured data from video and file transcripts using custom
      schemas
  - name: Namespaces
    description: Organize uploaded files into namespaces (folders)
  - name: Search
    description: Search videos and files using AI
  - name: System
    description: System health and information
  - name: Tweet Analysis
    description: Extract structured claims and metadata from X/Twitter tweets
paths:
  /files:
    get:
      tags:
        - Files
      summary: Get list of uploaded files
      description: >-
        Retrieve a paginated list of all files uploaded by the authenticated
        user. Supports filtering by status and namespace.
      operationId: getFiles
      parameters:
        - name: limit
          in: query
          description: Maximum number of files to return
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
        - name: offset
          in: query
          description: Number of files to skip for pagination
          schema:
            type: integer
            minimum: 0
            default: 0
        - name: status
          in: query
          description: Filter by file status
          schema:
            type: string
            enum:
              - processing
              - completed
              - failed
              - cancelled
        - name: namespace_id
          in: query
          description: >-
            Filter by namespace ID. Only returns files belonging to this
            namespace. If not set, returns files from all namespaces.
          schema:
            type: string
      responses:
        '200':
          description: Files retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  data:
                    type: object
                    properties:
                      files:
                        type: array
                        items:
                          $ref: '#/components/schemas/FileInfo'
                      total_count:
                        type: integer
                      limit:
                        type: integer
                      offset:
                        type: integer
                      has_more:
                        type: boolean
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    FileInfo:
      type: object
      properties:
        id:
          type: string
          description: Unique file identifier
        name:
          type: string
          description: File name
        size:
          type: integer
          description: File size in bytes
        type:
          type: string
          description: MIME type
        duration:
          type: number
          description: Duration in seconds
        status:
          type: string
          enum:
            - pending
            - processing
            - completed
            - failed
            - cancelled
          description: Processing status
        created_at:
          type: string
          format: date-time
          description: Upload timestamp
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp
        original_file_date:
          type: string
          format: date-time
          description: Original file creation date
        has_transcript:
          type: boolean
          description: Whether transcript is available
        error_message:
          type: string
          description: Error message if processing failed
        namespace_ids:
          type: array
          items:
            type: string
          description: IDs of the namespaces this file belongs to
        namespaces:
          type: array
          items:
            $ref: '#/components/schemas/NamespaceRef'
          description: Resolved namespaces this file belongs to (with names)
    NamespaceRef:
      type: object
      description: Resolved namespace reference with ID and display name
      properties:
        id:
          type: string
          description: Namespace identifier
        name:
          type: string
          description: Namespace display name
  responses:
    BadRequest:
      description: Bad request - invalid parameters
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: string
              message:
                type: string
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: string
                enum:
                  - internal_server_error
              message:
                type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key authentication. Include your VidNavigator API key in the
        X-API-Key header.

````