Request fees

Updated at:
Copy as MD

All operations on Object Storage Service (OSS), such as data access and management, are performed using the OSS API. This applies regardless of whether you access OSS over an internal network or the internet, or which tool you use, such as a software development kit (SDK), the OSS console, the ossutil command line interface, or the ossbrowser graphical tool. All requests to public-read or private files are also API calls. OSS charges request fees based on the number of API calls that you make. If you access data in the Cold Archive or Deep Cold Archive storage class, you must first restore the data. This restoration process also incurs data retrieval fees.

Unit price

This topic describes the billable items and payment methods for request fees. For more information about the pricing of billable items, see OSS Pricing.

Billable items

For the billable items listed below, requests that return a 2xx or 3xx code incur fees. Requests that return a 4xx or 5xx code do not incur fees.

Put-type requests

Billable item

Billable item code

Billing rule

Put-type requests

PutRequest

Request fees are calculated based on the number of Put-type OSS API requests.

Put-type requests include operations such as data uploads, copies, and deletions. The following table lists the API requests that are classified as Put-type.

Put-type API requests

API request

Operation

PutBucket

Create a bucket.

GetBucket (ListObject), GetBucketV2 (ListObjectsV2)

List all objects.

PutBucketACL

Set the access control list (ACL) for a bucket.

PutBucketInventory

Configure an inventory rule for a bucket.

DeleteBucketInventory

Delete a specified inventory task from a bucket.

PutBucketLogging

Enable log storage.

DeleteBucketLogging

Disable log storage.

PutBucketWebsite

Set the static website hosting mode and redirection rules (RoutingRule) for a bucket.

DeleteBucketWebsite

Disable the static website hosting mode and redirection rules for a bucket.

PutBucketReferer

Configure a Referer whitelist for a bucket and specify whether to allow requests with an empty Referer field.

PutBucketLifecycle

Set a lifecycle rule.

CommitTransition

Transition the storage class using a lifecycle rule.

Important

The Put-type request fees for converting Infrequent Access, Archive, or Cold Archive objects to other storage classes are higher than the fees for converting Standard objects to Infrequent Access, Archive, Cold Archive, or Deep Cold Archive.

ExpireObject

Delete an object using a lifecycle rule.

Important
  • In regions in the Chinese mainland, the Put-type request fees for deleting Infrequent Access, Archive, and Cold Archive objects using lifecycle rules are higher than the fees for deleting Standard objects. No Put-type request fees are charged for deleting Deep Cold Archive objects using lifecycle rules.

  • In Hong Kong (China) and regions outside China, no Put-type request fees are charged for deleting objects of any storage class using lifecycle rules.

DeleteBucketLifecycle

Delete a lifecycle rule.

DeleteBucket

Delete a bucket.

PutObject

Upload an object.

CopyObject

Copy an object between the same or different buckets in the same region.

Important

Billing is based on the number of PUT-type requests for the source storage class of the object.

AppendObject

Upload an object by appending data.

DeleteObject

Delete a single object.

DeleteMultipleObjects

Delete multiple objects.

PutObjectACL

Set the ACL for an object.

PostObject

Upload an object using an HTML form.

PutSymlink

Create a symbolic link.

RestoreObject

Restore an Archive object.

CleanRestoredObject

End the restored state of a Cold Archive or Deep Cold Archive object. The file replica no longer incurs temporary storage fees.

InitiateMultipartUpload

Initialize a MultipartUpload event.

UploadPart

Upload data in parts based on the specified object name and UploadId.

Important

The number of PUT requests is calculated based on the number of parts (partNumber). Each part upload requires one UploadPart API call. 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 in 1,000 parts (partNumber=1000), you must make 1,000 UploadPart API calls, which generates 1,000 PUT requests.

AbortMultipartUpload

Cancel a MultipartUpload event and delete the corresponding data fragments.

Important
  • In regions in the Chinese mainland, the Put-type request fees for deleting Infrequent Access, Archive, and Cold Archive fragments using lifecycle rules are higher than the fees for deleting Standard fragments. No Put-type request fees are charged for deleting Deep Cold Archive fragments using lifecycle rules.

  • In Hong Kong (China) and regions outside China, no Put-type request fees are charged for deleting fragments of any storage class using lifecycle rules.

UploadPartCopy

Copy data in parts.

