How to Use Eonmap

Everything you need to go from zero to exploring the fossil record.

The Simple Version

What is Eonmap?

Eonmap is an interactive map for exploring where fossils have been found across the world. You can search for any group of animals or plants — from dinosaurs to trilobites to ancient sharks — and see every fossil site recorded by scientists, plotted on a map or listed in a table.

Think of it like a search engine for the fossil record. Instead of searching the web, you are searching a global scientific database of fossil sites. Every dot on the map is a real place where a real fossil was found and recorded by a researcher.

Why would I use this?
  • You are curious where dinosaurs lived and want to see it on a map
  • You want to understand how life was distributed across ancient continents
  • You are researching a specific fossil group, time period, or region
  • You want to download a dataset of fossil occurrences for your own analysis
  • You just find the history of life on Earth fascinating

What is the Paleobiology Database?

All of the data on Eonmap comes from the Paleobiology Database (PBDB), a free, public scientific database maintained by researchers worldwide. It contains records of fossil occurrences collected from the published scientific literature — when a paleontologist publishes a paper describing fossils from a site, that data gets entered into PBDB.

Eonmap does not store any data of its own. Every search you perform sends a query directly to the PBDB API and displays whatever PBDB returns. This means the data is always current with the scientific literature (results are cached for one hour to keep things fast).

What is a fossil occurrence?

An occurrence is one record of a taxon being found at one location. If a paleontologist found three different species at the same dig site, that is three occurrences. If the same species was found at ten different sites across Montana, that is ten occurrences.

Each occurrence has a name (the accepted scientific name of what was found), a location (latitude and longitude of the collection site), an age (in millions of years), and various other details like the rock formation it came from and the environment it was deposited in.

Note: one occurrence does not necessarily mean one individual animal. It means one scientific collection event — a site might yield dozens of specimens from the same taxon, but they are grouped into a single occurrence record.

Getting started in 3 steps

  1. 1

    Go to the Map page

    The map starts empty. You will see a message saying "Add a filter to search" — this is normal. The map waits for you to tell it what to look for before fetching any data.

  2. 2

    Pick a Quick Start preset or set your own filters

    The panel on the left has eight preset searches — "Age of Dinosaurs", "T. rex Country", "Trilobite World", and others. Click any preset to instantly populate the filters and run the search. Or choose your own organism, time period, and location.

  3. 3

    Press "Apply Filters" and explore

    The map will populate with markers showing every matching fossil site. Click any marker to see its details. Switch to the Browse page to see the same results in a sortable table, or download the full set as a CSV file.

What each page does

Map /map

The main exploration page. Apply filters and see matching fossil sites plotted on an interactive world map. Markers cluster when zoomed out and spread apart as you zoom in. Clicking a cluster zooms into it; clicking a single marker opens a popup with the taxon name and a link to the full occurrence detail page.

Browse /browse

The same search results shown as a paginated, sortable table. Useful when you want to scan taxon names, locations, and ages in a structured format. You can also download the full result set as a CSV file from this page.

Occurrence detail /occurrences/{id}

A deep-dive page for a single fossil occurrence. Shows the full taxonomic classification, location details, geological age with a timeline bar, the PBDB collection number (with a link back to PBDB), and a mini-map showing exactly where the specimen was found.

Taxon page /taxa/{name}

A summary page for any taxonomic name — a genus, family, order, or higher group. Shows a bar chart of occurrences by geologic period, a temporal range timeline, a world map of all known fossil sites, and a breakdown of the data by phylum, class, and depositional environment.


The Advanced Version

Filter reference

All filters are optional and combinable. Leave everything blank to match all organisms across all time and all locations — though for most searches you will want at least one filter to narrow the results.

Organism

Filters by taxonomic group using PBDB's base_name parameter, which matches the given name and all taxa nested beneath it. For example, selecting "Dinosaurs" (Dinosauria) returns every known dinosaur species in the database, not just records filed under that exact name.

The dropdown offers fifteen curated groups. If you need something more specific — a particular genus, family, or any name not in the list — click "Type a custom name" to enter a PBDB taxon name directly. Examples: Allosauridae, Pterosauria, Homo.

Time Period

Filters to occurrences whose geological age overlaps with the selected interval. The dropdown covers all twelve major Phanerozoic periods from the Cambrian (541–485 Mya) through the Quaternary (2.6 Mya – present). This maps to PBDB's interval parameter.

Age Range (million years ago)

