Download OpenAPI specification:Download
This version of the API includes two optional and experimental endpoints which give access to Nuon's Real Time Pricing service:-
The API is based on REST principles and requires an authorisation key to access the endpoints.
Errors
Each API call returns an HTTP status code that reflects the nature of the response. We have done our best to follow the HTTP status code conventions:-
For example:-
Request Timeout
Normal response times from this API are well below 1s (a mean of 100-200ms is a reasonable expectation). However, the internet is a complex place, and slow response which are completely outside of our or your control are possible. For that reason it is strongly recommended that client code includes some kind of request timeout mechanism to protect against any impact on your processes.
Occasional request timeouts can be safely ignored, there is no need to retry the request. However, if you are seeing a high rate of timeouts, please contact us.
Run the AI model to generate a price adjustment prediction that should be applied to the premium based on the policy features supplied.
key required | string Example: key=AshsgdnAVJ Key parameter taking the required api key value in the request query to allow access to the resource. |
customerId required | string Unique customer identifier. The customerId is mandatory. It needs to be unique and consistent for each
customer, but it does not need to be a system id or uuid. It is used as reference more than an ID. |
quoteId required | string Unique quote id. In most scenarios this is a required property, however, in order to cater for all premium calculation pipelines (which may include requoting for example), the AI can be configured to allow for the quoteId to be either undefined, or a duplicate from a previous call to this endpoint. |
tenant | string Tenant or scheme name to identify product or group of products. When multiple tenants are configured, this value must be provided and in combination with quoteId must be unique. |
quoteExpiry | string <date> Date that the quote is considered to have expired. |
price required | number The price your rating system has calculated for the quote. This is the total price that you would have presented to the customer. Strictly speaking, this property is optional. However, the AI will be considerably less effective without it. |
adjustmentLimit | number Set or override lower and upper allowable price adjustment as a decimal. This value must not be included if the lowerAdjustmentLimit and upperAdjustmentLimit has been provided. |
lowerAdjustmentLimit | number Set or override the lower allowable price adjustment as a decimal. This value must not be included if the adjustmentLimit has been provided. |
upperAdjustmentLimit | number Set or override the upper allowable price adjustment as a decimal. This value must not be included if the adjustmentLimit has been provided. |
competativeNeighbourDelta | number Difference in price to the cheapest or most expensive neighbour |
transactionType | string Default: "NEW_BUSINESS" Enum: "NEW_BUSINESS" "MTA" "RENEWAL" "REBROKE" The transaction type for the input pricing quote |
required | Array of objects (Feature) A list of features describing the rating factors for this quote. The set of features is flexible to allow for all kinds of products. We will help you define the ideal set to match your product and your aims. |
{- "customerId": "LX839",
- "quoteId": "Q_08281",
- "quoteExpiry": "2022-07-31",
- "price": 298.79,
- "adjustmentLimit": 1.3,
- "transactionType": "NEW_BUSINESS",
- "feature": [
- {
- "name": "Engine",
- "value": "Electric"
}, - {
- "name": "Seats",
- "value": "4"
}, - {
- "name": "Base",
- "value": "50"
}, - {
- "name": "Ignore",
- "value": "Any"
}, - {
- "name": "Deductible",
- "value": "2500"
}
]
}
{- "premiumPrediction": 298.45,
- "premiumAdjustment": 1
}
Record that a policy which had previously been sent to the /model/predict API call has been purchased or not.
The /model/outcome API would usually be called with the mandatory quoteId and result of PURCHASED, when a policy had been purchased by the customer.
The /model/outcome API can also be called with the mandatory quoteId and result of NTU, if the policy will not be purchased. This call is not required and the unpurchased quotes will be managed by NUON AI automatically.
key required | string Example: key=AshsgdnAVJ Key parameter taking the required api key value in the request query to allow access to the resource. |
quoteId required | string Unique quote id. |
result required | string Enum: "UNKNOWN" "PURCHASED" "NTU" "INVALID" The type of outcome being recorded. |
tenant | string Tenant or scheme name to identify product or group of products. |
soldPrice | number Price the the policy sold for. If supplied, this is checked against the predicted price and a warning is raised if the difference is greater than the configured threshold. |
{- "quoteId": "Q_08281",
- "result": "PURCHASED",
- "tenant": "MotorPlus"
}
{- "code": 404,
- "message": "Record x not found",
- "errors": {
- "domain": "global",
- "reason": "notFound",
- "message": "Record n not found"
}
}
Access Nuon's Real Time Pricing endpoints. These service are in beta and may change without notice.
Run the AI model to generate a price adjustment prediction that should be applied to the premium based on the policy features supplied.
key required | string Example: key=AshsgdnAVJ Key parameter taking the required api key value in the request query to allow access to the resource. |
The approval service doesn't define a specific object format. You can pass data into the service in whatever format is most convenient to you, the service's process is tailored to extract the data it needs from your object format.
null
{- "lines": [
- {
- "id": "#1",
- "reason": "Vehicle found on renewals black list",
- "type": "DECLINE"
}
], - "status": "DECLINED"
}
Run the AI model to generate a price adjustment prediction that should be applied to the premium based on the policy features supplied.
key required | string Example: key=AshsgdnAVJ Key parameter taking the required api key value in the request query to allow access to the resource. |
The rating service doesn't define a specific object format. You can pass data into the service in whatever format is most convenient to you, the service's process is tailored to extract the data it needs from your object format.
null
{- "lines": [
- {
- "id": "GIVEN_PREMIUM",
- "type": "VALUE",
- "value": 298.79
}, - {
- "id": "claimCount",
- "reason": "Number of claims in last 3 years exceeds threshold",
- "type": "LOAD",
- "value": 14.94,
- "equation": "5% * GIVEN_PREMIUM"
}, - {
- "id": "AI_PREMIUM_ADJUSTMENT",
- "type": "LOAD",
- "value": 8.69,
- "equation": "3% * GIVEN_PREMIUM"
}, - {
- "id": "TOTAL_PREMIUM",
- "type": "VALUE",
- "value": 322.42
}
], - "status": "PRICED"
}