InsurTech

    Insurance Claim Verification

    Verify storm and flood damage claims in minutes, not weeks.

    1–3 minutes (cached: instant)
    Turnaround
    ~0.01 km²
    Minimum detectable damage
    Flooding, fire, structural, vegetation
    Change types
    $0.50 per verification
    API cost per claim

    The Problem

    Property and casualty insurers process thousands of weather-related claims per event, but physical adjuster visits are slow, expensive, and create claims backlogs that frustrate policyholders. Manual verification also struggles to catch fraudulent claims for pre-existing damage presented as event-related. Existing satellite verification tools are expensive enterprise contracts with long onboarding times.

    How Satalyse Solves It

    Satalyse's Change Detection endpoint compares satellite imagery from before and after the claimed event date over the property polygon, returning the extent and nature of any changes detected. Integrate this directly into your claims workflow: trigger a verification call when a claim is filed, and auto-flag claims where no satellite-detectable damage matches the event footprint. Use Risk Scoring to provide underwriters with pre-event baseline risk context.

    Change Detection
    POST /api/v1/satellite/detect-changes
    Compares before/after imagery around the event date to detect actual property damage
    Risk Scoring
    POST /api/v1/satellite/score-risk
    Provides pre-event flood, fire, and weather risk baseline for the property

    Code Example

    insurance-claim-verification.py
    REQUEST
    1"color:#c084fc">import requests
    2"color:#c084fc">from datetime "color:#c084fc">import date, timedelta
    3
    4claim_date = "2024-09-14" "color:#4b5563"># Hurricane Milton landfall
    5event_start = "2024-09-10"
    6event_end = "2024-09-18"
    7
    8"color:#4b5563"># Verify hurricane damage at claimed property
    9response = requests.post(
    10 "https://api.satalyse.dev/api/v1/satellite/detect-changes",
    11 headers={"Authorization": "Bearer sat_sk_live_..."},
    12 json={
    13 "geometry": {
    14 "type": "Polygon",
    15 "coord">inates": [[
    16 [-81.655, 28.541], [-81.641, 28.541],
    17 [-81.641, 28.530], [-81.655, 28.530],
    18 [-81.655, 28.541]
    19 ]]
    20 },
    21 "start_date": event_start,
    22 "end_date": event_end,
    23 "sensitivity": "medium"
    24 }
    25)
    26
    27result = response.json()
    28changes = result["changes_detected"]
    29damage_detected = changes["total_change_area_km2"] > 0.001
    30"color:#c084fc">print(f"Damage verified: {damage_detected}")
    31"color:#c084fc">print(f"Affected area: {changes['total_change_area_km2']} km²")
    200 OKRESPONSE
    {
      "request_id": "req_ins001",
      "status": "success",
      "timestamp": "2025-01-15T12:00:00Z",
      "location": { "area_km2": 0.08, "bbox": { "min_lon": -84.39, "min_lat": 33.74, "max_lon": -84.37, "max_lat": 33.76 } },
      "changes_detected": {
        "total_change_area_km2": 0.18,
        "percent_of_total_area": 22.5,
        "change_magnitude_avg": 31,
        "confidence_avg": 0.89,
        "change_type": "water_inundation"
      },
      "change_geometry": {
        "changed_polygons": [
          {
            "id": "poly_1",
            "type": "Polygon",
            "coordinates": [[[...]]],
            "change_type": "water_inundation",
            "change_magnitude": 31,
            "confidence": 0.89
          }
        ]
      },
      "api_metadata": { "version": "2.0", "execution_time_ms": 1870, "cost_credits": 16, "cache_hit": false }
    }

    Ready to try it?

    Test this use case in the interactive playground. Free tier, no credit card needed.

    Related Use Cases

    Relevant locations