What is Veery ?

a 5 minute explanation to better understand Veery :

Veery SDK : Predictive Geolocation for mobile applications

Veery predicts geolocations of every individual mobile application users: 

Where will he be next Thursday ?

Who/what will she meet this week end ?

What are their next trips ?

A Clever Bird For Clever Geolocation

In Nature, the Veery is an American migratory bird and an expert in geolocation. Every year, Veeries migrate from Canada to Southern Brazil – literally crossing the planet thanks to their incredible geolocation and long-distance-flying capacities; they fly all night over mountains and seas, resting only in the forests.

Being inspired by the Veeries, we’ve created the application programming interface (API)  Veery for mobile developers in order to give them access to the most advanced geolocation functionality analytics on the planet.

Veery Mobile API

First of all, Veery provides basic services: geolocation, routing, and static proximity detection. These services are free and Open Source.

We’ve designed Veery to be as light for developers as the Veery bird is in the air. In most cases, only 6 lines of code and a few minutes to integrate the API are needed. On top of that, we provide plenty of code samples.

However, Veery is not limited to traditional geolocation services. The API is capable of providing advanced services for your application, much like the clever tools Nature provided the Veery-bird:

And here comes the magic:

Why Is Predictive Geolocation needed?

We call it geo-prediction.

When our labs created our predictive mathematical model we wondered: what are we going to do with this?

This technology offers so many possibilities for change!

Carpooling, dating, trading, traveling, sight seeing… far too much for one little startup… but tools to enable so many new creative uses.

So we decided to publish the technology behind Veery – and make it affordable and easily accessible to all developers.

We want to let you creative guys have the best ideas!

How It Works

Just like the Veery-bird, mobile users have their preferred places.

By observing their behaviors, our algorithms estimate in real time where the user is actually going, and also estimates, thanks to  to his or her habits, where and when the user will go next.

All of that requires user observation, and of course leaving the geolocation running in the mobile’s background (which most allow now).

To ensure our algorithm receives just enough data for the predictive math to work, while still preserving the user’s battery, we have embedded the Veery Agent directly into the Veery API.

The result is this: by using only 7% of battery power per day, users can now be notified by the application when new opportunities arise just for them.

Veery Technical Drawing


Infrastructure Required By The Developer

Literally nothing. (okay: a laptop helps)

Developers embedding Veery into their apps will not need any geographical database or any extra servers to fulfill their geo-location and geo-correlation needs.

For any case-use existing today, and any case-use enabled by geo-prediction, everything required for the backend is included (and often free) within the Veery service.


The geo-correlation is a Platform as a Service (PaaS) and an Analytics as a Service (AaaS), accessible through Veery.

It allows the developer to request for “matches” between users (or between users and static points-of-interest).

Once our system detects a match, it sends a push notification directly to your application (to the mobile device or to your servers). The match could therefore happen immediately after being requested by the app, or at any later time when the conditions requested occur.

Matching Users

The prime geo-correlation objective is to match users using their

But the service will also consider the application designed user descriptors (called user-tags) for each user to generate matches.

For example, the application can Tag every user within his or her “Birthdate” parameter, and request matches of similarity for ages and the proximity of users.

veery.tagUser("MySuperUserAge", 35);
veery.tagUser("MyOtherAppParam", "Lorem Ipsum");

// request for a match on the predicted geolocation +/- 1000 meters
// when age difference is less than 5 years
// and when MyAppParam app is identical

veery.requestMatch (
             " thisUser.MySuperUserAge < otherUser.MySuperUserAge + 5 "
             " and "
             " thisUser.MySuperUserAge > otherUser.MySuperUserAge - 5 "
             " and "
             " thisUser.MyOtherAppParam = otherUser.MyOtherAppParam",
             this // callback is of type "boolean Veery.onMatch(Veery.MatchInfo)"


public boolean onMatch(Veery.MatchInfo info) {
     Log.d ("onMatch","You have matched with "+ info.otherUser['MySuperUserName']);
     Log.d ("onMatch","You will meet the user on "+ info.prediction.datetime);
     return true; // let the match live for further matches

Every developer will design the parameters used to feed our matching algorithms, following the specificities of the application.

Matching With Your Own POI Objects

You can also use the APIs to match your users with non-user objects.

For example, you can feed our database with shops or with available products (considered as a point-of-interest by your application – or POI), locate them and describe the objects with similar tags that users have. A Tag could, for example, be the amount of stock available at a given time.

Then you can request for matching between users (and their future positions) looking for one of your POI (at that position).

Possible Design Patterns


What About User Privacy?

In order for your application to provide the advantages of geo-prediction to the users, they will have to accept that their personal data is required for it to work.

It is our responsibility, as IT professionals, to be responsible with the data and not to overstep our boundaries.

Veery has been designed with this in mind: it collects and computes the geolocation data, but only the geolocation data.

Everything else (name, phone number, email, preferences…) is not required, so we will never collect it.

You may require more data for your application to work, but that’s your own business.

And if you follow our guidelines, you will not collect and store the geolocations in your databases.

The first part of the Privacy Code of Ethic we want the users to rely on is that no-one should ever store both geolocations and identities.


Of course, you can collect location history using Veery. It provides various information about the paths/journeys the users have taken. But when you Veery, it is not useful to do so.

About The Tags

The tags are the information you want your matchings to be based on.

Of course some of the information is personal. But we have made the encryption work available and easy for you to use, and ensure that no understandable data arrives in our databases.

The Encryption Key is stored on the telephone of your user (or even better in your in-house secret server).

So we store data that we cannot understand nor decrypt.

// From now all macthings are based on encrypted values

// Encrypt the tag before sending it to Veery

The source code for Veery.ios and Veery.android will be OpenSource at the end of the Beta period.

Let The Users Control Their Own Data.

The user should be able to fully control the data stored in Veery’s Backend.

So we at Roofstreet have made the following functions available:

To ease the development work, these functions are either “ready to use” (including the UX-design presenting messages and functions) or “customizable” by the developer.

The Veery Privacy Certified Application

If a developer fulfills our guidelines, and ensures the users’ privacy has reached the outstanding level expected, we will deliver the grade Veery Privacy Certified to the application, which facilitates publication to the Apple and Android application stores for geotracking applications.

How To Migrate My Application To A Veery Geo-predict /Geo-proactive / Geo-correlated Application

Veery comes in native iOS (Swift and ObjectiveC) and native Android (Java), and is available through public repositories (Bintray and Github).

With a few lines of code, it’s embedded into your app, and the background geo-tracking system begins (See Quick starts).

From there all the self-dependent functions (not requiring the connection to the Veery backend) will work immediately.

If the function sought requires a connection to our backend (see backend-dependency matrix), you will need an API key that can be generated through our console.

We provide a lot of different code examples covering various cases-uses.

Server Side Veery API

Veery is also accessible from the backend using the Veery REST API (node.js and php being prepared).

Using that interface (API key required) you can:

Veery Console

The console will allow you to: