canonical: https://jentic.com/apis/gbif.org/gbif

# GBIF Species API

The GBIF Species API exposes the Global Biodiversity Information Facility's checklist bank - a federated catalogue of taxonomic names, classifications, distributions, descriptions, and IUCN red list categories drawn from hundreds of contributing institutions. The API supports full-text search, name suggestion, name parsing, and traversal of the taxonomic tree from kingdom down to species and synonym, alongside per-species references, vernacular names, and media. It is the canonical machine-readable backbone for biodiversity research, ecology dashboards, and citizen-science apps. All 32 endpoints are open and require no authentication.

## For AI agents

Look up biological species by name, browse taxonomic trees, and enrich records with distributions, vernacular names, and IUCN red-list categories.

## Scope

Does not handle occurrence records, dataset metadata, or geocoding - use for taxonomic name matching, search, and species enrichment only.

## Capabilities

- Match a free-text scientific name to a canonical GBIF usage key with `/v1/species/match`
- Search the species index with full-text queries via `/v1/species/search`
- Suggest species names from a partial input through `/v1/species/suggest` for autocomplete UIs
- Walk the taxonomic tree using `/v1/species/{usageKey}/parents` and /children to render kingdom-to-species hierarchies
- Pull a species' distributions, descriptions, vernacular names, and references via dedicated `/v1/species/{usageKey}`/* endpoints
- Parse a raw scientific name string into components (genus, species, authorship) with `/v1/parser/name`

## Use cases

### Species Autocomplete For Citizen-Science Apps

Power a search box where users type the start of a species name and pick from suggestions. The agent calls `/v1/species/suggest` with the typed prefix and returns a ranked list of canonical names with their usage keys. Improves data quality at submission time by eliminating spelling variants.

Example prompt: GET `/v1/species/suggest`?q=helian&limit=10 and return the list of names with their usageKeys for display in a dropdown

### Conservation Status Enrichment

Enrich a list of species observations with their IUCN red list category so an analyst can flag threatened species. The agent matches each name to a usage key with `/v1/species/match`, then calls `/v1/species/{usageKey}/iucnRedListCategory.` Removes manual cross-referencing against the IUCN site.

Example prompt: For each name, GET `/v1/species/match`?name={n} to get a usageKey, then GET `/v1/species/{usageKey}/iucnRedListCategory` and append the category to the row

### Taxonomic Tree Visualisation

Render an interactive taxonomy browser from kingdom down to species. The agent calls `/v1/species/{usageKey}/parents` to walk upward and `/v1/species/{usageKey}/children` to expand nodes lazily. Supports museum exhibits, education sites, and field-guide apps.

Example prompt: GET `/v1/species/{usageKey}/parents` to build the breadcrumb, then GET `/v1/species/{usageKey}/children` to populate the next level when a node is expanded

### Agent-Driven Biodiversity Research Through Jentic

AI research agents discover the GBIF Species API through Jentic, load the species match operation, and enrich species lists in field reports without bespoke client code. Brings authoritative taxonomy into research workflows that previously relied on training-data fragments. No credential is needed.

Example prompt: Use Jentic search query 'match a species name' to load the gbif_match_species tool, execute with name='Panthera leo', and return the canonical usageKey and scientificName

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/species/match` | Match a name string to a canonical species usage key |
| GET | `/v1/species/search` | Full-text search the species index |
| GET | `/v1/species/suggest` | Autocomplete species names from a prefix |
| GET | `/v1/species/{usageKey}` | Retrieve a species record by usage key |
| GET | `/v1/species/{usageKey}/iucnRedListCategory` | Get IUCN red list category for a species |
| GET | `/v1/species/{usageKey}/parents` | Walk the parent taxa of a species |
| GET | `/v1/parser/name` | Parse a scientific name string into structured parts |

## Key resources

- **Species** — Search, match, and retrieve canonical species records
- **Searching names** — Full-text search and autocomplete suggestions over the species index
- **Name parser** — Parse raw scientific name strings into structured components

## Why Jentic

- **Setup:** Wiring the GBIF Species API by hand means choosing between its production and user-testing hosts on api.gbif.org and coordinating name-match, search, suggest, and parser calls yourself. Through Jentic you install once, import the GBIF Species API from the API Directory, and your agent calls it.
- **Permission scoping:** GBIF puts the taxon usage key in the URL path (`/v1/species/{usageKey}`), so a rule can pin your agent to reading one species record: it can fetch that taxon, its parents, and its IUCN category and nothing else. You choose the operations it may call, so broad name matching or search is not included unless you add it.
- **Credential handling:** Any GBIF credential you supply is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'match a scientific name' or 'get parents of a species', and Jentic returns the matching GBIF Species operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **OpenWeatherMap API** — Add climatic context (temperature, precipitation) to species observation records pulled from GBIF.
- **Hugging Face API** — Hugging Face hosts hosted ML models including taxonomic classifiers; GBIF is the canonical authoritative source for biological taxonomy.
- **OpenAI API** — Use OpenAI to summarise GBIF species descriptions or generate plain-language field guides from the structured data.

## FAQ

### What authentication does the GBIF Species API use?

None. All 32 endpoints under `/v1/species`, `/v1/parser`, and related routes are public reads and require no API key or token. Jentic still routes through its execution layer for consistent error handling.

### Can I match a free-text species name to a canonical record?

Yes. GET `/v1/species/match` accepts a name query parameter and returns the matched usage key plus confidence indicators, which you then use as the path parameter for any `/v1/species/{usageKey}`/* enrichment route.

### What are the rate limits for the GBIF Species API?

GBIF does not publish hard rate-limit headers in the OpenAPI spec but asks heavy clients to throttle and identify themselves via a User-Agent. Back off on HTTP 429 and avoid tight loops across the 32 endpoints.

### How do I get the IUCN red list category for a species?

First call GET `/v1/species/match`?name={name} to resolve the usageKey, then call GET `/v1/species/{usageKey}/iucnRedListCategory` to retrieve the conservation status if GBIF holds one for that taxon.

### Can I parse a scientific name string with the GBIF API?

Yes. GET `/v1/parser/name` accepts a raw name string and returns structured components such as genus, species, infraspecific epithet, and authorship, useful for cleaning user-supplied input before a match call.

### How do I look up a species through Jentic?

Install with pip install jentic, search 'match a species name', load the schema for the gbif_match_species operation, and execute with the scientific name. Because GBIF is keyless, no vault setup is required.

### Can I limit what my agent is allowed to do with the GBIF Species API?

Yes. Because you run Jentic One yourself, your own rules decide which GBIF operations and any credentials the agent may use, so you can allow only what a task needs. Since GBIF puts the taxon usage key in the URL path (`/v1/species/{usageKey}`), a rule can pin the agent to reading a single species record, its parents, and its IUCN red list category and nothing more. Broad name matching via `/v1/species/match`, full-text search, suggest, and the `/v1/parser/name` endpoint are only reachable if you explicitly add them to the allowed set.
