Developers
API Documentation
Integrate real-time hail detection, alerts, and radar data into your applications.
Quick Start
Up and Running in Minutes
Authenticate with your API key and start querying real-time hail data immediately.
Base URL
https://api.hailsentinel.com/v1 Authentication
All requests require a Bearer token in the Authorization header. Obtain your API key from the developer dashboard after signing up.
Rate Limits
Rate limits vary by plan tier, from 10 requests/min on the Free plan to custom limits on Business. Rate limit headers are included in every response: X-RateLimit-Remaining, X-RateLimit-Reset.
Response Format
All responses are JSON. Successful requests return a data wrapper. Errors include a machine-readable code and human-readable message.
# Get current hail activity near Denver, CO
curl "https://api.hailsentinel.com/v1/hail/current\
?lat=39.7392&lng=-104.9903&radius_km=25" \
-H "Authorization: Bearer hs_live_abc123..." \
-H "Content-Type: application/json" {
"data": [
{
"storm_id": "ST-20260228-CO-0042",
"coordinates": { "lat": 39.7412, "lng": -104.9876 },
"mesh_size_mm": 32,
"probability": 0.87,
"detected_at": "2026-02-28T18:42:00Z",
"direction_deg": 225,
"speed_kph": 48
}
],
"meta": { "request_id": "req_9f8e7d6c", "timestamp": "2026-02-28T18:42:05Z" }
} Authentication
Secure API Access
Every request is authenticated with a Bearer token tied to your account. We provide separate keys for development and production.
Live Keys
Prefixed with hs_live_. Use in production environments. Requests count against your billing quota and return real data.
Test Keys
Prefixed with test_. Use during development. Returns simulated data. Free of charge, with relaxed rate limits for faster iteration.
# Include your API key in the Authorization header
curl "https://api.hailsentinel.com/v1/hail/current?lat=39.7392&lng=-104.9903" \
-H "Authorization: Bearer hs_live_sk_a1b2c3d4e5f6..." Core Endpoints
API Reference
Eight endpoints covering real-time detection, alerting, historical data, location risk, and radar imagery.
Hail Detection
/v1/hail/current Returns active hail cells within a given radius of a location. Data is sourced from multi-source radar composites processed through our detection pipeline.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | number | Yes | Latitude (-90 to 90) |
lng | number | Yes | Longitude (-180 to 180) |
radius_km | number | No | Search radius in kilometers. Default: 25, max: 150 |
Response Example
{
"data": [
{
"storm_id": "ST-20260228-CO-0042",
"coordinates": { "lat": 39.7412, "lng": -104.9876 },
"mesh_size_mm": 32,
"probability": 0.87,
"direction_deg": 225,
"speed_kph": 48
}
]
} /v1/hail/forecast Returns an hourly hail probability forecast for a location, up to 48 hours out. Combines NWP model output with our ML post-processing layer.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | number | Yes | Latitude (-90 to 90) |
lng | number | Yes | Longitude (-180 to 180) |
hours | number | No | Forecast window in hours. Range: 1-48, default: 12 |
Response Example
{
"data": [
{
"time": "2026-02-28T19:00:00Z",
"probability": 0.45,
"max_size_mm": 19,
"confidence": 0.82
},
{
"time": "2026-02-28T20:00:00Z",
"probability": 0.72,
"max_size_mm": 28,
"confidence": 0.76
}
]
} /v1/hail/history Retrieves historical hail events for a location within a date range. Useful for insurance risk assessment, claims validation, and climatological analysis.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | number | Yes | Latitude (-90 to 90) |
lng | number | Yes | Longitude (-180 to 180) |
start_date | string | Yes | Start date in ISO 8601 format (YYYY-MM-DD) |
end_date | string | Yes | End date in ISO 8601 format (YYYY-MM-DD) |
Response Example
{
"data": [
{
"date": "2025-06-14",
"max_size_mm": 44,
"duration_minutes": 18,
"damage_estimate": "moderate",
"storm_id": "ST-20250614-CO-0117"
}
]
} Alerts
/v1/alerts/subscribe Creates a new alert subscription for a location. When hail exceeding your threshold is detected, a webhook is dispatched to your specified URL.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
location | object | Yes | Object with lat and lng number properties |
threshold_mm | number | Yes | Minimum hail size in mm to trigger the alert |
webhook_url | string | Yes | HTTPS URL to receive webhook POST requests |
Response Example
{
"data": {
"id": "sub_8f7e6d5c4b3a",
"status": "active",
"location": { "lat": 39.7392, "lng": -104.9903 },
"threshold_mm": 25,
"webhook_url": "https://example.com/webhooks/hail",
"created_at": "2026-02-28T14:30:00Z"
}
} /v1/alerts/{id} Retrieves details of an alert subscription, including its configuration and a list of recently triggered alerts.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Subscription ID (e.g., sub_8f7e6d5c4b3a) |
Response Example
{
"data": {
"id": "sub_8f7e6d5c4b3a",
"status": "active",
"threshold_mm": 25,
"recent_alerts": [
{
"alert_id": "alt_1a2b3c",
"triggered_at": "2026-02-27T21:15:00Z",
"mesh_size_mm": 38,
"storm_id": "ST-20260227-CO-0089"
}
]
}
} /v1/alerts/{id} Cancels an active alert subscription. Webhooks will no longer be dispatched for this subscription after cancellation.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Subscription ID to cancel |
Response Example
{
"data": {
"id": "sub_8f7e6d5c4b3a",
"status": "cancelled",
"cancelled_at": "2026-02-28T16:00:00Z"
}
} Location & Radar
/v1/locations/{id}/risk Returns a comprehensive risk assessment for a saved location. Combines historical frequency, climatological trends, and recent storm activity into a single risk score.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Location ID from your account |
Response Example
{
"data": {
"location_id": "loc_denver_01",
"risk_score": 73,
"annual_hail_days": 9.2,
"trend": "increasing",
"last_event": {
"date": "2025-06-14",
"max_size_mm": 44
}
}
} /v1/radar/current Returns current radar product URLs and metadata for a location. Supports reflectivity, velocity, and MESH (Maximum Estimated Size of Hail) products.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | number | Yes | Latitude (-90 to 90) |
lng | number | Yes | Longitude (-180 to 180) |
products | string | No | Comma-separated list: reflectivity, velocity, mesh. Default: all |
Response Example
{
"data": {
"station": "KFTG",
"products": [
{
"type": "reflectivity",
"timestamp": "2026-02-28T18:40:12Z",
"tile_url": "https://tiles.hailsentinel.com/..."
},
{
"type": "mesh",
"timestamp": "2026-02-28T18:40:12Z",
"tile_url": "https://tiles.hailsentinel.com/..."
}
]
}
} Webhooks & SDKs
Event-Driven Integration
Receive push notifications via webhooks and integrate faster with native SDKs for Python, JavaScript, and Java.
Webhook Events
Subscribe to real-time events. Each webhook POST includes an X-Hailsentinel-Signature header for HMAC-SHA256 verification.
-
hail.detectedHail activity detected above your threshold at a monitored location. -
hail.clearedActive hail event has ended and all clear conditions are confirmed. -
alert.createdA new alert has been generated based on your subscription criteria. -
alert.resolvedA previously active alert has been resolved as conditions have changed. -
risk.changedThe risk score for a monitored location has changed by more than 10 points.
Retry Policy
Failed deliveries are retried 3 times with exponential backoff: 1 second, 30 seconds, and 5 minutes. All payloads are signed with HMAC-SHA256 using your webhook secret.
Example Webhook Payload
{
"event": "hail.detected",
"timestamp": "2026-02-28T18:42:00Z",
"data": {
"subscription_id": "sub_8f7e6d5c4b3a",
"storm_id": "ST-20260228-CO-0042",
"mesh_size_mm": 32,
"probability": 0.87,
"coordinates": {
"lat": 39.7412,
"lng": -104.9876
}
}
} SDK Installation
pip install hailsentinel npm install @hailsentinel/sdk <dependency>
<groupId>com.hailsentinel</groupId>
<artifactId>hailsentinel-sdk</artifactId>
<version>1.0.0</version>
</dependency> Rate Limits by Plan
| Plan | Requests / min | Requests / day | Webhooks |
|---|---|---|---|
| Free | 10 | 1,000 | 1 |
| Pro | 60 | 10,000 | 10 |
| Business | 300 | 100,000 | 100 |
Ready to Build?
Get started with our API today. Request an API key to access real-time hail detection, alerts, forecasts, and radar data.