Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Web UI & URLs

A map of the pages and admin URLs the dashboard serves (not the /pages/* fragments the pages load into themselves, nor /static/*). For the JSON/WebSocket API, see HTTP & WebSocket API.

The six homes

The UI is organized into six top-level homes — the tabs across the top of every page (and the phone bottom bar).

URLHomeWhat it gathers
/Todaythe merged “right now” view + the full searchable day (live signal, day strip, unified log, top species, best recordings, station health)
/speciesSpeciesspecies list · photos · life list, plus per-species detail
/patternsPatternswhen-active heatmap · dawn chorus · migration · co-occurrence · trends · behavioral analytics, one tab each
/recordingsRecordingsthe Clips browser (?view=clips) and the live audio + spectrogram (?view=live)
/reportsReportsweekly recap · year in review · history
/stationSettingshealth (public) + the gated admin task groups

Searching the whole log

/search is the detection log across all time rather than one day. Every filter lives in the query string, so a search worth repeating is a bookmark:

/search?q=Turdus&from=2026-03-01&to=2026-03-31&conf_min=80&sort=confidence
ParameterTakesNotes
qfree textmatches common and scientific name; a leading NOT inverts it
speciesone nameexact, rather than q’s substring match
from, toYYYY-MM-DDinclusive both ends
hour_from, hour_to0–23hour_from above hour_to asks for a window through midnight
conf_min, conf_max0–100a percentage, because that is what the UI shows everywhere else
sourceaudio source labelwhich microphone or stream
verdictconfirmed · rejected · unreviewed
lockedlocked · unlockedwhether the clip is protected from retention
categorythe Today log’s four shortcutsrare, new, verified, quarantined
sortoldest · confidence · confidence-asc · species · species-descnewest first when absent
offseta row number50 rows per page

With an admin session it also carries bulk review: tick rows and confirm, reject or delete up to 100 at once. Those actions are POSTs on the gated router, so a logged-out visitor sees the same search results and none of the buttons.

Tabs within a home are selected by a query parameter, e.g. /patterns?tab=dawn, /reports?tab=history, /species?view=lifelist, /recordings?view=live.

Legacy routes (permanent redirects)

Older addresses and BirdNET-Pi muscle-memory still work — each one 308-redirects to its place in the new structure, so no bookmark ever 404s.

Old URL→ New
/today/
/gallery/species?view=photos
/life-list/species?view=lifelist
/heatmap/patterns
/analytics/dawn-chorus/patterns?tab=dawn
/migration/patterns?tab=migration
/correlation/patterns?tab=together
/timeseries/patterns?tab=trends
/analytics/patterns?tab=behavior
/weekly/reports
/year-in-review/reports?tab=year
/history/reports?tab=history
/system/station
/listen/recordings?view=live
/livestream/recordings?view=live
/live/recordings?view=live

Other pages

URLDescription
/species/detail?name=…Species detail — hourly chart, trend, companions, photo
/quarantineRare-bird review — approve, reject (also surfaced as the Today review nudge)
/notificationsNotification center — history and channel stats
/kioskKiosk mode — auto-refreshing display for dedicated screens
/onboardingFirst-run setup wizard
/detections/detail?date=&time=&name=Single-detection detail — spectrogram, audio, correlation id, share
/detection-reviewsThe review triage queue — confirm or reject detections one by one (Reviewing Detections)
/reports/day?date=One day’s look-back, opened from the History calendar’s Open day link
/player/{filename}A clip in the custom audio player with its spectrogram; ?species=, ?confidence=, ?time= and ?date= only label it
/system/changelogThe release history, rendered from the CHANGELOG.md compiled into the binary; /system/changelog/latest is the “new in this version” banner it feeds

Admin

Sign-in (a session cookie) is required, when an admin password is set — a fresh bare-metal install sets one automatically — for the /admin* routes, the five Settings management tabs and every page action that changes something (the Today delete/relabel/lock posts, detection reviews, recordings lock/unlock/delete, quarantine approve/reject/delete, the onboarding save and bulk review from Search). The Settings home’s Health tab (/station) is public — the operator-grade vital-signs surface that replaced the read-only /system page, which now redirects to it. The management tabs are the gated pages; the old /admin/audio, /admin/species, /admin/notifications, /admin/rules, /admin/quality, /admin/migrate, /admin/backups, /admin/accounts and /admin itself 308-redirect into them. Every home above, the read-only JSON/WebSocket API below and the feeds are open. See Remote Access & Security.

URLDescription
/station/captureAudio sources (#audio) and species lists (#species) — the old /admin/audio and /admin/species redirect here
/station/alertsNotifications (#notifications) and the alert-rule engine (#rules) — was /admin/notifications, /admin/rules
/station/dataData quality (#quality), BirdNET-Pi import (#import), backups / restore / danger zone (#backups) — was /admin/quality, /admin/migrate, /admin/backups
/station/settingsGeneral settings (the tab is labelled General)
/station/accessAccounts and access (#accounts) — was /admin/accounts
/admin/settingsThe all-in-one form: audio, location, detection, notifications, email, MQTT, species, system
/admin/systemCPU / memory / temperature / disk
/admin/overviewHealth-detail overview
/admin/doctorThe --doctor report rendered in the browser; /admin/doctor.json and /admin/support-bundle beside it
/admin/species/manageSpecies storage — per species: exclude, delete detections, delete clips (Settings & Detection)
/admin/imagesSpecies photographs — the blacklist of image URLs that are never shown
/admin/auditAudit log (180 days)
/admin/system/logs/pageLive log viewer (SSE, level filtering)
/admin/update/checkCheck GitHub Releases for a newer version (JSON). Applying is a separate POST /admin/update/apply with no UI button; the panel’s Check for Updates button points you at install.sh instead

These are unauthenticated, read-only endpoints. See Detection Detail & Sharing and RSS & Calendar Feeds.

URLDescription
/r/<token>Public share page for one detection (HMAC-signed, 30-day expiry)
/r/<token>/audio.wavRedirect to the shared clip’s audio
/r/<token>/spectrogram.pngRedirect to the shared clip’s spectrogram
/feeds/rare.rssRSS 2.0 — first-of-station detections (confidence > 0.85)
/feeds/rare.icsiCalendar — the same rare detections as calendar events
/feeds/today.rssRSS 2.0 — every detection today

API

The JSON API is versioned under /api/v2, with a WebSocket live stream at /api/v2/ws/detections. It has its own page: HTTP & WebSocket API — endpoints, query parameters, response shapes and examples.