---
title: "Files - list uploaded files"
method: GET
path: "/api/v1/files"
tags: ["Files"]
---

# Files - list uploaded files

`GET /api/v1/files`

Returns paginated list of uploaded files.

## Query parameters

- `page` integer
- `limit` integer
- `status` 'pending' | 'confirmed' | 'expired'

## Response `200`

File list

- FileListResponse — Success envelope containing a paginated file list
  - `ok` true, required
  - `data` FileList, required — Paginated list of uploaded files with total count
    - `files` FileDetail[], required
      - `fileId` string, uuid, required — Unique file identifier used to reference this file in CAD operations
      - `filename` string, required — Original filename as provided during upload request
      - `contentType` string, required — MIME type of the file content
      - `bytes` integer, nullable, required — File size in bytes. Null while status is 'pending' (not yet uploaded).
      - `sha256` string, nullable, required — SHA-256 hex digest of the file content. Null if not provided during upload. Used for deduplication.
      - `status` 'pending' | 'confirmed' | 'expired', required — File lifecycle state: 'pending' (upload URL issued, awaiting PUT), 'confirmed' (upload verified and file is usable), 'expired' (upload URL expired before completion)
      - `createdAt` string, required — ISO 8601 timestamp when the upload was initiated
      - `confirmedAt` string, nullable, required — ISO 8601 timestamp when the upload was confirmed. Null if not yet confirmed.
      - `downloadUrl` string — Pre-signed download URL. Only present for confirmed files. Expires after 1 hour.
    - `page` integer, required
    - `limit` integer, required
    - `total` integer, required

## Changes

- **2026-04-30** `bef883f8a334` — 5 breaking, 17 info
  - response property `data/files/items/bytes` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/files/items/confirmedAt` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/files/items/sha256` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - the `data/files/items/createdAt` response's property type/format changed from `string`/`date-time` to `string`/`` for status `200`
  - …18 more
- **2026-04-17** `5eb4ed0f33c7` — 18 breaking, 4 warning, 4 info
  - the response property `data/files/items/bytes` became nullable for the status `200`
  - the response property `data/files/items/confirmedAt` became nullable for the status `200`
  - the response property `data/files/items/sha256` became nullable for the status `200`
  - the response property `data` became optional for the status `200`
  - …22 more

[Change history](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api/changes/api/v1/files/get.md)

---

[API](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api.md) · [All operations](https://skmtc.dev/bitbybit-dev/apis/bitbybit-cad-cloud-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bitbybit-dev/bitbybit-cad-cloud-api/revisions/1135d4473bc2/schema)
