PaleobiologyDB.jl

A Julia interface to the Paleobiology Database (PBDB) Web API. Results are returned as DataFrames.

Installation

using Pkg
Pkg.add("PaleobiologyDB")

Or for the latest development version:

using Pkg
Pkg.add(url = "https://github.com/jeetsukumaran/PaleobiologyDB.jl")

Quick Example

using PaleobiologyDB

# Fossil occurrences for Canidae in the Miocene
canids = pbdb_occurrences(base_name = "Canidae", interval = "Miocene", show = "full")

# Taxonomic data
canis = pbdb_taxon(name = "Canis", show = ["attr", "app", "size"])

# A specific collection
coll = pbdb_collection("col:1003", show = ["loc", "stratext"], extids = true)

See the Quick Start guide for more examples, the Caching guide for offline/repeated queries, and the API Reference for full function documentation.

Self-Documenting Interface

The entire package is richly documented, from the module level:

help?> PaleobiologyDB
search: PaleobiologyDB

  PaleobiologyDB

  A Julia interface to the Paleobiology Database (PBDB) Web API.

  This package provides functions to query the PBDB API for fossil occurrences, taxonomic information,
  collections, specimens, and other paleobiological data.

  Examples
  ≡≡≡≡≡≡≡≡

  using PaleobiologyDB

  # Get occurrences for Canidae
  occs = pbdb_occurrences(
      base_name = "Canidae",
      extids = true,
      show = "full",
  )
  occs = pbdb_occurrences(
      base_name = "Canidae",
      show = ["coords", "classext"],
  )

down to individual functions:

help?> pbdb_occurrences

  pbdb_occurrences(; kwargs...)

  Get information about fossil occurrence records stored in the Paleobiology Database.

  Arguments
  ≡≡≡≡≡≡≡≡≡

    •  kwargs...: Filtering and output parameters. Common options include:
       • limit: Maximum number of records to return (Int or "all").
       • base_name: Return records for the specified name(s) and all descendant taxa.
       • interval: Named geologic interval (e.g. "Miocene").
       • show: Extra information blocks. show = "full" for everything.
       • extids: Set extids = true for string identifiers.
       • vocab: Vocabulary for field names ("pbdb" or "com").

The ApiHelp submodule provides interactive discovery at the REPL without leaving Julia — browse endpoints, list parameters, inspect response fields, and search documentation. See Interactive Help.

Module Reference

PaleobiologyDBModule
PaleobiologyDB

A Julia interface to the Paleobiology Database (PBDB) Web API.

This package provides functions to query the PBDB API for fossil occurrences, taxonomic information, collections, specimens, and other paleobiological data.

Examples

using PaleobiologyDB

# Get occurrences for Canidae
occs = pbdb_occurrences(
    base_name = "Canidae",
    extids = true,
    show = "full",
)
occs = pbdb_occurrences(
    base_name = "Canidae",
    show = ["coords", "classext"],
)

# Get taxonomic information
taxa = pbdb_taxa(name = "Canis")

# Get a single collection
coll = pbdb_collection(
    "col:1003",
    show = ["coords", "loc", "stratext"],
    extids = true,
)
coll = pbdb_collection(
    1003,
    show = ["loc", "stratext"],
)

See "names(PaleobiologyDB)" for full list of functions, and the help for each function (e.g., "?pbdb_collections", "?pbdb_occurrence" for more examples and details.

Acknowledgements

The Paleobiology Database for curating and providing the data and API. This package data server endpoint API naming convention is based on the paleobioDB R package.

source

Function Categories

CategoryFunctions
Occurrencespbdb_occurrence, pbdb_occurrences, pbdb_ref_occurrences
Collectionspbdb_collection, pbdb_collections, pbdb_collections_geo, pbdb_ref_collections
Taxapbdb_taxon, pbdb_taxa, pbdb_taxa_auto, pbdb_ref_taxa, pbdb_opinions_taxa
Intervals/scalespbdb_interval, pbdb_intervals, pbdb_scale, pbdb_scales
Stratapbdb_strata, pbdb_strata_auto
Referencespbdb_reference, pbdb_references
Specimenspbdb_specimen, pbdb_specimens, pbdb_ref_specimens, pbdb_measurements
Opinionspbdb_opinion, pbdb_opinions
Countspbdb_count
Taxonomy (submodule)drop_unqualified_taxa, drop_unresolved_taxa, drop_unrecognized_taxa, augment_taxonomy, child_taxa, parent_taxa, registered_taxa, taxon_occursin, contains_taxon
PhyloPic (submodule)acquire_phylopic, augment_phylopic

All wrappers delegate to pbdb_query(endpoint; kwargs...).

Citation

If you use PaleobiologyDB.jl in your research, please cite both this package and the Paleobiology Database:

@misc{PaleobiologyDB.jl,
  author = {Jeet Sukumaran},
  title = {PaleobiologyDB.jl: A Julia interface to the Paleobiology Database},
  url = {https://github.com/jeetsukumaran/PaleobiologyDB.jl},
  year = {2025},
  doi = {10.5281/zenodo.17043157}
}

@article{Peters2016,
  author = {Shanan E. Peters and Michael McClennen},
  title = {The Paleobiology Database application programming interface},
  journal = {Paleobiology},
  volume = {42},
  number = {1},
  pages = {1--7},
  year = {2016},
  doi = {10.1017/pab.2015.39}
}

Acknowledgements