Microproduct data guideintermediate

GBIF Species Occurrences

Global museum, survey, observation, and citizen-science occurrence records for building biodiversity maps and species-monitoring tools.

At a glance

Difficulty
Intermediate — some data preparation helps
Size
Medium · 0.001–1 GB
Formats
JSON, CSV, Parquet, Darwin Core Archive
Access
API or Download
API key
Not required
Provider
Global Biodiversity Information Facility
Updates
Continuous
Data terms
GBIF data-user agreement and record-level licenses

From source to product signal

Test a product idea in four steps

GBIF indexes species occurrences published by museums, surveys, research programs, and observation networks. Start with one taxon, country, and recent period. Records reflect uneven sampling, can be duplicated, may have coordinate issues, and can generalize sensitive-species locations.

1

Check the setup

  • Python 3.10 or newer
  • A notebook environment such as Jupyter or Google Colab
  • An internet connection
2

Access the data

  1. 1.Match the scientific name to a GBIF taxon key before searching occurrences.
  2. 2.Request one country and recent year range with coordinate and issue filters.
  3. 3.Retain occurrence keys, dataset keys, licenses, and source citations for attribution.
Open official source
3

Run the Python example

Install the packages, then run the notebook cell.

python -m pip install pandas requests

import pandas as pd
import requests

match = requests.get(
    "https://api.gbif.org/v1/species/match",
    params={"name": "Danaus plexippus"},
    timeout=30,
)
match.raise_for_status()
taxon_key = match.json()["usageKey"]
response = requests.get(
    "https://api.gbif.org/v1/occurrence/search",
    params={
        "taxon_key": taxon_key,
        "country": "US",
        "year": "2024,2026",
        "has_coordinate": "true",
        "has_geospatial_issue": "false",
        "limit": 100,
    },
    timeout=30,
)
response.raise_for_status()
occurrences = pd.json_normalize(response.json()["results"])
print(occurrences[["key", "eventDate", "decimalLatitude", "decimalLongitude", "datasetKey"]].head(20))
4

Test a useful signal

Map recent monarch butterfly occurrences

Review recent U.S. monarch butterfly records with usable coordinates.

  1. 01Resolve the taxon key and request a bounded period with documented coordinate filters.
  2. 02Deduplicate cautiously by occurrence identity and inspect basis of record and publisher coverage.
  3. 03Explain how sampling bias, coordinate quality, duplicate publishing, and sensitive-location handling limit the map.

Dataset details

Global Biodiversity Information Facility is an intergovernmental source. Last verified 2026-08-13. Temporal coverage: historical collections and observations through current publishing.

Theme

Research & Reference

Domains

BiodiversityEcology

Data types

GeospatialObservation Data

Tasks

Species MonitoringMappingSpatial Analysis

Geography

Global

Formats

JSONCSVParquetDarwin Core Archive

Provider

Global Biodiversity Information Facility

Data terms

GBIF data-user agreement and record-level licenses