Skip to contents

Geocode with the OpenCage API, either from place name to longitude and latitude (forward geocoding) or from longitude and latitude to the name and address of the location (reverse geocoding).


Install the package with:


Or install the development version using remotes with:



For the best experience, we recommend that you read through the “Introduction to opencage” vignette (vignette("opencage")), but if you are in a hurry:

  1. Register at
  2. Generate an API key at the OpenCage dashboard.
  3. Save your API key as an environment variable like OPENCAGE_KEY=yourkey in .Renviron. See help(oc_config) for alternative ways to set your OpenCage API key.

Now you are ready to turn place names into latitude and longitude coordinates:

oc_forward_df(placename = "Sarzeau")
placename oc_lat oc_lng oc_formatted
Sarzeau 47.52877 -2.7642 56370 Sarzeau, France

Or turn a set of coordinates into the name and address of the location:

oc_reverse_df(latitude = 51.5034070, longitude = -0.1275920)
latitude longitude oc_formatted
51.50341 -0.127592 Prime Minister’s Office, 10 Downing Street, Westminster, London, SW1A 2AA, United Kingdom

But remember, the vignettes are really great! We have:

About OpenCage

The OpenCage API supports forward and reverse geocoding. Sources of OpenCage are open geospatial data including OpenStreetMap, DataScienceToolkit, GeoPlanet, Natural Earth Data, libpostal, GeoNames, and Flickr’s shapefiles plus a whole lot more besides. Refer to the current full list of credits.


  • Please report any issues or bugs.
  • License: GPL >= 2
  • Get citation information for opencage in R doing citation(package = 'opencage')
  • Please note that this package is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.