eBird Bird Observations Scraper avatar

eBird Bird Observations Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
eBird Bird Observations Scraper

eBird Bird Observations Scraper

Scrape recent and notable bird observation data from the Cornell Lab eBird public API. Export species, location, count, and checklist data by region.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

🐦 eBird Bird Observations Scraper

🚀 Export real-time bird observation data in seconds. Pull recent and notable sightings from the Cornell Lab eBird public API by region code. No browser, no scraping - direct API access to one of the world's largest citizen science datasets.

🕒 Last updated: 2026-05-21 · 📊 16 fields per record · 🌍 Global coverage · 🦅 700+ species · 📡 Real-time data

The eBird Scraper connects to the Cornell Lab of Ornithology's eBird API and returns structured bird observation records with 16 fields per record, including species codes, common and scientific names, GPS coordinates, observation counts, checklist links, and validation status. The eBird dataset is the world's largest biodiversity-related citizen science project, with over 100 million bird observations submitted annually from birders across every country.

This Actor covers recent and notable (rare) observations in any eBird region, from country level (US, GB, MX) down to state/province (US-NY, CA-ON, GB-ENG) and county level. Results are available as CSV, Excel, JSON, or XML in seconds.

🎯 Target Audience💡 Primary Use Cases
Ornithologists, citizen science researchers, wildlife conservationists, data scientists, nature app developers, birding enthusiasts, environmental agenciesMigration tracking, rare species alerts, biodiversity mapping, research datasets, birding app feeds, conservation monitoring

📋 What the eBird Scraper does

Two observation workflows in a single run:

  • 🦅 Recent observations. All bird sightings reported in a region within the last 30 days, up to 10,000 per region.
  • 🌟 Notable (rare) observations. Unusual or rare sightings flagged by the eBird review system for any region.
  • 📍 Region filtering. Target any eBird region by code: country (US), state/province (US-NY, CA-ON), or county (US-NY-109).
  • 📊 Rich observation data. Species code, common name, scientific name, GPS location, bird count, checklist ID, and observation validity.
  • 🔗 Direct checklist links. Each record includes a URL to the full eBird checklist for verification and deeper context.

💡 Why it matters: eBird data powers migration models, climate impact studies, and conservation planning worldwide. Building a direct integration means no more manual CSV exports, no stale data, and full control over which regions and observation types you monitor.


🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing how to configure a region, run the Actor, and download your dataset.


⚙️ Input

InputTypeDefaultBehavior
maxItemsinteger10Records to return. Free plan caps at 10, paid plan at 1,000,000.
regionCodestring"US-NY"eBird region code. Examples: US, US-NY, GB, MX, CA-ON, AU.
observationTypestring"recent"recent = all sightings, notable = rare/unusual species only.
apiKeystringdemo keyYour free eBird API key. Get one at ebird.org/api/keygen. Defaults to a demo key.

Example input - recent observations (New York):

{
"maxItems": 100,
"regionCode": "US-NY",
"observationType": "recent",
"apiKey": "your_ebird_api_key"
}

Example input - notable rare sightings (United Kingdom):

{
"maxItems": 50,
"regionCode": "GB",
"observationType": "notable",
"apiKey": "your_ebird_api_key"
}

⚠️ Good to Know: eBird requires a free API key for production use. Get yours at https://ebird.org/api/keygen in under 2 minutes. A demo key is used if none is provided, but may have rate limits. Free Apify plan users are limited to 10 items per run.


📊 Output

Each record contains 16 fields:

FieldTypeDescription
🔬 speciesCodestringeBird species code (e.g. mallar3 for Mallard)
🐦 comNamestringCommon English name of the species
🔭 sciNamestringScientific (Latin) name of the species
📍 locIdstringeBird location identifier (e.g. L123456)
🗺️ locNamestringName of the observation location
📅 obsDtstringObservation date and time (YYYY-MM-DD HH:MM)
🔢 howManynumberCount of individuals observed (null if unspecified)
🌐 latnumberLatitude of the observation location
🌐 lngnumberLongitude of the observation location
obsValidbooleanWhether the observation passed eBird validation
👁️ obsReviewedbooleanWhether the observation has been reviewed by experts
🔒 locationPrivatebooleanWhether the observer marked the location as private
📋 subIdstringeBird checklist submission ID
🔗 urlstringDirect URL to the eBird checklist
⏱️ scrapedAtstringISO 8601 timestamp of data collection
errorstringError message if the record failed (null on success)

