Exposing a SQL Database via REST APIs: a How-To Video Guide for Developers


Many organizations that are building mobile apps need to connect to and reuse existing (internal) systems. One of the most common system is a relational (SQL) database.

We have prepared two short videos that will show you how to do that using Appery.io API Express.

API Express connects to a relational database and exposes the database tables via REST APIs. Once the APIs are created, the mobile app can easily consume the APIs.

There are two approaches exposing a database:

The first approach automatically generates CRUD-like APIs to work with a database table. In many apps, this is close to 80% of what an app might need. This automatic approach also comes with very sophisticated offline support. In other words, you app can work offline and sync data with a remote database when a connection is reestablished.

With the second approach, you get full control as you write the actual SQL query (or Stored Procedure) that will be executed. With this approach, you can use a visual service editor to orchestrate the REST API. In addition to the SQL component (connector), you can use connectors such as Web Service (WSDL), REST  and others.

Check out the API Express video playlist to learn more.

Appery.io + Pollfish: How to Integrate a Pollfish Survey into Your App

Our friends at Pollfish, a survey platform company, created this guide to help you monetize Appery.io apps with Pollfish surveys. Integration takes only a few minutes and can boost your revenue up to 20x more compared to any other traditional advertising format out there.


Check out the steps below to create a Pollfish app and integrate it with Appery.io Ionic app.

Read the rest of this entry »

Ringing in 2017 With a Big Platform Update: iOS 10, Cordova Update, Automatic APIs Sync and More

We are happy to share that we starting 2017 with a big platform update. Read this blog post to learn what’s new.

iOS 10 Support

This update brings full iOS 10 support. This means when you build a binary app for iOS, it should run on an iOS device running version 10 without any problems.


This support is possible with Apache Cordova library update.

Apache Cordova Upgrade

In order to provide full iOS 10 support, we have upgraded the Apache Cordova library. The latest Cordova library for iOS is version 4.3.0 and for Android is 5.2.2. This update brings many bug fixes, improvements to Cordova. Your hybrid app will be just a little bit better and that’s good. Please read the technical release notes about this update.

Automatically Sync Backend Services Changes with the App Builder

Integration between the App Builder and Backend Services is one of the core values in the Appery.io platform. Importing API services into an app is very simple:


Now, if you made any changes to the backend APIs, you had to either manually update the service in the App Builder or delete the service and then import it again. These approaches are not very good so with this update we are introducing an automatic sync feature between the App Builder and Backend Services. When you update a backend API service, simply click the Check for update button to update the service in the App Builder.


This is very nice as you no longer need to make manual changes or even delete the services. Right now this feature is available only in an Ionic app but we are planning to add this support to a jQuery Mobile app as well.

Read the rest of this entry »

How to Search the Database by Date From Server-side JavaScript


Searching or querying a database is one of the most common actions in a mobile app. Appery.io platform provides a cloud database to store any app data and Server Code that allows to write any server-side app logic using JavaScript. Server Code has an API to query the database that makes it easy to perform search queries based on a date. In this blog post you will learn how to write a script to query a database collection using dates.

To start, we need to create a sample database collection. Our collection looks like this:

Database collection

Database collection

The collection has two built-in date columns:

  • _createdAt – the time when a record was created
  • _updatedAt – the time when a record was updated (default value is set to _createdAt)

and two custom columns, both are of Date type:

  • startTime
  • endTime

You can of course include any other data.

Now let’s get to the code.

The first code examples shows how to query by using the built-in fields (_createdAt or _updatedAt).

var dbApiKey = "database API key";
var collection = "Goods";
var d = new Date();

