Read from the package's own PHP files at the commit a29879e1915d: its namespaces, classes, interfaces and enums, their public constants, properties and methods with their PHPDoc, and the options its factories take. Nothing of it is run.
PbdbSourceclassThe Paleobiology Database, through its data service 1.2 (paleobiodb.org/data1.2): a taxon, fossil or living, by its number or its name - its rank, accepted name, common name, whether it is extant, its first and last appearances in the record (their intervals and their ages in millions of years), its occurrences counted, its classification, its ecology (environment, motility, life habit, diet), its first reference; a fossil occurrence by its number; a search of names; and the fossil occurrences of a place and an age (fossils()).
6 methods · 5 constants
PbdbSourceFactoryclassThe Paleobiology Database: taxa, fossil occurrences, a search of names, and the fossils of a place and an age (fossils(), outside the contract) - no key needed.
3 options
Omnilab\Pbdb
PbdbSource class
final class PbdbSource extends HttpSource PbdbSource.php:41
The Paleobiology Database, through its data service 1.2 (paleobiodb.org/data1.2): a taxon, fossil or living, by its number or its name - its rank, accepted name, common name, whether it is extant, its first and last appearances in the record (their intervals and their ages in millions of years), its occurrences counted, its classification, its ecology (environment, motility, life habit, diet), its first reference; a fossil occurrence by its number; a search of names; and the fossil occurrences of a place and an age (fossils()).
A fossil's age is a span of geological time (72.2 to 66 Ma), not a date: fossils() stays outside the contract. It takes an OccurrenceQuery for its place, filters, limit and cursor, refuses a period (from, to), and its entities have a place and no time - the age is in properties (max_ma, min_ma, early_interval, late_interval). occurrences() is not offered: its entities must have a time.
No key, no published rate.
const BASE_URI = 'https://paleobiodb.org/data1.2/'const MAX_PER_PAGE = 5000The most occurrences a page of fossils() holds.
const MAX_MA = 'max_ma'fossils()' own filters: the oldest and the youngest age, in millions of years; a named interval (Maastrichtian, Jurassic).
const MIN_MA = 'min_ma'const INTERVAL = 'interval'
PbdbSource::__construct()
public function __construct(HttpClientInterface $http, readonly float $radius = 10.0, string $baseUri = self::BASE_URI, array $headers = [], float $throttle = 0.0)$radiusthe circle around a Point, in kilometres, for fossils() when the query gives none
PbdbSource::getName()
public function getName(): stringPbdbSource::capabilities()
public function capabilities(): arrayPbdbSource::entity()
public function entity(Identifier|string $id): ?EntityA taxon by its number (54833, pbdb:54833, txn:54833, its page) or its name (a variant - Felis leo, recombined - gives its taxon, the name among its synonyms); a fossil occurrence by its number (pbdb.occurrence:139292, occ:139292). One call, two for a variant.
PbdbSource::search()
public function search(Query $query): PagePBDB's autocompletion of taxon names (taxa/auto): the taxa whose name begins with the text, the most recorded first, one page (PBDB's autocompletion has no offset; its wildcard list, taxa/list match_name, answered 3 names for "Tyranno%" on 2026-10-16, leaving Tyrannosaurus out). A domain other than taxonomy answers nothing.
PbdbSource::fossils()
public function fossils(OccurrenceQuery $query): PageThe fossil occurrences of a place and an age, outside the contract (a fossil's age is no date): each an entity with its place (where it was found today; its place then in properties) and no time.
A BBox is the box (across the antimeridian, west past east, as PBDB reads it); a Point, the circle of the query's radius (10 km by default) as a polygon of 64 sides; no place, the world. A period (from, to) is refused. Filters: OccurrenceQuery::TAXON (a number, an Identifier of pbdb, or a name: its subordinate taxa included), COUNTRY (ISO 3166-1 alpha-2, or a list), max_ma and min_ma (millions of years, PBDB's overlap rule), interval (a named interval: Maastrichtian, Jurassic). No sort: PBDB's own order (it answers 400 to its age orders on 2026-10-16). Page by offset, its total.
PbdbSourceFactory class
final class PbdbSourceFactory extends SourceFactory PbdbSourceFactory.php:21
The Paleobiology Database: taxa, fossil occurrences, a search of names, and the fossils of a place and an age (fossils(), outside the contract) - no key needed.
options: mailto: 'support@glitchr.io' # in the User-Agent radius_km: 10 # the circle around a Point, for fossils() when the query gives none throttle: 0 # seconds between two calls: PBDB publishes no rate base_uri: 'https://paleobiodb.org/data1.2/'
Options
| Option | Default | |
|---|---|---|
radius_km | 10.0 | |
throttle | 0.0 | |
base_uri | PbdbSource::BASE_URI |