BYTETOOLS

GBIF API

Free GBIF API with no key: 2 billion+ species occurrence records, taxonomic data and distribution maps from museums and research institutions worldwide. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 19 Aug 2026

What is the GBIF API?

The GBIF API is a free, key-free interface to the Global Biodiversity Information Facility — over two billion species occurrence records, full taxonomic hierarchies and distribution data contributed by museums and research institutions worldwide.

GBIF is the largest open biodiversity dataset in existence, aggregating specimen records from natural history collections, research surveys and citizen science across the world. Reading it needs no key at all.

The taxonomic backbone is the part most projects need: every record is resolved to a normalised taxonomy with kingdom through species, plus a stable `key`. That lets you reconcile species names across datasets that spell them differently or use outdated synonyms.

Quick facts

Base URL
https://api.gbif.org/v1
Authentication
No API key required for reads. Publishing data requires an account.
Rate limit
No published hard limit; bulk users should use the download API rather than paging the search endpoints.
Pricing
Free open data; individual records carry their own licences.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the GBIF API

Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Search the species taxonomy

GET https://api.gbif.org/v1/species/search?q=puma&limit=1

curl
curl 'https://api.gbif.org/v1/species/search?q=puma&limit=1'
JavaScript (fetch)
const res = await fetch("https://api.gbif.org/v1/species/search?q=puma&limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.gbif.org/v1/species/search?q=puma&limit=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "offset": 0,
  "limit": 1,
  "endOfRecords": false,
  "count": 1051,
  "results": [
    {
      "key": 326260942,
      "datasetKey": "0ecf5aeb-0c50-4063-a9ab-48eba3d21f4b",
      "nubKey": 2435098,
      "parentKey": 326260933,
      "parent": "Felidae",
      "kingdom": "Animalia",
      "phylum": "Chordata",
      "order": "Carnivora",
      "family": "Felidae",
      "genus": "Puma",
      "kingdomKey": 326260404,
      "phylumKey": 326260446,
      "classKey": 326260931,
      "orderKey": 326260932,
      "familyKey": 326260933,
      "genusKey": 326260942,
      "scientificName": "Puma",
      "canonicalName": "Puma",
      "taxonomicStatus": "ACCEPTED",
      "rank": "GENUS",
      "origin": "DENORMED_CLASSIFICATION",
      "numDescendants": 0,
      "numOccurrences": 0,
      "habitats": [],
      "nomenclaturalStatus": [],
      "threatStatuses": [],
      "descriptions": [],
      "vernacularNames": [],
      "synonym": false,
      "higherClassificationMap": {
        "326260404": "Animalia",
        "326260446": "Chordata",
        "326260931": "Mammalia",
        "326260932": "Carnivora",
        "326260933": "Felidae"
      },
      "class": "Mammalia"
    }
  ],
  "facets": []
}

Parameters

ParameterTypeRequiredDescription
qstringOptionalFree-text search query. puma
limitintegerOptionalResults per page, max 1000. 20
offsetintegerOptionalPagination offset. 20
rankstringOptionalTaxonomic rank filter. SPECIES
highertaxonKeyintegerOptionalRestrict to descendants of a taxon. 212

Response fields

countinteger
Total records matching the query.
endOfRecordsboolean
Whether more pages exist.
results[].keyinteger
Stable GBIF taxon identifier.
results[].scientificNamestring
Full scientific name with authorship.
results[].kingdom / phylum / class / order / family / genusstring
Normalised taxonomic hierarchy.
results[].taxonomicStatusstring
ACCEPTED, SYNONYM or DOUBTFUL.

What you can build with the GBIF API

  • Build a species lookup or field guide application
  • Reconcile species names across datasets using the GBIF backbone
  • Map species occurrence records for ecological research
  • Support conservation and biodiversity analysis

Common errors and how to fix them

Empty results

The query matched nothing.

Fix: Scientific names work better than common names; the species/match endpoint does fuzzy name resolution.

taxonomicStatus: SYNONYM

The name is an outdated synonym, not the accepted name.

Fix: Follow `acceptedKey` to the currently accepted taxon before displaying.

Very large occurrence queries time out

Occurrence search spans billions of records.

Fix: Use the asynchronous download API for anything beyond a few thousand records.

GBIF API — frequently asked questions

Is the GBIF API free?

Yes, completely free with no API key for reads. It is a publicly funded international biodiversity infrastructure.

How much data does GBIF hold?

Over two billion species occurrence records contributed by museums, herbaria, research surveys and citizen science projects worldwide.

What is the GBIF taxonomic backbone?

A normalised taxonomy that every record is matched against, so datasets using different or outdated names resolve to the same stable taxon key. It is the main reason to use GBIF for name reconciliation.

Why does my species show as a SYNONYM?

The name you searched is an outdated or alternative name. Follow the `acceptedKey` field to the currently accepted taxon.

Tools that pair with this API

Alternatives to GBIF API

If GBIF does not fit, these environment apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
UK Carbon IntensityFree National Grid carbon intensity API with no key: current and forecast grid carbon per half hour, by region, with generation mix. Tested curl example.No keyYes19 Aug 2026
iNaturalistFree iNaturalist API with no key: millions of citizen-science species observations with photos, coordinates, identifications and quality grades. Tested example.No keyYes19 Aug 2026
USGS Water ServicesFree USGS Water Services API with no key: real-time river discharge, gauge height, water temperature and groundwater levels from thousands of US sites. Tested.No keyYes19 Aug 2026
EPA EnvirofactsFree US EPA Envirofacts API with no key: toxic release inventory, facility permits, air and water compliance data across US environmental programmes. Tested.No keyYes19 Aug 2026
Global Warming APIFree climate data API with no key: global temperature anomalies from 1880 to now, plus CO2, methane, nitrous oxide and polar ice extent series. Tested example included.No keyYes21 Aug 2026
GrünstromIndex (Corrently)Free German renewable energy forecast API with no key: hourly green-power share, wind and solar split, CO2 intensity and grid price by postcode. Tested example included.No keyYes21 Aug 2026
All Environment APIs

GBIF is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.