A numeric alternative to Time Period. Enter minimum and maximum ages in millions of years ago. The range 0–540 covers the entire Phanerozoic eon — the period of complex animal life. You can use this alongside the Time Period filter or instead of it. Maps to PBDB's min_ma and max_ma parameters.

Environment

Filters by the depositional environment of the rock formation the fossil was found in — where the sediment was originally laid down, not necessarily where the animal lived. You can select multiple environments simultaneously. Available options:

Terrestrial Marine Carbonate Siliciclastic Reef / bioherm Lacustrine Fluvial Deltaic Estuary / bay Paralic Peritidal Offshore Coastal

Country

Restricts results to a single country using ISO 3166-1 alpha-2 codes sent to PBDB's cc parameter. The dropdown lists seventeen major fossil-bearing countries. If the country you need is not listed, it can still be reached via the Bounding Box filter.

ID Quality

Controls the certainty of the taxonomic identification. Any (default) returns all records. Certain only excludes records where the identification was tentative (e.g. cf. or aff. qualifiers in the literature). Uncertain only returns only those tentative identifications. Maps to PBDB's idqual parameter.

Bounding Box

Restricts results to a geographic rectangle you draw directly on the map. Click the rectangle icon in the Leaflet draw toolbar, drag a box over the area of interest, and the coordinates are filled in automatically. The bounding box is sent as latitude/longitude bounds (latmin, latmax, lngmin, lngmax) to PBDB. Click "Clear" in the filter panel to remove it.

Quick Start presets

The filter panel includes eight curated preset searches designed to highlight different eras and groups. Each preset pre-fills all relevant filters and applies the search immediately.

🦕

Age of Dinosaurs

Non-avian dinosaurs from the Triassic through the end-Cretaceous extinction (252–66 million years ago).

🦖

T. rex Country

Tyrannosaurid fossils from North America during the Cretaceous period, filtered to the United States.

🧊

Ice Age Giants

Pleistocene megafauna — mammals from 0–2.6 million years ago, covering woolly mammoths and their contemporaries.

🦣

Rise of Mammals

Mammal fossils from the Paleogene (23–66 million years ago), the era that followed the non-avian dinosaur extinction.

🪲

Trilobite World

Trilobites across all time periods and locations.

🐚

Ammonites

Ammonoid cephalopods across all time.

🌊

Cambrian Seas

Marine life from the Cambrian period — the dawn of complex animal life.

💀

The Great Dying

Fossils from around the Permian–Triassic boundary (245–260 million years ago), the largest mass extinction in Earth's history.

Map modes & controls

Three toggle controls appear in the top-right corner of the map after results load.

Heatmap

Switches from individual markers to a density heatmap. Useful when results are dense and clustered markers become hard to read — the heatmap makes geographic concentrations of fossil sites immediately visible. Powered by the Leaflet.heat plugin.

Paleo (Paleocoordinates)

Repositions each marker to its reconstructed ancient location — where that piece of crust was when the fossil was deposited, rather than where it sits today after millions of years of plate tectonics. PBDB provides these paleocoordinates (pla / plo fields) as part of the paleoloc response block. Only occurrences with valid paleocoordinates move; others stay in place.

Basemap

Switches the background map tile layer. Three options are available:

  • OSM — OpenStreetMap. The default. Shows roads, place names, and terrain.
  • Esri Imagery — Satellite imagery from Esri. Useful for examining the geography of fossil sites.
  • CartoDB Dark — A dark minimalist base. Marker colours stand out clearly against it.
Result cap: The map fetches up to 500 occurrences per query. If your filters match more than 500 records, a counter in the bottom-right of the map will show "Showing 500 of X occurrences". Use the Bounding Box or additional filters to narrow the result set if you want to see the full picture for a particular region.

Browse table & CSV export

The Browse page shows the same results as the map in a paginated table. The Map and Browse pages share the same filter panel — filters applied on one page carry over to the other.

Table columns

Column What it shows
Occurrence # The PBDB occurrence number. Links to the occurrence detail page.
Accepted Name The currently accepted scientific name for what was found.
Rank The taxonomic rank of the accepted name (genus, species, family, etc.).
Early Interval The name of the earliest possible geological interval for this occurrence.
Late Interval The name of the latest possible geological interval (may be the same as Early).
Max Age (Mya) The oldest possible age of the occurrence in millions of years ago.
Min Age (Mya) The youngest possible age of the occurrence in millions of years ago.
Country Country where the fossil was collected.
State State or province where the fossil was collected.
Formation The geological formation the fossil was found in.
Environment The depositional environment of the formation.

