Where every number and species list came from, what's missing and how to reproduce it.
The atlas merges five independent datasets, each from different public sources:
| Layer | What it provides | Source | Coverage |
|---|---|---|---|
| Facilities | Every AZA-accredited US zoo and aquarium with precise coordinates | AZA member directory + hand-curated coordinates | 215 |
| Species per facility | Animals on display at each institution | Each zoo's own animal pages, supplemented by Wikipedia for institutions that don't publish A–Z lists | 137 zoos |
| Named individuals | Specific animals with bios — name, DOB, sex | Zoos' "Meet our animals" / ambassador pages, plus Ceta-Base for cetaceans | 243 |
| Recent events | Births, deaths, hatchings, transfers | Each zoo's press / news / blog pages, last ~24 months | 97 events |
| SSP / SAFE programs | Species Survival Plans and Saving Animals From Extinction with population stats | AZA program pages, USFWS recovery data, Wikipedia | 48 species |
Every facility popup tells you whether its species list came from the zoo's own published list, Wikipedia, or both. We try the zoo's site first; we fall back to Wikipedia only when the zoo doesn't publish a public A–Z page (about a third of the Association of Zoos and Aquariums (AZA) institutions don't).
Common URL patterns scraped: /animals, /our-animals, /animals-a-z, /explore/animals, /visit/animals, /discover/animals. Species names are kept exactly as the zoo writes them — common names are not normalized to scientific binomials, which is why "Tiger", "Amur Tiger", "Malayan Tiger" and "Sumatran Tiger" each appear as separate entries (the zoos write them that way).
This is the highest-trust source: it's the institution itself describing its collection. It's also a snapshot of what the zoo chose to feature on its public-facing pages, so it may lag current holdings (births, deaths, transfers since the page was last updated).
About a third of AZA institutions — including most of the New York City zoos run by the Wildlife Conservation Society (Bronx, Central Park, Prospect Park, Queens, NY Aquarium), the Smithsonian, Disney's Animal Kingdom, Saint Louis, Memphis, Fort Worth, Dallas Zoo and others — publish only featured-animal teasers on their websites, not full inventories. For these we fall back to the species lists on each zoo's Wikipedia article.
Wikipedia is collaboratively edited, so its species lists are second-hand: typically compiled from press releases, signage photos and visitor reports. Less authoritative than the zoo's own page, but better than nothing. Each Wikipedia-sourced popup is labeled as such.
A few institutions fight the scraper hard: their pages are JavaScript-rendered (no static HTML), they 403 automated requests, or they don't keep a public list. Where neither the zoo nor Wikipedia offered a usable list, the facility appears on the map as a regular marker but its popup says "No public A–Z animal list found at this institution." Many AZA institutions have outstanding collections and active conservation programs without publishing an A–Z page, so a missing list says nothing about what the zoo holds.
All 215 markers are at street-level precise coordinates, hand-curated in data/zoo-coordinates.json from each zoo's published address (Wikipedia infoboxes, Apple Maps, the zoo's contact pages). An audit pass found nine errors larger than 2 km — biggest was Lee G. Simmons Wildlife Safari Park, off by 19 km because its Ashland, NE location is at the I-80 exit, not the city of Wahoo where it had been placed.
The Names tab shows specific animals (gorillas, elephants, orcas, etc.) scraped from each zoo's "Meet our [species]" or "Animal ambassadors" pages. SeaWorld and other cetacean parks are well-documented in Ceta-Base, an independent public database of captive cetaceans, which we used as a supplementary source. ~60% of records have published dates of birth; ~40% don't.
Birds, reptiles and aquarium residents are barely represented. Zoos publish bios primarily for charismatic megafauna where individual identity is part of the visitor draw. That gap runs through any captive-animal database: most named individuals at AZA institutions don't have public bios at all.
The News tab is a 24-month rolling window of birth, death, hatching, arrival and departure announcements from major zoos' press / blog pages. Where official press feeds were inaccessible, we supplemented from local TV / wire stories citing the zoo's own announcements (these are flagged in the underlying data). Aquarium events are underrepresented — Georgia Aquarium, Shedd, Monterey Bay, National Aquarium and New England Aquarium either block scraping or don't publish dated birth/death announcements as discrete press items.
An earlier version played short audio recordings next to species names. The feature was removed in May 2026 because playback was unreliable across browsers.
An earlier version of this project included 2,500+ exhibitors and dealers licensed by the U.S. Department of Agriculture (USDA), most regulated under the Animal Welfare Act. That dataset is heavily polluted with regulated pet operations (kennels, catteries, pet shops, puppy mills) that the Animal Welfare Act covers alongside wildlife exhibitors. Most non-AZA exhibitors don't publish their inventories, so species data isn't available without parsing inspection PDFs. The dataset was dropped to keep the project focused.
The world's most comprehensive captive-animal database is ZIMS, which holds individual records (DOBs, sex, parentage, transfers) for every animal at over 1,300 member institutions. We do not use ZIMS. Species360's terms explicitly prohibit publishing institution-level species holdings.
Most privately owned exotic mammals, reptiles and birds are on no federal registry. The 2022 Big Cat Public Safety Act created a U.S. Fish and Wildlife Service registry of privately held big cats; that layer is planned for a later phase but not currently shown.
Build scripts (Python 3, no extra deps beyond openpyxl):
scripts/build_dataset.py — geocodes the AZA institution list using data/zoo-coordinates.json overrides + the 2023 Census places gazetteer fallback. Writes data/facilities.json.scripts/build_species_index.py — merges data/zoo-species-raw.json (zoo-website scrapes) and data/wikipedia-supplemental.json (Wikipedia backfill), tags each species with its source, classifies each into a vertebrate class and a "browse" group, attaches species lists to facilities, and writes data/species_index.json.All raw scrape outputs are committed to the repository so anyone can audit which URLs were scraped and which species were extracted from each.