Author Archives: Aravind

OpenCelliD by Unwired Labs

OpenCelliD logo

There have been a few exciting changes at OpenCelliD, the largest Open Database of Cell Towers, over the past week and I’m here to update you about it. Markus Semm, the man who built and brought OpenCelliD to where it is today, has transferred its maintainership responsibilities to Unwired Labs.

In the past few years, OpenCelliD was funded by Markus’ personal funds and he’s taken care of all the development and infrastructure efforts and have single-handedly cleaned up the datasets and made it a reliable source. He believed it was time for it to grow further under a new custodian.

Who are we?

Unwired Labs is a leading geolocation company that specialises in Cell-tower & WiFi based positioning. We’ve been around for 4 years, but in this short while, we’ve rapidly built our partnership networks for data, helped thousands of developers/ startups create better products.

How is it going to help?

We believe in open-source and realize that it is a major contributor to geolocation services. We aim to improve OCIDs datasets, modernize its infrastructure and take it towards becoming a major open-source dataset for Cell, WiFi, IoT Wide area Networks. Unwired is entirely focused on geolocation, so it gives us incentive to share our resources and support the community.

What does this mean for you?

Better data that provides your apps and devices better locations! Also, you won’t have to worry about having to adapt to anything new. All the changes will happen at our end. Your contributions and tokens will stay intact and you will be able to download the database and request removal of your data – just like it was before. We will make sure the transition is smooth. Most importantly it stays open!

We’re really proud and excited to have been handed over this responsibility and are very excited to work with the community!


Gopi Aravind
CEO, Unwired

Unwired Launches Free Offline Location Library for Android

Unwired Labs, a leading provider of location technologies, announces the release of its Offline Location Library for Android devices. The library enables Android developers to create a faster, more consistent user experience by retrieving location context in milliseconds, even when GPS and internet connectivity are unavailable.

“Many mobile apps rely on location to provide a personalized user experience. Apps using our location library can increase user satisfaction and engagement by avoiding excessively long application launch times or serving users irrelevant content.” said Gopi Aravind, CEO of Unwired Labs.

This free library is designed to be a drop in replacement to Google Play’s Geolocation services. Android developers can view more details and download the library at

About Unwired Labs: Unwired Labs is a fast growing startup based in Hyderabad, India. They provide positioning solutions to enable connected devices to locate themselves globally without the need for GPS. Their clients range from Fortune 500 companies to startups in many verticals including the telecommunications, wireless, IoT/M2M, consumer electronics, fleet tracking and automotive industries.


Going from “accurate” to “Really accurate”

Traditionally, Cell Tower based locations were fraught with issues of reliability; responses miles away from an actual location, in water bodies and in cases, no response at all.

Unwired Labs has done pioneering work to address each of these issues. Our R&D team is happy to announce a major update to internal algorithms. A lot of effort has gone into enabling our algorithms to auto-adapt based on the type of geography requested, correct for unclean data-sets (in case of crowd-sourced data) by intense cleansing of both contributor and customer data.


In terms of numbers,  this update increases the median accuracy of Cell Tower locations – when the request has multiple neighbours – by up-to 37%. With just a single cell, it increases accuracy by 16%. As a happy side-effect, the enhanced data-cleansing algorithms alone have improved WiFi accuracy by over 32%.

There’s a lot of on-going work on these algorithms, which are available in private BETA. If you’d like to get on an early BETA list, reach out to us!

IWIT Digital and Unwired Labs Partner to Develop Wearable Devices for Children


IWIT Digital and Unwired Labs have entered into a partnership to create location-enabled wearable devices for children. The first of these devices, an intelligent watch with two-way communication capabilities, garnered much attention at the recently held HKTDC Hong Kong Electronics Fair.

Leveraging IWIT Digital’s decade of experience manufacturing children’s products and Unwired Labs’ geolocation expertise in locating devices without GPS, the new wearables are designed for children’s safety. “We are excited about working with IWIT on this new range of products,” said Gopi Aravind, CEO of Unwired Labs. “Our platform will be able to locate millions of these wearables globally and provide parents with a peace of mind.”

iWIT watch specs

“There is a huge opportunity opening up in the wearables space for us,” said David Liang, CEO of IWIT Digital. “And we are glad to have Unwired Labs backing us as we create end-to-end hardware and software solutions.”

The first products will launch in early 2016. For more information,visit and

About IWIT Digital: Headquartered in Shenzhen, China, IWIT Digital is an innovative company focused on developing educational and safety products for children. They have over a decade of design, tooling and manufacturing expertise and are backed by leading investors such as Tencent Holdings Limited.

NEW: Activity Dashboard for API users

Our product strategy has always been shaped by the needs of our users. And one feature a lot of you have been asking for is a dashboard to keep tab on their API account. So… (drum roll) .. I’m happy to announce that we just released an Activity Dashboard for all users!

Before I show you some screenshots, I’ll explain why we pushed off this “essential” feature for this long. We follow a MVP – Minimum Viable Product – philosophy here at Unwired for everything we build; we ship the part of the product that adds most value for our users first. All else comes later. Our focus has been on building a world-class Location API that reliably and affordably locates devices anywhere. Now that we’ve covered that (there’s still miles to go before we sleep!), we’re working on the useful glitter. 🙂

