Using the detection data.
The public feed contains automated BirdNET-Go detections copied from Birdy’s ledger with confidence strictly greater than 80%. Detections at exactly 80% are excluded. Holiday editions and review/validation fields are excluded from the public site and exports. One row represents one station’s detection event. Different models or stations can record the same encounter independently; these rows do not establish how many animals were present.
Download into a spreadsheet
Download the complete CSV, open it in Excel, or use Google Sheets’ IMPORTDATA with this site’s URL followed by /api/export. Imports follow the spreadsheet provider’s refresh schedule. CSV exports include all matching published records and a UTF-8 marker for Excel.
Filters
CSV and JSON support group (wildlife group), from (inclusive ISO timestamp), to (exclusive ISO timestamp), station, species (species ID). Dates on the download controls use UTC; detection times on the page use Europe/London.
Example: /api/export?from=2026-10-01T00:00:00Z&to=2026-11-01T00:00:00Z
Explore detections
Explore combines records from both gardens on Outwood Lane in Bletchingley, near Town Meadow. The daily activity frame shows every species detected today, with 24 London-hour columns from 00:00 through 23:00. Each number is a detection count, and blank dots mean zero published detections. Row totals and colour help compare activity. Scroll inside the frame horizontally or vertically; hour headings and species names stay visible.
The daily frame always covers the current London date from midnight inclusive to the next midnight exclusive. It refreshes every minute and automatically moves to the new date after midnight. Repeated autumn clock-change hours are combined in one column; a missing spring hour has no detections. Upcoming hours are shaded. No detections does not establish absence or recording uptime.
The wildlife group filter offers Birds, Bats, Terrestrial mammals and Other, using the published taxon classification. Other includes insects, amphibians and unclassified species. The wildlife group filter applies to the daily grid, historical charts, first records and their downloads. The website combines both gardens. The latest-detections table has its own wildlife group filter, which also filters its CSV export. All views require confidence strictly above 80%.
Grid CSV downloads contain a row for each species with all 24 hour counts and a total. Today’s detection CSV contains the underlying events for the same London date and group. Below the daily grid, use the historical year, species and period controls to explore hourly activity, daily trends and first records. First recorded means the earliest qualifying record in the available archive for the selected group, before filtering by period. It does not establish when a species arrived.
/api/explore?view=activity returns today’s complete hourly grid as JSON. Optional station and group filters apply; add format=csv for the grid CSV. Historical aggregates use /api/explore?year=2026 with optional month (1–12), species, station and group. Historical CSV views remain monthly, daily, hourly and firsts. Group values are bird, bat, terrestrial_mammal and other; CSV, JSON detections and the event stream accept the same group filter. Historical responses can be cached for one minute.
Live background collage
The decorative page background uses up to 24 distinct illustrated species detected within the last six hours. It refreshes every minute, using the same confidence threshold above 80% and Workshop ignore rules as the public data. Existing species keep their positions when new ones enter the collage. The composition reflects recent wildlife across both gardens; chart filters control the data panels independently. Table surfaces stay opaque, and reduced-motion and high-contrast preferences are respected.
Workshop ignore rules
The public site follows Workshop’s saved species dismissals. Permanent dismissals hide the species across the public history. Temporary dismissals hide detections through their saved cutoff; later detections can appear again. Restoring a species in Workshop removes its public exclusion on the next publisher sync. The rules apply to counts, charts, first records, raw JSON, CSV and future event-stream results, including records uploaded before the rule was added. Private ledger records are retained.
Birdy sends only the species identity, rule scope and temporary cutoff to the website. Changes are checked during each automatic publication. The public view continues to apply the last received rules if Birdy is temporarily offline.
Follow the feed
/api/detections?limit=100 returns the latest detections and a next_cursor. Poll /api/detections?after=CURSOR&limit=1000 and keep the returned cursor. Continue immediately while has_more is true. Upsert by id because later reviews update existing detections. To download all history as JSON, start with after=0.
/api/stream?after=CURSOR provides server-sent events named detection. Each event’s ID is its sequence number; automatic reconnections support Last-Event-ID. Persist the latest cursor across new sessions. Without a cursor, the stream starts with future updates. The stream checks for updates every ten seconds, reflecting the one-minute publisher cadence.
Understanding the columns
- Identity: stable Birdy observation ID, source event ID, species ID, common and scientific name, taxon group, station ID and label.
- Time: UTC observation and ingestion times, local observation time with UTC offset, end time and duration when supplied. An observation time is not a publication time.
- Model: detector application, model type, model name, model version and provenance. Blank means not recorded. The Pis’ read-only source database indexes provide the primary model attached to a detection, matched by event ID, species, timestamp and score. A primary model does not identify every other model that may also have contributed. Additional contributions appear only when recorded by BirdNET-Go.
- Confidence: score from 0 to 1 and percentage from 0 to 100. This is not a calibrated probability or statistical confidence interval. Interval columns remain blank unless genuine interval bounds are supplied by the source.
Freshness and corrections
/api/status includes the publisher’s last completed scan. A sync older than three minutes is shown as offline. Previously published data stays available. The publisher reconciles retained records during each scan. The public archive retains rows even if local retention later prunes them; it is not a source deletion audit.
Only the listed data fields and finished collage PNGs are published. Coordinates, microphone URLs, audio clips, raw source metadata and private notes are excluded. No reuse licence has been granted by this page; contact the site owner for redistribution terms.