Sample records:

[
{
"speciesCode": "bkpwar",
"comName": "Blackpoll Warbler",
"sciName": "Setophaga striata",
"locId": "L36830373",
"locName": "Riverside Park, New York US-NY 40.81094, -73.96441",
"obsDt": "2026-05-21 13:51",
"howMany": 1,
"lat": 40.810938,
"lng": -73.964411,
"obsValid": true,
"obsReviewed": false,
"locationPrivate": true,
"subId": "S343476966",
"url": "https://ebird.org/checklist/S343476966",
"scrapedAt": "2026-05-21T23:35:16.624Z",
"error": null
},
{
"speciesCode": "houfin",
"comName": "House Finch",
"sciName": "Haemorhous mexicanus",
"locId": "L36830373",
"locName": "Riverside Park, New York US-NY 40.81094, -73.96441",
"obsDt": "2026-05-21 13:51",
"howMany": 3,
"lat": 40.810938,
"lng": -73.964411,
"obsValid": true,
"obsReviewed": false,
"locationPrivate": true,
"subId": "S343476966",
"url": "https://ebird.org/checklist/S343476966",
"scrapedAt": "2026-05-21T23:35:16.624Z",
"error": null
}
]

✨ Why choose this Actor

FeatureBenefit
🚀 Direct API integrationReal-time data, no HTML parsing fragility
🌍 Global region supportAny country, state, province, or county code
🦅 Two observation modesRecent sightings or rare/notable species only
🔗 Checklist URLs includedDeep-link directly to the original eBird report
📐 GPS coordinatesLat/lng on every record for mapping workflows
✅ Validation statusKnow if observations are confirmed or under review
🆓 No mandatory API keyDemo key included for quick testing
📦 Clean JSON outputConsistent schema, null-safe, export-ready

📈 How it compares to alternatives

ApproachSpeedData freshnessRegion flexibilitySetup time
This ActorFast (API)Real-timeAny eBird codeUnder 1 min
Manual eBird exportSlow (UI)On-demandLimited10-15 min
Building your ownMediumYour scheduleFullDays
eBird mobile appN/AReal-timeVisual onlyN/A

🚀 How to use

  1. Create a free account on Apify (includes $5 credit).
  2. Open the eBird Bird Observations Scraper on the Apify Store.
  3. Get a free eBird API key at https://ebird.org/api/keygen.
  4. Enter your region code (e.g. US-NY, GB, MX), observation type, and API key.
  5. Set maxItems to control how many records you want.
  6. Click Start and wait for the run to finish (typically under 10 seconds).
  7. Download your dataset as JSON, CSV, Excel, or XML from the Storage tab.

💼 Business use cases

🔬 Ecological Research and Conservation

Track species presence and abundance across regions over time. Monitor migratory patterns as birds move through specific corridors. Build longitudinal datasets for population trend analysis. Alert systems for rare or endangered species appearing in new regions.

📱 Birding Apps and Nature Platforms

Power mobile apps with live "what's being seen nearby" feeds. Build species checklists for specific parks, reserves, or regions. Enable notification systems for notable or rare bird alerts. Feed species-range maps with verified observation data.

🌍 Environmental Monitoring and Reporting

Generate biodiversity reports for environmental impact assessments. Monitor indicator species for climate or habitat change studies. Support land management decisions with data on species distribution. Satisfy regulatory reporting requirements for protected species.

📊 Data Science and Machine Learning

Train bird identification models with georeferenced species labels. Correlate bird activity with weather, land use, or pollution data. Build predictive models for migration timing and routing. Combine with satellite imagery for habitat modeling at scale.


🔌 Automating eBird Scraper

Connect this Actor to your favorite automation platforms:

  • Make (formerly Integromat): Schedule daily region sweeps, push new notable sightings to a Slack channel, or log records to Google Sheets automatically.
  • Zapier: Trigger workflows when new rare species are detected in your region. Post alerts to email, SMS, or team channels.
  • Slack: Build a daily bird report bot that posts the day's top observations to a team channel.
  • Google Sheets: Append each run's records to a sheet for ongoing monitoring dashboards.
  • Webhooks: Any system that accepts HTTP POST can receive run results the moment the Actor finishes.

🌟 Beyond business use cases

🎓 Academic Research

