---
title: "Upload Object Store Files"
description: "Upload files to the Object Store in QC Cloud through a request with the QC API."
canonical: https://www.quantconnect.com/docs/v2/cloud-platform/api-reference/object-store-management/upload-object-store-files
markdown: https://www.quantconnect.com/docs/v2/cloud-platform/api-reference/object-store-management/upload-object-store-files.md
language: python
source: https://github.com/QuantConnect/Documentation/tree/master/01%20Cloud%20Platform/99%20API%20Reference/09%20Object%20Store%20Management/01%20Upload%20Object%20Store%20Files
modified: 2026-10-28
index: https://www.quantconnect.com/llms.txt
---

# Upload Object Store Files

[Documentation](https://www.quantconnect.com/docs/v2.md) > [Cloud Platform](https://www.quantconnect.com/docs/v2/cloud-platform.md) > [API Reference](https://www.quantconnect.com/docs/v2/cloud-platform/api-reference.md) > [Object Store Management](https://www.quantconnect.com/docs/v2/cloud-platform/api-reference/object-store-management.md) > Upload Object Store Files

> Code examples are shown in Python. Append `?lang=csharp` to this URL for the C# version of this page.

## Introduction

Upload files to the Object Store.

## Request

Upload files to the Object Store. The `/object/set` API accepts requests in the following format:

The `/object/set` API requires a file request in the following format:

| `ObjectStoreBinaryFile` Model - Represents a binary file we we'd like to upload the file to upload to the Object Store. |  |
| --- | --- |
| organizationId | `string required example: 5cad178b20a1d52567b534553413b691` Orgainization ID. |
| key | `string required example: key1` Unique key to access the object in Object Store. |
| objectData | `binary required` Object data to be stored. |
| Example | `{ "organizationId": "5cad178b20a1d52567b534553413b691", "key": "key1", "objectData": b"Hello, world!" }` |

## Responses

The `/object/set` API provides a response in the following format:

### 200 Success

| `RestResponse` Model - Base API response class for the QuantConnect API. |  |
| --- | --- |
| success | `boolean` Indicate if the API request was successful. |
| errors | `string Array` List of errors with the API call. |
| Example | `{ "success": true, "errors": [ "string" ] }` |

### 401 Authentication Error

| `UnauthorizedError` Model - Unauthorized response from the API. Key is missing, invalid, or timestamp is too old for hash. |  |
| --- | --- |
| www_authenticate | `string` Header |

## Examples

The following example demonstates uploading, getting, deleting, and listing Object Store objects through the cloud API.

```
from base64 import b64encode
from hashlib import sha256
from time import time
from requests import get, post
BASE_URL = 'https://www.quantconnect.com/api/v2/'

# You need to replace these with your actual credentials.
# You can request your credentials at https://www.quantconnect.com/settings/
# You can find our organization ID at https://www.quantconnect.com/organization/
USER_ID = 0
API_TOKEN = '____'
ORGANIZATION_ID = '____'

def get_headers():
    # Get timestamp
    timestamp = f'{int(time())}'
    time_stamped_token = f'{API_TOKEN}:{timestamp}'.encode('utf-8')

    # Get hased API token
    hashed_token = sha256(time_stamped_token).hexdigest()
    authentication = f'{USER_ID}:{hashed_token}'.encode('utf-8')
    authentication = b64encode(authentication).decode('ascii')

    # Create headers dictionary.
    return {
        'Authorization': f'Basic {authentication}',
        'Timestamp': timestamp
    }

# Authenticate to verify credentials
response = post(f'{BASE_URL}/authenticate', headers = get_headers())
print(response.json())

# --------------------

# The key of the object wishes to manipulate
key = "..."

### Upload Object Store File
# Send a POST request to the /object/set endpoint to upload a file
response = post(f'{BASE_URL}/object/set', headers=get_headers(),
                data={"organizationId": ORGANIZATION_ID, "key": key},  # Organization ID and key for the object
                files={"objectData": b"Hello, world!"})  # File content as bytes
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the result
if result['success']:
    print("Object Store File Uploaded Successfully:")
    print(result)

### Get Object Store Metadata
# Prepare data payload to get object metadata
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "key": key  # Key of the object to get metadata for
}
# Send a POST request to the /object/properties endpoint to get metadata
response = post(f'{BASE_URL}/object/properties', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the metadata
if result['success']:
    print("Object Store Metadata:")
    print(result)

### Get Object Store File
# Prepare data payload to retrieve the object
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "keys": [key]  # List of keys to retrieve (single key in this case)
}
# Send a POST request to the /object/get endpoint to get the object
response = post(f'{BASE_URL}/object/get', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the file content
if result['success']:
    print("Object Store File Content:")
    print(result)

### Delete Object Store File
# Prepare data payload to delete the object
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "key": key  # Key of the object to delete
}
# Send a POST request to the /object/delete endpoint to delete the object
response = post(f'{BASE_URL}/object/delete', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the result
if result['success']:
    print("Object Store File Deleted Successfully:")
    print(result)

### List Object Store Files
# Define an empty path to list all objects (replace with specific path if needed)
path = ""
# Prepare data payload to list objects
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "path": path  # Path to list objects from
}
# Send a POST request to the /object/list endpoint to list objects
response = post(f'{BASE_URL}/object/list', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the list
if result['success']:
    print("List of Object Store Files:")
    print(result)
```
