Version: Smart Feature Phone 2.5



What development tools are available for KaiOS?

We have a KaiOS Simulator available via the developer portal, for Linux O.S. You can use the simulator for app development, debugging, checking KaiAds integration, etc. It’s important to know that the simulator doesn’t support device hardware functions such as Bluetooth or a Camera. Link to Simulator

Though most of the JS & HTML5 frameworks are compatible with KaiOS devices, we recommend frameworks with low memory consumption, including Inferno, Construct, Phaser. You can ask our developer community members on Reddit for recommendations.

Can I use Unity to develop for KaiOS?

If your application has a dependency on web assembly (WASM), then it would not work on the KaiOS 2.5 ecosystem.

Do you have a sample code for the UI components on the developer portal?

We do not have the available source code. Please refer to our GitHub library, sample code provided by a community member, or reach out to our developer community on Reddit.

What’s the Difference between a Native and Hosted app?

Native apps are submitted as a zip file, while hosted apps are hosted on your server and only require the submission of the manifest. To learn which one is right for you, check the difference between here.

How do I bring my Progressive Web App (PWA) to KaiOS?

The information is available in the document here.

How do I create a Privileged or Certified app?

If your app needs device API permission, the app type in the manifest should be Privileged or Certified depending on the API you need to access. You can learn more about this, here. User Data security is important to us. Therefore, to have a Privileged or Certified app, you must explain which device APIs you need access to and why in the “Known issues” segment of the submission portal. Access to certified API is limited and is provided on a case by case basis. Developers may be required to provide additional details and the QA time is thus longer.

Which apps are available in the KaiStore?

Visit our web store to see the apps that are live on the KaiStore here.

In case you are looking for inspiration or recommendations, you can reach out to

How is development for KaiStore different from JioStore?

As the underlying O.S. for the global KaiOS device including the Jio device in India, is the same, the applications that are developed for KaiStore are also compatible with JioStore, and vice versa. Essentially, they are just two different distribution channels for different geographies.


What is the business model of KaiOS? Do I need to monetize my app?

In our mission to reach the next billion users, we work closely with our partners to offer various subsidies to reduce the cost of the device and pass the benefits to our users. Therefore, we encourage the developers to monetize their apps on our Store.

All the technical resources and tools are available for developers free of cost. The app submission and QA are also free. Currently, all the apps on the ecosystem are monetized using KaiAds or other business agreements. If for the specific reason you can’t monetize your content or would not like to monetize, kindly reach out to

Can you tell me about KaiAds?

KaiAds is KaiOS’s in-house advertising SDK developed specifically for the small screen KaiOS devices. Thus, giving optimum user experience as well as best ecpm for the publishers/developers. Visit the KaiAds site to learn about the SDK and find it easy to follow steps for integration. We have made some reference apps available on Github.

Is there an option for paid apps?

KaiPay is our in-house payment SDK. The beta version of the SDK will tentatively be launched by the end of September. If you would like to learn more about it, kindly reach out to

When do developers get paid?

Earning information is available in your KaiAds publisher account. Payments will be processed by the second week of the next month. E.g. Outstanding revenue for May will be processed by 15th June. Monthly bank transfer payments occur after the cumulative amount crosses 500 USD for bank transfer, and 250 USD for tramsfer via Payoneer.

What is the payment method?

Once your earnings cross the payment threshold, our team will reach out to you with details on the process. As of now we support bank transfer ad transfer via Payoneer.


What is the QA process?

Once you have developed your app, we would recommend you go through the checklist before you submit the app. This is to ensure that you have followed all the guidelines and thus reduce the chances of app QA getting rejected.

App Submission Checklist: here

Youtube tutorial to submit the app: here

Avoid the Most common errors listed below.

How does the release of global apps work, in comparison to regional apps?

While we encourage all apps to be released globally for all KaiOS users, we have the functionality to implement regional apps that are curated for a specific location. You can select the regions where you want to release the app while submitting the app via the submission portal.

