The usage fee will be charged based on your use of Kii Cloud. This topic explains how the usage is calculated.
Contact email@example.com for the best fee plan for you. Kii offers a custom plan which is most appropriate for each customer based on how they use Kii Cloud.
You can immediately start to use applications that you create on Kii Cloud through the developer portal for free as evaluation/trial versions. These versions allow you to use the Kii Cloud features just as production versions except for some features available only with specific plans.
You may always evaluate Kii Cloud with these trial versions. However, it is not possible to continue to use Kii Cloud as a trial after you start the operation of your service in production.
The usage fee will be charged per application created through the developer portal.
The usage fee will be determined based on the following usages.
The total size of uploaded object bodies is counted as data usage. The data usage will be reduced when object bodies are deleted (either directly or indirectly by object or bucket deletion).
The size of JSON format data stored as key-value pairs of objects is not counted as data usage. However, it is not recommended to split your data into multiple pieces and store them as multiple objects, though it is doable. The reason is that this approach would consume multiple API calls for data upload. Handling large data as object bodies is also recommended from the performance aspect. Note that the JSON format data has the size limit of 65534 characters per object. The size limit of key-value pairs per object is the same for any fee plans.
The API calls mean the Kii Cloud REST APIs being executed. The number of calls is counted per month. The number is reset to 0 at the beginning of each month.
If you are using the client SDK, you can estimate the number of API calls by checking if the APIs make the network accesses. In some cases, calling a single SDK's API executes multiple REST API calls. Here are a couple of examples:
- A user registration will consume one REST API call for the user registration and another REST API call for the user login.
- If you change multiple ACLs at once, the corresponding number of REST API calls will be consumed.
If you want to reduce the number of REST API calls, it is essential to keep the number of SDK's API execution that will trigger the network access minimum (this will also contribute to improving the performance). Here is a couple of hints that might help you:
- If applicable, extract the necessary data from objects and locally store them in a cache.
- Try to design buckets, query conditions, and object structure so as to make it possible to get the necessary data with a single query.
When you are using the server extension feature, all API calls executed in your server code will be counted as the application usage. The server code uses the same REST APIs that are disclosed to clients so as to ensure the scalability of Kii Cloud, and this is the reason the API calls made by the server code are also counted.
- If you manually execute your server code, one API call is consumed for calling the server code besides the API calls made inside the server code.
- If you automatically execute your server code (i.e. via server hook), only the API calls made inside the server code are counted.
Thing Interaction Framework is currently in beta and REST API calls to https://<server_location>/thing-if/apps/... are not counted as data usage. However, REST API calls of the Kii Cloud SDK (for example, getting an access token) are counted.
REST API calls of Thing Interaction Framework will be counted as data usage in the future.
Regardless of the above, the number of push notifications triggered by sending and responding to commands is counted as described later in this topic.
Some features of the developer portal, such as the data browser, use the REST API calls. These calls will be counted as application usage too.
As with the limit to monthly API requests, Kii Cloud has a limit to API requests at peak times. The API returns an error if there are accesses that greatly exceed the ordinary load to the server within a certain period of time.
The rate limit is high enough for ordinary changes in the operational load. However, you need to have a separate agreement with Kii if you want to implement some feature that simultaneously generates a high number of requests. For example, suppose a feature with which active users simultaneously send a request on the same time or event.
A push notification sent to one device is counted as one push notification. The number of push notifications is counted per month. The count is reset to 0 at the beginning of each month.
Note that the number of push notification requests made by your application and the actual notification count could differ. Kii Cloud allows multiple devices to subscribe the same topic. If 100 devices subscribe to one topic, for example, requesting to send one message to this topic will trigger 100 push notifications to be sent to the devices. The number of push notification is counted as 100 in this case.
The push notification count does not distinguish the OS. For example, sending 1 million push notifications to Android only and sending 500 thousand push notifications to both Android and iOS are treated as the same.
The number of push notifications is counted when Kii Cloud sends a request to a push notification network such as FCM and APNs. After your mobile app is uninstalled from a device, Kii Cloud removes the device from the counting scope only when it receives error feedback from the push notification network. Push notifications to such an uninstalled device might be counted several times depending on when Kii Cloud receives error feedback.
You can check the amount of the current usage on the developer portal.
See Checking resource usage for the details.