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.

Learn More

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.

ParameterTypeDescription
storageTypeStringIf permanent, the specified expirationDate value is ignored.
expirationDateStringExpiration 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]
  }
]

PropertyTypeDescription
sourceTypeIdNumberData source of archive. One of 1 (Deleted Database), 2 (Snapshot Database), 3 (Archive Database).
storageTypeIdNumberType of archive. One of temporary (0) or permanent (1). If 0 archive is deleted on expiresDate. By default, 0.
storageTypeStringType of archive. One of temporary or permanent. If temporary, archive is deleted on expiratesDate.
expiresDateStringDate on which a temporary archive is deleted.
tagsArrayList 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 the edmVersion in each resourceProperties` object.
  • ANALYSIS resource type objects now return the analysisEngineType and analysisFrameworkproperties (e.g. ELT, PLT) in each resourceProperties 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 the exposureId, resourceName, and securableId.
  • If the resource type is ANALYSIS, each object may return a mapping between an exposureId and an array of analysisIds or a mapping between a securableId an array of analysisIds.
{
  "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:

ParameterTypeDescription
importTypeStringDescription
resourceUriStringURI of exposure set. Exposure set must not contain an EDM.
settingsObjectSettings for import job including exposureVariationId, exposureName, serverId, and databaseName.
exposureVariationIdNumberID of exposure variation.
exposureNameStringName of EDM. Must be unique.
serverIdNumberID of server. If specified serverId is that of managed server instance on Data Bridge, databaseName identifies the database.
databaseNameStringName 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:

ParameterTypeDescription
folderTypeStringIf PROGRAMS, the import folder accepts program data in an Excel file.
propertiesObject
fileExtensionStringExtension of data file, e.g. xlsx.
fileTypesArrayList 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.

PropertyTypeComparisonListLogical
eventIdStringIN
exposureResourceIdString
perilStringIN
regionStringIN
targetIdNumberIN

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]
    ]
  }
}