Ecology students and professors use eBird data to illustrate distribution modeling, species-area relationships, and phenological shifts. This Actor makes it trivial to pull a fresh snapshot for any region and semester.

🖼️ Creative and Artistic Projects

Wildlife photographers, nature bloggers, and illustrators use observation feeds to know which species are active in a location before a shoot. Notable sightings data helps plan expeditions for rare species documentation.

🤝 Non-Profit and Citizen Science

Land trusts, birding clubs, and conservation non-profits use observation data to report on biodiversity at their preserves, advocate for habitat protection, and engage community volunteers with real data.

🧪 Experimentation and Prototyping

Developers and data enthusiasts build personal bird-alert apps, experiment with species distribution visualizations, or prototype conservation tools using this Actor as a fast, reliable data source.


🤖 Ask an AI assistant about this scraper

Have questions about eBird data, region codes, or how to use this Actor in your project? Use the AI assistant on the Actor page to get instant answers. You can ask things like:

  • "What region code should I use for Ontario, Canada?"
  • "How do I filter to only confirmed, reviewed observations?"
  • "Can I get observations for a specific species?"
  • "What's the difference between recent and notable observations?"

❓ Frequently Asked Questions

❓ Do I need an eBird API key? A demo key is included for quick testing. For production use and higher rate limits, get your own free key at https://ebird.org/api/keygen. Registration is free.

❓ What are eBird region codes? Region codes follow a hierarchical format. Countries use ISO codes like US, GB, MX, CA, AU. States and provinces use US-NY, CA-ON, GB-ENG. Find valid codes at https://ebird.org/region.

❓ How recent are the observations? The API returns observations from the last 30 days by default. Data reflects reports as they are submitted by eBird users globally.

❓ What is a "notable" observation? Notable observations are sightings of rare or unusual species that trigger the eBird review system. These are birds that are unexpected for a given region and time of year, flagged for expert verification.

❓ What does obsValid mean? A true value means the observation passed automated validation. obsReviewed: true means a human expert has reviewed and confirmed the sighting. Both can be false for very recent submissions still awaiting review.

❓ Why is howMany null for some records? Some observers submit observations without specifying a count, only noting that the species was present. This results in a null howMany field - this is normal eBird behavior.

❓ What is locationPrivate? eBird allows observers to mark locations as private (personal gardens, private land). When true, the exact coordinates may be obscured slightly for privacy. The observation data itself is still real.

❓ How many observations can I retrieve per run? Free Apify plan: up to 10. Paid plan: up to 1,000,000. The eBird API itself returns up to 10,000 observations per region request.

❓ Can I get observations for a specific species? The current Actor returns all species for a region. Species-level filtering can be applied to the output dataset after download. A future version may include species-level filtering.

❓ Is this Actor maintained? Yes. ParseForge maintains this Actor and updates it when the eBird API changes. The Last Updated date in this README reflects the most recent maintenance.


🔌 Integrate with any app

Export your bird observation dataset in multiple formats and connect to hundreds of apps:

IntegrationHow to use
Google SheetsDownload CSV, import directly, or use Make to auto-sync
Excel / Power BIDownload XLSX for immediate analysis
ArcGIS / QGISExport JSON with lat/lng for immediate map layer import
AirtableImport CSV or connect via Make/Zapier automation
NotionImport CSV database for research note-taking
SlackSend notable sighting alerts via Make or Zapier
Custom appsHit the Apify API directly for programmatic access
Python / RLoad JSON or CSV into pandas, tidyverse, or any data workflow
WebhooksPOST results to any endpoint when a run completes

Complement your eBird data with these related ParseForge Actors:

ActorWhat it does
OurAirports Global Airport Database ScraperExport 85,000+ airports worldwide with GPS, ICAO, IATA codes
USGS Earthquake ScraperReal-time earthquake events from the USGS public API
EPA AQS Air Quality ScraperUS air quality monitoring data from EPA public API

💡 Pro Tip: browse the complete ParseForge collection for dozens of free public-data Actors covering science, finance, government, and more.


Disclaimer: This Actor uses the Cornell Lab eBird public API, which is freely available for non-commercial and research use under eBird's terms of service. All data belongs to the Cornell Lab of Ornithology and the eBird contributors. Always review eBird's data use policy before using observation data in commercial applications. ParseForge is not affiliated with Cornell Lab of Ornithology or eBird.