Skip to main content

Species taxonomy and biodiversity API client — speciesfyi.com

Project description

speciesfyi

PyPI version Python License: MIT Zero Dependencies

Python API client for the world's species taxonomy and biodiversity data. Access 49,112 species records, 17,982 taxa across the full Linnaean hierarchy, 846 ecoregions mapped to WWF biomes, and habitat classification data — all through a clean REST API with zero core dependencies.

Extracted from SpeciesFYI, a species taxonomy reference platform cataloging biodiversity across all kingdoms of life with taxonomic classification, IUCN conservation status, geographic distribution, and ecological data used by researchers, educators, and conservation professionals.

Explore species data at speciesfyi.com — browse species, taxa, ecoregions, habitats, and field guides.

speciesfyi demo — species taxonomy lookup, ecoregion data, and biodiversity search in Python

Table of Contents

Install

pip install speciesfyi                # Core (zero deps)
pip install "speciesfyi[cli]"         # + Command-line interface (typer, rich)
pip install "speciesfyi[mcp]"         # + MCP server for AI assistants
pip install "speciesfyi[api]"         # + HTTP client for speciesfyi.com API
pip install "speciesfyi[all]"         # Everything

Or run instantly without installing:

uvx --from speciesfyi speciesfyi search "bald eagle"

Quick Start

from speciesfyi.api import SpeciesFYI

with SpeciesFYI() as api:
    # Search across all species, taxa, and ecoregions
    results = api.search("gray wolf")
    print(results)

    # Get detailed species information
    species = api.get_specy("gray-wolf")
    print(species["name"])  # Gray Wolf

    # Browse taxonomic ranks
    taxa = api.list_taxa()
    print(taxa["count"])  # 17,982 taxa records

    # Explore ecoregions mapped to WWF biomes
    ecoregions = api.list_ecoregions()
    print(ecoregions["count"])  # 846 ecoregions

What You Can Do

Taxonomic Classification

All life on Earth is organized through the Linnaean taxonomic hierarchy, a system developed by Carl Linnaeus in 1735 and refined over nearly three centuries. SpeciesFYI catalogs 17,982 taxa across all 8 major ranks, from the broadest domains down to individual species.

Rank Description Example
Domain Highest level of classification Eukarya
Kingdom Major groups of organisms Animalia, Plantae, Fungi
Phylum Body plan organization Chordata (vertebrates), Arthropoda
Class Shared physiological traits Mammalia, Aves, Reptilia
Order Groupings within classes Carnivora, Primates, Passeriformes
Family Closely related genera Canidae (dogs), Felidae (cats)
Genus Group of closely related species Canis, Panthera, Aquila
Species Fundamental unit of classification Canis lupus, Panthera leo
from speciesfyi.api import SpeciesFYI

with SpeciesFYI() as api:
    # Browse all taxonomic ranks in the hierarchy
    ranks = api.list_ranks()
    print(ranks["count"])  # 8 major ranks

    # Get all taxa — families, orders, classes, and more
    taxa = api.list_taxa()
    for taxon in taxa["results"][:3]:
        print(f"{taxon['rank']}: {taxon['name']}")

Learn more: Species Encyclopedia · Taxonomic Ranks · Field Guides

IUCN Conservation Status

The IUCN Red List is the world's most comprehensive inventory of the global conservation status of species. Each species is evaluated against quantitative criteria (population size, rate of decline, geographic range) and assigned one of 9 categories.

Category Code Description
Extinct EX No known living individuals
Extinct in the Wild EW Survives only in captivity
Critically Endangered CR Extremely high risk of extinction
Endangered EN Very high risk of extinction
Vulnerable VU High risk of extinction
Near Threatened NT Close to qualifying for a threatened category
Least Concern LC Low risk, widespread and abundant
Data Deficient DD Insufficient data to assess
Not Evaluated NE Not yet assessed against criteria
from speciesfyi.api import SpeciesFYI

