Alexander Mylnikov

7Apr/154

Public mobile cells position database. Geo-Location API

cell towerHereby the introduction of public Geo-Location API implementation for mobile cells.

Compiled open sources:

For this moment it contains about 26M+ records. With this size database becomes world largest open source mobile cells position database.

This API is absolutely free of charge to use and have not hidden usage fees. Also, there is no limitation for request amount per any period.

Download data

Download database in CSV format from Download database page

Location of cell (Open data)

API accept two request paths. Parameters should be send with GET request.

  • http://api.mylnikov.org/geolocation/cell?v=1.1&data=open
  • https://api.mylnikov.org/geolocation/cell?v=1.1&data=open

There are 4 required parameters for a request:

  1. mcc - Integer (Country code)
  2. mnc - Integer (Network operator code)
  3. cellid - Integer (Cell id)
  4. lac - Integer (Area or location code)

Example of usage:

https://api.mylnikov.org/geolocation/cell?v=1.1&data=open&mcc=250&mnc=2&lac=7840&cellid=200719106

Explanation of the request is that 250 stands for Russia, 2 - Megafon, 7840 - area code, 200719106 - cell id number

If cell is found you would get 200 in field result or 404 if request is failed.

Example of response

{
  "result": 200,
  "data": {
    "lon": "30.378965994",
    "range": "1248.781274361",
    "time": 1431125998,
    "lat": "60.052802453"    
  }
}
{
  "result": 404,
  "data": {
    
  },
  "real": 6,
  "desc": "No information about location",
  "time": 1431126043
}

Description of successful response:

  • lat - latitude of tower
  • lon - longitude of tower
  • range - accuracy of result in meters

Refined location (Beta)
In version 1.1 I added new function of fetching refined location by number of mobile cells.
The request path is https://api.mylnikov.org/geolocation/cell?v=1.1&data=open&search={search string}

{search string} - Base64 of string (mcc,mnc,lac,cellid,SS;mcc1,mnc1,lac1,cellid1,SS1;...)

Max amount of cells is 12 to request.

Example of search string:
250,02,7810,318,-81;250,02,4711,24208,-83;250,02,4711,24214,-89;250,02,4711,619,-95;250,02,4711,16627,-95

mcc,mnc,lac,cellid,SS;mcc1,mnc1,lac1,cellid1,SS1

SS - Signal Strength

Example request:

https://api.mylnikov.org/geolocation/cell?v=1.1&data=open&search=MjUwLDAyLDc4MTAsMzE4LC04MTsyNTAsMDIsNDcxMSwyNDIwOCwtODM7MjUwLDAyLDQ3MTEsMjQyMTQsLTg5OzI1MCwwMiw0NzExLDYxOSwtOTU7MjUwLDAyLDQ3MTEsMTY2MjcsLTk1

Demo

The web-site https://find-cell.mylnikov.org/ has a demo visualisation API results on map.

Licensing

Statements of the API Geo-Location project:

  • Open data Geo-Location API  that licensed with  MIT License. All the request should contain key "data=open" key. The data from comes from the open source written above.
  • Any data from Geo-Location API is presented "as is".
  • Any usage of Geo-Location API are done by a final user without any stated guarantees and specific condition.
  • Usage liable of any data fetched from API fully lies on a final user activity and could be never wired with Geo-Location API service.

API database contains about 32.5M+ records. Usage of API is free of charge.

P.S.

I you need full database of cells in CSV format you can download here.

If you have any sources that contains reliable data about cell towers location please contact me via e-mail. I'll add them into API sources.

I'll be happy to give you any help via e-mail [email protected].

Here are some application that could let you view about accuracy of the API. Feel free to install!

POC Application:
Get it on Google Play

POC Application for Developers:
Get it on Google Play

Comments (4) Trackbacks (0)
  1. Thank you for you job, but what are the headers for the csv files? It is probably possible to reverse engineer, but it will be cool, if you will just add them on this page or somewhere on the download page or just include in pgsql export 🙂 Thank you again.

  2. I have found quite a few UK cell towers missing from the latest CSV download, e.g. LAC=263, CellId=39948 and LAC=2173, CellId=1833, but which return a result from the API. It seems unlikely that these should have only been added in the last six weeks, since the last update. Is that possible, or could something else be wrong? Thanks.

    • Dear Charles,

      The results of API response is strongly depends on parameters you put inside of the request, so if you put “data=open” you would not be able to get response from API as well. API has multiple databases to access. The only open-source content is available for download.


Leave a comment

No trackbacks yet.