Public mobile cells position database. Geo-Location API
Hereby the introduction of public Geo-Location API implementation for mobile cells.
Compiled open sources:
- OpenCellID (CC-BY-SA 3.0 unported)
- openBmap.org (Open Database License (ODbL) v1.0)
- Mozilla Location Service (CC0 1.0 Universal (CC0 1.0))
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:
- mcc - Integer (Country code)
- mnc - Integer (Network operator code)
- cellid - Integer (Cell id)
- 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:
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!
May 19th, 2017 - 19:39
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.
May 19th, 2017 - 21:45
Dear Kirill,
I will do it, sure. Great idea. It would be on the page https://www.mylnikov.org/download
June 1st, 2017 - 19:54
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.
June 13th, 2017 - 12:20
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.