Skip to contents

Returns the most recent sighting information reported in a given vector of locations (including non-hotspots).


  species = NULL,
  back = NULL,
  max = NULL,
  locale = NULL,
  provisional = FALSE,
  simple = TRUE,
  sleep = 0,
  key = NULL,



(required) Vector containing code(s) for up to 10 regions of interest; here, values that are not hotspots are returned. Values that are not valid are ignored.


Scientific name of the species of interest (not case sensitive). Defaults to NULL, in which case sightings for all species are returned. See eBird taxonomy for more information:


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)


Logical. Whether to return a simple (TRUE, default) or detailed (FALSE) set of results fields.


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

"subnational2Code": county code (returned if simple=FALSE)

"subnational2Name": county name (returned if simple=FALSE)

"subnational1Code": state/province ISO code (returned if simple=FALSE)

"subnational1Name": state/province name (returned if simple=FALSE)

"countryCode": country ISO code (returned if simple=FALSE)

"countryName": country name (returned if simple=FALSE)

"userDisplayName": first and last name of the observer (returned if simple=FALSE)

"firstName": observer's first name (returned if simple=FALSE)

"lastName": observer's last name (returned if simple=FALSE)

"subID": submission ID (returned if simple=FALSE)

"obsID": observation ID (returned if simple=FALSE)

"checklistID": checklist ID (returned if simple=FALSE)

"presenceNoted": 'true' if user marked presence but did not count the number of birds. 'false' otherwise (returned if simple=FALSE)



Rafael Maia


if (FALSE) {
ebirdloc(locID = c('L99381','L99382'))
ebirdloc('L99381', 'Branta canadensis', provisional=TRUE)