var params = {};
params.criteria = {
   "_updatedAt": {
      "$lt": {$date: d.toISOString()} 
var result = Collection.query(dbApiKey, collection, params);

This search query will return all objects where the _updatedAt date is less then ($lt) the current time (when the script runs).

When using one of the built-in data types in a query (_createdAt, _updatedAt), the date value must be formatted in ISO format. When using a custom column with Date type, using ISO format is not required.

The next code examples uses a custom endDate column (type Date). Note that the syntax to use the built-in date column (above) and a custom column is slightly different:

var dbApiKey = "database API key";
var collection = "Goods";

var params = {};
params.criteria = {
   "endTime": {
      "$lt": "2016-12-31 00:00:00.000"
var result = Collection.query(dbApiKey, collection, params);

This query returns all records where the endTime is less than December 31, 2016. Based on data in the collection, only the record that contains tablets will be returned. This is how the response looks:

    "product": "tablets",
    "_createdAt": {
       "$date": "2017-01-18T20:23:31.652Z"
    "startTime": {
       "$date": "2016-12-01T00:00:00.000Z"
    "_id": "587fcec3e4b07690b0037f12",
    "endTime": {
       "$date": "2016-12-21T00:00:00.000Z"
    "_updatedAt": {
       "$date": "2017-01-18T20:56:26.322Z"

Let’s now look at another code example where we will use the startTime and endTime together.

In the following code snippet we query for all objects where the startTime is greater than December 31, 2016 and the endTime is less then February 1, 2017.

var dbApiKey = "database API key";
var collection = "Goods";

var params = {};
params.criteria = {
 "$and": [{
       "startTime": {
          "$gt": "2016-12-31 00:00:00.000"
    }, {
       "endTime": {
          "$lt": "2017-02-01 00:00:00.000"
var result = Collection.query(dbApiKey, collection, params);

Querying the database by dates or any other columns is best suited for server-side logic as you can test the script and ensure it works before using in an app. Moving this logic to the client would only complicate the app and make it more error prone.

Once the Server Code script is tested and read you can import the service API for it inside the App Builder. This short video shows how to import a backend service. To learn more about Server Code, watch the Server Code YouTube playlist videos.

Convert Phone Numbers Into Real Business Intelligence with EveryoneAPI


EveryoneAPI by Telo allows to convert a phone number into real business intelligence with a simple API request. The complete reverse phone append product is simple to use, yet powerful and built for developers by developers. As you probably already know, integrating with any 3rd party REST API using the Appery.io Server Code is also simple. In this blog post, I will show you how to invoke a test a script that calls the Everyone API.

To start, create a new Server Code script with the following code:

var telephone = request.get("telephone");
var url = "https://api.everyoneapi.com/v1/phone/"+telephone;
var auth_token  = "AU83e975.....";
var account_sid = "AC659275.....";

var XHRResponse = XHR2.send("GET", url, {
   "parameters": {
      "auth_token": auth_token,
      "account_sid": account_sid, 
      "pretty": "true"
Apperyio.response.success(XHRResponse.body, "application/json");

The only thing you need to do, is to replace the auth_token and account_sid with values from your account. Sign up for an account here. It’s fast and simple.

The phone number for which you want to get information is passed as a parameter to the script (line 1). To test the script, switch to Script parameter tab (on the right side), enter a parameter called telephone and then set it to a test value. Here is an example testing the API using the Appery.io telephone number:

Testing EveryoneAPI

Testing EveryoneAPI

Once you finished and tested the script, you easily import into your app. This video shows how to do that.

Looking for more APIs by Telo? Check out the CallerID Server Code plug-in:


OpenCNAM plug-in

This plug-in creates a Server Code script that integrates with OpenCNAM API. The OpenCNAM API allows you to get caller ID information for phone number provided.

Appery.io Newsletter (December 2016)

Happy New Year!

Platform News

Our Apache Cordova library update with iOS 10 support is coming by the end of January. Please check if you need to update the jQuery Mobile App Library version in your app before this update.

Appery.io Mobile Resources You Should Know in 2017

To help you build mobile apps faster in 2017, we have published all the Appery.io resources you should know about and use. Check out the list here.

A Quick Guide to Using Geolocation in Your Mobile App

We published two short videos that show you how to set up and the use Geolocation API in jQuery Mobile and Ionic apps.

GoCodes Extends Asset Tracking Solution to Android Devices with the Help of the Appery.io Platform

GoCodes provides a complete patented asset and inventory tracking solution that harnesses the power of cloud-based software, smartphones, and QR codes. When GoCodes launched in 2012, their mobile apps were limited to HTML5 browser technology and lacked the power and ease-of-use of true mobile apps. Learn how GeoCodes built a native app with Appery.io.

Appery.io Platform Overview: A Guide for Mobile Developers

Learn about Appery.io platform features and benefits from this short video. This is a great guide for mobile developers, whether they are existing Appery.io developers or just starting out. Watch the video now.

Appery.io Videos

We have close to 200 short videos conveniently organized into playlists. Check them out.

Learn How to Use Server Code Snippets

Learn how to use Server Code Snippets for faster server-side JavaScript development and learn about the new FullContact API integration.

Appery.io Mobile Resources You Should Know in 2017


Happy New Year!

As we are starting 2017, we want to let you know about all the Appery.io resources available to you, to help you build you app faster and easier. These resources are being updated with new content all the time, so we definitely recommend subscribing to updates or following them. This way you will be always up to date with what is happening. Let’s get to the resources.

Developer Documentation and Portal (http://docs.appery.io)

The docs site is the most important resources (obviously). The docs site contains the platform documentation, tutorials, and API reference section. We regularly update the content on this site. If you find a typo or an error, please use the Suggest Edits feature to tell us about it.

The docs site has a blog section (http://docs.appery.io/blog) where we usually post technical information such as API updates or library updates. The information is usually very technical and specific so it doesn’t go on the main blog. We will also post links to tutorials and videos.

The Appery.io blog (http://blog.appery.io)

The blog is one of the most important resources you should read. This is where we post platform updates, announcements, new videos, new tutorials, case studies and anything else. We definitely recommend you follow the blog to stay up to date. Following the blog is very simple. You can subscribe via the RSS feed or subscribe via email (you will get an email every time a new post is published).

YouTube Channel (http://youtube.com/apperyio)

This is our most popular resource. Our YouTube channel has over 200 short videos on various topics to help you build apps faster. Definitely subscribe to get updates when we publish new videos. The videos are organized into playlists:

Most of our videos are no longer than 15 minutes. This allows you to learn about a topic, feature or benefit very fast and you won’t be bored through an hour long example.

Community Forum (http://appery.io/forum)

Our community forum is the place to get help, ask questions and help your fellow Appery.io developers.

Platform Status Page (http://status.appery.io)

Appery.io platform status page shows each platform component and its current status. It’s important to bookmark or follow this page via RSS to always know the status of each component.

Twitter (http://twitter.com/apperyio)

Twitter is where we post important announcements, platform updates, new tutorials, case studies, new videos and anything else. We recommend to follow up on Twitter to always stay up to date.

Facebook Page (http://facebook.com/apperyio)

Facebook is very similar to Twitter. On Facebook we post important announcements, platform updates, new tutorials, case studies, and new videos. We recommend to Like us Facebook to always stay up to date.

LinkedIn Company Page (https://www.linkedin.com/company/appery-io)

On our LinkedIn Company Page we post announcements, new tutorials, case studies, and new videos.

Google+ Page (https://plus.google.com/u/0/104276681162289155352)

Yes, we are still on Google+ :).

Instagram (https://www.instagram.com/apperyio/)

This is a new resource and we will be posting a lot more in 2017.

What’s New Panel

And a bonus resource is our What’s New panel. The What’s New panel can be opened from any platform page from the header. The panel shows you the most recent updates, tutorials, and videos. Check this resource often to learn what’s new.


App Metrics You Need to Know: A Guide for Mobile Developers


A guest blog post by Vasily Malyshev (Messapps)

Perhaps the best way to run a business is to run it mathematically. Knowing all your business metrics will allow you to not only better predict your revenue but also understand what you can do and how much you can invest to further multiply your revenue. In my role as CEO of an app development company, Messapps, I have worked on over 50 different applications and found that knowing the following metrics is absolutely essential if you want to be a successful “appreneur”.


What it is: Number of downloads represents the number of unique app store accounts that have downloaded your app. That means that if the same person downloads the app 10 times it will still be displayed as 1 download. The exact number of downloads is always shown in your app store analytics.

Why it is important: Ok, that’s a no-brainer. How many people download your app is the most basic and the most important metric. If downloads are at 0 then all other metrics simply don’t exist. You need to get those users first in order for your app to start earning money. No matter which monetization method you’ll choose.

That being said, it is important to note that number of downloads can also become completely meaningless if nobody is using the app after the initial download.

Read the rest of this entry »

GoCodes Extends Asset Tracking Solution to Android Devices With the Help of Appery.io Platform

GoCodes provides a complete patented asset and inventory tracking solution that harnesses the power of cloud-based software, smartphones and QR codes. When GoCodes launched in 2012, their mobile apps were limited to HTML5 browser technology and lacked the power and ease-of-use of true mobile apps.


Moving From HTML5 to True Mobile App

Fast forward to 2015 when GoCodes was looking to develop the next generation of mobile asset tracking apps. They turned to Appery.io to provide a powerful and easy-to-use development tool that could cut development time in half and enable existing team members to quickly get up-to-speed without any special training.

Read the rest of this entry »

How to Use Geolocation In An Ionic App: A Quick Video Guide

This short video shows how to use Apache Cordova Geolocation API to get latitude and longitude data in an Ionic app.

Watch other Ionic videos on our YouTube channel.