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
Method | URI | RegEx | Default 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
, orDELETE
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
Name | Description | Default |
---|---|---|
DOMAIN_LIMIT | Total number of domains per Cloud account | 25000 |
RECORD_LIMIT | Total number of records per domain | 25000 |
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.