ebird-api-data

eBird API Data is a reusable Django app for loading data from eBird into a database.

https://github.com/ebirders/ebird-api-data

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

eBird API Data is a reusable Django app for loading data from eBird into a database.

Basic Info
  • Host: GitHub
  • Owner: ebirders
  • License: mit
  • Language: Python
  • Default Branch: master
  • Size: 652 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 8 months ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Citation

README.md

eBird API Data

eBird API Data is a reusable Django app for loading data from eBird into a database.

Overview

The Cornell Laboratory of Ornithology in Ithaca, New York runs the eBird database which collects observations of birds from all over the world. All the observations are published on eBird.org, and they also make them available via an API. This project contains a loader and models to take data from the API and load it into a database. From there you can analyse the data with python, jupyter notebooks, or build a web site.

To get started, you will need to sign up for an eBird account, if you don't already have one and register to get an API key. Make sure you read and understand the Terms of use, and remember bandwidth and servers cost money, so don't abuse the service. If you need large numbers of observations, then sign up to receive the eBird Basic Dataset.

Install

You can use either pip or uv to download the package from PyPI and install it into a virtualenv:

shell pip install ebird-api-data

or:

shell uv add ebird-api-data

Update INSTALLED_APPS in your Django setting:

python INSTALLED_APPS = [ ... ebird.api.data ]

Finally, run the migrations to create the tables:

python python manage.py migrate

Demo

If you check out the code from the repository there is a fully functioning Django site. It contains pages for checklists, observations and species, where you can browse the records or search by location, observer. date. etc. The Django Admin lets you browse and edit the records in the database.

shell git clone git@github.com:StuartMacKay/ebird-api-data.git cd ebird-api-data

Create the virtual environment: shell uv venv

Activate it: shell source .venv/bin/activate

Install the requirements: shell uv sync

Create a copy of the .env.example file and add your API key: shell cp .env.example .env

For example: shell EBIRD_API_KEY=<my api key>

Run the database migrations: shell python manage.py migrate

Create a user: shell python manage.py createsuperuser

Create a copy of the .env.example file and add your API key: shell cp .env.example .env

shell EBIRD_API_KEY=<my api key>

Now, download data from the API:

shell python manage.py add_checklists --days 2 US-NY-109

This loads all the checklists, submitted in the past two days by birders in Tompkins County, New York, where the Cornell Lab is based. You can use any location code used by eBird, whether it's for a country, state/region, or county. Remember, read the terms of use.

Run the demo:

shell python manage.py runserver

Now, either visit the site, http:localhost:8000/, or log into the Django Admin, http:localhost:8000/admin to browse the tables.

Project Information

  • Documentation: https://ebird-api-data.readthedocs.io/en/latest/
  • Issues: https://todo.sr.ht/~smackay/ebird-api-data
  • Repository: https://git.sr.ht/~smackay/ebird-api-data
  • Announcements: https://lists.sr.ht/~smackay/ebirders-announce
  • Discussions: https://lists.sr.ht/~smackay/ebirders-discuss
  • Development: https://lists.sr.ht/~smackay/ebirders-develop

The repository is also mirrored on Github:

  • Repository: https://github.com/StuartMacKay/ebird-api-data

The app is tested on Python 3.10+, and officially supports Django 4.2, 5.0 and 5.1.

License

eBird API Data is released under the terms of the MIT license.

Owner

  • Name: eBirders
  • Login: ebirders
  • Kind: organization

Python libraries, Jupyer Notebooks and Django apps and sites for working with data from eBird.org

Citation (CITATION.cff)

abstract:
    eBird API Data is a reusable Django app for loading data from eBird
    into a database.
authors:
  - name: Stuart MacKay
cff-version: 1.2.0
date-released: 2025-07-26
keywords:
  - checklists
  - observations
  - species
  - Django
  - eBird
  - models
license: MIT License
message: If you use this software, please cite it using the metadata from this file.
repository-code: "https://github.com/StuartMacKay/ebird-api-data"
title: eBird API Data
version: 0.3.7

GitHub Events

Total
Last Year

Dependencies

pyproject.toml pypi
  • beautifulsoup4 >=4.13.3
  • django >=4.2
  • ebird-api-requests >=4.0.1
  • ebird-codes >=0.0.2
  • lxml >=6.0.0
uv.lock pypi
  • 102 dependencies