Policy API
Create, monitor, and resolve parametric weather derivative policies via the Ensuro integration.
The Policy API manages the lifecycle of Ensuro-backed weather derivatives — from quote to settlement.
API specifications are preliminary and subject to change during development. This documentation represents the planned API design.
Request Quote
POST /v1/policy/quote
Generates a premium quote for a parametric derivative.
Request Body
{
"location": {
"lat": 1.3521,
"lon": 103.8198
},
"trigger": {
"variable": "rainfall",
"condition": "cumulative_gt",
"threshold": 200,
"unit": "mm",
"window_days": 7
},
"payout": 500000,
"payout_currency": "USD",
"start_date": "2026-05-01",
"end_date": "2026-08-31",
"structure": "binary"
}
Response
{
"quote_id": "qt_abc123",
"valid_until": "2026-04-04T22:00:00Z",
"pricing": {
"loss_prob": 0.185,
"pure_premium": 106375,
"jr_coc": 12400,
"sr_coc": 8200,
"ensuro_commission": 6800,
"partner_commission": 9500,
"total_premium": 143275,
"premium_rate": 0.2865
},
"contract": {
"trigger_description": "Cumulative rainfall > 200mm in any 7-day rolling window",
"payout": 500000,
"measurement_period": "2026-05-01 to 2026-08-31",
"oracle_source": "primary: local_met_service, secondary: satsure_satellite",
"counterparty": "Ensuro (BMA-licensed)",
"settlement": "Automatic on trigger via Ensuro smart contract"
}
}
Create Policy
POST /v1/policy/create
Accepts a quote and creates the policy on-chain.
Request Body
{
"quote_id": "qt_abc123",
"client_id": "cl_xyz789",
"payment_method": "fiat_invoice"
}
Response
{
"policy_id": "pol_def456",
"status": "active",
"ensuro_policy_nft": "0x1234...5678",
"created_at": "2026-04-04T14:30:00Z",
"premium_invoice": {
"amount": 143275,
"currency": "USD",
"due_date": "2026-04-18"
}
}
Get Policy Status
GET /v1/policy/{policy_id}
Returns current status, monitoring data, and settlement information.
Response
{
"policy_id": "pol_def456",
"status": "active",
"trigger": {
"variable": "rainfall",
"condition": "cumulative_gt",
"threshold": 200,
"current_max_7day": 142,
"current_probability": 0.28
},
"dates": {
"start": "2026-05-01",
"end": "2026-08-31",
"days_remaining": 149
},
"settlement": null
}
List Policies
GET /v1/policies
Returns all policies for the authenticated organisation, with optional filters.
Parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter: active, settled, expired |
client_id | string | Filter by client |
variable | string | Filter by trigger variable |
Policy Resolution
Policy resolution is handled automatically by the RESOLVER service. When oracle data confirms a trigger event, the policy is resolved on-chain and the client is notified via webhook.
Resolution cannot be triggered via the API — it's an automated process driven by oracle data to maintain settlement independence.