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

# Upload Data

> Send RHEED videos, images, and XPS files for automated analysis

Use the `upload()` method to send files to Atomscale. Analysis starts as soon as data arrives, and results appear in the catalogue once the pipeline finishes.

## Choose files

Collect the local file paths you want to upload. Mixing file types is fine.

```python theme={null}
files = [
    "/data/growths/2025-02-10/RHEED-stationary.mp4",
    "/data/growths/2025-02-10/RHEED-rotating.imm",
]
```

## Supported formats

| Data Type   | Extensions              |
| ----------- | ----------------------- |
| RHEED Video | `.mp4`, `.avi`, `.imm`  |
| RHEED Image | `.png`, `.jpg`, `.tiff` |
| XPS         | `.vms`, `.xml`          |

## Start the upload

```python theme={null}
from atomscale import Client

client = Client(api_key="YOUR_API_KEY")
client.upload(files=files)
```

Each file streams to the API in chunks. The method displays a progress bar for each file.

## Upload from file objects

You can also pass open file handles instead of paths:

```python theme={null}
with open("/data/rheed.mp4", "rb") as f:
    client.upload(files=[f])
```

## Mute progress bars

For non-interactive environments, pass `mute_bars=True` when constructing the client:

```python theme={null}
client = Client(api_key="YOUR_API_KEY", mute_bars=True)
client.upload(files=files)
```

## Check status in the web app

Uploads immediately appear in the Atomscale UI. Analysis runs in the background, and results land in the catalogue once the pipeline finishes.

## Next steps

<CardGroup cols={2}>
  <Card title="Search Data" icon="magnifying-glass" href="/sdk/search-data">
    Find your uploaded items in the catalogue.
  </Card>

  <Card title="Inspect Results" icon="chart-line" href="/sdk/inspect-results">
    Work with analysis outputs and plots.
  </Card>
</CardGroup>
