Skip to contents

Returns the most recent sighting date and specific location for the requested species of bird reported within the number of days specified and reported in the specified area.


  species = NULL,
  lat = NULL,
  lng = NULL,
  dist = NULL,
  back = NULL,
  max = NULL,
  locale = NULL,
  provisional = FALSE,
  hotspot = FALSE,
  sleep = 0,
  key = NULL,



Species code of the species of interest. Scientific names can be specified if wrapped around the species_code function. Defaults to NULL, so sightings for all species are returned. See eBird taxonomy for more information:


Decimal latitude. value between -90.00 and 90.00, up to two decimal places of precision. Defaults to latitude based on IP.


Decimal longitude. value between -180.00 and 180.00, up to two decimal places of precision. Defaults to longitude based on IP.


Distance defining radius of interest from given lat/lng in kilometers (between 0 and 50, defaults to 25).


Number of days back to look for observations (between 1 and 30, defaults to 14).


Maximum number of result rows to return in this request (between 1 and 10000, defaults to all).


Language/locale of response (when translations are available). See (defaults to en_US).


Should flagged records that have not been reviewed be included? (defaults to FALSE).


Should results be limited to sightings at birding hotspots? (defaults to FALSE).


Time (in seconds) before function sends API call (defaults to zero. Set to higher number if you are using this function in a loop with many API calls).


eBird API key. You can obtain one from We strongly recommend storing it in your .Renviron file as an environment variable called EBIRD_KEY.


Curl options passed on to GET


A data.frame containing the collected information:

"comName": species common name

"howMany": number of individuals observed, NA if only presence was noted

"lat": latitude of the location

"lng": longitude of the location

"locID": unique identifier for the location

"locName": location name

"locationPrivate": TRUE if location is not a birding hotspot

"obsDt": observation date formatted according to ISO 8601 (e.g. 'YYYY-MM-DD', or 'YYYY-MM-DD hh:mm'). Hours and minutes are excluded if the observer did not report an observation time.

"obsReviewed": TRUE if observation has been reviewed, FALSE otherwise

"obsValid": TRUE if observation has been deemed valid by either the automatic filters or a regional viewer, FALSE otherwise

"sciName" species' scientific name



Rafael Maia, Sebastian Pardo


if (FALSE) {
ebirdgeo('amegfi', 42, -76) # American Goldfinch
ebirdgeo(species_code('spinus tristis'), 42, -76) # same as above
ebirdgeo(lat=42, lng=-76, max=10, provisional=TRUE, hotspot=TRUE)
ebirdgeo(species_code('Anas platyrhynchos'), 39, -121, max=5)
ebirdgeo(species_code('Anas platyrhynchos'), 39, -121, max=5, config=verbose())
ebirdgeo(species_code('Anas platyrhynchos'), 39, -121, max=5, config=progress())
# ebirdgeo(species_code('Anas platyrhynchos'), 39, -121, max=5, config=timeout(0.1))