All Products
Search
Document Center

Object Storage Service:Request fees

Last Updated:Nov 05, 2025

All operations pertaining to accessing and managing Object Storage Service (OSS) resources, whether conducted over the internal network or the Internet, whether executed through API calls, OSS SDKs, the OSS console, ossutil, or ossbrowser, and irrespective of whether public-read or private objects are accessed, are fundamentally based on RESTful APIs. You are charged request fees based on the actual number of API calls. If your business application requires access to Cold Archive or Deep Cold Archive objects, you must restore these objects before accessing. In this case, you are also charged data retrieval fees.

Unit price

This topic describes only the billable items and billing methods. For information about the billable items and pricing details, see OSS Fees.

Billable item

You are charged for requests with HTTP status codes 2xx and 3xx returned, and not charged for requests with HTTP status codes 4xx and 5xx returned.

PUT requests

Item

Billing code

Billing rule

PUT requests

PutRequest

Charged based on the number of PUT requests.

PUT requests include requests initiated to upload, copy, or delete objects. The following table lists the specific API requests for PUT operations.

PUT requests

Request

Operations

PutBucket

Create an OSS bucket.

GetBucket (ListObject) or GetBucketV2 (ListObjectsV2)

Lists all objects in a bucket.

PutBucketACL

Configures an access control list (ACL) for a bucket.

PutBucketInventory

Configures inventories for a bucket.

DeleteBucketInventory

Deletes specific inventories that are configured for a bucket.

PutBucketLogging

You can enable log storage.

DeleteBucketLogging

Disables logging for a bucket.

PutBucketWebsite

Enables static website hosting for a bucket and configures redirection rules for the bucket.

DeleteBucketWebsite

Disables static website hosting for a bucket and deletes the redirection rules configured for the bucket.

PutBucketReferer

Configures the Referer whitelist and specifies whether requests with empty Referer fields are allowed.

PutBucketLifecycle

Configures lifecycle rules for a bucket.

CommitTransition

Configures lifecycle rules to automatically convert the storage classes of objects.

Important

When an IA, Archive, or Cold Archive object is converted to a Deep Cold Archive object based on lifecycle rules, you are charged higher PUT request fees compared with the PUT request fees when a Standard object is converted to an IA, Archive, Cold Archive, or Deep Cold Archive object.

ExpireObject

Deletes an object based on lifecycle rules.

Important
  • In regions in the Chinese mainland, when an IA, Archive, or Cold Archive object is deleted based on lifecycle rules, you are charged higher PUT request fees compared with the PUT request fees when a Standard object is deleted. You are not charged PUT request fees when you use lifecycle rules to delete Deep Cold Archive objects.

  • In the China (Hong Kong) region and regions outside the Chinese mainland, you are not charged PUT request fees when you use lifecycle rules to delete objects of any storage class.

DeleteBucketLifecycle

Deletes lifecycle rules of a bucket.

DeleteBucket

Deletes a bucket.

PutObject

Uploads an object.

CopyObject

Copies objects to the same bucket or another bucket within the same region.

Important

You are charged PUT request fees based on the storage class of objects before conversion.

AppendObject

Uploads an object using append upload.

DeleteObject

Deletes a single object

DeleteMultipleObjects

Deletes multiple objects.

PutObjectACL

Configures an ACL for an object.

PostObject

Uploads an object using an HTML form.

PutSymlink

Creates a symbolic link.

RestoreObject

Restores an Archive, Cold Archive, or Deep Cold Archive object.

CleanRestoredObject

Removes an object from the restored state, and you are no longer charged for the temporary storage of the replica.

InitiateMultipartUpload

Initiates a multipart upload task.

UploadPart

Uploads an object in parts based on the specified object name and upload ID.

Important

