--- 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/)