> For the complete documentation index, see [llms.txt](https://docs.unitlab.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unitlab.ai/documentation/data/data-upload.md).

# Data upload

A successful transfer is only the beginning of ingestion. Unitlab must recognize, process, and expose the resource before it is ready for curation or work.

### Before you make the change

* Confirm current file-family support and destination scope.
* Choose a small representative batch first.
* Remove secrets and regulated values from filenames and operational notes.

### Follow the interface

#### Upload to Data Space for reusable source data

![Data Space Assets page with the New Folder menu open](https://292810646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGjVLUz4wthGkGlRKM6rM%2Fuploads%2FkaZggvW6dujbqKfqeO9r%2Fdata-space-create-menu.png?alt=media\&token=f486bf59-dc3b-4e26-8758-7b82c4ccd03d)

*From Data Space › Assets, open New Folder and choose Upload Data. The same menu also creates folders, connects cloud folders, and starts Auto-Groups.*

Use this route when the files should remain durable source resources that can be organized, curated, versioned in datasets, and reused across projects.

#### Upload inside a project for project-scoped work

![Project Data upload modal with Local, CLI, SDK, and Storage options](https://292810646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGjVLUz4wthGkGlRKM6rM%2Fuploads%2FYIMKhOzBn8nrF0VZAPxY%2Fproject-upload-modal.png?alt=media\&token=3d793031-28d6-4529-bf7f-bfe87b2e98b8)

*From Project › Datasets, choose Upload to open the project uploader. Local, CLI, SDK, and Storage are distinct ingestion surfaces for the same project boundary.*

Use project upload only when the source belongs to that project’s operating context. Use Attach when the content already exists as an approved dataset or source that should retain its reusable lineage.

#### Qualify the processed result

![Data Space folders after ingestion](https://292810646-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGjVLUz4wthGkGlRKM6rM%2Fuploads%2F2KQcwfm4EbhGeUaipbJa%2Fassets-folders.png?alt=media\&token=3685bc54-6204-4a4e-a918-84c798aac689)

*After transfer and server-side processing, inspect the destination folder, file family, item count, representative viewers, and failed rows before downstream use.*

### Understand the product behavior

Data can be uploaded into the Asset library or directly to a Project. The SDK supports directories containing a mix of:

* images;
* video;
* audio;
* text;
* PDF documents;
* DICOM;
* NIfTI;
* NRRD.

A project upload creates one Batch Queue. The SDK exposes processing counts for total, completed, processing, and failed items. Completion means no items remain in processing; it does not imply that every item succeeded, so individual failures still need to be checked.

Medical uploads include a finalization step that groups related files into the user-facing medical volume before the data enters the project workflow.

### Common recognized file families

Current file detection includes:

| Family   | Common recognized extensions             |
| -------- | ---------------------------------------- |
| Image    | JPG, JPEG, PNG, GIF, WebP, BMP, ICO, SVG |
| Video    | MP4, AVI, MOV, WebM, MKV, M4V, WMV, FLV  |
| Audio    | MP3, WAV, OGG, AAC, FLAC, M4A            |
| Text     | TXT                                      |
| Medical  | DCM, NII, NII.GZ, NRRD                   |
| Document | PDF                                      |

The upload experience uses file detection to show previews and warnings, then confirms the saved family during ingestion. Unsupported files should appear as an explicit unsupported state rather than being forced into the wrong editor.

### Upload and qualify a batch

{% stepper %}
{% step %}

#### 1. Choose the destination

Open the intended Data Space folder or approved project upload entry point.
{% endstep %}

{% step %}

#### 2. Select the exact files

Confirm family, size, and expected item count before starting the transfer.
{% endstep %}

{% step %}

#### 3. Wait for processing

Separate transfer completion from server-side recognition and processing.
{% endstep %}

{% step %}

#### 4. Inspect the result

Open representative items and review type, metadata, dimensions, duration, status, and invalid state.
{% endstep %}

{% step %}

#### 5. Resolve exceptions

Use Batch Queue and row activity to identify failed or incomplete processing before continuing.
{% endstep %}
{% endstepper %}

### Decisions that affect production

| Decision        | Production guidance                                                                                                      |
| --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Where to upload | Use Data Space for durable reusable source; use project upload only when the source belongs to that operational context. |
| Batch size      | Prefer controlled batches that make failures attributable and recoverable.                                               |
| Ready state     | Do not treat a transferred file as usable until it opens correctly and processing is complete.                           |

### Continue the operating flow

* Organize the batch in Data folders.
* Add business context with metadata and tags.
* Create a dataset version only after validation.