The number of PUT requests is calculated based on the number of parts (partNumber). Each part upload requires one call to the UploadPart operation. This means one part corresponds to one API call, and the number of parts equals the number of PUT request calls (Number of parts = Number of API calls = Number of PUT requests). For example, if you upload a large file and divide it into 1,000 parts (partNumber=1000), you must call the UploadPart operation 1,000 times, which generates 1,000 PUT requests.

AbortMultipartUpload

Cancels a multipart upload task and deletes the uploaded parts.

Important
  • In regions in the Chinese mainland, when an IA, Archive, or Cold Archive part is deleted based on lifecycle rules, you are charged higher PUT request fees compared with the PUT request fees when a Standard part is deleted. You are not charged PUT request fees when Deep Cold Archive parts are deleted based on lifecycle rules.

  • In the China (Hong Kong) region and regions outside the Chinese mainland, you are not charged PUT request fees when parts of any storage class are deleted based on lifecycle rules.

UploadPartCopy

Copies an object by part.

Important

The number of PUT requests is calculated based on the number of parts (partNumber). Each part copy requires one call to the UploadPartCopy operation. This means one part corresponds to one API call, and the number of parts equals the number of PUT request calls (Number of parts = Number of API calls = Number of PUT requests). For example, if you upload a file by copying and divide it into 1,000 parts (partNumber=1000), you must call the UploadPartCopy operation 1,000 times, which generates at least 1,000 PUT requests.

ListMultipartUploads

Lists all ongoing multipart upload tasks, which include tasks that are initiated but are incomplete or canceled.

ListParts

Lists all parts that are uploaded using a specific upload ID.

PutBucketReplication

Configures data replication rules for a bucket.

DeleteBucketReplication

Stops a data replication task for a bucket and deletes the data replication rules of the bucket.

PutBucketCors

Configures cross-origin resource sharing (CORS) for a bucket.

DeleteBucketCors

Deletes the CORS configurations of a bucket.

CompleteMultipartUpload

Completes the multipart upload task.

InitiateBucketWorm

Creates a retention policy for a bucket.

AbortBucketWorm

An unlocked retention policy is deleted.

CompleteBucketWorm

A retention policy is locked.

ExtendBucketWorm

Extends the retention period of objects in a bucket for which a retention policy is locked.

PutBucketVersioning

Enables versioning for a bucket.

ListObjectVersions (GetBucketVersions)

Lists the versions of all objects in a bucket, including delete markers.

PutBucketPolicy

Configures a bucket policy.

DeleteBucketPolicy

Deletes a bucket policy.

PutBucketTags

Adds tags to or modifies the tags of a bucket.

DeleteBucketTags

Deletes tags of a bucket.

PutBucketEncryption

Configures a data encryption rule for a bucket.

DeleteBucketEncryption

Deletes a data encryption rule of a bucket.

PutBucketRequestPayment

Configures request payment settings for a bucket.

PutObjectTagging

Adds tags to or modifies the tags of an object.

DeleteObjectTagging

Deletes the tags of an object.

PutLiveChannel

Creates a LiveChannel.

DeleteLiveChannel

Deletes a specific LiveChannel.

PutLiveChannelStatus

Changes the status of a LiveChannel.

PostVodPlaylist

Generates a playlist used for video on demand (VOD) for a LiveChannel.

PutStyle

Creates an image style for a bucket.

ListStyle

Queries all image styles that are created for a bucket.

DeleteStyle

Deletes an image style from a bucket.

WriteGetObjectResponse

Configures custom response headers and response data.

GET requests

Item

Billing code

Billing rule

GET requests

GetRequest

Request fees are calculated based on the number of GET requests.

GET requests are used to retrieve information about buckets or objects. The following table lists the specific API requests for GET operations.

GET requests

Request

Procedure

GetBucketAcl

Queries the ACL of a bucket.

GetBucketLocation

Queries the data center where a bucket is located.

GetBucketInfo

Queries the information about a bucket.

GetBucketLogging

Queries the logging configurations of a bucket.

GetBucketWebsite

