eBird Scraper
Pricing
from $3.00 / 1,000 results
eBird Scraper
Scrape eBird (Cornell Lab of Ornithology) - species taxonomy, recent bird observations by region or hotspot, and birding hotspots. Optional free API key unlocks observation data; taxonomy search works without any key.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape bird observation data from eBird (Cornell Lab of Ornithology) — the world's largest citizen science bird observation database with over 1 billion records. Extract species taxonomy, recent bird sightings by region, birding hotspots, and observations at specific hotspot locations.
What data can you extract?
- Species Taxonomy: Full Cornell Lab taxonomy database with 17,000+ species — scientific names, common names, family classifications, banding codes. Works without any API key.
- Recent Observations: Latest bird sightings in any US state, country, or sub-national region (requires free API key).
- Birding Hotspots: Popular birding locations in any region with GPS coordinates and species counts (requires free API key).
- Hotspot Sightings: Recent observations at a specific birding hotspot like Central Park or Point Reyes (requires free API key).
Getting a Free eBird API Key
Most modes require a free eBird API key:
- Create a free account at ebird.org
- Visit ebird.org/api/keygen
- Request an API key (usually granted instantly)
- Enter the key in the
apiKeyinput field
The Taxonomy mode works without any API key.
Input
| Field | Type | Required | Description |
|---|---|---|---|
mode | Select | Yes | What to fetch: taxonomy, recentObservations, hotspots, byHotspot |
apiKey | String | No* | Free eBird API key (*required for all modes except taxonomy) |
speciesQuery | String | No | Search term for bird name (taxonomy mode) |
speciesCode | String | No | Filter taxonomy to specific species code (e.g. amerob) |
category | Select | No | Taxonomy category filter: species, hybrid, slash, etc. |
orderFilter | String | No | Filter taxonomy to a specific taxonomic order (e.g. Passeriformes, Anseriformes) |
familyFilter | String | No | Filter taxonomy to a specific bird family by name or family code (e.g. Anatidae, anatid1) |
order | Select | No | Taxonomy sort order: taxon (Cornell Lab taxonomic order, default) or comName (alphabetical by common name) |
regionCode | String | No | eBird region code: US-NY, GB-ENG, CA-ON, AU-NSW, etc. |
locationId | String | No | Hotspot location ID (e.g. L109516 for Central Park) |
backDays | Integer | No | Days to look back for recent observations (1-30, default: 7) |
includeProvisional | Boolean | No | Include unreviewed records (default: true) |
onlyHotspots | Boolean | No | Only return observations at designated hotspots |
locale | String | No | Language locale for common names (en, es, fr, de, etc.) |
maxItems | Integer | No | Maximum records to return (1-10000, default: 50) |
Output
Taxonomy Record (recordType: "taxonomy")
| Field | Type | Description |
|---|---|---|
speciesCode | String | eBird species code (e.g. amerob) |
commonName | String | Common English name (e.g. American Robin) |
scientificName | String | Scientific name (e.g. Turdus migratorius) |
category | String | Taxonomy category (species, hybrid, slash, etc.) |
taxonOrder | Float | Cornell Lab taxonomic order number |
order | String | Taxonomic order (e.g. Passeriformes) |
familyCode | String | eBird family code |
familyCommonName | String | Family common name (e.g. Thrushes and Allies) |
familySciName | String | Family scientific name (e.g. Turdidae) |
bandingCodes | Array | Official banding codes (e.g. ["AMRO"]) |
comNameCodes | Array | Common name abbreviation codes |
sciNameCodes | Array | Scientific name abbreviation codes |
sourceUrl | String | eBird species page URL |
scrapedAt | String | ISO timestamp when record was scraped |
recordType | String | "taxonomy" |
Observation Record (recordType: "observation")
| Field | Type | Description |
|---|---|---|
speciesCode | String | eBird species code |
commonName | String | Common name |
scientificName | String | Scientific name |
locationId | String | eBird location ID (e.g. L109516) |
locationName | String | Location name |
countryCode | String | Country code (e.g. US) |
countryName | String | Country name (e.g. United States) |
subnational1Code | String | State/province code (e.g. US-NY) |
subnational1Name | String | State/province name (e.g. New York) |
subnational2Code | String | County/district code |
subnational2Name | String | County/district name |
userDisplayName | String | Observer display name |
obsId | String | eBird observation ID |
exoticCategory | String | Exotic classification for non-native sightings (e.g. N, P, X) |
obsDt | String | Observation date/time |
howMany | Integer | Count of individuals observed |
lat | Float | Latitude |
lng | Float | Longitude |
obsValid | Boolean | Whether observation was marked valid |
obsReviewed | Boolean | Whether observation was reviewed |
locationPrivate | Boolean | Whether location is private |
subId | String | eBird checklist submission ID |
checklistUrl | String | URL to full checklist |
regionCode | String | Region queried (recentObservations mode) |
hotspotId | String | Hotspot location ID queried (byHotspot mode) |
sourceUrl | String | eBird species page URL |
scrapedAt | String | ISO timestamp |
recordType | String | "observation" |
Hotspot Record (recordType: "hotspot")
| Field | Type | Description |
|---|---|---|
locationId | String | eBird location ID |
locationName | String | Hotspot name |
countryCode | String | Country code (e.g. US) |
subnational1Code | String | State/province code (e.g. US-NY) |
subnational2Code | String | County/district code |
lat | Float | Latitude |
lng | Float | Longitude |
latestObsDt | String | Date of most recent observation |
numSpeciesAllTime | Integer | Total species ever recorded at this hotspot |
regionCode | String | Region queried |
sourceUrl | String | eBird hotspot page URL |
scrapedAt | String | ISO timestamp |
recordType | String | "hotspot" |
Example Use Cases
- Birdwatchers: Find what birds were recently seen in your area before heading out
- Research: Download taxonomy data for analysis or labeling ML datasets
- Travel planning: Discover top birding hotspots in regions you plan to visit
- Citizen science: Monitor bird population trends by region
Region Code Examples
| Code | Region |
|---|---|
US-NY | New York State, USA |
US-CA | California, USA |
GB-ENG | England, UK |
CA-ON | Ontario, Canada |
AU-NSW | New South Wales, Australia |
IN | India |
MX | Mexico |
ZA | South Africa |
FAQs
Q: Do I need an API key? A: The Taxonomy mode works without any key. For Recent Observations, Hotspots, and Observations at Hotspot modes you need a free eBird API key from ebird.org/api/keygen.
Q: How current is the observation data?
A: The backDays input controls how many days back to look (1-30 days). Real-time data from eBird's citizen science community.
Q: What region codes does eBird use? A: eBird uses standard ISO codes: country level (US, GB, IN), state/province (US-NY, GB-ENG), and even county level (US-NY-061). Find your region code at ebird.org/explore.
Q: How many species are in the taxonomy? A: The full eBird taxonomy includes approximately 17,000+ taxonomic entries covering 11,000+ species.
Q: Is there a rate limit? A: eBird's free API has reasonable rate limits for normal use. This scraper includes retry logic for temporary errors.