Hi everyone,

this is a bit of a strange post to write, as normally we post here about new features and ways to use our geocoding API. Today though I am forced to write to clarify a service that we do NOT offer.

OpenCage can NOT be used to determine the location of a mobile phone simply based on the number of the phone.

I’m forced to clarify this because we are getting more and more support requests from people who have been mislead by YouTube tutorials that a simple python script can be used to determine the location of any phone simply by entering the phone number.

Here is what is actually happening:

  1. The phone number is entered and a library is used to turn the country calling code into the name of the country. For example numbers starting with +91 becomes India, +880 is Bangladesh, +34 is Spain, etc.

  2. The country name is then sent to our geocoding API as a forward geocoding request (placename to coordinates). We then return the coordinates of the center of the country. For example we turn India into 22.3511148, 78.6677428, roughly in the middle of Uttar Pradesh.

  3. People get confused and angry as to why the coordinates are not actually where the phone is physically located.

Unfortunately there is no such thing as magic, and neither we, nor anyone else, have the ability to derive a phone’s location from an input string like India or Spain.

If you want to know the location of a phone you need a service (application) running on the phone that has user permission to access the location from the operating system. How accurate the coordinates reported by the phone are will depend on which technology is used to determine the location (GPS, cell triangulation, wifi, etc). Once you have those coordinates you can then send them to our API as a reverse geocoding request.

We hope that clarifies things. Sorry if you were mislead to believe we can help you find phones.

UPDATE: we did a twitter thread explaining the situation for those who prefer their content in meme format:

Happy geocoding,

Ed