A Python client for the IUCN Red List API
Project description
redlistapi
IUCN Red List API python interface
Description
A python interface and library for the IUCN Red List API https://api.iucnredlist.org/
Installation
Non-spatial
pip install redlistapi
Spatial
The Python GDAL library requires system-level libraries. Install GDAL headers before using:
Ubuntu/Debian
# first install the OS GDAL binaries
sudo apt install libgdal-dev
# then install the python GDAL version that matches your OS binaries
pip install gdal==`gdal-config --version`
# then install the package with spatial dependencies
pip install redlistapi[spatial]
macOS (Homebrew) **untested
# first install the OS GDAL binaries
brew install gdal
# then install the package with spatial dependencies
pip install redlistapi[spatial]
Windows **untested
# first use the Python GDAL Installer on PyPI, which automates the downloading and installing of the correct pre-compiled wheel for your system
pip install gdal-installer
gdal-installer
# then install the package with spatial dependencies:
pip install redlistapi[spatial]
Usage
To use this library you must first obtain a personal IUCN Red List API token.
The library has 3 main use approaches:
Direct API endpoints
For direct endpoints the return value is the raw API response to allow parsing pages.
Openapi endpoints fall in 3 categories.
File-like endpoints
Note there is no trailing "/".
e.g.: api/v4/information/api_version
Folder-like endpoints
Note there is a trailing "/".
e.g.: api/v4/taxa/kingdom/
Parametrized endpoints
Note there can be several file-like endpoints.
e.g.: api/v4/taxa/kingdom/{kingdom_name}
File-like endpoints
import redlistapi
redlistapi.api.v4.information.api_version(token=token).json()
redlistapi.api.v4.information.red_list_version(token=token).json()
Folder-like and Parametrized endpoints split in list and by_ endpoints
import redlistapi
redlistapi.api.v4.taxa.family.list(token=token).json()
redlistapi.api.v4.taxa.kingdom.list(token=token).json()
redlistapi.api.v4.taxa.kingdom.by_kingdom_name(token=token, kingdom_name='CHROMISTA', year_published='2023').json()
Simplified user-end interface
The simplified user-end interface simply eliminates the need to enter the token.
This is useful for interactive use.
import redlistapi
interface = redlistapi.V4_Interface(token)
interface.information.api_version().json()
animalia = interface.taxa.kingdom.by_kingdom_name(kingdom_name='animalia')
animalia
Assessment Class and Factory
The Assessment Factory is a class that returns Assessment Classes.
The Assessment Class exposes all data available from a Red List Assessment.
import redlistapi
assessment_factory = redlistapi.AssessmentFactory(token=token)
upupa = assessment_factory.from_assessment_id(assessment_id=181836360)
upupa = assessment_factory.from_scientific_name(genus_name='Upupa', species_name='epops')
upupa = assessment_factory.from_taxid(taxid=22682655)
help(upupa)
upupa.assessment_as_pandas()
Extras
Extra functionalities are included in the extras submodule, and generally use the simplified interface as an input.
Catalogs
Catalogs are brief descriptors of Red List assessments detailing key variables. The catalogs submodule allows the retrieval of a list of catalogs. This can be saved locally as an index of all available assessments on the Red List API, either for the latest published Red List, or including historical ones.
{
"year_published": "2020",
"latest": true,
"possibly_extinct": false,
"possibly_extinct_in_the_wild": false,
"sis_taxon_id": 10030,
"url": "https://www.iucnredlist.org/species/10030/495630",
"taxon_scientific_name": "Hexanchus griseus",
"red_list_category_code": "NT",
"assessment_id": 495630,
"scopes": [
{
"description": {
"en": "Global"
},
"code": "1"
}
]
}
import redlistapi
# instantiate the interface
interface = redlistapi.V4_Interface(token)
# get a list of all catalogs for currently published assessments
catalogs_latest = redlistapi.extras.catalogs.latest(interface = interface, verbose = True)
# get a list of all catalogs for current and historical assessments
catalogs_all = redlistapi.extras.catalogs.all(interface = interface, verbose = True)
Support
Submit requests and bugs on the repository's git page (https://gitlab.com/daniele.baisero/redlistapi).
Or contact Daniele Baisero (daniele.baisero-at-gmail.com).
Contributing
Contribution and collaboration offers are always welcome!
GitLab CI/CD Setup
The automated tests in GitLab CI/CD require a valid IUCN Red List API token to be accessible in your GitLab environment.
-
Navigate to your GitLab project:
- Settings → CI/CD → Variables
-
Click Add Variable and configure it as follows:
- Type: Variable
- Environments: All
- Visibility: Masked and hidden
- Flags - Protect Variable: False ⬜️
- Flags - Expand Variable Reference: True ✅
- Key:
REDLIST_API_TOKEN - Value: Your personal IUCN Red List API token goes here
Once saved, the variable will be available to all CI/CD pipelines and environments that require it.
Authors and acknowledgment
Daniele Baisero, 2025-2026.
Contributors
- Michael Winston Dales mwd24@cam.ac.uk
License
MIT license - see LICENSE.
Project status
Ongoing development.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file redlistapi-0.4.0.tar.gz.
File metadata
- Download URL: redlistapi-0.4.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9d4fadd274558f50a52f42548a5b5ada8d88a29fb30fefaccef66c59426f9d7
|
|
| MD5 |
af5e544fd08462c6bc919a71209b040b
|
|
| BLAKE2b-256 |
6bfa3f3dbfc35e1e4b3863eca9c59dc46a9e1253b362b9a5c024309c1a688c3a
|
File details
Details for the file redlistapi-0.4.0-py3-none-any.whl.
File metadata
- Download URL: redlistapi-0.4.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2766bd2208c427662df20dc459a632faa899ac8c0c33123755aced029bd4f6b0
|
|
| MD5 |
987570223cf9286dc3b039a3c5099645
|
|
| BLAKE2b-256 |
13b36dad932f1f559661f6b3d41268dd18220fe25f0456b804a583348b23656d
|