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 wild-card 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/domains would match the /v1.0/1234/domains portion of the following URI:

https://dns.api.rackspacecloud.com\ /v1.0/1234/domains

The following table specifies the default rate limits for all API operations for all GET, POST, PUT, and DELETE calls for domains, subdomains, or records:

Default rate limits

MethodURIRegExDefault Limit
GET/status/*.*/v\d+\.\d+/(\d+/status).*15 per second
GET/domains/search.*/vd+.d+/(d+/domains/search).*20/minute
GET/domains._/vd+.d+/(d+/domains)._300/minute
POST/domains._/vd+.d+/(d+/domains)._75/minute
PUT/domains._/vd+.d+/(d+/domains)._150/minute
DELETE/domains._/vd+.d+/(d+/domains)._150/minute

If you exceed the thresholds established for your account, a 413 HTTP response will be returned with a Reply-After header to notify the client when it can attempt to try again. The Reply-After header is an ISO 8601 Date/Time field, for example 2012-10-10T21:21:15Z.

ℹ️

The first entry in the Default Rate Limits table above is for simple STATUS calls after a POST, PUT, or DELETE to retrieve the status details; for example: https://dns.api.rackspacecloud.com/v1.0/1234/status/0062ac6e-3d07-4980-afab-5fd3a806ef4d

This status call has a limit of 5 requests per second.

Absolute limits

POST and PUT calls are limited to the creation or modification of a maximum of 100 entities per call where an entity is defined as a record, domain, or subdomain. For example, when using POST /domains to create a new domain with nine subdomains, you could create a maximum of ninety records across the domain and subdomains. This would total 100 entities: 1 domain + 9 subdomains + 90 records. Additional records or subdomains could be created for the domain in subsequent calls.

Absolute limits

NameDescriptionDefault
DOMAIN_LIMITTotal number of domains per Cloud account25000
RECORD_LIMITTotal number of records per domain25000

Domain limits


By default users may have up to 25000 domains per Cloud account (including sub-domains). When a user submits a request to create new domains or sub-domains, the system will only accept the request if the total number of existing plus requested domains and sub-domains is within the account domain limit. If the total exceeds the account domain limit, the entire request will be rejected and the following message will be returned:

Example: Domain limit response: XML

Status: 400 Bad Request
Date: Thu, 28 Jul 2011 21:54:21 GMT  
X-API-VERSION: 1.0.17  
Content-Type: application/xml  
Content-Length: 191

<?xml version="1.0" encoding="utf-8"?>
<error code="400">
 <message>Validation failed.</message>
 <details>Domain limit reached: can not create more domains for this tenant</details>
</error>

Example: Domain limit response: JSON

Status: 403 Forbidden 
Date: Thu, 28 Jul 2011 21:54:21 GMT  
X-API-VERSION: 1.0.17  
Content-Type: application/json  
Content-Length: 134

{
  "body" : "Domain limit reached: can not create more domains for this tenant",
  "statusCode" : 403,
  "statusType" : "Forbidden"
}

ℹ️

Any domains/sub-domains or records that are submitted in any request that causes domain limits to be exceeded will not be provisioned and the entire request will be rejected.

ℹ️

The account domain limit applies to any API request that can be used to create a domain or sub-domain. An account may have a non-default limit if determined necessary by Support.

Record limits


By default users may have up to 25000 records per domain per Cloud account. When a user submits a request to create one or more new records, the system will only accept the request if the total number of existing plus requested records is within the account record limit. If the total number of records on a specified domain exceeds the record limit, the entire request will be rejected and the following message will be returned:

Example: Domain record limit response: JSON

Status: 400 Bad Request 
Date: Thu, 28 Jul 2011 21:54:21 GMT  
X-API-VERSION: 1.0.17  
Content-Type: application/json  
Content-Length: 131

{
  "message" : "Bad Request",
  "code" : 400,
  "details" : "Record limit reached: can not create more records for this domain"
}

ℹ️

Any domains, sub-domains or records that are submitted in any request that causes record limits to be exceeded will not be provisioned and the entire request will be rejected.

ℹ️

The limits apply to any API request that can be used to create one or more records. An account may have a non-default record limit if determined necessary by Support.

Retrieve account limits

Applications can programmatically determine current rate limits and absolute limits for an account as described in Limits operations.