When to use this skill
When the user asks about a species' taxonomic classification, accepted scientific name, nomenclatural status, or expert review provenance — "What order does the snow leopard belong to?", "Who last vetted the taxonomy of genus Canis?", "Is this name accepted or a synonym?" The Catalogue of Life assembles records from hundreds of expert source checklists covering ~80% of Earth's estimated 2.3 million known species. For occurrence records (where was a species sighted, when, by whom), use GBIF instead — COL is about taxonomic identity, not observation data.
Your best first call
curl "https://api.catalogueoflife.org/dataset/3LR/nameusage/search?q=Panthera+uncia&status=accepted"
No auth. No key. The q parameter accepts a scientific name or fragment. status=accepted filters out synonyms and subspecies usages — without it, a search for "Panthera leo" returns 269 name usages across all checklists, not 269 distinct species. The response is paginated (limit: 10 default) and each result contains:
id — COL identifier for the name usage (needed for the /taxon/{id} follow-up)
classification — the full ranked path from domain down to the matched taxon, including intermediate ranks like parvphylum and megaclass that most taxonomic APIs omit entirely
status — "accepted", "synonym", "doubtful", etc.
- Each rank in
classification has name, rank, status, and optionally authorship
For detailed expert review metadata, follow up with /dataset/3LR/taxon/{id} using the id from the search result — that endpoint adds scrutinizer, scrutinizerDate, extinct flag, nomenclatural code (zoological, botanical), and a link to the source checklist record.
Fallbacks (when the best call isn't enough)
- Full taxon record with expert provenance →
/dataset/3LR/taxon/{id} returns scrutinizer, scrutinizerDate, extinct, and source link — use when the user asks who vouches for a classification.
- Current release dataset key →
/dataset?limit=10 filtered by origin=release and the most recent imported timestamp — use when 3LR stops resolving after a release cycle.
Pitfalls
- Every call is scoped to a dataset key.
3LR is the current release shortcut, but COL publishes periodic releases each with a different integer key. If 3LR returns errors, query /dataset?limit=10 for the active release — hardcoding it will eventually break.
- Search returns all name usages across source checklists — synonyms, subspecies, and duplicate entries from different checklists. Always add
status=accepted unless the user explicitly asks about synonyms.
- COL IDs are release-specific. The ID
3GTH for Canis is valid in one release but will be a different opaque string in the next. Do not persist COL IDs across releases without re-resolving them.
- The
classification array includes intermediate ranks (parvphylum, megaclass, suborder) that most taxonomies collapse. Do not assume a fixed set of ranks — iterate by rank name.
One-line summary for the user
I can look up the full taxonomic classification and expert review provenance for any species in the Catalogue of Life (~2.3 million species) by scientific name — no API key required, but every query must target a specific release dataset key.
SKILL.md source (frontmatter + body)
---
name: look-up-species-taxonomy
description: When the user asks about a species' taxonomic classification, scientific name, nomenclatural status, or expert review provenance — reach for the Catalogue of Life API. Covers ~2.3 million species via one unauthenticated GET.
---
## When to use this skill
When the user asks about a species' taxonomic classification, accepted scientific name, nomenclatural status, or expert review provenance — "What order does the snow leopard belong to?", "Who last vetted the taxonomy of genus Canis?", "Is this name accepted or a synonym?" The Catalogue of Life assembles records from hundreds of expert source checklists covering ~80% of Earth's estimated 2.3 million known species. For occurrence records (where was a species sighted, when, by whom), use GBIF instead — COL is about taxonomic identity, not observation data.
## Your best first call
```bash
curl "https://api.catalogueoflife.org/dataset/3LR/nameusage/search?q=Panthera+uncia&status=accepted"
```
No auth. No key. The `q` parameter accepts a scientific name or fragment. `status=accepted` filters out synonyms and subspecies usages — without it, a search for "Panthera leo" returns 269 name usages across all checklists, not 269 distinct species. The response is paginated (`limit: 10` default) and each result contains:
- `id` — COL identifier for the name usage (needed for the `/taxon/{id}` follow-up)
- `classification` — the full ranked path from domain down to the matched taxon, including intermediate ranks like `parvphylum` and `megaclass` that most taxonomic APIs omit entirely
- `status` — `"accepted"`, `"synonym"`, `"doubtful"`, etc.
- Each rank in `classification` has `name`, `rank`, `status`, and optionally `authorship`
For detailed expert review metadata, follow up with `/dataset/3LR/taxon/{id}` using the `id` from the search result — that endpoint adds `scrutinizer`, `scrutinizerDate`, `extinct` flag, nomenclatural `code` (`zoological`, `botanical`), and a `link` to the source checklist record.
## Fallbacks (when the best call isn't enough)
- **Full taxon record with expert provenance** → `/dataset/3LR/taxon/{id}` returns `scrutinizer`, `scrutinizerDate`, `extinct`, and source `link` — use when the user asks who vouches for a classification.
- **Current release dataset key** → `/dataset?limit=10` filtered by `origin=release` and the most recent `imported` timestamp — use when `3LR` stops resolving after a release cycle.
## Pitfalls
- Every call is scoped to a dataset key. `3LR` is the current release shortcut, but COL publishes periodic releases each with a different integer key. If `3LR` returns errors, query `/dataset?limit=10` for the active release — hardcoding it will eventually break.
- Search returns all name usages across source checklists — synonyms, subspecies, and duplicate entries from different checklists. Always add `status=accepted` unless the user explicitly asks about synonyms.
- COL IDs are release-specific. The ID `3GTH` for *Canis* is valid in one release but will be a different opaque string in the next. Do not persist COL IDs across releases without re-resolving them.
- The `classification` array includes intermediate ranks (`parvphylum`, `megaclass`, `suborder`) that most taxonomies collapse. Do not assume a fixed set of ranks — iterate by `rank` name.
## One-line summary for the user
I can look up the full taxonomic classification and expert review provenance for any species in the Catalogue of Life (~2.3 million species) by scientific name — no API key required, but every query must target a specific release dataset key.