with SpeciesFYI() as api:
    # Search for endangered species
    results = api.search("endangered")
    for item in results["results"][:3]:
        print(f"{item['name']}: {item.get('conservation_status', 'N/A')}")

Learn more: Species by Conservation Status · Biodiversity Glossary

Ecoregions and Biomes

An ecoregion is a large area of land or water with a geographically distinct assemblage of species, communities, and environmental conditions. The WWF system divides the terrestrial world into 14 biomes containing 867 ecoregions. SpeciesFYI catalogs 846 ecoregions with their biome classification, geographic extent, and associated species.

Biome Ecoregion Examples Climate
Tropical Moist Forests Amazon, Congo Basin, Borneo lowlands Hot, wet year-round
Temperate Broadleaf Forests Appalachian, Western European Moderate, seasonal
Boreal Forests/Taiga Canadian boreal, Siberian taiga Cold, long winters
Tropical Grasslands Serengeti, Cerrado, Llanos Hot, seasonal rainfall
Deserts and Xeric Shrublands Sahara, Sonoran, Namib Arid, extreme temperatures
Tundra Arctic coastal, alpine meadows Frozen, permafrost
from speciesfyi.api import SpeciesFYI

with SpeciesFYI() as api:
    # Browse all 846 ecoregions
    ecoregions = api.list_ecoregions()
    print(ecoregions["count"])  # 846

    # Get details for a specific ecoregion
    eco = api.get_ecoregion("amazon-basin")
    print(eco["name"])  # Amazon Basin

Learn more: Ecoregion Explorer · Habitat Guide

Habitats and Ecosystems

Habitats define where species live — from deep ocean trenches to alpine meadows. SpeciesFYI classifies habitats into hierarchical categories that map to species distribution patterns, helping researchers understand which environments support the greatest biodiversity.

from speciesfyi.api import SpeciesFYI

with SpeciesFYI() as api:
    # Browse habitat types
    habitats = api.list_habitats()
    for h in habitats["results"][:5]:
        print(h["name"])

    # Get species associated with a habitat
    habitat = api.get_habitat("coral-reef")
    print(habitat["name"])  # Coral Reef

Learn more: Habitat Types · Guides

Food Webs and Ecology

Food webs describe the feeding relationships in an ecosystem — who eats whom. Understanding trophic levels (producers, primary consumers, apex predators) reveals how energy flows through ecosystems and why the loss of a single species can cascade through an entire community.

from speciesfyi.api import SpeciesFYI

with SpeciesFYI() as api:
    # Explore food web relationships
    food_webs = api.list_food_webs()
    print(food_webs["count"])

    # Get a specific food web
    web = api.get_food_web("african-savanna")
    print(web["name"])  # African Savanna

Learn more: Food Webs · Field Guides

Command-Line Interface

pip install "speciesfyi[cli]"

speciesfyi search "bald eagle"     # Search across all species and taxa

MCP Server (Claude, Cursor, Windsurf)

Add species data to any AI assistant that supports Model Context Protocol.

pip install "speciesfyi[mcp]"

Add to your claude_desktop_config.json:

{
    "mcpServers": {
        "speciesfyi": {
            "command": "uvx",
            "args": ["--from", "speciesfyi[mcp]", "python", "-m", "speciesfyi.mcp_server"]
        }
    }
}

REST API Client

from speciesfyi.api import SpeciesFYI

with SpeciesFYI() as api:
    species = api.list_species()          # Browse all 49,112 species
    taxa = api.list_taxa()                # Browse 17,982 taxa
    ecoregions = api.list_ecoregions()    # Browse 846 ecoregions
    results = api.search("polar bear")    # Full-text search

API Endpoints

