Skip to content

Webhook Events

Available Events

solar.optimization.completed

Fired when an optimization job finishes successfully.

{
  "event_id": "evt_xyz789",
  "event_type": "solar.optimization.completed",
  "timestamp": "2026-01-26T12:00:00Z",
  "data": {
    "job_id": "opt_abc123",
    "status": "completed",
    "type": "single",
    "objective": "energy",
    "result": {
      "optimal_parameters": {
        "tilt": 30.5,
        "azimuth": 180.0,
        "dc_ac_ratio": 1.3,
        "gcr": 0.35
      },
      "energy_metrics": {
        "annual_energy_kwh": 1650000,
        "capacity_factor": 0.22
      }
    }
  }
}

solar.optimization.failed

Fired when an optimization job fails.

{
  "event_id": "evt_abc456",
  "event_type": "solar.optimization.failed",
  "timestamp": "2026-01-26T12:05:00Z",
  "data": {
    "job_id": "opt_abc123",
    "status": "failed",
    "error": "Invalid site configuration: latitude out of range"
  }
}

Retry Policy

Failed webhook deliveries are retried up to 3 times with exponential backoff (10s, 30s, 90s). After all retries fail, the delivery is marked as failed in webhook stats.