All Products
Search
Document Center

Object Storage Service:API operation calling fees

Last Updated:May 13, 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

Request fees are calculated 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

Description

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

Enables logging for a bucket.

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 by using append upload.

DeleteObject

Deletes a single object

DeleteMultipleObjects

Deletes multiple objects.

PutObjectACL

Configures an ACL for an object.

PostObject

Uploads an object by 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.

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.

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 by 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

Description

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

Queries the Referer configurations of a bucket.

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

Item

Billing code

Billing rule

Cold Archive data retrieval requests

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

  • Standard (CAStdRetrievalRequest)

  • Expedited (CAHighPriorRetrievalRequest)

  • Bulk (CABulkRetrievalRequest)

A Cold Archive object must be restored before you can access it. The amount of time required to restore a Cold Archive object depends on the object size and the selected restoration priority. You are charged data retrieval fees when you restore a Cold Archive object. The restoration of a 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 Cold Archive objects, and temporary storage usage when you restore Cold Archive objects.

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.

Request

Duration of the restored state

API operation calling fee

Example

ListObjects

Lists all objects in the bucket.

One call to the ListObjects or ListObjectsV2 operation counts as one PUT request. When a fixed number of objects are listed, the number of requests generated by calling this operation depends on the number of objects set to be retrieved in each call.

For example, 10,000 objects are stored within a bucket.

  • If you do not set the max-keys parameter when you call this operation, 100 objects are returned at a time by default. In this case, listing 10,000 objects requires 100 PUT requests.

  • If the max-keys parameter is set to its maximum value of 1,000 when you call this operation, listing 10,000 objects requires 10 PUT requests.

ListObjectsV2

DeleteMultipleObjects

Deletes multiple objects from a bucket.

One call to the DeleteMultipleObjects operation counts as one PUT request. When a fixed number of objects are deleted, the number of requests generated by calling this operation depends on the number of objects processed in each call.

For example, 10,000 objects are stored within a bucket.

  • If the Key parameter contains 100 object names when this API operation is called, deleting 10,000 objects requires 100 PUT requests.

  • If the Key parameter contains the maximum of 1000 object names when this API operation is called, deleting 10,000 objects requires 10 PUT requests.

CommitTransition

Configures lifecycle rules to convert the storage class of objects.

One call to the CommitTransition operation counts as one PUT request. Fees for PUT requests are calculated based on the number of objects to which the lifecycle rule is applied.

For example, if you configure a lifecycle rule to convert the storage class of 1000 objects under the prefix dir from Standard to IA after 100 days, you will be charged for 1000 PUT requests.

ExpireObject

Deletes an object based on lifecycle rules.

One call to the ExpireObject operation counts as one PUT request. Fees for PUT requests are calculated based on the number of objects to which the lifecycle rule is applied.

For example, if you configure a lifecycle rule to delete 1000 objects under the prefix dir from after 365 days, you will be charged for 1000 PUT requests.

Billing methods

Instructions on selecting a billing method

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.

Payment option

Description

Feature

Scenario

Pay-as-you-go.

By default, you are charged for all billable items based on the pay-as-you-go billing method. You are charged for the actual storage usage of each billable item. Pay-as-you-go allows you to use resources first and pay for them afterwards.

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

  • Scenarios with unstable request volumes: For example, your application may encounter significant spikes in access requests during certain periods, while receiving very few requests at other times, and these high-traffic periods are irregular and unpredictable.

  • Temporary or one-time requirements: You only need to use OSS for a period of time or for only one-time requests.

  • Data backup or disaster recovery: You intend to store backup data in OSS buckets, but you do not have a clear timeline for accessing these backups.

Request Plan-Standard Storage Class

The resource plan intended for PUT and GET operations on standard objects. When bills are being settled, resource plans have higher priority than the pay-as-you-go billing method. Before you can use resource plans to offset fees, you must purchase resource plans.

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

  • Stable traffic patterns: When the traffic to a website or application is steady and predictable, the frequency of requests to data stored in OSS remains correspondingly stable.

  • Use cases that require frequent access to data: such as online gaming and real-time communication, where large volumes of data are processed in real time.

Request Plan-Storage Classes Other Than Standard

The resource plan intended for PUT and GET operations on IA, Archive, and Cold Archive objects. When bills are being settled, resource plans have higher priority than the pay-as-you-go billing method. Before you can use resource plans to offset fees, you must purchase resource plans.

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

You need to upload a large amount of data that requires long-term storage but is accessed infrequently.

Supported payment options

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

×

Cold Archive data retrieval requests

×

Deep Cold Archive data retrieval requests

×

FAQ

Can I ask requesters instead of the bucket owner to pay the fees for requests?

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 Enable pay-by-requester.

Reference

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