Skip to main content

A complete Python Geocoding module made easy.

Project description


A complete Python Geocoding module made easy.

Every task is made easy with tons of help & debug commands!

>>> import geocoder # pip install geocoder
>>> g ='<address>')
>>>, g.lng
45.413140 -75.656703


A place to get you started on how to use this module and set up your work station.

Install from PyPi

$ pip install geocoder

Using iPython with Geocoder

$ pip install ipython
$ ipython

Using the TAB key after entering ‘.’ you will see all the available providers.

>>> import geocoder
>>> g = geocoder.
geocoder.api             geocoder.geolytica       geocoder.mapquest
geocoder.arcgis          geocoder.geonames
geocoder.base            geocoder.get             geocoder.osm            geocoder.timezone
geocoder.bing_reverse    geocoder.google_reverse  geocoder.tomtom
geocoder.canadapost      geocoder.ip    
geocoder.cli             geocoder.keys
geocoder.elevation       geocoder.location

Using the TAB key again, you can see all the available attributes.

>>> g ='Ottawa')
>>> g.
g.accuracy            g.latlng              g.south
g.address             g.lng                 g.southeast
g.api                 g.locality            g.southwest
g.attributes          g.location            g.state
g.bbox                g.neighborhood        g.status
g.content             g.north               g.status_code             g.northeast           g.status_description
g.county              g.northwest           g.street_number
g.debug               g.ok                  g.sublocality
g.east                g.params              g.subpremise
g.error               g.parse               g.url
g.geometry            g.postal              g.west
g.headers             g.provider            g.wkt                g.quality             g.x
g.json                g.route               g.y                 g.short_name

Command Line Interface

The command line tool allows you to geocode one or many strings, either passed as an argument, passed via STDIN, or contained in a referenced file.

$ geocode "Ottawa"
  "accuracy": "Rooftop",
  "quality": "PopulatedPlace",
  "lng": -75.68800354003906,
  "status": "OK",
  "locality": "Ottawa",
  "country": "Canada",
  "provider": "bing",
  "state": "ON",
  "location": "Ottawa",
  "address": "Ottawa, ON",
  "lat": 45.389198303222656

Now, suppose you have a file with two lines, which you want to geocode.

$ geocode `textfile.txt`
{"status": "OK", "locality": "Ottawa", ...}
{"status": "OK", "locality": "Boston", ...}

The output is, by default, sent to stdout, so it can be conveniently parsed by json parsing tools like jq.

$ geocode `textfile.txt` | jq [.lat,.lng,.country] -c
[42.35866165161133,-71.0567398071289,"United States"]

For more development requests for the CLI, please provide your input in the Github Issues Page.

Visit the Wiki

Please look at the following pages on the wiki for more information about a certain topic.


Here is a list of providers that are available for use with FREE or limited restrictions.


The fun extra stuff I added to enjoy some cool features the web has to offer.

Topic not available?

If you cannot find a topic you are looking for, please feel free to ask me [@DenisCarriere]( or post them on the Github Issues Page.


This project is free & open source, it would help greatly for you guys reading this to contribute, here are some of the ways that you can help make this Python Geocoder better.


Please feel free to give any feedback on this module. If you find any bugs or any enhancements to recommend please send some of your comments/suggestions to the Github Issues Page.


Speak up on Twitter @[DenisCarriere] and tell me how you use this Python Geocoder. New updates will be pushed to Twitter Hashtags #geocoder.

Thanks to

A big thanks to all the people that help contribute:

Project details

Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
geocoder-0.8.3-py2.py3-none-any.whl (33.7 kB) Copy SHA256 hash SHA256 Wheel 2.7
geocoder-0.8.3.tar.gz (18.9 kB) Copy SHA256 hash SHA256 Source None (41.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page