---
title: "Upload Object"
url: https://docs.catalyst.zoho.com/en/api/code-reference/cloud-scale/stratus/upload-object/
description: "This API enables you to perform upload operations on an object stored in Stratus."
last_updated: 2026-08-28T06:26:16Z
service: Cloud Scale
type: api
---
# Upload Object
### Description
This API allows you to upload the required [object](https://docs.catalyst.zoho.com/en/cloud-scale/help/stratus/objects/introduction/) to a bucket. The Bucket is referred by its [unique bucket name](https://docs.catalyst.zoho.com/en/cloud-scale/help/stratus/buckets/name-bucket/#ideal-practices-to-name-a-bucket), and the required object is referred using its name.
### Request Details
#### Request URL
`PUT` {bucket_name}.zohostratus.com/{key}
The above domain name will change with respect to the data center:
| DC |
Domain Name |
| `US` |
**zohostratus.com** |
| `EU` |
**zohostratus.eu** |
| `IN` |
**zohostratus.in** |
| `AU` |
**zohostratus.com.au** |
| `CA` |
**zohostratus.ca** |
| `SA` |
**zohostratus.sa** |
| `JP` |
**zohostratus.jp** |
> **Note:** If the API is used in the development environment, then the domain will be structured in this manner: https://-development.zohostratus.com
#### Path Parameters
- **project_id** (Numerical): The [unique ID](https://docs.catalyst.zoho.com/en/getting-started/set-up-a-catalyst-project/general-settings/) of the project
- **bucket_name** (String): The [name of the bucket](https://docs.catalyst.zoho.com/en/cloud-scale/help/stratus/buckets/name-bucket/#ideal-practices-to-name-a-bucket)
- **key** (String): The name of the object that needs to be uploaded
> **Note:** The following points need to be kept in mind when providing value for `key`:
* Maximum length of the key (including path name and object name) should be supported to 255 characters only.
* key cannot contain the following characters including space: double quote, both angular brackets, hashtag, backward slash and pipe symbol.
#### Query Parameters
- **version_id** (String, optional): This is an ID generated by Stratus when Versioning is enabled. You can use `version_id` to refer to the required object.
#### Request Headers
**Authorization:** Zoho-oauthtoken {oauth_token}
**Optional Headers**
**content-type:** application/json
**content-length:** Raw length of the object being uploaded in bytes.
**compress:** Whether to compress the object while storing. By default, compression is always done.
**cache-control:** Use this header to specify the browser caching policies.
**overwrite:** Specify whether you are required to overwrite a source. This is supported only for the objects of non-versioned buckets.
**expires-after:** This is an option you can use to set Time-to-Live (TTL) in seconds for an object. Value should be greater than or equal to 60 seconds.
**x-user-meta:{1stKey}={1stValue};{2ndKey}={2ndValue};..{NthKey}={NthValue};:** [Metadata](https://docs.catalyst.zoho.com/en/cloud-scale/help/stratus/objects/introduction/#metadata) for the object. Each key-value pair is separated by semi-colons are provided as given in the previous column. **2047 characters** is the maximum permitted length for this header.
#### Scope
Stratus.fileop.CREATE
### Response Details
On successful execution, the response will contain the success message, and the object will be uploaded.
#### Possible Failure Responses
**404** due to object/bucket not found:
**Failure Response**
```json
{
"status": 404,
"code": "bucket_not_found",
"message": "no such bucket exists"
}
```
**403** Unauthorized. When you do not have the required permissions to perform the upload operation
**Failure Response**
```json
{
"status": 403,
"code": "access_forbidden",
"message": "request denied by resource access policy"
}
```
**400** Bad Request. Invalid Filename
**Failure Response**
```json
{
"status": 400,
"code": "key_name_invalid",
"message": "key name does not support one or more character(s)"
}
```
**409** Conflict. An object with the same name already exists
**Failure Response**
```json
{
"status": 409,
"code": "key_already_exists",
"message": "key is already associated with another object in the bucket"
}
```
**Sample Request**
```bash
curl -X PUT https://{bucket_name}.zohostratus.com/{key}
-H "Authorization: Zoho-oauthtoken 1000.910*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*16.2f*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*57"
```
**Sample Response**
```bash
200 OK
```
### SDK Documentation
* [Upload Object - Java SDK](https://docs.catalyst.zoho.com/en/sdk/java/v1/cloud-scale/stratus/upload-object/)
* [Upload Object - Node.js SDK](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/cloud-scale/stratus/upload-object/)
* [UploadObject - Python SDK](https://docs.catalyst.zoho.com/en/sdk/python/v1/cloud-scale/stratus/upload-object/)
* [Upload - Web SDK](https://docs.catalyst.zoho.com/en/sdk/web/v4/cloud-scale/stratus/overview/)
* [Upload - iOS SDK](https://docs.catalyst.zoho.com/en/sdk/ios/v2/cloud-scale/stratus/upload-object/)
* [Upload - Android SDK](https://docs.catalyst.zoho.com/en/sdk/android/v2/cloud-scale/stratus/upload-object/)
* [Upload - Flutter SDK](https://docs.catalyst.zoho.com/en/sdk/flutter/v2/cloud-scale/stratus/upload-object/)