# 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](https://ebird.org), and they also make them available
via an [API](https://documenter.getpostman.com/view/664302/S1ENwy59). 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](https://secure.birds.cornell.edu/identity/account/create)
for an eBird account, if you don't already have one and
[register](https://ebird.org/data/download)
to get an API key. Make sure you read and understand the
[Terms of use](https://www.birds.cornell.edu/home/ebird-api-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](https://science.ebird.org/en/use-ebird-data/download-ebird-data-products).
## Install
You can use either [pip](https://pip.pypa.io/en/stable/) or [uv](https://docs.astral.sh/uv/)
to download the [package](https://pypi.org/project/ebird-api-data/) 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](https://opensource.org/licenses/MIT) license.
Raw data
{
"_id": null,
"home_page": null,
"name": "ebird-api-data",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "Django, checklists, eBird, models, observations, species",
"author": null,
"author_email": "Stuart MacKay <smackay@flagstonesoftware.com>",
"download_url": "https://files.pythonhosted.org/packages/aa/a3/664f69c82c6f5420693e18d46bf28ddff859c21a10e08dedabe003513f01/ebird_api_data-0.2.1.tar.gz",
"platform": null,
"description": "# eBird API Data\n\neBird API Data is a reusable Django app for loading data from eBird into a database.\n\n## Overview\n\nThe Cornell Laboratory of Ornithology in Ithaca, New York runs the eBird database\nwhich collects observations of birds from all over the world. All the observations\nare published on [eBird.org](https://ebird.org), and they also make them available\nvia an [API](https://documenter.getpostman.com/view/664302/S1ENwy59). This project\ncontains a loader and models to take data from the API and load it into a database.\nFrom there you can analyse the data with python, jupyter notebooks, or build a web\nsite.\n\nTo get started, you will need to\n[sign up](https://secure.birds.cornell.edu/identity/account/create)\nfor an eBird account, if you don't already have one and\n[register](https://ebird.org/data/download)\nto get an API key. Make sure you read and understand the\n[Terms of use](https://www.birds.cornell.edu/home/ebird-api-terms-of-use/),\nand remember bandwidth and servers cost money, so don't abuse the service. If you\nneed large numbers of observations, then sign up to receive the\n[eBird Basic Dataset](https://science.ebird.org/en/use-ebird-data/download-ebird-data-products).\n\n## Install\n\nYou can use either [pip](https://pip.pypa.io/en/stable/) or [uv](https://docs.astral.sh/uv/)\nto download the [package](https://pypi.org/project/ebird-api-data/) from PyPI and\ninstall it into a virtualenv:\n\n```shell\npip install ebird-api-data\n```\n\nor:\n\n```shell\nuv add ebird-api-data\n```\n\nUpdate `INSTALLED_APPS` in your Django setting:\n\n```python\nINSTALLED_APPS = [\n ...\n ebird.api.data\n]\n```\n\nFinally, run the migrations to create the tables:\n\n```python\npython manage.py migrate\n```\n\n## Demo\n\nIf you check out the code from the repository there is a fully functioning\nDjango site. It contains pages for checklists, observations and species,\nwhere you can browse the records or search by location, observer. date. etc. \nThe Django Admin lets you browse and edit the records in the database.\n\n```shell\ngit clone git@github.com:StuartMacKay/ebird-api-data.git\ncd ebird-api-data\n```\n\nCreate the virtual environment:\n```shell\nuv venv\n```\n\nActivate it:\n```shell\nsource .venv/bin/activate\n```\n\nInstall the requirements:\n```shell\nuv sync\n```\n\nCreate a copy of the .env.example file and add your API key:\n```shell\ncp .env.example .env\n```\n\nFor example:\n```shell\nEBIRD_API_KEY=<my api key>\n```\n\nRun the database migrations:\n```shell\npython manage.py migrate\n```\n\nCreate a user:\n```shell\npython manage.py createsuperuser\n```\n\nCreate a copy of the .env.example file and add your API key:\n```shell\ncp .env.example .env\n```\n\n```shell\nEBIRD_API_KEY=<my api key>\n```\n\nNow, download data from the API:\n\n```shell\npython manage.py add_checklists --days 2 US-NY-109\n```\n\nThis loads all the checklists, submitted in the past two days by birders in\nTompkins County, New York, where the Cornell Lab is based. You can use any\nlocation code used by eBird, whether it's for a country, state/region, or\ncounty. Remember, read the terms of use.\n\nRun the demo:\n\n```shell\npython manage.py runserver\n```\n\nNow, either visit the site, http:localhost:8000/, or log into the Django Admin, \nhttp:localhost:8000/admin to browse the tables.\n\n## Project Information\n\n* Documentation: https://ebird-api-data.readthedocs.io/en/latest/\n* Issues: https://todo.sr.ht/~smackay/ebird-api-data\n* Repository: https://git.sr.ht/~smackay/ebird-api-data\n* Announcements: https://lists.sr.ht/~smackay/ebirders-announce\n* Discussions: https://lists.sr.ht/~smackay/ebirders-discuss\n* Development: https://lists.sr.ht/~smackay/ebirders-develop\n\nThe repository is also mirrored on Github:\n\n* Repository: https://github.com/StuartMacKay/ebird-api-data\n\nThe app is tested on Python 3.10+, and officially supports Django 4.2, 5.0 and 5.1.\n\n## License\n\neBird API Data is released under the terms of the [MIT](https://opensource.org/licenses/MIT) license.\n",
"bugtrack_url": null,
"license": null,
"summary": "eBird API Data is a reusable Django app for loading data from eBird into a database.",
"version": "0.2.1",
"project_urls": null,
"split_keywords": [
"django",
" checklists",
" ebird",
" models",
" observations",
" species"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dd49c99763f92871978319b3a4d2b38827d0d3613ecf63f06750fba86b433b99",
"md5": "6772bc5fced89136bb833e5e9af21231",
"sha256": "056022f1d7c480367fd1bd6f73bc23dcd6f223a1f13f5e2cd735df4bd06b8984"
},
"downloads": -1,
"filename": "ebird_api_data-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6772bc5fced89136bb833e5e9af21231",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 39898,
"upload_time": "2025-07-17T18:22:15",
"upload_time_iso_8601": "2025-07-17T18:22:15.783025Z",
"url": "https://files.pythonhosted.org/packages/dd/49/c99763f92871978319b3a4d2b38827d0d3613ecf63f06750fba86b433b99/ebird_api_data-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "aaa3664f69c82c6f5420693e18d46bf28ddff859c21a10e08dedabe003513f01",
"md5": "1b47c8623e804ac4e223b6bf539d7d4d",
"sha256": "09869c25fd2b2b225a033424ac830fd4143075b6f5bfc60fcb7a0d69b441ebe8"
},
"downloads": -1,
"filename": "ebird_api_data-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "1b47c8623e804ac4e223b6bf539d7d4d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 26994,
"upload_time": "2025-07-17T18:22:17",
"upload_time_iso_8601": "2025-07-17T18:22:17.321869Z",
"url": "https://files.pythonhosted.org/packages/aa/a3/664f69c82c6f5420693e18d46bf28ddff859c21a10e08dedabe003513f01/ebird_api_data-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-17 18:22:17",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ebird-api-data"
}