Method Endpoint Description
GET /api/v1/species/ List all species
GET /api/v1/species/{slug}/ Species detail
GET /api/v1/taxa/ List all taxa
GET /api/v1/taxa/{slug}/ Taxon detail
GET /api/v1/ecoregions/ List all ecoregions
GET /api/v1/ecoregions/{slug}/ Ecoregion detail
GET /api/v1/habitats/ List all habitats
GET /api/v1/habitats/{slug}/ Habitat detail
GET /api/v1/ranks/ List taxonomic ranks
GET /api/v1/countries/ List countries
GET /api/v1/food-webs/ List food webs
GET /api/v1/discoveries/ List species discoveries
GET /api/v1/field-guides/ List field guides
GET /api/v1/glossary/ List glossary terms
GET /api/v1/guides/ List guides
GET /api/v1/search/?q={query} Search across all content
curl -s "https://speciesfyi.com/api/v1/species/?limit=3"

Full API documentation at speciesfyi.com/developers/. OpenAPI 3.1.0 spec: speciesfyi.com/api/openapi.json.

API Reference

Function Description
SpeciesFYI() Create API client (base_url, timeout)
list_species(**params) List all species
get_specy(slug) Get species detail
list_taxa(**params) List all taxa
get_taxa(slug) Get taxon detail
list_ecoregions(**params) List all ecoregions
get_ecoregion(slug) Get ecoregion detail
list_habitats(**params) List all habitats
get_habitat(slug) Get habitat detail
list_ranks(**params) List taxonomic ranks
list_countries(**params) List countries
list_food_webs(**params) List food webs
list_discoveries(**params) List species discoveries
list_field_guides(**params) List field guides
list_glossary(**params) List glossary terms
list_guides(**params) List guides
search(query) Search across all content

Learn More About Species

Nature FYI Family

Part of the FYIPedia open-source developer tools ecosystem — living organisms, wildlife, and natural history.

Package PyPI Description
speciesfyi PyPI 49,112 species, 17,982 taxa, 846 ecoregions — speciesfyi.com
birdfyi PyPI 11,251 birds, 40 orders, 258 families — birdfyi.com
fishfyi PyPI 78 fish species, 48 orders, 188 families — fishfyi.com
plantfyi PyPI 379,774 plants, 734 families, 50 orders — plantfyi.com
dinofyi PyPI 6,142 dinosaurs, 15 periods, 198 countries — dinofyi.com

FYIPedia Developer Tools

Package PyPI npm Description
colorfyi PyPI npm Color conversion, WCAG contrast, harmonies — colorfyi.com
emojifyi PyPI npm Emoji encoding & metadata for 3,953 emojis — emojifyi.com
symbolfyi PyPI npm Symbol encoding in 11 formats — symbolfyi.com
unicodefyi PyPI npm Unicode lookup with 17 encodings — unicodefyi.com
fontfyi PyPI npm Google Fonts metadata & CSS — fontfyi.com
speciesfyi PyPI Species taxonomy & biodiversity — speciesfyi.com
birdfyi PyPI Bird species encyclopedia — birdfyi.com
fishfyi PyPI Fish species & marine biology — fishfyi.com
plantfyi PyPI Plant taxonomy & cultivation — plantfyi.com
dinofyi PyPI Dinosaur paleontology & fossil record — dinofyi.com

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

speciesfyi-0.1.1.tar.gz (620.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

speciesfyi-0.1.1-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file speciesfyi-0.1.1.tar.gz.

File metadata

  • Download URL: speciesfyi-0.1.1.tar.gz
  • Upload date:
  • Size: 620.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for speciesfyi-0.1.1.tar.gz
Algorithm Hash digest
SHA256 63fc9cd748120cba9714e2f331457b5d0f42137908225604d3de569c879d5efa
MD5 9e696137fd7d550e194cbe155d96d05d
BLAKE2b-256 9f6447590aa0c6dd7eccb20e297a247b452478691af36314c0c55fb81ab98c69

See more details on using hashes here.

File details

Details for the file speciesfyi-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: speciesfyi-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for speciesfyi-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f4ff339dc2498726551a0364dd17b823844aa75ad05ca40a2d942ba0ce0e602
MD5 624790c37cc4280eb5bc92ad928b8e71
BLAKE2b-256 1db74e06d0e54b24508cef94dd20fe602e9cf18c09e5ee376d1e83309ca1164b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page