Important
  • The number of PUT requests is calculated based on the number of parts (partNumber). Each part copy requires one UploadPartCopy API call. 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 it in 1,000 parts (partNumber=1000), you must make 1,000 UploadPartCopy API calls, which generates at least 1,000 PUT requests.

  • Billing is based on the number of PUT-type requests for the destination storage class of the object.

ListMultipartUploads

List all ongoing Multipart Upload events. These are events that have been initialized but not yet completed or aborted.

ListParts

List all successfully uploaded parts for a specified Upload ID.

PutBucketReplication

Configure a data replication rule for a bucket.

DeleteBucketReplication

Stop a data replication task for a bucket and delete the replication configuration.

PutBucketCors

Add a CORS configuration.

DeleteBucketCors

Delete a CORS configuration.

CompleteMultipartUpload

Complete a multipart upload.

InitiateBucketWorm

Create a retention policy for a bucket.

AbortBucketWorm

Delete an unlocked retention policy.

CompleteBucketWorm

Lock a retention policy.

ExtendBucketWorm

Extend the retention period in days for objects in a bucket that has a locked retention policy.

PutBucketVersioning

Enable versioning for a bucket.

ListObjectVersions(GetBucketVersions)

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

PutBucketPolicy

Set a bucket policy.

DeleteBucketPolicy

Delete a bucket policy.

PutBucketTags

Add or modify tags for a bucket.

DeleteBucketTags

Delete bucket tags.

PutBucketEncryption

Configure an encryption rule for a bucket.

DeleteBucketEncryption

Delete a bucket encryption rule.

PutBucketRequestPayment

Set the pay-by-requester mode for a bucket.

PutObjectTagging

Add or modify tags for an object.

DeleteObjectTagging

Delete object tags.

PutLiveChannel

Create a LiveChannel.

DeleteLiveChannel

Delete a specified LiveChannel.

PutLiveChannelStatus

Switch the status of a LiveChannel.

PostVodPlaylist

Generate a playlist for video-on-demand (VOD) from a LiveChannel.

PutStyle

Add an image style.

ListStyle

Query all created styles in a bucket.

DeleteStyle

Delete a specified image style from a bucket.

WriteGetObjectResponse

Customize returned data and response headers.

PutBucketTransferAcceleration

Configure transfer acceleration for a bucket.

PutBucketRTC

Enable or disable replication time control (RTC) for an existing cross-region replication rule.

ListUserDataRedundancyTransition

List user-level storage redundancy transition tasks.

ListBucketDataRedundancyTransition

List bucket-level storage redundancy transition tasks.

CreateBucketDataRedundancyTransition

Create a storage redundancy transition task for a bucket.

DeleteBucketDataRedundancyTransition

Delete a storage redundancy transition task for a bucket.

PutBucketAccessMonitor

Configure the access tracking status for a bucket.

OpenMetaQuery

Enable the metadata index feature for a bucket.

DoMetaQuery

Query for objects that meet specified conditions.

CloseMetaQuery

Disable the metadata management feature for a bucket.

InitUserAntiDDosInfo

Create an Anti-DDoS for OSS instance.

UpdateUserAntiDDosInfo

Change the status of an Anti-DDoS for OSS instance.

InitBucketAntiDDosInfo

Initialize protection for a bucket.

UpdateBucketAntiDDosInfo

Update the protection status of a bucket.

ListBucketAntiDDosInfo

Get a list of protection information for a bucket.

PutBucketResourceGroup

Configure a resource group for a bucket.

CreateCnameToken

Create a CnameToken required for domain name ownership verification.

PutCname

Bind a canonical name (CNAME) to a bucket.

ListCname

Get a list of all CNAMEs bound to a bucket.

DeleteCname

Delete a bound CNAME.

PutBucketArchiveDirectRead

Enable or disable real-time access of Archive objects for a bucket.

PutBucketHttpsConfig

Enable or disable TLS version settings for a bucket.

CreateAccessPoint

Create an access point for a bucket.

DeleteAccessPoint

Delete an access point for a bucket.

ListAccessPoints

List all access points for a bucket.

PutAccessPointPolicy

Configure an access policy for an access point.

DeleteAccessPointPolicy

Delete the access policy for an access point.

CreateAccessPointForObjectProcess

Create an object FC access point.

DeleteAccessPointForObjectProcess

Delete an object FC access point.

ListAccessPointsForObjectProcess

Get information about user-level object FC access points.

PutAccessPointConfigForObjectProcess

Modify the configuration of an object FC access point.

PutAccessPointPolicyForObjectProcess

Configure an access policy for an object FC access point.

DeleteAccessPointPolicyForObjectProcess

