Skip to main content

API limits and billing metrics

API limits are a crucial aspect of any API product, and they exist for several important reasons. They are designed to ensure fair usage and maintain the quality of service for all users. By implementing these limits, we can prevent any single user from overloading the system, which could potentially degrade the performance for others. This is a standard practice across the industry and is essential for maintaining a high level of service.

One of the key limits we have in place is the Concurrency limit. This limit is specifically designed to protect our infrastructure. It controls the number of simultaneous API calls/requests that can be executed at any given moment. Each API call/request increases the Concurrency limit against your quota, and it decreases when the call/request finishes. This ensures that our servers are not overwhelmed by too many simultaneous requests, thereby ensuring smooth and efficient operation.

The specific limits that apply to you depend on several factors. These include the plan you have subscribed to, the product you are using, and the protocol you are utilizing. Different products and protocols may have different limits, reflecting their varying requirements and capabilities.

We understand that different users may have different needs, and we try to accommodate these requests whenever possible. Therefore, some limits, such as the Concurrency limit, can be requested to be increased through our support team. We review these requests on a case-by-case basis, taking into account factors such as your usage history and the capacity of our infrastructure.

There are also limits that depend on your plan, such as the Request limit or the Node as a Service units limit. If you exceed these limits, you can continue to use our services by paying an overage fee. This allows us to maintain a high level of service for all users, even during periods of high demand.

In conclusion, API limits are a necessary and important part of our service. They ensure that all users can enjoy a high-quality, reliable service, and they protect our infrastructure from being overwhelmed.

Limits applied to our products

Product nameLimits
NAAS REST APINAAS Credits Limit
NAAS Concurrency Limit
NAAS WebSocket APINAAS Credits Limit
NAAS Concurrency Limit

Multiple API keys for a subscription

At CoinAPI, we understand that our customers may have diverse needs and may require multiple API keys for a single subscription. We have designed our system to accommodate this requirement, allowing you to add additional API keys to your subscription. These keys operate within the confines of a single limit, ensuring that you have the flexibility you need without compromising on control.

Each API key can be further customized with a more precise limit. This feature allows you to manage your usage effectively, ensuring that each key is used optimally and within its designated limit. This level of control can be particularly useful in managing resources and preventing overuse.

In addition to these features, we also offer the ability for API calls using a specific API key to generate overage, i.e., exceed the quota. This can be particularly useful in situations where you anticipate a higher volume of calls. However, it's important to note that if the limit is exceeded, the API calls may be rejected to prevent overuse and maintain system integrity. All these settings, including the limits and the ability to set overage, can be managed from the Customer Portal. This ensures that you have complete control over your subscription and can make adjustments as and when needed.

Customizing Limits for API Keys within a Subscription

If both API keys, each with a limit of 500, exhaust their allotted limits, reaching a combined total of 1000, further requests made using either key will be rejected until the limit resets. This ensures that the total usage across all keys within the subscription does not exceed the subscription limit.

Exceeding Limits for API Keys within a Subscription

If one API key within the subscription exceeds its limit of 500, while the other key is still within its limit, requests made using the exceeded key will be rejected until the limit resets. However, requests made using the other key, which is still within its limit, will continue to be processed without interruption.

info

In summary, managing limits within a subscription involves ensuring that the usage across all API keys and services remains within the specified limits, with mechanisms in place to handle potential overages and maintain service availability and quality.

Node as a Service API

The utilization of CoinAPI.io's API is quantified in API Credits, providing a standardized measure for usage. Each API Credit value is assigned based on the complexity and resource intensity of specific methods within the platform. The credit values range from 10 to 500, with each method having a distinct credit value.

For instance, eth_call is assigned a value of 20 API Credits. These credit values take into account various intricate factors such as computational load, memory consumption, disk usage, and network resources associated with the execution of each method.

This dynamic credit system ensures a fair and accurate representation of the resources utilized by different API methods, offering transparency and flexibility in aligning with CoinAPI.io's pricing plans.

Request limit / APIKey

X-UnitsLimit-Quota-Overage: disabled
X-UnitsLimit-Quota-Allocated: 10000000
X-UnitsLimit-Used: 0
X-UnitsLimit-Quota-Remaining: 10000000
HTTP HeaderTypeDescription
X-UnitsLimit-Quota-OveragestringProvides information about whether a given API key may exceed the plan quota within a 24-hour time frame, which could result in additional charges. This header is fully defined and configured in the customer portal.
X-UnitsLimit-Quota-AllocatedstringTotal number of requests that can be made within a specific subscription during a 24-hour time frame. This quota allocation is determined based on the user's subscription purchase.
X-UnitsLimit-Quota-RemainingstringProvides valuable information about the remaining quota within the subscription for making requests within a 24-hour time frame. This header indicates the number of requests that can still be made within the allocated quota for the current 24-hour period.
X-UnitsLimit-UsedintProvides information about the request limit that has been used within the last 24-hour period. This header indicates the amount of request capacity consumed based on the usage history. It is important to note that the header is not always appended to every request to optimize the operation of the API.
Method nameValue
abandontransaction10
abortrescan10
addnode10
analyzepsbt10
bumpfee10
combinepsbt10
combinerawtransaction10
createmultisig10
createpsbt10
createrawtransaction10
createwallet10
decoderawtransaction10
decodepsbt10
decodescript10
deriveaddresses10
disconnectnode10
dumpprivkey10
estimatesmartfee10
finalizepsbt10
fundrawtransaction10
generateblock10
generatetoaddress10
generatetodescriptor10
getaddressesbylabel10
getbalance10
getbalances10
getbestblockhash10
getblock10
getblockchaininfo10
getblockcount10
getblockfilter10
getblockhash10
getblockheader10
getblockstats10
getblocktemplate10
getchaintips10
getchaintxstats10
getconnectioncount10
getdifficulty10
getindexinfo10
getmemoryinfo10
getmempoolancestors10
getmempooldescendants10
getmempoolentry10
getmempoolinfo10
getmininginfo10
getnettotals10
getnetworkhashps10
getnetworkinfo10
getnewaddress10
getnodeaddresses10
getpeerinfo10
getrawchangeaddress10
getrawmempool10
getrawtransaction10
getreceivedbyaddress10
getreceivedbylabel10
getrpcinfo10
gettransaction10
gettxout10
gettxoutproof10
gettxoutsetinfo10
help10
importaddress10
importdescriptors10
importmulti10
importprivkey10
importprunedfunds10
importpubkey10
importwallet10
keypoolrefill10
listreceivedbyaddress10
listaddressgroupings10
listbanned10
listlabels10
listlockunspent10
listsinceblock10
listtransactions10