Limits

All accounts, by default, have a preconfigured set of thresholds, or limits, to manage capacity and prevent abuse of the system. The system recognizes two kinds of limits: rate limits and absolute limits. Rate limits are thresholds that are reset after a certain amount of time passes. Absolute limits are fixed. Rate limits are processed via the Repose service.

📘

If the default limits are too low for your particular application, contact Rackspace Cloud support to request an increase. All requests require reasonable justification.

Rate limits

Rate limits are specified in terms of both a human-readable wildcard URI and a machine-processable regular expression. The regular expression boundary matcher ^ takes effect after the root URI path. For example, the regular expression ^/v1.0/1234/loadbalancers would match the /v1.0/1234/loadbalancers portion of the following URI:

https://ord.loadbalancers.api.rackspacecloud.com/v1.0/1234/loadbalancers

MethodURIRegExDefault Limit
GET/v1.0/*^/1.0/.*5 per second
GET/v1.0/*^/1.0/.*100 per minute
POST/v1.0/*^/1.0/.*2 per second
POST/v1.0/*^/1.0/.*25 per minute
PUT/v1.0/*^/1.0/.*5 per second
PUT/v1.0/*^/1.0/.*50 per minute
DELETE/v1.0/*^/1.0/.*2 per second
DELETE/v1.0/*^/1.0/.*50 per minute

Rate limits are applied in order relative to the method, going from least to most specific. For example, although the threshold for POST requests to /v1.0/* is 25 per minute, you cannot send a POST request to /v1.0/* more than 2 times per second because the rate limit for any POST request is 2 per second. If you exceed the limits established for your account, a 413 (Rate Control) HTTP response is returned with a Retry-After header to notify the client when it can attempt to try again.

You can submit a request to Rackspace Support for an increase in load balancer limits. Each request must be approved before limits can be modified. Limits can be increased only up to the maximum limit (such as 50 nodes per load balancer).

To find your current account settings for these limits, see Retrieve account limits.

Absolute limits

Absolute limits specify the maximum number of load balancers that can exist per account and the maximum number of resources that can exist per load balancer. The batch delete limit is the exception, because it is applied per batch delete API request.

The system applies default values for load balancer account and resource limits that can be increased by submitting a request to Support. Each request must be approved internally before limits can be modified.

NameDescriptionDefault
LOADBALANCER_LIMITTotal number of load balancers that can be added to a Cloud account25
NODE_LIMITTotal number of nodes that can be added to a load balancer25
IPV6_LIMITTotal number of IPv6 addresses that can be added to a load balancer25
BATCH_DELETE_LIMITTotal number of resources that can be listed per batch delete request10
ACCESS_LIST_LIMITTotal number of network items that can be added to a load balancer100

To find your current account settings for these limits, see Retrieve account limits.

Retrieve account limits

Applications can programmatically determine current rate limits and absolute limits for an account by using the following URIs.

MethodURIDescription
GET/limitsReturn the current rate limits for the account.
GET/loadbalancers/absolutelimitsReturn the current absolute limits for the account.

Possible error response codes for these operations are loadbalancerFault (400, 500), serviceUnavailable (503), unauthorized (401), badRequest (400), and overLimit (413).

These operations do not require a request body.

Example: Retrieve rate limits: JSON response

{
    "limits" : {
        "rate" : {
            "values": [
                {
                    "uri" : "/v1.0/*",
                    "regex" : "^/1.0/.*",
                    "limit" : [
                        {
                            "verb" : "GET",
                            "value" : 600000,
                            "remaining" : 426852,
                            "unit" : "HOUR",
                            "next-available" : "2011-02-22T19:32:43.835Z"
                        }
                    ]
                }
            ]
        }
    }
}

Example: Retrieve absolute limits: JSON response

{
    "absolute":
        [
            {"name":"IPV6_LIMIT","value":25},
            {"name":"LOADBALANCER_LIMIT","value":25},
            {"name":"BATCH_DELETE_LIMIT","value":10},
            {"name":"ACCESS_LIST_LIMIT","value":100},
            {"name":"NODE_LIMIT","value":25}
        ]
}