In-depth
POST /v2/in-depth
The core probabilistic endpoint. Unlike lite, you specify exactly which perils to run, CAT or weather, and each comes back with the full exceedance curve: thresholds, probabilities and return periods, with daily granularity and optional hour windows. Synchronous; up to 25 peril-event combinations per request.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
perils |
list[string] |
REQUIRED | Peril API names to assess (see perils reference) |
events |
list[Event] |
REQUIRED | Locations and time windows to evaluate |
window_days |
int |
CONDITIONAL | A value for contignecy between 0 and 7 and used to get the cumulative fall of rain and snow. Must be used with CumulativeRain and Cumulativesnow |
Event object
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
index |
integer | OPTIONAL | Auto-assigned | Unique identifier, echoed in results |
tag |
string | OPTIONAL | null |
Free-text risk label |
location |
string | CONDITIONAL | – | Place name to geocode, or supply coordinates |
latitude |
float | CONDITIONAL | – | Decimal degrees |
longitude |
float | CONDITIONAL | – | Decimal degrees |
start_date |
string | OPTIONAL | Tomorrow | YYYY-MM-DD |
end_date |
string | OPTIONAL | start_date + 1 year |
YYYY-MM-DD, must be ≥ start_date |
start_hour |
integer | OPTIONAL | 0 |
0–23 |
end_hour |
integer | OPTIONAL | 23 |
0–23, must be ≥ start_hour |
Date defaults: ready for the policy year
With no dates supplied, every event runs from tomorrow to one year ahead: the annual policy window a property underwriter needs, with no date arithmetic. Contingency and construction underwriters assessing shorter periods should set start_date and end_date manually.
{
"results": [
{
"index": 0,
"peril": "Wildfire",
"latitude": 26.1475,
"longitude": -81.7955,
"threshold": [
"Severe"
],
"probability": [
54.7841
],
"return_period": [
1
],
"unit": "Severe"
},
{
"index": 0,
"peril": "TropicalCyclone",
"latitude": 26.1475,
"longitude": -81.7955,
"threshold": [
"CAT0",
"CAT1",
"CAT2",
"CAT3",
"CAT4",
"CAT5"
],
"probability": [
15.7065,
2.8966,
1.2156,
0.7003,
0.3942,
0.0717
],
"return_period": [
6,
35,
80,
140,
255,
1395
],
"unit": "CAT0,CAT1,CAT2,CAT3,CAT4,CAT5"
}
],
"failed_items": [],
"metadata": {
"total_requested": 1,
"successful": 1,
"failed": 0,
"event_outcomes": {
"requested": 1,
"successful": 1,
"partially_successful": 0,
"failed": 0
},
"peril_outcomes": {
"requested": 2,
"successful": 2,
"failed": 0
}
}
}
{
"results": [
{
"index": 0,
"peril": "Rain",
"latitude": 34.0522,
"longitude": -118.2433,
"threshold": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
15,
20,
25,
30,
35,
40,
45,
50,
55,
60,
65,
70,
75,
80,
85,
90,
95,
100,
105,
110,
115,
120,
125,
130,
135,
140,
145,
150,
155,
160,
165,
170,
175,
180,
185,
190,
195,
200,
205,
210,
215,
220,
225,
230,
235,
240,
245,
250,
250.2337
],
"probability": [
56.8841,
16.3772,
11.4453,
8.869,
7.0443,
5.5599,
4.5314,
3.8756,
3.4179,
3.0924,
2.8156,
1.6002,
0.901,
0.3177,
0.1604,
0.101,
0.0678,
0.0441,
0.032,
0.0197,
0.0142,
0.0106,
0.0066,
0.0059,
0.003,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0011,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0005,
0.0002,
0.0001
],
"return_period": [
1,
6,
8,
10,
15,
15,
20,
25,
30,
30,
35,
60,
110,
315,
625,
990,
1475,
2265,
3125,
5075,
7040,
9435,
15150,
16950,
33335,
90910,
90910,
90910,
90910,
90910,
90910,
90910,
90910,
90910,
90910,
90910,
90910,
90910,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
200000,
500000,
1000000
],
"unit": "mm"
}
],
"failed_items": [],
"metadata": {
"total_requested": 1,
"successful": 1,
"failed": 0,
"event_outcomes": {
"requested": 1,
"successful": 1,
"partially_successful": 0,
"failed": 0
},
"peril_outcomes": {
"requested": 1,
"successful": 1,
"failed": 0
}
}
}
Weather perils and hour windows
The same endpoint covers day-to-day weather perils with hour precision. For example, "perils": ["Rain"] with "start_date": "2026-08-14", "end_date": "2026-08-16", "start_hour": 8 and "end_hour": 20 prices a three-day outdoor event window. Cat underwriting typically uses the policy year, as in the example above.
One location, every cat peril
Because requests are counted in peril-event combinations, one call can return the full return-period distribution for every cat peril at a location: list the perils, give one event. Five perils for one location is five combinations, well inside the 25-combination limit.
{
"results": [
{
"index": 0,
"peril": "Wildfire",
"latitude": 26.142,
"longitude": -81.7948,
"threshold": [
"Severe"
],
"probability": [
55.8897
],
"return_period": [
1
],
"unit": "Severe"
},
{
"index": 0,
"peril": "Earthquake",
"latitude": 26.142,
"longitude": -81.7948,
"threshold": [
"MMI3",
"MMI4",
"MMI5",
"MMI6",
"MMI7",
"MMI8",
"MMI9",
"PGA0.0001",
"PGA0.0131",
"PGA0.0451",
"PGA0.0841",
"PGA0.161",
"PGA0.291",
"PGA0.41",
"PGA0.551",
"PGA0.751"
],
"probability": [
81.0421,
12.9334,
0.3034,
0.01,
0.01,
0.01,
0.01,
88.054,
0.0439,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01,
0.01
],
"return_period": [
1,
7,
330,
10000,
10000,
10000,
10000,
1,
2275,
10000,
10000,
10000,
10000,
10000,
10000,
10000
],
"unit": "MMI3,MMI4,MMI5,MMI6,MMI7,MMI8,MMI9,PGA0.0001,PGA0.0131,PGA0.0451,PGA0.0841,PGA0.161,PGA0.291,PGA0.41,PGA0.551,PGA0.751"
},
{
"index": 0,
"peril": "TropicalCyclone",
"latitude": 26.142,
"longitude": -81.7948,
"threshold": [
"CAT0",
"CAT1",
"CAT2",
"CAT3",
"CAT4",
"CAT5"
],
"probability": [
15.7065,
2.8966,
1.2156,
0.7003,
0.3942,
0.0717
],
"return_period": [
6,
35,
80,
140,
255,
1395
],
"unit": "CAT0,CAT1,CAT2,CAT3,CAT4,CAT5"
},
{
"index": 0,
"peril": "FloodLivePlus",
"latitude": 26.142,
"longitude": -81.7948,
"threshold": [
0,
0.1,
0.25,
0.5,
1,
1.5,
2,
2.5,
3,
4,
5,
10
],
"probability": [
29.5193,
21.9405,
14.0591,
6.6959,
1.5189,
0.3445,
0.0781,
0.0177,
0.004,
0.0002,
0,
0
],
"return_period": [
3,
4,
7,
15,
65,
290,
1280,
5650,
25000,
500000,
10000,
10000
],
"unit": "m"
}
],
"failed_items": [],
"metadata": {
"total_requested": 1,
"successful": 1,
"failed": 0,
"event_outcomes": {
"requested": 1,
"successful": 1,
"partially_successful": 0,
"failed": 0
},
"peril_outcomes": {
"requested": 4,
"successful": 4,
"failed": 0
}
}
}
The exact response number may vary as our models are constantly be corrected to give the best view of risk.
Response fields
| Field | Type | Description |
|---|---|---|
results[].threshold |
list |
Threshold values in the peril's unit |
results[].probability |
list[float] |
Probability of exceeding each threshold within the window |
results[].return_period |
list[int] |
Equivalent return period, in years, per threshold |
results[].unit |
string | Unit of the thresholds |
failed_items[] |
list[FailedItem] |
index, stage (geocoding | model_execution), error |
metadata |
object | total_requested, successful, failed, partial_failure |
Constraints and errors
| Status | Meaning |
|---|---|
207 |
Partial success; inspect failed_items |
401 |
Missing or invalid API key |
422 |
Invalid input: unknown perils, bad dates, or more than 25 peril-event combinations |