Pagination & sorting

Results are paginated at 25, 50, or 100 rows per page. Click any column header to sort by that column; click again to reverse the sort direction. Each page change fetches a fresh API request against PBDB using an offset, so large result sets are navigable without loading everything at once.

CSV export

The "Export CSV" button downloads all occurrences matching the current filters — not just the current page — as a comma-separated file. The download is streamed directly from PBDB through Eonmap's export endpoint (/api/export/occurrences) and includes the same fields shown in the table. This is useful for further analysis in Excel, R, Python, or any other tool.

Taxon pages

Navigate to /taxa/{name} for any valid PBDB taxon name — for example, /taxa/Dinosauria or /taxa/Tyrannosaurus. You can also reach taxon pages by clicking taxon name links where they appear in the interface.

Occurrences by Geologic Period

A bar chart (Chart.js) showing how many occurrences fall within each geological period. Useful for understanding when a group was most prevalent in the fossil record.

Temporal Range

A timeline (vis-timeline) plotting the individual age ranges of occurrences along a geological time axis. Shows the full stratigraphic spread of the group at a glance.

Geographic Distribution

A world map showing all fossil sites for the taxon, using the same Leaflet map as the main Map page.

Classification Summary

Three ranked tables breaking down the occurrence set by phylum, class, and depositional environment. Useful for understanding what is actually inside a broad grouping — for example, what phyla make up the "Cambrian Seas" results.

Data note: Taxon pages fetch up to 1,000 occurrences from PBDB for rendering the charts and maps. The occurrence count badge shows the true total from PBDB. For very common groups the badge may show a larger number than what is reflected in the charts — a "(charts based on first 1,000)" note will appear when this applies.

Occurrence detail pages

Each occurrence in the browse table or map popup links to a detail page at /occurrences/{id}, where id is the PBDB occurrence number.

Taxonomy card

The accepted scientific name, taxonomic rank, and classification breadcrumb (Phylum › Class › Order › Family › Genus) as recorded in PBDB.

Location card

Country, state or province, geological formation, depositional environment, and decimal coordinates of the collection site.

Age card

The geological interval name(s) and the age range in millions of years ago. A visual bar shows where this occurrence sits on a 0–540 million year timeline, giving immediate context for how old the fossil is relative to the entire Phanerozoic.

Collection card

The PBDB collection number, which groups occurrences from the same dig site. Clicking the collection number opens the original collection record on paleobiodb.org, where you can see all other taxa found at the same site.

Mini-map

A small Leaflet map pinpointing the collection site. If coordinates were not recorded in PBDB, a "Location not available" placeholder is shown instead.

Occurrence detail pages are also tracked in a Recently Viewed list accessible from the navigation bar. The last five occurrences you visited in your current session are stored there for quick re-access.

How the API works

Eonmap is a read-only front-end for one PBDB endpoint. Understanding this helps set expectations about what the data represents and why some searches are slower than others.

Endpoint

Every search calls:

GET https://paleobiodb.org/data1.2/occs/list.json

The filters you set are translated into query string parameters — for example, selecting "Dinosaurs" and "Cretaceous" produces base_name=Dinosauria&interval=Cretaceous. You can explore the PBDB API directly at paleobiodb.org/data1.2 if you want to build your own queries.

Response blocks

Eonmap requests five data blocks from PBDB on every search: coords (latitude/longitude), class (full taxonomic classification), loc (country, state, formation, environment), time (geological intervals and Ma ages), and paleoloc (reconstructed ancient coordinates).

Caching

Every unique combination of filters is cached for one hour. The first person to run a given search waits for PBDB to respond (which can occasionally take 30–60 seconds for large queries); anyone running the identical search within the next hour gets the cached result instantly. The cache is keyed by an MD5 hash of the full parameter set.

Record limits

The map fetches a maximum of 500 occurrences per query. The browse table paginates through results in pages of 25, 50, or 100. Taxon pages fetch up to 1,000 occurrences for their charts and maps. These limits exist to keep response sizes and render times manageable — PBDB's full dataset for a broad group like Bivalvia is far larger than is practical to plot on a single map.

No authentication required

PBDB is a public API with no key requirement. Eonmap does not create an account, store any personal data, or perform any write operations. It is purely a read-only interface over publicly available scientific data.