Queries the static website hosting configurations of a bucket.

GetBucketReferer

Queries the Referer configurations of a bucket.

GetBucketLifecycle

Queries the lifecycle rules of a bucket.

GetBucketReplication

Queries the data replication rules of a bucket.

GetBucketReplicationLocation

Queries the regions of the destination bucket to which data can be replicated.

GetBucketReplicationProgress

Queries the progress of data replication.

GetBucketInventory

Queries a specific inventory of a bucket.

ListBucketInventory

Queries all inventories of a bucket.

GetObject

Downloads an object.

HeadObject

Queries all metadata of an object.

GetObjectMeta

Queries some metadata information of an object.

SelectObject

Queries and retrieves data using SQL statements.

GetObjectACL

Queries the ACL of an object.

GetSymlink

Queries symbolic links.

GetBucketcors

Queries the CORS rules configured for a bucket.

GetBucketWorm

Queries the retention policies of a bucket.

GetBucketVersioning

Queries the versioning status of a bucket.

GetBucketPolicy

Queries the bucket policies of a bucket.

GetBucketReferer

You can view the hotlink protection configuration.

GetBucketTags

Queries the tags of a bucket.

GetBucketEncryption

Queries the encryption configurations of a bucket.

GetBucketRequestPayment

Queries the request payment settings of a bucket.

DoMetaQuery

Queries objects that meet specific conditions and lists the object information based on specific fields and sorting methods.

GetObjectTagging

Queries the tags of an object.

ListLiveChannel

Queries the list of LiveChannels.

GetLiveChannelInfo

Queries the configurations of a specific LiveChannel.

GetLiveChannelStat

Queries the stream ingest status of a specific LiveChannel.

GetLiveChannelHistory

Queries the stream ingest history of a specific LiveChannel.

GetVodPlaylist

Queries the playlist that is generated by the streams ingested to a specific LiveChannel within a specific time range.

GetStyle

Queries the information about a specific image style of a bucket.

get_image_info

Queries the basic information about an image.

get_image_exif

Queries the EXIF data of an image.

get_image_infoexif

Queries the basic information about and EXIF data of an image.

ProcessImage

Processes an image. You are charged for image processing based on multiple billable items. For more information, see IMG.

Cold Archive data retrieval requests

Billable item

Billing code

Billing rule

Cold Archive retrieval requests

Cold Archive retrieval requests are categorized by restoration priority. The billing codes are as follows:

  • Standard (CAStdRetrievalRequest)

  • High-priority retrieval request (CAHighPriorRetrievalRequest)

  • Bulk (CABulkRetrievalRequest)

Cold Archive objects must be restored before they can be accessed. The time required to restore an object depends on its size and the selected restoration priority. Restoring an object incurs retrieval request fees. Each request to restore a Cold Archive object is counted as one retrieval request, regardless of the object size.

Note

In addition to retrieval request fees, restoring Cold Archive objects also incurs fees for Cold Archive data retrieval volume and temporary storage capacity.

Deep Cold Archive data retrieval requests

Item

Billing code

Billing rule

Deep Cold Archive data retrieval requests

Data retrieval requests are divided into two categories based on restoration priorities of Deep Cold Archive data, each associated with the following billing codes:

  • Standard (DeepCAStdRetrievalRequest)

  • Expedited (DeepCAHighPriorRetrievalRequest)

A Deep Cold Archive object must be restored before you can access it. The amount of time required to restore a Deep Cold Archive object depends on the object size and the selected restoration priority. You are charged data retrieval fees when you restore a Deep Cold Archive object. The restoration of a Deep Cold Archive object is considered a data retrieval request. The number of requests is independent of the object size.

Note

In addition to data retrieval requests, you are charged for the retrieval of Deep Cold Archive objects, and temporary storage usage when you restore Deep Cold Archive objects.

Billing rules for special requests