Without further ado, here are some snaps:

API Sandbox API Reports


Support desk

Login to your dashboard here.

We’ll be adding many more user-facing features in the coming weeks. Also, any ideas on improving this dashboard are always welcome!

NEW: WiFi Positioning Service

This morning we began rolling out the much awaited WiFi Positioning service to all our customers & developers. The service is built on a large, growing database of over 550 million access-points world over. Best of all, it’s available at no additional charge!


What this means for you – if you have products / devices that can detect nearby WiFi access-points – is much better accuracies (usually between 5 and than 30 meters) globally!

Head to the API Docs to start locating with WiFi!

NEW: API Sandbox

We’ve also redesigned the API sandbox so you can have a go at WiFi location

Unwired Labs API Sandbox

Start locating with the sandbox here!

New: API Availability Dashboard

As an API provider, we believe reliability comes first. Thousands of developers and companies on our platform use our service for non-trivial use cases and we do our bit to ensure high availability.

As a responsible company, we believe transparency in our operations comes immediately after reliability. Ask any customer and they’ll vouch for our honesty in all communications with them; whether it’s about accuracy estimates or system status.

Today, we’re going one step further to achieve this by launching a API availability dashboard that displays the real-time status of our API endpoints. We’ve integrated it with our internal monitoring tools so anyone else can view the status of our API in real-time.

Unwired_Status Screenshot

You can also subscribe to the RSS feed or follow the twitter handle @unwired_status for notifications.

As always, please let us know what you think with a comment!

Getting to 100% uptime

As a startup, adding high-availability can be both time consuming and expensive; two factors usually more critical than high-availability itself. Like most startups, we bootstrapped on AWS with an app server, a DB server, no replication or backups and a few Cloud Watch alarms.


As luck would have it, we had no major down-times and this scaled easily to our first 100 users. Even at this scale, we couldn’t sleep too well at night, knowing that a down-time would affect a lot of critical services relying on our API. One day, we decided enough was enough and set out to build a good, solid infrastructure. Our team put in place a cost-effective (opinions welcome here!) solution that comprises multiple solutions, some of which can take minutes to configure, and others days.

Here’s an extremely brief overview of what we did:

  1. Monitoring
    We setup a server outside our main infrastructure provider that runs Nagios / Icinga. It monitors all services (API health, CPU, RAM, etc) on all hosts. It also calls us if there’s something critically wrong with any service, so we know about it right away.
  2. Load balancers, and many many more instances
    To scale requests on our primary endpoint, we added more App servers, replication and daily back-ups in different physical locations / data-centers, and put them behind load balancers. For our servers on AWS, we used their load-balancer. For others, we deployed a reverse-proxy using HAProxy to achieve this.
  3. Multiple end-points
    Our API serves customers world-wide, and it made sense to launch similar infrastructure in multiple locations. All it took was rock-solid replication (with alerts if it fails), fast DNS servers and a little more money. We were also careful to pick different data-centers for each location, to decrease risk of downtime due to hardware failures. This was a win-win for customers because it reduced latency for them and us, because the load on the primary endpoint was lesser.
  4. DNS-based Failovers
    Another win for a multiple end-point architecture is the ability to reroute requests from one  endpoint to another, in the event of down-time, with just a DNS change. With Cloudflare as our DNS provider, and per second health-checks by CloudRoutes, we could reroute requests instantly (again, via CloudRoutes), and with zero down-time. DNS time-to-live doesn’t matter because our servers are behind Cloudflare’s reverse proxy; it’s our IP that changes, not theirs.
  5. Keeping track of logs
    There were so many things happening in our systems – malicious requests, slow requests, buggy code – that weren’t very visible. Then we found a great logging solution. All system and API log files are shipped to this logger, email and web-hook alerts are created based on simple searches.
  6. Processes
    We can’t stress enough on this one! From having someone responsible for code-review before pushing it to production, to drawing straws on who would get the first phone call if there was a problem after hours, we spent sometime putting SOPs down on paper and on an internal wiki.

The industry standard seems to be 99.95%, but when thousands rely on our platform for non-trivial use cases, we think 100% availability is pretty darn important.

New global endpoints in Asia, Europe and North America

Unwired Labs Endpoint locations

We have launched new endpoints in Asia (Singapore), USA West (San Francisco) and Europe (Amsterdam). Customers and developers in these regions can now enjoy low-latency access to our API. Along with the existing endpoints in USA East (New York) and Europe (Ireland), this launch increases the count of our global endpoints to 5.

The URLs to access each of our endpoints are listed here.

Street Addresses now available on LocationAPI

We’re excited to announce the Street Addresses (or reverse geocoding) feature on LocationAPI. With this launch, you can now request a physical street address along with the geolocation result.

To request an address, add the “address” parameter to your JSON request and set it’s value to “1” (without quotes). Please refer to the illustration below:


You can try this out live on our API page here. Happy locating!