When you purchase a subscription plan you are charged a one-time setup fee for that plan. This fee is deducted from your prepaid balance immediately after purchase.
Your usage fees are deducted from your balance whenever you use the APIs in real time.
At the beginning of each month you are charged recurring monthly fee for the plan. The first monthly payment is prorated (the initial amount is lowered depending on which day of the month you made the initial purchase).
All of the fees are deducted from your prepaid balance so make sure your balance is sufficient at all times. If your balance is too low the account is temporarily disabled.
Connecting to a Websocket endpoint has a multiplier cost of 100x the regular price of an API call. You are not charged for data transfers over Websockets. Each API node can have internal rate limits that are different from the subscription plan limits.
How do I authenticate?
API key authentication
1. Register an account on the API portal
2. Top-up your pre-paid balance in My Account->Manage Subscriptions->Prepaid Balance
3. Buy one of the plans
4. Register an application
Once you do the steps above you will receive an API key. You can find the key under your application details in the "Consumer Key" field.
You must provide this key when calling an API by using the following HTTP header:
x-apikey: <my-consumer-key>
If your client does not support custom headers you can also use an ?x-apikey= query parameter.
HTTP Basic Authentication
Some APIs require an additional basic authentication when used.
You will receive a username and password via email when you add balance to your account. You can use HTTP Basic Authentication by providing the following HTTP header:
For Algorand API you need to provide the following header with a token you receive via email:
X-Algo-API-Token: <token>
Public
APIs not listed above require no additional authentication methods.
Are sticky sessions supported?
Consecutive requests may hit any of our multiple API nodes and there is no guarantee the same node server returns the request for a specific client. The nature of the blockchain is such that each node can be in a slighlty different state even when fully synced, giving you different answer for the same request. We support best-effort sticky sessions by client IP.