Updated on 2024-10-29 GMT+08:00

Request Throttling

What Is Request Throttling?

Request throttling is a method used by Huawei Cloud to control the frequency of calling open APIs. A quota refers to the maximum number of calls made to a single API within a specified time window.

Request Throttling for Customer Operations Capability APIs

Traffic quota: 10/1(s); API request throttling dimensions: source IP address, API, and ParentUid, indicating that a single user or source IP address can send up to 10 requests to the API every second.

Scenario

Sub-Scenario

API

URL

Traffic Quota

Quota Dimension

Managing Products

Querying product information

Querying Cloud Service Types

GET /v2/products/service-types

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying Resource Types

GET /v2/products/resource-types

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying Resources by Cloud Service Type

GET /v2/products/service-resources

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying Usage Types

GET /v2/products/usage-types

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying Measurement Units

GET /v2/bases/measurements

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying the Measurement Unit Number System

GET /v2/bases/conversions

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying product price

Querying the Price of a Pay-per-Use Product

POST /v2/bills/ratings/on-demand-resources

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying the Price of a Yearly/Monthly Product

POST /v2/bills/ratings/period-resources/subscribe-rate

30/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying the Renewal Price of a Yearly/Monthly Resource

POST /v2/bills/ratings/period-resources/renew-rate

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing Accounts

-

Querying the Account Balance

GET /v2/accounts/customer-accounts/balances

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing Transactions

Managing coupons

Querying Coupons

GET /v2/accounts/partner-accounts/account-change-records

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing yearly/monthly orders

Querying Orders

GET /v2/orders/customer-orders

20/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying Order Details

GET /v2/orders/customer-orders/details/{order_id}

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying Available Discounts of an Order

GET /v2/orders/customer-orders/order-discounts

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Paying Yearly/Monthly Product Orders

POST /v3/orders/customer-orders/pay

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Canceling Orders in the Pending Payment Status

PUT /v2/orders/customer-orders/cancel

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying the Amount of Unsubscription Orders

GET /v2/orders/customer-orders/refund-orders

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing yearly/monthly resources

Querying Customer's Yearly/Monthly Resources

POST /v2/orders/subscriptions/resources/renew

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Renewing subscription to yearly/monthly resources

POST /v2/orders/subscriptions/resources/renew

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Unsubscribing from yearly/monthly resources

POST /v2/orders/subscriptions/resources/unsubscribe

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Enabling Automatic Subscription Renewal for Yearly/Monthly Resources

POST /v2/orders/subscriptions/resources/autorenew/{resource_id}

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Disabling Automatic Subscription Renewal for Yearly/Monthly Resources

DELETE /v2/orders/subscriptions/resources/autorenew/{resource_id}

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Enabling/Canceling the Change from Yearly/Monthly to Pay-per-Use upon Expiration

POST /v2/orders/subscriptions/resources/to-on-demand

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing resource packages

Querying resource packages

POST /v3/payments/free-resources/query

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying the Resource Usage

POST /v2/payments/free-resources/usages/details/query

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Querying Resource Package Usage Details

GET /v2/bills/customer-bills/free-resources-usage-records

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing Bills

Managing bills

Querying Summary Bills

GET /v2/bills/customer-bills/monthly-sum

25/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Viewing Resource Usage Details

POST /v2/bills/customer-bills/res-records/query

30/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Viewing Resource Expenditures

GET /v2/bills/customer-bills/res-fee-records

30/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Management Costs

Management costs

Querying Cost Data

POST /v4/costs/cost-analysed-bills/query

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing an Enterprise

Managing enterprise projects

Enabling the Enterprise Project Management

POST /v2/enterprises/enterprise-projects/authority

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Managing Invoices

Managing invoices

Querying the Invoice List

GET /v1.0/{domain_id}/payments/intl-invoices

10/1(s)

API request throttling dimensions:

Source IP address, API, and ParentUid

Troubleshooting for Request Throttling Failure

The following is an example of error returned by an API:

{"status_code":429,"request_id":"7e6c1***********c610","error_code":"APIGW.0308","error_message":"The throttling threshold has been reached: policy user over ratelimit,limit:10,time:1 second","encoded_authorization_message":""}

Troubleshooting

Huawei Cloud provides default traffic quotas for customer operations capability APIs. Users can increase the quota based on their service requirements. Users can monitor status code 429 and construct a retry mechanism. The retry mechanism should follow an exponential backoff plan to reduce the number of requests if necessary. The user can also establish some randomness in the backoff timesheets to avoid severe herd mentality.

Adjusting Quotas

If the traffic quota cannot meet your service requirements and concurrency scenarios, submit a Huawei Cloud service ticket with the service scenario description attached. After receiving the service ticket, the Huawei Cloud after-sales service team will adjust the quota based on your requirements.