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

# Local Upload

Kumo allows you to create tables by uploading **Parquet** or **CSV** files directly from your local machine, or from a cloud storage that your local machine can access (S3, GCS, Azure Blob/ADLS). This method **bypasses connector setup** and goes straight to table creation.

## Uploading a Local File

You can upload files of up to 1GB directly from the Kumo Web Interface.

1. Navigate to **Tables** in the side menu and click **Add Table**.

   <img src="https://mintcdn.com/kumoai/cdICHI76UN3kpKeN/images/Screenshot2025-06-30at10.29.01AM.png?fit=max&auto=format&n=cdICHI76UN3kpKeN&q=85&s=0b306ca3235ffcf8ebe6872ff9359eb2" alt="Screenshot2025 06 30at10 29 01AM Pn" width="3012" height="710" data-path="images/Screenshot2025-06-30at10.29.01AM.png" />
2. Select **Local Upload** from the **Source** drop-down menu.
3. Drag and drop your file, or click **Browse** to select a file from your computer.

   <img src="https://mintcdn.com/kumoai/ZKZPoQzuJb9d_Mqc/images/Screenshot2025-06-25at9.53.26AM.png?fit=max&auto=format&n=ZKZPoQzuJb9d_Mqc&q=85&s=8c387a1d182fee2a64bfa92f8dca47d7" alt="Screenshot 2025-06-25 at 9.53.26 AM.png" width="3024" height="844" data-path="images/Screenshot2025-06-25at9.53.26AM.png" />

<Warning>
  **Note:** CSV files must contain more than **one column**.
</Warning>

4. Click **Upload** to start the file upload process.

   <img src="https://mintcdn.com/kumoai/cdICHI76UN3kpKeN/images/Screenshot2025-06-30at10.31.32AM.png?fit=max&auto=format&n=cdICHI76UN3kpKeN&q=85&s=fd83ed5d8682c720530e650501d94fc1" alt="Screenshot2025 06 30at10 31 32AM Pn" width="3024" height="502" data-path="images/Screenshot2025-06-30at10.31.32AM.png" />
5. Once the upload is complete, Kumo will display the table's columns and preprocessing options.

   <img src="https://mintcdn.com/kumoai/cdICHI76UN3kpKeN/images/Screenshot2025-06-30at10.32.16AM.png?fit=max&auto=format&n=cdICHI76UN3kpKeN&q=85&s=e86bd5790044759ded355fd5b42ce79a" alt="Screenshot2025 06 30at10 32 16AM Pn" width="3016" height="1136" data-path="images/Screenshot2025-06-30at10.32.16AM.png" />
6. Click **Add Table** to finalize your table.

   <img src="https://mintcdn.com/kumoai/cdICHI76UN3kpKeN/images/Screenshot2025-06-30at10.32.24AM.png?fit=max&auto=format&n=cdICHI76UN3kpKeN&q=85&s=6f517115330998b02b71a5fba0d3f246" alt="Screenshot2025 06 30at10 32 24AM Pn" width="3024" height="926" data-path="images/Screenshot2025-06-30at10.32.24AM.png" />

## Upload via SDK (FileUploadConnector)

Use the SDK when you want to automate uploads, handle datasets up to 300GB in size, or upload from cloud storage (S3, GCS, Azure Blob/ADLS).

### Quick examples

#### Local file system (single file)

```python theme={null}
import kumoai

# Create a Parquet upload connector and push a table
conn = kumoai.FileUploadConnector(file_type="parquet")
conn.upload(name="users", path="/data/users.parquet")

# Confirm the table is available
assert conn.has_table("users")

# Clean up if needed
conn.delete(name="users")
```

#### Partitioned S3 directory (sharded dataset)

```python theme={null}
import kumoai

# Create a CSV upload connector and push a partitioned dataset from S3.
# The path should point at a directory/prefix containing many CSV shards, e.g.:
# s3://my-bucket/events/part-0000.csv
# s3://my-bucket/events/part-0001.csv
# s3://my-bucket/events/part-0002.csv
conn = kumoai.FileUploadConnector(file_type="csv")
conn.upload(name="events", path="s3://my-bucket/events/")

# Confirm the table is available
assert conn.has_table("events")
```

### Capabilities

* Accepts Parquet or CSV; choose the format when constructing the connector.
* Supports **single-file uploads up to 1GB**.
* Supports **sharded Parquet/CSV directory uploads up to 300GB** (local paths or cloud prefixes).
* Remote paths supported: `s3://`, `gs://`, `abfs://`, `abfss://`, `az://`.
* Directory uploads are treated as a dataset: Kumo discovers shards under the prefix and ingests them as one logical table.
* All shards within a direction must have the same schema (aligned columns and types).
* Column names must only contain alphanumeric characters (no spaces or punctuation).
* Tables are addressable via `connector["table_name"]` once uploaded.

See the full SDK reference for options and behaviors: [FileUploadConnector docs](/sdk/kumoai-connector#fileuploadconnector).
