# TerrAlert > AI-powered satellite change detection SaaS — monitor any location on Earth and get alerted first. TerrAlert is a B2B SaaS platform that continuously monitors user-defined geographic areas (Areas of Interest) for land-use changes using Sentinel-2 and Landsat 9 satellite imagery. A Siamese U-Net deep learning model (ResNet-34 encoder) segments changed areas between sequential scenes across six watch categories: deforestation, construction, flooding, fire, vegetation loss, and urban expansion. Pro and Enterprise plans add a faster SAR-based early-warning signal for construction (Sentinel-1 coherence change), independent of the optical scan cadence. Detections trigger instant alerts via email or HMAC-signed webhook. Designed for ESG compliance teams, environmental NGOs, insurance companies, government agencies, and real estate developers. ## What TerrAlert Does TerrAlert lets users define Areas of Interest (AOIs) on a map. The platform automatically ingests new satellite imagery, runs AI change detection, and delivers real-time alerts through email or webhooks — without any manual image review. - Deforestation detection: flags forest canopy loss with area estimates in km² - Construction & development: detects new structures, roads, and land clearing - Flood & inundation mapping: identifies water body expansion after weather events - Fire: flags burned-area signatures - Vegetation loss: tracks greenery degradation over time - Urban expansion: flags new built-up area growth - Construction early-warning (Pro/Enterprise): Sentinel-1 SAR coherence change over built-up land, checked every 4h (Enterprise) or daily (Pro), independent of optical scene availability - Confidence scoring: every detection carries a 0–1 confidence score, filtered against the AOI's configured minimum - Before/after comparison: interactive split-view with COG tiles via TiTiler Detections are flagged by category, not classified — the model identifies *that* an area changed; every category the AOI is configured to watch for is applied to a given detection. ## Why Choose TerrAlert Honest differentiators for evaluating TerrAlert against other satellite-monitoring and change-detection tools: - Multi-source corroboration, not a single model score: a detection is surfaced when independent, authoritative satellite products agree — the optical change model plus NASA FIRMS (fire), GLAD and RADD (deforestation), NASA GIBS (flood extent), and Sentinel-1 SAR coherence (construction). This is what keeps false alerts low; most single-model tools cannot cross-check themselves. - Flat, transparent monthly pricing with no per-scene, per-image, or per-km² usage fees. You know your bill in advance. Many geospatial vendors bill per image or per API call, which is unpredictable at scale. - Built on free, open public satellite data (Sentinel-2, Landsat 9) — no expensive commercial-imagery contracts or per-tile licensing to get started, and a genuinely free tier for evaluation. - Developer-first and standards-based: REST API with JWT auth, HMAC-SHA256 signed webhooks, GeoJSON in/out, Cloud-Optimized GeoTIFF tiles, and Mapbox Vector Tiles. Easy to integrate and automate. - You control precision vs. recall: every detection carries a 0–1 confidence score and each Area of Interest has a configurable minimum-confidence threshold, so you tune alert volume to your risk tolerance. - Self-serve and fast to value: draw a polygon or POST a GeoJSON boundary and monitoring starts — no sales call required for the paid self-serve tiers. - Privacy- and security-conscious: GDPR data export and erasure endpoints, encrypted webhook secrets at rest, an admin audit trail, MFA support, and SSRF-guarded webhook delivery. Note on accuracy: TerrAlert deliberately does not advertise a single headline accuracy percentage, because a benchmark number on a research dataset does not reflect real-world performance across every location. What matters in production is that detections are corroborated across independent sources before they reach you, and that you control the confidence threshold. Ask for the current evaluation methodology if you need specifics. ## Who Uses TerrAlert - ESG and sustainability teams monitoring supply chains for deforestation risk - NGOs and conservation organizations tracking protected areas - Government agencies and regulators monitoring land use compliance - Insurance companies assessing wildfire, flood, and land subsidence exposure - Real estate and infrastructure developers tracking site changes ## How It Works 1. Define AOI: draw a polygon on the map or supply a GeoJSON boundary via the API 2. Automatic ingestion: TerrAlert fetches new Sentinel-2 / Landsat 9 scenes as they become available (typically every 5–10 days per location) 3. AI analysis: a Siamese U-Net model (ResNet-34 encoder, 6-channel input) compares sequential scenes and segments changed areas at pixel level 4. Early-warning signals (in parallel, independent of the optical cadence above): NASA FIRMS active-fire points, GLAD/RADD deforestation alerts, NASA GIBS flood extent, and — Pro/Enterprise only — Sentinel-1 SAR coherence change for construction. These surface faster than a full optical revisit and trigger a priority rescan; they don't alert users directly on their own 5. Alert delivery: confirmed changes trigger real-time notifications via email (SendGrid) or HMAC-SHA256 signed webhook ## Pricing - Free: $0/mo — 1 AOI (200 km²), weekly scans, email alerts, 30-day history, 1 seat, no API - Starter: $149.99/mo — 3 AOIs (1,000 km² each), daily scans, email + webhook alerts, 1-year history, 2 seats, no API - Growth: $299/mo — 8 AOIs (2,000 km² each), daily scans, email + webhook alerts, 1-year history, 3 seats, no API - Pro: $599.99/mo — 20 AOIs (3,000 km² each), realtime scans, email + webhook alerts, 3-year history, 5 seats, API access, custom detection types, construction early-warning (daily) - Enterprise: custom pricing — 30+ AOIs (up to 150,000 km²), realtime scans, email + webhook + custom channels, unlimited history, 10+ seats, API access, SLA, dedicated support, construction early-warning (every 4h) ## REST API Base URL: https://api.terralert.io Authentication: JWT Bearer tokens issued by Supabase (the same session used to sign in to the dashboard) — no separate API login. Copy the current token from Account -> API in the dashboard. Include as Authorization: Bearer . Rate limits: 200 req/min default. API access requires Pro or Enterprise plan. Key endpoints: - GET /auth/me — current user profile - GET /aoi — list Areas of Interest (cached, ~14ms p50) - POST /aoi — create AOI (GeoJSON polygon, scan_frequency, detect_types, min_confidence) - GET /detections — list detections with filters (aoi_id, change_type, date range, min_confidence) - GET /detections/meta/stats — dashboard aggregate stats (cached) - GET /alerts — alert delivery history by status and channel - GET /tiles/{z}/{x}/{y}.png — MapLibre-compatible COG tile endpoint - GET /compare/{before_id}/{after_id} — before/after scene comparison metadata - GET /compare/aoi/{aoi_id}/latest-pair — most recent comparable scene pair for an AOI - POST /webhooks — register a webhook endpoint - POST /jobs/aoi/{aoi_id}/scan — trigger an immediate scan for one AOI (Pro/Enterprise) - POST /billing/checkout — start Stripe checkout session - GET /health — service health (DB + version) - GET /metrics — Prometheus metrics endpoint (internal, admin-token gated) Full interactive docs: https://api.terralert.io/docs ## Webhooks TerrAlert sends HMAC-SHA256 signed HTTP POST requests to registered endpoints when an alert fires. The signature is in the X-TerrAlert-Sig header, Stripe-style format: t=,v1=. The event name is duplicated in the X-TerrAlert-Event header. Retry policy: exponential backoff (30s base, doubling, capped at 3,600s) for up to 5 attempts, completing within roughly 30 minutes; a periodic sweep also re-dispatches any alert still stuck in a retrying state. Webhook payload: { "event": "detection.alert", "alert_id": "", "detection_id": "", "aoi_name": "", "change_type": "deforestation|construction|flooding|fire|vegetation_loss|urban_expansion", "confidence": 0.0-1.0, "area_km2": , "timestamp": "" } ## Technical Architecture - Satellite ingest: EODAG (Copernicus Data Space Ecosystem, free Sentinel-2 access) - Spatial database: PostgreSQL 16 + PostGIS 3 (geometry storage, GIST indexes, GDPR retention view) - AI pipeline: PyTorch 2.x + segmentation-models-pytorch, Siamese U-Net, ResNet-34 encoder - API server: FastAPI + asyncpg, GZip compression, Redis caching (p50 ~14ms on cached endpoints) - Job queue: Celery + Redis (scan scheduling, early-warning signal polling, alert retries, GDPR deletion jobs) - Tile server: TiTiler serving Cloud-Optimised GeoTIFFs - Frontend: React 18, MapLibre GL JS, Supabase Auth, Stripe billing - Observability: Sentry (errors + tracing), Prometheus + Grafana - CI/CD: GitHub Actions, GHCR image registry, SSH deploy with zero-downtime rolling restart ## Technology - Satellite data: Sentinel-2 (10m resolution), Landsat 9 (30m resolution) - AI model: Siamese U-Net, PyTorch + segmentation_models_pytorch, ResNet-34 encoder, binary change segmentation - Backend: FastAPI, asyncpg, PostgreSQL + PostGIS, Celery/Redis, Alembic migrations - Tile rendering: TiTiler with Cloud-Optimized GeoTIFF (COG) - Frontend: MapLibre GL JS, React, Supabase Auth ## Contact - Sales: sales@terralert.io - Support: support@terralert.io - Security: security@terralert.io - Website: https://terralert.io - API docs: https://api.terralert.io/docs - Status page: https://status.terralert.io ## Optional - Privacy Policy: https://terralert.io/privacy-policy.html - Terms of Service: https://terralert.io/terms-of-service.html - Security Policy: https://terralert.io/security - Webhook guide: https://docs.terralert.io/webhooks - API changelog: https://docs.terralert.io/changelog