Pre-Release April 2025
Highlights
The April release introduces updates to the Admin Data, Exchange Data, Import, and Risk Data APIs.
Moody's publishes preliminary information to inform stakeholders ahead of the targeted Intelligent Risk Platform update. Note that these described features are not guaranteed for the next update or any subsequent updates and may be changed without notice. The definitive list of features will be provided in the Changelogs at the time of the official release.
Admin Data API
Search Securables
The Search Securables operation (GET
/platform/admindata/v1/securables
) returns a filtered list of securables.
A securable is a logical container of data that is owned by a user group or principal. The owner of a securable has exclusive access to that securable and all child data. For example, the owner of an exposure set controls access to the exposures, analysis results, and variations in that exposure set.
Client applications can now define query parameters that return securables with no group ID. The groupId
accepts a value of NULL
to return securables that do not belong to any one user group.
Update Archives
The new Update Archive operation ( PATCH
/platform/admindata/v1/archives/{archiveId}
) updates the status of the specified archive.
An archive is a copy of a database that has been deleted from a server instance. Whenever a database is deleted from a managed SQL Server instance, Intelligent Risk Platform automatically stores an archive of that database for up to 90 days.
The request takes two parameters in the request body:
{
"storageType": "permanant",
"expirationDate": "2030-12-31T00:00:00.000Z"
}
Both parameters are required.
Parameter | Type | Description |
---|---|---|
storageType | String | If permanent , the specified expirationDate value is ignored. |
expirationDate | String | Expiration date in 8601 format, e.g. 2020-01-01T00:00:00.000Z . |
This operation requires the RI-DATAVAULT
entitlement. Data Vault is a separately licensed application that enables Intelligent Risk Platform tenants to manage archives of data servers and databases.
Get Archives
The Search Archives (GET
/platform/admindata/v1/archives/{archiveId}
) and Get Archive operations now return additional information about archived databases including including sourceTypeId
, sourceType
, storageTypeId
, storageType
, and tagIds
.
An archive is a copy of a database that is stored in the Intelligent Risk Platform Data Vault. Archived databases may be stored as permanent archives or temporary archives. Client applications assigned the Data Admin role can use Admin Data API operations to create, manage, and restore archived databases.
These operations now return details about the archive.
[
{
"archiveName": "string",
"archiveId": "string",
"sourceTypeId": 1,
"sourceType": "string",
"storageTypeId": 1,
"storageType": "string",
"serverName": "string",
"createdAt": "2024-04-10T18:11:47.185Z",
"createdBy": "string",
"sizeInMb": 0,
"owner": "string",
"exposureSetGuid": aaaabbv,
"exposureSetId": 1234,
"exposureSetName": "ABC",
"expiresAt": ""
"tagIds" : [ 52,53]
}
]
Property | Type | Description |
---|---|---|
sourceTypeId | Number | Data source of archive. One of 1 (Deleted Database), 2 (Snapshot Database), 3 (Archive Database). |
storageTypeId | Number | Type of archive. One of temporary (0 ) or permanent (1 ). If 0 archive is deleted on expiresDate . By default, 0 . |
storageType | String | Type of archive. One of temporary or permanent . If temporary , archive is deleted on expiratesDate . |
expiresDate | String | Date on which a temporary archive is deleted. |
tags | Array | List of tags applied to database. A tag is a label that can be applied to risk data entities that enable you to group and track releated entities more efficiently. |
Exchange Data API
Create Share Request
The Create Share Request operation ( POST
/platform/exchangedata/v1/sharekeys/{shareKey} /sharerequests
) now creates share requests that that share multiple exposures or analysis results.
A share request is a request to make exposure or analysis data available to a recipient. Every share request is identified by a share key, which enables a specific recipient to access the data.
This operation now accepts a resourceMap
parameter that maps shared exposures and analyses. This mapping enables the client application to identify analyses that are based upon particular exposures.
{
"shareRequestName": "group share",
"recipientShareKey": "HS6FOPYSRP",
"recipientEmail": "",
"comment": "",
"resources": [
{
"resourceType": "EXPOSURE",
"resourceUris": [
"/platform/riskdata/v1/exposures/13694811",
"/platform/riskdata/v1/exposures/13693834",
"/platform/riskdata/v1/exposures/55555" //This exposure does not have any Analysis associated with it
]
},
{
"resourceType": "ANALYSIS",
"resourceUris": [
"/platform/riskdata/v1/analyses/16931626",
"/platform/riskdata/v1/analyses/16932326",
"/platform/riskdata/v1/analyses/12345",
"/platform/riskdata/v1/analyses/1111" //Analysis 1111 is not associated with any Exposure
],
"resourceMap": [
{
"exposureId": 13694811,
"analysisIds": [
16931626, //Associated with exposureId = 13694811
16932326
]
},
{
"exposureId": 13693834,
"analysisIds": [
12345 //Associated with exposureId = 13693834
]
}
]
}
]
}
The resourceMap
defines an array of objects that map analyses (specified in the ANALYSIS
resource type object) to exposures (specified in the EXPOSURES
resource type object).
Get Share Request
The Get Share Request operation (GET
/platform/exchangedata/v1/sharekeys/{shareKey}/sharerequests /sharerequest/{id}
) now returns information about mappings between shared exposures and analyses.
The resourceType
object returns additional information about the share request:
EXPOSURE
resource type objects now return theedmVersion in each
resourceProperties` object.ANALYSIS
resource type objects now return theanalysisEngineType
andanalysisFramework
properties (e.g.ELT
,PLT
) in eachresourceProperties
object.
[
{
"shareRequestId": 3468,
"shareRequestName": "group share",
"shareKey": "LDG07QLRCR",
"shareKeyName": "sharekey 2024",
"recipientShareKey": "HS6FOPYSRP",
"recipientShareKeyName": "Celtic Re",
"status": "Accepted",
"createdBy": "[email protected]",
"recipientEmail": "",
"updatedBy": "[email protected]",
"createdAt": "2025-03-20T14:50:24.639246Z",
"updatedAt": "2025-03-20T14:50:44.305511Z",
"comment": "",
"shareRequestType": "OUTBOUND",
"isPackage": true,
"resources": [
{
"resourceType": "ANALYSIS",
"resourceSize": "0 bytes",
"resourceUris": [
"/platform/riskdata/v1/analyses/16932326",
"/platform/riskdata/v1/analyses/16931626"
],
"resourceProperties": [
{
"resourceUri": "/platform/riskdata/v1/analyses/16932326",
"resourceName": "Ami_180_1",
"resourceSize": "0 bytes",
"exposureName": "dabase67",
"analysisFramework": "ELT",
"analysisType": "EP",
"analysisEngineType": "DLM",
"exposureId": 13694811
},
{
"resourceUri": "/platform/riskdata/v1/analyses/16931626",
"resourceName": "RMS_RL18_Ref_TestData_EDM_4",
"resourceSize": "0 bytes",
"exposureName": "dabase67",
"analysisFramework": "PLT",
"analysisType": "EP",
"analysisEngineType": "HD",
"exposureId": 13694811
}
]
},
{
"resourceType": "EXPOSURE",
"resourceSize": "156 MB",
"resourceUris": [
"/platform/riskdata/v1/exposures/13694811",
"/platform/riskdata/v1/exposures/13693834"
],
"resourceProperties": [
{
"resourceUri": "/platform/riskdata/v1/exposures/13694811",
"resourceName": "dabase67",
"resourceSize": "78 MB",
"edmVersion": "24"
},
{
"resourceUri": "/platform/riskdata/v1/exposures/13693834",
"resourceName": "database3",
"resourceSize": "78 MB",
"edmVersion": "24"
}
]
}
]
},
Review Share Request
The Review Share Request operation (POST
/platform/exchangedata/v1/sharekeys/{shareKey} /sharerequests/{shareRequestId}/review
)
enables a Data Exchange Admin to accept or reject both inbound and outbound share requests.
The operation now returns a resourceMap
array that includes resource type-specific information:
- If the resource type is
EXPOSURE
, each object returns theexposureId
,resourceName
, andsecurableId
. - If the resource type is
ANALYSIS
, each object may return a mapping between anexposureId
and an array ofanalysisIds
or a mapping between asecurableId
an array ofanalysisIds
.
{
"reviewType": "INBOUND_ACCEPT",
"settings": {
"comment": "accepting",
"serverId": 5308,
"securableId": 771011,
"resources": [
{
"resourceType": "EXPOSURE",
"resourceMap": [
{
"exposureId": 21321312,
"resourceName": "banana",
"securableId": 345
},
{
"exposureId": 21321313,
"resourceName": "co6okie34",
"securableId": 234
},
{
"exposureId": 21321314,
"resourceName": "blueberry",
"securableId": 123
}
]
},
{
"resourceType": "ANALYSIS",
"resourceMap": [
{
"exposureId": 13694811,
"analysisIds": [16931626, 16932326]
},
{
"analysisIds": [16931626, 16932326],
"securableId": 771034
},
{
"analysisIds": [23121, 1691231232326],
"exposureId": 1234
}
]
}
]
}
}
Import API
Create Import Job
The Create Import Job operation (POST
`/platform/import/v1/jobs
) now supports importing exposure variations in bulk into an EDM on a managed server on Data Bridge.
An exposure variation is a snapshot of an exposure. Variations enable tenants to better manage exposure data by ensuring that analyses, reports, and data exports accurately reflect the state of an exposure.
The EXPOSURE_RESOURCE
import type enables the client to import the specified exposure set into the specified EDM (exposureName
).
This operation imports the exposure data the specified EDM (exposureVariationId
) and stores it in a new database on managed server and registers that database with the specified exposureName
.
{
"importType": "EXPOSURE_RESOURCE",
"resourceUri": "/platform/riskdata/v1/exposuresets/8620364",
"settings": {
"exposureVariationId": 8633856,
"exposureName": "BM Test",
"serverId": 341213, //if this is databridge server id then accept below databaseName
"databaseName": "BM_TEST"
}
}
The request accepts the following parameters:
Parameter | Type | Description |
---|---|---|
importType | String | Description |
resourceUri | String | URI of exposure set. Exposure set must not contain an EDM. |
settings | Object | Settings for import job including exposureVariationId , exposureName , serverId , and databaseName . |
exposureVariationId | Number | ID of exposure variation. |
exposureName | String | Name of EDM. Must be unique. |
serverId | Number | ID of server. If specified serverId is that of managed server instance on Data Bridge, databaseName identifies the database. |
databaseName | String | Name of database on the specified managed server. |
If successful, this operation returns a 201
HTTP response code and initiates a IMPORT_EXPOSURE_RESOURCE_DATABRIDGE
operation.
This operation may be performed by client applications with the RI-RISKMODELER
, RI-EXPOSUREIQ
, or RI-UNDERWRITEIQ
entitlements.
Create Import Folder
The Create Import Folder operation (POST
/platform/import/v1/folders
) now supports the importing program data from spreadsheets.
A program defines a reinsurance structure that enables you to test different structure types, different subjects, or other deviations.
This operation now supports the PROGRAMS
folder type, which creates a a temporary storage location and a logical path on AWS S3. During data migration, you may upload program data in the form of an Excel spreadsheet to this folder prior to data import.
{
"folderType": "PROGRAMS", //required
"properties": {
"fileExtension": "xlsx", //required
"fileTypes": [
"spreadsheet" //required
]
}
}
The request accepts the following parameters:
Parameter | Type | Description |
---|---|---|
folderType | String | If PROGRAMS , the import folder accepts program data in an Excel file. |
properties | Object | |
fileExtension | String | Extension of data file, e.g. xlsx . |
fileTypes | Array | List of data file types,e.g. spreadsheet . |
If successful returns 201 Created
HTTP Response Status and response.
{
"folderType": "PROGRAMS",
"folderId": "string",
"uploadDetails": {
"spreadsheet": {
"uploadUrl": "string",
"fileUri": "import/folders/123213/files/1",
"presignParams": {
"accessKeyId": "string",
"secretAccessKey": "string",
"sessionToken": "string",
"path": "import/folders/123213",
"region": "string"
}
}
}
Create Import Job
The Create Import Job operation (POST
/platform/import/v1/jobs
) can now import programs from an import folder.
The request package specifies the importType
, folderId
, and an array of groupIds
:
{
"importType": "PROGRAMS",
"settings": {
"folderId": "123",
"groupIds": ["group1", "group2"]
}
}
If successful, returns 202 Accepted
HTTP status response and initiates an import job that imports program data uploaded to the specified import folder.
This operation may be performed by client applications with the RI-EXPOSUREIQ
or RI-TREATYIQ
entitlements.
Get Import Job
The Get Import Job operation (GET
/platform/import/v1/jobs/{jobId}
) now returns information about PROGRAMS
import jobs.
Update Import Job
The Update Import Job operation (PATCH
/platform/import/v1/jobs/{jobId}
) now supports updates to the status or priority of PROGRAMS
import jobs.
Risk Data API
Exposures
The Archive EDM operation (POST
/platform/risdata/v1/exposures/{exposureId}/archive
) creates an archive of the specified EDM.
An archive is a copy of a database that has been deleted from a server instance. The Intelligent Risk Platform implements soft deletes by default.
When an exposure database is archived using this operation, the exposure database to be marked as permanent archive record.
If successful, returns 202 Accepted
HTTP response code, and initiates an ARCHIVE_EDM
job.
This operation requires the RI-DATAVAULT
entitlement. Data Vault is a separately licensed application that enables Intelligent Risk Platform tenants to manage archives of data servers and databases.
Analyses
Key Event Statistics
The Search Key Event Statistics operation (GET
/platform/riskdata/v1/analyses/{analysisId}/key-event-stats
) returns event-level non-EP statistics for the specified analysis.
The required analysisId
path parameter identifies the ID of a non-EP analysis.
This operation supports response filtering based the value of a subset of properties. Depending on the property, you may use a combination of comparison operators, list operators, and logical operators.
Property | Type | Comparison | List | Logical |
---|---|---|---|---|
eventId | String | IN | ||
exposureResourceId | String | |||
peril | String | IN | ||
region | String | IN | ||
targetId | Number | IN |
This operatoin supports a sort
query parameter that accepts a comma-delimited list of properties. Supported properties include cv
, eventId
, meanLoss
, peril
, region
, stdDev
, and targetId
. Sort order defined by one of ASC
(ascending) or DESC
(descending).
The response returns infromation about analyses matching the specified parameters:
[
{
"eventId": 2864907,
"stdDev": 1663.1549792686967,
"meanLoss": 0,
"cv": 6.62779067641994,
"targetId": 213,
"eventName": "string",
"latitude": "string",
"longitude": "string",
"eventType": "string",
"peril": "string",
"region": "string",
"methodOfAttackId": 23,
"radius": 21,
"radiusUnit": "string",
"countryScheme": "string",
"countryCode": "string",
"admin1Code": "string",
"admin1Name": "string",
"admin2Code": "string",
"admin2Name": "string",
"cityName": "string",
"postalCode": "string"
}
]
Risk Data Jobs
The Search Risk Data Jobs operation (GET
/platform/riskdata/v1/jobs
) and Get Risk Data Job operation (GET
/platform/riskdata/v1/jobs/{jobId}
) now return information about ARCHIVE
jobs.
{
"id": 21333196,
"userName": "[email protected]",
"status": "FINISHED",
"submitTime": "2025-03-17T06:59:21.999Z",
"startTime": "2025-03-17T06:59:24Z",
"endTime": "2025-03-17T07:00:35Z",
"name": "MVS_Test_EDM_BSq20231116092706",
"type": "ARCHIVE_EDM",
"progress": 100,
"priority": "medium",
"entitlement": "RI-RISKMODELER",
"resourceGroupId": "ba672cd9-3384-4cb3-9882-bbeb5f8478c6",
"jobs": [
{
"id": "afb83d8c-ca66-47a3-965e-e94ffeb26da5",
"taskId": 1,
"workflowId": 21333196,
"status": "Succeeded",
"submitTime": "2025-03-17T06:59:24.772Z",
"createdAt": "2025-03-17T06:59:21.995Z",
"name": "ARCHIVE_EDM",
"input": {
"name": "ARCHIVE_EDM"
},
"output": {
"databaseName": "MVS_Test_EDM_BSq20231116092706"
},
"percentComplete": 100,
"continueOnFailure": false
}
],
"summary": {
"databaseName": "MVS_Test_EDM_BSq20231116092706"
}
}
Data Vault
The Admin Data API introduces support for Intelligent Risk Platform Data Vault. Data Vault is a separately licensed feature that allows data administrators to manage and restore archived databases.
An archive is a copy of a database that is stored in the Data Vault. Intelligent Risk Platform supports three archive source types (Deleted Database, Snapshot Database, and Archive Database) and two archive storage types (temporary and permanent). The source type identifies the method used to create the archive. The storage type determines whether the archive is deleted on its expiration date.
Client applications assigned the Data Admin role can use Admin Data API operations to create, manage, and restore archived databases. To perform these operations, the client application must belong to a group that has been assigned the Data Admin role and the RI-DATAVAULT entitlement. To learn more, see Access Controls.
System Usage API
The System Usage API reports Intelligent Risk Platform usage for the Archive storage Recycle Hub storage
The SML API is not a public Platform API and not documented in the Moody's Insurance Solutions Developer Portal. The Intelligent Risk Platform uses this API to report Data Vault usage.
The /sml/usage/v1/applications/platform/data/Resources/ArchiveSizeInGb/MetricSeries
endpoint reports archive usage for Data Vault-entitled clients:
{
"values": {
"Data Vault Archives": [
[1737936000000.0, 22.6806640625],
[1738022400000.0, 22.6513671875],
[1738108800000.0, 22.6513671875],
[1738195200000.0, 22.6513671875]
]
}
}
The /sml/usage/v1/applications/platform/data/Resources/RecycleHubSizeInGb/MetricSeries
endpoint archive storage metrics for Data Vault-entitled clients within a date range:
{
"values": {
"RecycleHub": [
[1737936000000.0, 22.6806640625],
[1738022400000.0, 22.6513671875],
[1738108800000.0, 22.6513671875],
[1738195200000.0, 22.6513671875]
]
}
}