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).


You can install {opencage} from CRAN, R-universe or GitHub like this:


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 10 Downing Street, 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.

Code of Conduct

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.