What is the average size of an app on the KaiStore?

The average size of an app on the KaiStore is 3-4 MB and 99% of the apps are under 8 MB. The submission portal can accept app packages up to 20 MB in size. To reduce the size of the app, try compressing the assets such as app icons, marketing banners, mp3 files.

What is the process for updating an app?

After your app is published, you can update the app by sending changelogs of the app update to developer support ( Changelogs help our QA team to understand what they need to test. Thus improving the efficiency and reducing turnaround time. You can also change the ‘type’ of the app during the app update. Make sure to inform us of the permissions you require for privileged or certified apps. The app update process is only for Packaged apps, Hosted app content is within the developer’s server and hence can be updated directly and the end-user will see the updated content when they open the app.

What should I do if my app is rejected?

The QA team would provide the rejection note which would be available on your submission portal account.

Once you have fixed and verified the reported bugs, submit the new version for review

Do I need to pay for app QA?

We want any and everyone to be able to develop apps with low barriers. As developer outreach initiatives, we do not charge for Developer account Registration, App QA, App storing fee, etc.

Most Common Errors

  • Manifest Error, when uploading the file Go to the root folder of your app and select all the contents of the app. Right-click and compress all the contents to create a zip file. Watch the youtube video to do it right.

  • The menu bar is white on specific devices You could add a top menu bar of invisible color on your app <head> <meta name=”theme-color” content=”#20407b”> or launch the app on the fullscreen mode.

  • App sound continues playing when the device is locked and/or the display is off. Many developers forget to monitor the visibility of their Apps, and Apps background music still plays when Apps are hidden, for example, stay in the background, or screen display off, or screen locked. Add an event listener on “visibilitychange” and from there if it is not visible, mute the game. If it is visible then check if it has focus. If it has the focus then unmute, else continuously check if it gained focus under these conditions and then unmute it. Click here to learn how it could be achieved. You can also refer to this medium article by a KaiOS developer.

  • Pause the game before calling the getKaiAd({ function. And resume it once you receive the adclose‘close’, () => console.log(‘close event’) )

  • Instructions do not accurately represent the app. If your game instructions read “Click center key to start the game”, only the center key should start the game and the other key should not take any actions.

  • App icons too large You can learn more about this process via the instructions for launch icons, here.

  • More than 2 icons submitted You have submitted too many icons. We only need 2 app icons, 56px and 112px

  • Marketing Banner missing

  • The app manifest is missing Subtitles & App description A good description improves the attractiveness of your app and increases the apps overall downloads. Below are some examples for your reference App Name: Birdy Subtitle: Birdy’s adventures through the jungle Descriptions: Keep your Birdy safe by guiding him through the jungle, dodging the pipes that pop up along the way. Stay for as long as possible, to obtain the new high score! App Name: News Subtitle: a personalized quality news experience Description: KaiNews brings a personalized quality news experience. Choose your region and language to read the best coverage of current events in different categories such as Business, Entertainment, Technology, Science, etc

China Type Approval (CTA), and how does it affects your apps on the KaiStore.

According to the new regulation, when the users in China install an app from the KaiStore, the app needs to pop up a confirmation window to let users accept or deny the operation like data connection, Wi-Fi connection, access call log. If your app uses KaiAds, Analytics, leaderboards, or any features that need connection to the internet, then you will be required to update the app.

Modify the manfiest file of your app in according to the below conditions:

  1. If your apps do not need a network connection or call log request, there is no need to make any modifications.

  2. Privilege app in Store that needs network connection or call log, should add below permissions in the app’s manifest.webapp file.

  1. Web and Hosted apps in Store that need a network connection, it should add the below permissions in the app’s manifest.webapp file.
“Permissions”: {
  1. Certified app does not need any modifications. The affected OS versions are KaiOS/ and KaiOS/ which will be used in the China market, and in case your apps do not have the requested permissions, they won’t be published in these two OS versions. These changes do not affect any of the existing devices and users.

If you have any other queries, don’t hesitate to reach us at