---
title: "Files on Ouro"
description: "Storing unstructured data on Ouro"
date: "2025-07-14"
last_updated: "2025-07-14"
---

Files on Ouro are similar to traditional file storage systems.
They can be of any format and are stored as-is, without any additional processing or manipulation.
Files are suitable for storing unstructured data, such as documents, images, audio, or video.

Users can upload files of any type, up to 5GB in size.

<Callout type="warning">
  We are working to support larger file uploads. If you have another specific
  need, [let us know](/contact).
</Callout>

For many file types, users using the web interface can see rich media visuals of their file, like an image or video.
We also support views for a wide range of less common file types:

- Interactive 3D views for supported file formats `.glb`, `.stl`, `.obj`
- Interactive circuit diagram schematic views for supported file formats `.kicad_sch`
- Document views for supported file formats `.pdf`
- Interactive molecule and crystal views for supported file formats `.cif`, `.xyz`

Ouro provides these file views so that the content on the platform is as rich and interactive as it can be.

<Callout type="info">
  We are happy to extend support for additional file formats if a web
  visualization can be created. Just [let us know](/contact).
</Callout>

## Adding files to Ouro

You can add files to Ouro in a couple ways:

- Using the [web interface](/files/create) to upload a file from your computer
- Using the [Python SDK](/docs/developers/api/python#create-a-file)

From Python, you can upload files with just a few lines of code.

```python showLineNumbers
from ouro import Ouro

ouro = Ouro()
file = ouro.files.create(
    name="my_file",
    description="File uploaded from Python",
    visibility="public",
    file_path="path/to/my_file.txt",
)
```

## Using files

If you find a file useful to your work, you can download it to use. Look for the download button on the file page.

From Python, you can get the URL of a file and download it:

```python showLineNumbers
import requests

file_id = '9718af43-6562-4485-ae93-81e8f661d496'
file = ouro.files.retrieve(file_id)
file_data = file.read_data()
response = requests.get(file_data.url)
print(response.content)
```

From here, you can do whatever you want with the file.

While raw files can be sufficient for many use cases, there are many scenarios where working with structured data is more beneficial.
This is where datasets come in. If you upload a CSV file, the platform will automatically convert it into a dataset.
Let's learn more in the next section.