You are charged request fees for each PUT or GET request. Certain API requests may involve batch operations, which require the implementation of different calculation methods.

API Request

Description

Request fees

Example

ListObjects

Lists all objects in a bucket.

Each call to the ListObjects or ListObjectsV2 API is counted as one Put-class request. The total number of requests required depends on the number of objects returned per call.

For example, if a bucket contains 10,000 objects:

  • If you do not set the max-keys parameter, 100 objects are returned by default. Listing all 10,000 objects requires 100 Put-class requests.

  • If you set the max-keys parameter to the maximum value of 1,000, listing all 10,000 objects requires 10 Put-class requests.

ListObjectsV2

DeleteMultipleObjects

Deletes multiple objects from a bucket in a single batch operation.

Each call to the DeleteMultipleObjects API is counted as one Put-class request. The total number of requests required depends on the number of objects processed per call.

For example, if a bucket contains 10,000 objects:

  • If the Key parameter specifies 100 object names per call, deleting all 10,000 objects requires 100 Put-class requests.

  • If the Key parameter specifies the maximum of 1,000 object names per call, deleting all 10,000 objects requires 10 Put-class requests.

CommitTransition

Transitions the storage class of objects based on a lifecycle rule.

The cost is calculated based on the number of objects transitioned. Each object transition is counted as one Put-class request.

For example, if a lifecycle rule is configured to transition 1,000 objects with the prefix 'dir' from Standard to Infrequent Access (IA) storage after 100 days, the operation is billed as 1,000 Put-class requests.

ExpireObject

Deletes objects based on a lifecycle rule.

A call to the ExpireObject API is counted as one Put-type request. The number of Put-type requests corresponds to the number of files hit by lifecycle deletion rules.

For example, if a lifecycle rule is configured to delete 1,000 objects with the prefix 'dir' after 365 days, the operation is billed as 1,000 Put-class requests.

Billing methods

Selection guide

We recommend that you refer to the following table to learn about the features and scenarios of different billing methods. This helps you select an appropriate billing method to reduce request fees.

Billing method

Description

Features

Scenarios

Pay-as-you-go

All billable items use the pay-as-you-go billing method by default. You are billed for your actual usage of each item after you use the resources.

The number of data requests fluctuates significantly and is difficult to predict.

  • Applications with unstable request volumes. For example, your application may experience a high volume of access requests at certain times and very few at others, with irregular high-traffic periods.

  • Temporary or one-time use cases, such as needing the OSS service for a limited time or for a single request.

  • Data backup or disaster recovery, where you need to back up data to OSS but are unsure when you will need to access it.

Request Plan - Standard

This resource plan covers Put and Get requests for Standard objects. Usage is deducted from the resource plan first during billing. You must purchase a resource plan before using it.

The number of requests for Standard data is relatively stable and predictable.

  • Websites or applications with stable traffic, which results in a stable frequency of data requests to OSS.

  • Applications that require frequent data access, such as those that process large amounts of data in real time, including online games and real-time communication.

Request Plan - Non-Standard

This resource plan covers Put and Get requests for Infrequent Access, Archive, and Cold Archive objects. Usage is deducted from the resource plan first during billing. You must purchase a resource plan before using it.

The number of requests for Infrequent Access, Archive, and Cold Archive data is relatively stable and predictable.

Scenarios where you need to upload a large amount of data for long-term storage that is accessed infrequently, such as once or twice a year.

Support

The following table lists the billing methods supported for each billable item.

Item

Pay-as-you-go

Resource Plan

Number of PUT requests

×

Number of GET requests

×

Number of Cold Archive retrieval requests

×

Number of Deep Cold Archive retrieval requests

×

FAQ

Can requesters, instead of the bucket owner, pay for request fees?

If you want requesters instead of the bucket owner to pay fees for their PUT requests and GET requests, you can enable pay-by-requester for the bucket. For more information, see Pay-by-requester.

Reference

  • For information about further billing details, see Query bills.