{"service":"api.terrestream.com","version":"v1","endpoints":["GET  /healthz","GET  /v1/hello?name={optional}","POST /ingest             (telemetry ingest; Content-Type: application/json | application/msgpack; HMAC required)","GET  /firmware/check?current_version={x.y.z}&hardware_id={uuid}   (Phase 4c signed-manifest OTA)","GET  /firmware/spiffs/check?current_version={int}&hardware_id={uuid}  (Phase 9D ext — SPIFFS-OTA)","POST /factory/register   (factory-station device registration; Bearer token required)","GET  /factory/status     (factory-station provisioning status poll; Bearer token required)","POST /coredump           (panic coredump upload from device; HMAC required)","POST /devices/unbind     (device-initiated unbind from factory-reset flow; HMAC required)","POST /devices/announce-claim  (device side of Pattern B BLE-bonded claim; HMAC required)","POST /auth/register      (create account; returns access + refresh tokens)","POST /auth/login         (returns access + refresh tokens, OR totp_required challenge if 2FA enabled)","POST /auth/refresh       (rotate refresh token)","POST /auth/logout        (revoke refresh token)","POST /auth/reset-request (email password-reset link)","POST /auth/reset-confirm (consume reset token; set new password)","POST /auth/verify-email  (consume verification token)","POST /auth/resend-verify (resend verification email; auth required)","POST /auth/2fa/setup     (generate TOTP secret + recovery codes; auth required)","POST /auth/2fa/confirm   (verify first TOTP code; enables 2FA; auth required)","POST /auth/2fa/disable   (disable 2FA; auth + password + current code required)","POST /auth/2fa/verify    (complete login totp_required challenge)","GET  /auth/me            (profile + device_count; auth required)","DEL  /auth/me            (GDPR self-erase; auth + password confirmation)","POST /devices/claim      (app side of Pattern B claim; auth required, email-verified)","GET  /devices            (list user's active devices; auth required)","GET  /devices/{id}       (one device; auth required)","GET  /devices/{id}/latest (one-call device metadata + latest sample; auth required)","PUT  /devices/{id}/profile (owner updates display name, room, default device)","GET  /devices/{id}/measurements?from=&to=&limit=  (telemetry; auth required)","POST /devices/{id}/unbind (user-initiated unbind; auth required)","GET  /mobile/boot        (mobile BFF boot payload; auth required)","GET  /mobile/devices     (mobile device list; auth required)","GET  /mobile/devices/{id}/history?range=24h|7d|30d (mobile chart history; auth required)","GET  /mobile/outdoor     (mobile outdoor snapshot; auth required)","GET  /mobile/preferences (mobile preferences bundle; auth required)","PATCH /mobile/preferences (mobile preferences update; auth required)","POST /mobile/push-tokens (register mobile push token; auth required)","DELETE /mobile/push-tokens (disable mobile push token; auth required)","GET  /mobile/widgets/summary (widget payload preview; auth required)","GET  /mobile/live-activities/recommendation/{id} (Live Activity payload; auth required)","GET  /mobile/weather-tiles/manifest (mobile weather raster overlay contract; auth required)","GET  /mobile/weather-tiles/status (mobile weather raster cache status; auth required)","GET  /mobile/weather-tile/{layer}/{z}/{x}/{y}.png (cache-only weather overlay tile; auth required)","GET  /mobile/smoke-fire/manifest (cache-only smoke/fire overlay contract; auth required)","GET  /mobile/smoke-fire/status (cache status for smoke/fire overlays; auth required)","GET  /mobile/smoke-fire/summary (local/global smoke/fire summary; auth required)","GET  /mobile/smoke-fire/geojson (cache-only NOAA HMS/NASA FIRMS GeoJSON; auth required)","GET  /maps/basemap/manifest (shared MapLibre/PMTiles basemap contract)","GET  /maps/basemap/style.json (Terrestream light vector style)","GET  /maps/basemap/world.pmtiles (range-request PMTiles archive)"]}