Delete the access policy of an object FC access point.

Get-type requests

Billable item

Billable item code

Billing rule

Get-type requests

GetRequest

Request fees are calculated based on the number of Get-type OSS API requests.

Get-type requests include read operations for bucket or object information. The following table lists the API requests that are classified as Get-type.

Get-type API requests

API request

Operation

GetBucketAcl

View the access permissions of a bucket.

GetBucketLocation

View the data center where a bucket is located.

GetBucketInfo

View information about a bucket.

GetBucketLogging

View the access log configuration of a bucket.

GetBucketWebsite

View the static website hosting configuration of a bucket.

GetBucketReferer

View the Referer configuration of a bucket.

GetBucketLifecycle

View the lifecycle configuration of a bucket.

GetBucketReplication

View the configured data replication rules for a bucket.

GetBucketReplicationLocation

View the regions where destination buckets for data replication are located.

GetBucketReplicationProgress

View data replication progress.

GetBucketInventory

View a specified inventory task for a bucket.

ListBucketInventory

View all inventory tasks for a bucket.

GetObject

Download an object.

HeadObject

View all metadata of an object.

GetObjectMeta

View some of the metadata of an object.

SelectObject

Query and retrieve data using an SQL statement.

GetObjectACL

View the ACL of an object.

GetSymlink

View a symbolic link.

GetBucketcors

View the CORS configuration of a bucket.

GetBucketWorm

View the retention policy configuration of a bucket.

GetBucketVersioning

View the versioning status of a bucket.

GetBucketPolicy

View the bucket policy configuration.

GetBucketReferer

View the hotlink protection configuration.

GetBucketTags

View the tag information of a bucket.

GetBucketEncryption

View the encryption configuration of a bucket.

GetBucketRequestPayment

Get the pay-by-requester mode configuration.

GetObjectTagging

View the tag information of an object.

ListLiveChannel

View information about all LiveChannels.

GetLiveChannelInfo

View information about a specified LiveChannel.

GetLiveChannelStat

View the stream ingest status information of a specified LiveChannel.

GetLiveChannelHistory

View the stream ingest records of a specified LiveChannel.

GetVodPlaylist

View the playlist generated from stream ingest for a specified LiveChannel within a specified time range.

GetStyle

Query for specified style information in a bucket.

get_image_info

Get basic information about an image.

get_image_exif

Get the EXIF information of an image.

get_image_infoexif

Get the basic and EXIF information of an image.

ProcessImage

Process an image. When you use the image processing service, multiple billable items are involved. For more information, see Image processing billing.

GetBucketStat

Get the storage capacity and number of objects for a bucket.

Options

A preflight request sent by a browser before sending a cross-origin request to determine if cross-origin access is allowed.

GetBucketTransferAcceleration

Get the transfer acceleration configuration of a bucket.

GetBucketDataRedundancyTransition

Get the storage redundancy transition configuration of a bucket.

GetBucketAccessMonitor

Get the access tracking configuration of a bucket.

GetMetaQueryStatus

Get the metadata index status of a bucket.

GetUserAntiDDosInfo

Query for Anti-DDoS for OSS instance information under a specified account.

GetBucketResourceGroup

Get the resource group configuration of a bucket.

GetCnameToken

Get a created CnameToken.

GetBucketArchiveDirectRead

Get the real-time access of Archive objects configuration for a bucket.

GetBucketHttpsConfig

Get the HTTPS access configuration of a bucket.

GetAccessPoint

Get the configuration information of a specified access point.

GetAccessPointPolicy

Get the access policy of an access point.

GetAccessPointForObjectProcess

Get basic information about an object FC access point.

GetAccessPointConfigForObjectProcess

Get configuration information for an object FC access point.

GetAccessPointPolicyForObjectProcess

Get the access policy configuration of an object FC access point.

Cold Archive retrieval requests

Billable item

Billable item code

Billing rule

Cold Archive retrieval requests

Based on the restoration priority for Cold Archive data, retrieval requests are divided into the following three types, with corresponding billable item codes:

  • Standard retrieval requests (CAStdRetrievalRequest)

  • High-priority retrieval requests (CAHighPriorRetrievalRequest)

  • Bulk retrieval requests (CABulkRetrievalRequest)

Cold Archive files must be restored before they can be accessed. The restoration time depends on the data size and the selected restoration priority. Restoration incurs data retrieval request fees. A request to restore one Cold Archive file is counted as one retrieval request. The number of requests is not related to the file size.

Note

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

Deep Cold Archive retrieval requests

Billable item

Billable item code

Billing rule

Deep Cold Archive retrieval requests

Based on the restoration priority for Deep Cold Archive data, retrieval requests are divided into the following two types, with corresponding billable item codes:

  • Standard retrieval requests (DeepCAStdRetrievalRequest)

  • High-priority retrieval requests (DeepCAHighPriorRetrievalRequest)

Deep Cold Archive files must be restored before they can be accessed. The restoration time depends on the data size and the selected restoration priority. Restoration incurs data retrieval request fees. A request to restore one Deep Cold Archive file is counted as one Cold Archive retrieval request. The number of requests is not related to the file size.

Note

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

Special request billing logic

Put-type and Get-type API requests are charged as one request per call. However, some API requests that involve batch operations have special billing logic. The details are as follows:

API request

Description

Request fees

Example

ListObjects

List all files in a bucket.

One call to the ListObjects or ListObjectsV2 API operation is counted as one Put-type request. When you list a specific number of files, the total number of requests depends on the number of files returned per call.

Assume a bucket contains 10,000 files:

  • If you do not set the max-keys parameter when you call the API operation, 100 files are returned by default. Listing 10,000 files involves 100 Put-type requests.

  • If you set the max-keys parameter to its maximum value of 1,000, listing 10,000 files involves 10 Put-type requests.

ListObjectsV2

DeleteMultipleObjects

Delete files in a bucket in batches.

One call to the DeleteMultipleObjects API operation is counted as one Put-type request. When you delete a specific number of files, the total number of requests depends on the number of files that are processed in each call.

Assume a bucket contains 10,000 files:

  • If you specify 100 filenames for the Key parameter when you call the API operation, deleting 10,000 files involves 100 Put-type requests.

  • If you specify 1,000 filenames (the maximum) for the Key parameter, deleting 10,000 files involves 10 Put-type requests.

CommitTransition

Transition storage classes through a lifecycle rule.

One call to the CommitTransition API operation is counted as one Put-type request. The number of Put-type requests is calculated based on the number of files that match the lifecycle transition rule.

Assume a lifecycle rule is configured for a bucket to transition 1,000 files that match the prefix 'dir' from Standard to Infrequent Access after 100 days. This operation incurs fees for 1,000 Put-type requests.

ExpireObject

Delete files through a lifecycle rule.

One call to the ExpireObject API operation is counted as one Put-type request. The number of Put-type requests is calculated based on the number of files that match the lifecycle deletion rule.

Assume a lifecycle rule is configured for a bucket to delete 1,000 files that match the prefix 'dir' after 365 days. This operation incurs fees for 1,000 Put-type requests.

Payment methods

Selection guide

Review the following payment methods and their features and scenarios to help you choose the right method and reduce request fees.

Payment method

Description

Features

Scenarios

Pay-as-you-go

Pay-as-you-go is the default billing method for all billable items. You are billed for your actual usage of each billable item after you use it.

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

  • Unstable request scenarios: For example, your application may have many access requests at certain times and very few at others, without a regular pattern.

  • Temporary or one-time needs: You need to use the OSS service only for a short period or for a single request.

  • Data backup or disaster recovery: You need to back up data to OSS but are unsure when you will need to access this backup data.

Request resource plan (Standard)

A resource plan for Put-type and Get-type requests for Standard storage. When fees are settled, usage is first deducted from the resource plan. You purchase the plan before you use it.

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

  • Stable website or application traffic: If the traffic to your website or application is stable, the frequency of user requests for data stored in OSS is also relatively stable.

  • Applications that require frequent data access: For example, applications such as online games and real-time communication that need to process large amounts of data in real time.

Request resource plan (Non-standard)

A resource plan for Put-type and Get-type requests for Infrequent Access, Archive, and Cold Archive storage. When fees are settled, usage is first deducted from the resource plan. You purchase the plan before you use it.

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

You need to upload a large amount of data that must be stored for a long time but is accessed infrequently (for example, once or twice a year).

Support

The following table lists the payment methods that are supported by each billable item:

Billable item

Pay-as-you-go

Resource plan

Number of Put requests

×

Number of Get requests

×

Cold Archive retrieval requests

×

Deep Cold Archive retrieval requests

×

FAQ

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

Yes. If you want the requester to pay for Put and Get requests instead of the bucket owner, you can enable the pay-by-requester mode. For more information, see Pay by requester.

References

  • To view expense details for request fees, see Query bills.