2026.10.c

🥥

Highlights

The 2026.10.c release introduces the Risk Data Lake and Risk Data Refinery 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

Models

North America Wildfire HD Models

The North America Wildfire HD Models is now available in version HDv2.1, a minor version update to the existing HDv2.0. Both model versions can be used to define model profiles.

HDv2.1 enhances the limit extension methodology to more accurately represent multi-building, campus-style, and multi-structure risks that share a single policy limit. Previously, coverage extensions triggered by severe damage to just a few buildings at a shared location were understated, resulting in gross losses that underestimated Ordinance & Law, Extended and Guaranteed Replacement Cost, and debris removal payouts. With this release, limit extension is applied consistently across these coverages for multi-building locations.

Support for limit extensions has also expanded from US wildfire to all of North America, and you can enter limit extensions for Canada locations. No EDM schema changes are required, and results for single-building locations remain unchanged, as confirmed through full regression testing. Hazard, vulnerability, and urban conflagration methodology are unaffected.

Australia Cyclone and Flood Climate Change HD Model

This HD Climate Change Model covers the same geographical scope as the reference model for this region and is valid for results generated with all of the Australia Cyclone and Flood HD Model simulation sets.

The Climate Change model is a separately licensed extension to the existing reference model.

Autoselect API

Create Auto Select Tasks v2

The Create Auto Select Tasks operation (POST /platform/autoselect/v2/tasks) returns a list of model profiles that can be used to model the specified list of account or portfolio exposures.

Unlike the original version of this operation (POST /platform/autoselect/v2/tasks), which can be used to model a single account exposure, this operation supports retrieving model profiles for up to ten account or portfolio exposures in a request.

This change is designed to support the smart auto-selection in Workflow Builder. Smart auto-selection automatically limits the HD and DLM model profiles run in a Workflow Builder template to the ones that match the region and peril of the exposure being analyzed, then lets you add or remove profiles to customize the run. This is intended to reduce wasted compute and job failures caused by running model profiles against exposure they don't apply to.

{
  "resources": [
    {
      "resourceType": "PORTFOLIO",
      "resourceUris": ["/platform/riskdata/v1/exposures/123/portfolios/1"],
      "modelProfileIds": [1, 2]
    },
    {
      "resourceType": "ACCOUNT",
      "resourceUris": ["/platform/riskdata/v1/exposures/123/account/8"],
      "modelProfileIds": [9, 10]
    }
  ],
  "settings": {
    "taskName": "NAHU_SmartSelect_Run"
  }
}

If successful, the request returns 201 Created and a single asynchronous Auto Select task that identifies appropriate model profiles for every exposure specified in the request.

Get Auto Select Task v2

The Get Auto Select Task operation (GET /platform/autoselect/v2/tasks/{taskUuid}) returns the specified Auto Select task.

This operation can be used to poll the status of an AUTOSELECT task, and view the list of applicable model profiles returned by a COMPLETED task.

The output.log.resource object maps each resourceId to the subset of candidate model profiles. Failures are returned in the output.errors array.

{
  "taskUuid": "9fef248b-776b-47f8-95c9-7f2b61b66ba9",
  "taskType": "AUTOSELECT",
  "taskName": "ACCOUNT_123",
  "status": "COMPLETED",
  "createdAt": "2025-10-03T16:59:54.831Z",
  "updatedAt": "2025-10-03T16:59:54.831Z",
  "expiresAt": "2025-10-03T16:59:54.831Z",
  "createdBy": "[email protected]",
  "output": {
    "errors": [],
    "log": {
      "resources": [
        {
          "resourceType": "PORTFOLIO",
          "resourceId": 3,
          "applicableModelProfileIds": []
        },
        {
          "resourceType": "PORTFOLIO",
          "resourceId": 1,
          "applicableModelProfileIds": [1040, 1041, 1042]
        }
      ]
    }
  }
}

Batch API

Create Batch Job

The Create Batch Job operation (POST /platform/batch/v1/jobs ) initiates a batch job that manages the processing of multiple operations in a workflow.

All operations are defined in the body of the request package. These operations are known as tasks within the workflow. Each task is defined as a JSON object in the request package and processed as a separate job by the workflow engine.

This operation now works in tandem with the Create Risk Data Report operation (/platform/riskdata/v1/reports) to create BulkAccumulationResults (bulk accumulation) reports in batch workflows that can be exported as CSV files.

Batch API Support for Climate Change Analysis

This operation now supports batch workflows that include climate changes analysis tasks. All operations are defined in the body of the request package. These operations are known as tasks within the workflow. Each task is defined as a JSON object in the request package and processed as a separate job by the workflow engine.

The Calculate Climate Change operation calculates climate change analysis as a post-analysis action using the specified analysis result as a reference analysis. The body parameters of a climate change request can now be defined as task in a batch workflow:

{
  "name": "Dev_test_CC_local_IRP",
  "settings": {
    "report-name": "Dev_test_CC_local_IRP",
    "skip-missing-variables": true
  },
  "tasks": [
    {
      "label": "GEOHAZ",
      "operationUri": "/platform/geohaz/v1/jobs",
      "dependsOn": [],
      "continueOnFailure": false,
      "requestBody": {
        "resourceUri": "/platform/riskdata/v1/exposures/2102689/accounts/26",
        "resourceType": "account",
        "settings": {
          "layers": [
            {
              "name": "geocode",
              "type": "geocode",
              "engineType": "RL",
              "version": "26.0",
              "layerOptions": {
                "aggregateTriggerEnabled": "true",
                "forceCountryLevel": false,
                "geoLicenseType": "0",
                "skipPrevGeocoded": false
              }
            }
          ]
        }
      }
    },
    {
      "label": "EUFL_HD_Dev_IT",
      "operationUri": "/platform/model/v1/jobs",
      "dependsOn": ["GEOHAZ"],
      "continueOnFailure": true,
      "requestBody": {
        "resourceUri": "/platform/riskdata/v1/exposures/2102689/accounts/26",
        "resourceType": "account",
        "type": "HD",
        "settings": {
          "modelProfileId": 18212,
          "outputProfileId": 2,
          "eventRateSchemeId": 0,
          "treatyIds": [],
          "franchiseDeductible": false,
          "minLossThreshold": 1.0,
          "numMaxLossEvent": 1,
          "treatConstructionOccupancyAsUnknown": true,
          "currency": {
            "code": "USD",
            "scheme": "RMS",
            "vintage": "RL25",
            "asOfDate": "2025-05-28"
          }
        }
      }
    },
    {
      "label": "CLIMATE_CHANGE_1",
      "operationUri": "/platform/riskdata/v1/analyses/{{$.EUFL_HD_Dev_IT.output.analysisId}}/climate-change",
      "dependsOn": ["EUFL_HD_Dev_IT"],
      "continueOnFailure": false,
      "requestBody": {
        "analysisName": "Dev_test_CC",
        "climateConditionView": "Default",
        "referenceRateSchemeId": 9,
        "rcpScenario": 2.6,
        "timeHorizon": 2020,
        "is2CWarmingScenario": false
      }
    }
  ]
}

Get Batch Job

The Get Batch Job operation (GET /platform/batch/v1/jobs/{jobId} ) returns information about specified job.

Copy API

Create Copy Job

The Create Copy Job operation (POST /platform/copy/v1/jobs) creates a copy of the specified account, aggregate portfolio, portfolio, or EDM.

If the resourceType body parameter is EXPOSURE (EDM), this operation now accepts an optional settings.downloadAsFile object. If specified, the copy job (EDM2EDM) returns the EDM as a downloadable database artifact.

{
  "resourceType": "EXPOSURE",
  "resourceUri": "/platform/riskdata/v1/exposures/10001",
  "settings": {
    "linkExistingAccounts": false,
    "filters": {
      "exposureResourceType": "ACCOUNTS",
      "exposureResourceIds": [789]
    },
    "downloadAsFile": {
      "sqlVersion": "2019",
      "fileExtension": "BAK",
      "schemaVersion": "v21"
    },
    "destinationExposureId": 123
  }
}

The downloadAsFile object consists of three parameters:

ParameterTypeDescription
sqlVersionStringSQL version of database artifact.
fileExtensionStringFile type of database artifact. One of BAK or MMM
schemaVersionStringSchema version of database artifact.

Get Copy Job

The Get Copy Job operation GET /platform/copy/v1/jobs/{jobId} returns the status of specified copy job.

EDM2EDM jobs can now optionally produce copied EDMs as downloadable database artifacts. This operation now returns a downloadLink string in tasks[].output.log for tasks that produce database artifacts.


{
  "jobId": "5502",
  "status": "FINISHED",
  "tasks": [
    {
      "taskId": "1",
      "status": "FINISHED",
      "output": {
        "errors": [],
        "log": {
          "downloadLink": "https://<presigned-host>/exposure_123.bak"
        }
      }
    }
  ]
}

Clone API

Create Clone Job

The Create Clone Job operation (POST /platform/clone/v1/jobs) creates a clone of the specified account, aggregate portfolio, portfolio, or EDM.

If the resourceType body parameter is EXPOSURE (EDM), this operation now accepts an optional settings.downloadAsFile object. If specified, the copy job (EDM2EDM) returns the EDM as a downloadable database artifact.

{
  "resourceType": "EXPOSURE",
  "resourceUri": "/platform/riskdata/v1/exposures/10001",
  "settings": {
    "linkExistingAccounts": false,
    "filters": {
      "exposureResourceType": "ACCOUNTS",
      "exposureResourceIds": [789]
    },
    "downloadAsFile": {
      "sqlVersion": "2019",
      "fileExtension": "BAK",
      "schemaVersion": "v21"
    },
    "destinationExposureId": 123
  }
}

The downloadAsFile object consists of three parameters:

ParameterTypeDescription
sqlVersionStringSQL version of database artifact.
fileExtensionStringFile type of database artifact. One of BAK or MMM
schemaVersionStringSchema version of database artifact.

Get Copy Job

The Get Clone Job operation GET /platform/clone/v1/jobs/{jobId} returns the status of specified clone job.

EDM2EDM jobs can now optionally produce copied EDMs as downloadable database artifacts. This operation now returns a downloadLink string in tasks[].output.log for tasks that produce database artifacts.


{
  "jobId": "5502",
  "status": "FINISHED",
  "tasks": [
    {
      "taskId": "1",
      "status": "FINISHED",
      "output": {
        "errors": [],
        "log": {
          "downloadLink": "https://<presigned-host>/exposure_123.bak"
        }
      }
    }
  ]
}

Risk Data API

The Create Risk Data Report operation (POST /platform/riskdata/v1/reports) creates a downloadable risk data report, an exportable summary of exposure or analysis data.

This operation now accepts a workflow-options request header when run as a task within a batch workflow enabling batch report tasks (including BulkAccumulationResults reports) run correctly in Workflow Builder.

Risk Data Lake API

Check Auth Status

The Check Auth Status operation (GET /sql-editor/v1/auth/status) checks the authentication status of the client.

Get Catalogs

The Get Catalogs operation (GET /sql-editor/v1/catalogs) returns a list of catalogs.

A catalog is a collection of catalog schemas and is the first segment of a fully qualified table reference (catalog.schema.table).

Three catalogs are available by default:

CatalogDescription
Risk_data_catalogRead-only catalog of production Intelligent Risk Platform analysis data, including exposure, loss, and metadata schemas
User_dataPrivate catalog for each user; all users have full create, read, update, and delete access to their own user_data content
Tenant_dataCatalog shared across all users in the tenant; write access is restricted to the Risk Data Lake Admin role

A successful request returns a list of catalogs:

{
  "catalogs": [
    {
      "name": "string",
      "comment": "string",
      "type": "string"
    }
  ]
}

Get Catalog Schemas

The Search Catalog Schemas operation (GET /sql-editor/v1/catalogs/{catalog-name}/schemas) returns a list of catalog schemas.

A catalog schema is a collection of tables within a catalog. The risk_data_catalog contains the following schemas:

SchemaContents
Exposure VariationExposure data created by a model job.
Intermediate DataIntermediate model outputs.
DLM LossesDetailed loss model results.
HD LossesHigh-definition loss results.
MetadataAnalysis metadata, perspective codes, variation IDs.

The catalogName path parameter specifies the name of the catalog. One of Risk_data_catalog, User_data, Tenant_data.

The user_data and tenant_data catalogs expose schemas for user-uploaded tables and views. Each catalog also provides an information_schema containing metadata about the catalog objects (analogous to INFORMATION_SCHEMA in a standard relational database).

A successful request returns a list of catalog schemas:

{
  "schemas": [
    {
      "name": "string",
      "comment": "string",
      "fullName": "string"
    }
  ]
}

Get Tables

The Get Tables operation (GET /sql-editor/v1/catalogs/{catalog-name}/schemas/{schema-name}/tables) returns a list of tables.

A table is the third level of the catalog.schema.table hierarchy and the primary unit of queryable data. There are three types of tables:

CatalogDescription
risk_data_catalogRead-only views of analysis data.
user_dataCreated by uploading CSV files through the SQL Editor or by executing CREATE TABLE statements in Apache Spark SQL.
tenant_dataCreated by uploading CSV files through the SQL Editor or by executing CREATE TABLE statements in Apache Spark SQL.

The catalog-name and schema-name path parameters are required.

The Get Tables operation returns up to 50 tables per page and supports pagination via a next-token parameter.

{
  "tables": [
    {
      "name": "string",
      "schema": "string",
      "fullName": "string",
      "type": "string"
    }
  ],
  "nextToken": "string"
}

Get Table

The Get Table operation (GET /sql-editor/v1/catalogs/{catalog-name}/schemas/{schema-name}/tables/{table-name}) returns column names, data types, and metadata for the specified table.

{
  "name": "string",
  "schema": "string",
  "fullName": "string",
  "type": "string",
  "columns": [
    {
      "name": "string",
      "nullable": "string",
      "dataType": "string"
    }
  ],
  "createdAt": 0,
  "owner": "string"
}

Import Data

The Import Data operation (POST /sql-editor/v1/catalogs/import-external-data) imports data.

This operation initiates a job create a new table from an uploaded file. End users trigger this through the SQL Editor Upload button, targeting either user_data (available to all roles) or tenant_data (Admin role only). The table appears in the Catalog Explorer once the import completes.

The required x-rms-resource-group header parameter specifies the ID of a resource group.

If successful, the operation returns a 202 Accepted HTTP status code response and the following response body:

{
  "columns": {
    "additionalProp1": "string"
  },
  "tableName": "string",
  "storageId": "string",
  "filePrefix": "string",
  "fileName": "string",
  "databricksCatalog": "string",
  "databricksSchema": "string"
}

The response object provides information about the table created in the category:

PropertyTypeDescription
columnsObjectNames of table columns.
tableNameStringName of table.
storageIdString
filePrefixString
fileNameString
databricksCatalogString
databricksSchemaString

Execute Statement

The Execute Statement operation (POST /sql-editor/v1/statement) runs the specified SQL statement.

The required statement parameter defines a SQL statement.

The SQL Editor accepts Apache Spark SQL only. Queries are parsed against the Apache Spark 4.1 SQL grammar and validated against the Apache Spark SQL 4.0.1 built-in function allowlist. Any construct in the Spark SQL Reference is accepted; any vendor-specific extension is rejected at validation time before the query runs. To learn more, see Apache Spark SQL Reference.

The optional executionContext can be used to provide catalog and schema information.

The operation takes three optional parameters:

{
  "executionContext": "string",
  "statement": "string",
  "rowLimit": 0
}

Get Statement Status

The Get Statement Status operation (GET /sql-editor/v1/statement/{statement_id}) returns the status of specified SQL statement.

The required statement_id path parameter specified the ID of the statement.

Get status and, optionally, result chunks for a previously submitted SQL statement. If a next-token is provided, the corresponding result chunk is fetched.

{
  "statementId": "string",
  "status": "string",
  "result": {
    "nextToken": "string",
    "rowCount": 0,
    "data": [[{}]],
    "metadata": [
      {
        "name": "string",
        "type": "string"
      }
    ]
  },
  "error": {
    "code": "string",
    "message": "string"
  },
  "duration": 0
}

Validate Statement

The Validate Statement operation (POST /sql-editor/v1/statement/validate) validates the specified SQL statement.

Validates whether a SQL statement uses only portable Spark SQL syntax. Returns a result indicating whether the statement is accepted or denied, without executing it.

{
  "statement": "string"
}

Download SQL Result

The Download SQL Result operation (POST /sql-editor/v1/download-sql-result) executes the specified SQL statements and creates a job to download the result.

Submits a workflow job that executes the given SQL statement and produces a downloadable result file. Returns a workflow ID to track progress.

The required x-rms-requestid header parameter returns 202 Accepted and initiates a job. The request has been successful but the process continues in background.

The response body returns the executionContext and statement:

{
  "executionContext": "string",
  "statement": "string"
}

The response body returns the executionContext and statement:

PropertyTypeDescription
executionContextstringExecution context (catalog/schema) to run the statement under.
statementstringSQL statement to execute and download results for.

Delete SQL Statement

The Delete SQL Statement operation (DELETE /sql-editor/v1/statement/{statement_id}) cancels the specified SQL statement.

Get Execution History

The Get Execution History operation (GET /sql-editor/v1/history) returns a log of the client's execution history.

{
  "data": [
    {
      "statement": "string",
      "status": "string",
      "executionTimeMs": 0,
      "submittedTime": "2026-07-01T02:01:05.245Z",
      "rowCount": 0
    }
  ],
  "metadata": {
    "totalCount": 0
  }
}

List Scripts

The List Scripts operation (GET /sql-editor/v1/scripts) returns a list of scripts.

A script is a named, saved SQL file stored in the SQL Editor workspace. Each script contains one or more Apache Spark SQL statements and may include script-scoped variables declared with DECLARE OR REPLACE VARIABLE statement. Scripts do not persist variable values across executions; variables are re-initialized each time the script runs.

This operation supports query parameters that enable the filtering and sorting of responses.

The response returns information about the scripts that match the filter parameters.

{
  "totalMatchCount": 0,
  "children": [
    {
      "id": 0,
      "name": "string",
      "type": "script",
      "folderId": 0,
      "createdAt": "2026-07-01T02:06:46.372Z",
      "modifiedAt": "2026-07-01T02:06:46.372Z"
    }
  ]
}
PropertyTypeDescription
totalMatchCountIntegerNumber of scripts.
childrenArrayList of child objects. Each object consists of id, name, type, folderId, createdAt, and modifiedAt
idInteger
nameString
typeString
folderIdInteger
createdAtDate-TimeTime script was created in date-time format.
modifiedAtDate-TimeTime script was last updated in date-time format.

Get Script

The Get Script operation (GET /sql-editor/v1/scripts/id) returns the specified script.

A script is a named, saved SQL file stored in the SQL Editor workspace. Each script contains one or more Apache Spark SQL statements and may include script-scoped variables declared with DECLARE OR REPLACE VARIABLE statement. Scripts do not persist variable values across executions; variables are re-initialized each time the script runs.

The response returns information about the specific script including its content.

{
  "id": 0,
  "name": "string",
  "type": "script",
  "folderId": 0,
  "createdAt": "2026-07-01T02:04:41.569Z",
  "modifiedAt": "2026-07-01T02:04:41.569Z",
  "content": "string"
}

Create Script

The Create Script operation (POST /sql-editor/v1/scripts) creates a script.

A script is a named, saved SQL file stored in the SQL Editor workspace. Each script contains one or more Apache Spark SQL statements and may include script-scoped variables declared with DECLARE OR REPLACE VARIABLE statement. Scripts do not persist variable values across executions; variables are re-initialized each time the script runs.

Scripts are subject to the June 2026 migration requirement: any saved script that uses constructs no longer accepted (for example, VACUUM, OPTIMIZE, pipe syntax, or T-SQL–specific functions) must be updated to use standard Apache Spark SQL before September 30, 2026.

{
  "name": "string",
  "folderId": 0,
  "type": "string"
}

Replace Script

The Replace Script operation (Update /sql-editor/v1/scripts/{scriptid}) replaces the content of the specified script, i.e. the SQL statement itself.

{
  "name": "string",
  "content": "string"
}

The response returns information about script.

{
  "id": 0,
  "name": "string",
  "type": "script",
  "folderId": 0,
  "createdAt": "2026-07-01T02:10:08.476Z",
  "modifiedAt": "2026-07-01T02:10:08.476Z",
  "content": "string"
}

Patch Script

The Patch Script operation (PATCH /sql-editor/v1/scripts/{scriptid}) updates the specified script.

This operation supports renaming the script, moving the script to another folder in the same catalog, or to update the SQL statement itself.

The request body accepts three parameters: name, folderId, content:

{
  "name": "string",
  "folderId": 0,
  "content": "string"
}

Delete Script

The Delete Script operation (PATCH /sql-editor/v1/scripts/{scriptid}) deletes the specified script.

List Dashboards

The List Dashboards operation (GET /v1/reporting/dashboards) returns a list of dashboards.

A dashboard is a published version of a data analysis created in the Risk Data Lake reporting environment. Dashboards are interactive visualizations built from flexible reporting datasets and tenant data. Once published, a dashboard can be shared in the Shared folder, making it accessible to users with the Risk Data Lake Consumer or Contributor role.

This operation returns the dashboards available to the authenticated user. In the Data Explorer, Dashboards and Analyses are accessible under the Reporting area; shared dashboards are visible to users with the Risk Data Lake Consumer or Contributor role.

{
  "dashboards": [
    {
      "dashboardId": "string",
      "dashboardName": "string",
      "category": "string"
    }
  ]
}

For each dashboard the response returns the dashboardId, dashboardName, category:

PropertyTypeDescription
dashboardIdStringID of the dashboard.
dashboardNameStringName of the dashboard.
categoryStringParent category of the dashboard.

Get Dashboard Embed URL

The Get Dashboard Embed URL operation (GET /v1/reporting/dashboards/{dashboardId}) returns the specified dashboard.

This required dashboardId query parameter specifies the ID of the dashboard. This operation also accepts an optional additionalDashboardIds query parameter that specifies an array of dashboard IDs. The optional origin header parameter specifies the calling application (scheme and host, for example https://app.example.com). Used to validate and generate an embed URL specific to the requesting origin.

The operation returns an embed URL for viewing a specific published dashboard. Dashboards published to the Shared folder are accessible in external Moody’s Insurance Solutions applications when organizations license both Risk Data Lake and those applications.

{
  "dashboards": [
    {
      "dashboardId": "string",
      "dashboardName": "string",
      "category": "string"
    }
  ]
}

The response returns details about the dashboard:

PropertyTypeDescription
dashboardIdStringID of the dashboard.
dashboardNameStringName of the dashboard.
categoryStringParent category of the dashboard.

Get Analytics Design Environment URL

The Get Designer Embed URL operation (GET /v1/reporting/embed-url) returns the URL of the Analytics Design Environment.

The Analytics Design Environment URL provides Risk Data Lake Contributors the ability to create and modify analyses of tenant data dashboard datasets. The Analytics Design Environment provides access to flexible reporting datasets, tenant data dashboard datasets, and Risk Data Catalog source tables as visualization data sources.

The response returns the embedUrl, expirationTime, and status:

{
  "embedUrl": "string",
  "expirationTime": "string",
  "status": "string"
}

The response returns details about the dashboard:

PropertyTypeDescription
dashboardIdStringID of the dashboard.
dashboardNameStringName of the dashboard.
categoryStringParent category of the dashboard.

Health Check

The Health Check operation (GET /health) checks the health of Risk Data Lake.

Risk Data Refinery

The Risk Data Refinery API enables Intelligent Risk Platform tenants to create exposure resources based on unstructured text in imported policy slip or schedule of value documents.

The Intelligent Risk Platform uses AI to transform unstructured submission documents (policy slips and schedule of value worksheets) uploaded to the Intelligent Risk Platform into structured, platform-ready exposure data.

The Risk Data Refinery supports two pipelines:

  • The Slip pipeline extracts coverage data from policy slips: limits, deductibles, perils, and special conditions across six standard perils.
  • The SoV pipeline processes schedule of value worksheets into cleansed, geocoded, enriched, model-ready exposure data that can be imported into the tenant's Intelligent Risk Platform.

Create Folder

The Create Folder operation (POST /platform/riskdatarefinery/v1/folders) creates a submission folder.

The optional X-Rms-RequestId header parameter can be specified to make the request idempotent. a request ID used to make the operation idempotent. When supplied, repeated requests with the same value return the result of the original request.

The files parameter defines an array of files to be uploaded to the folder. The following file formats are supported: PDF, XLS, XLSX, and XLSM. (XLSB and XLSN are not supported.)

{
  "files": [
    {
      "fileName": "test.pdf",
      "encodedFileContent": "JVBERi0xLjQKJ..."
    }
  ]
}

If successful, returns 201 Created HTTP status code and a response that provides details about the folder.

{
  "folderUuid": "f4e1c0a2-9b7d-4e3a-8c21-2a6b9d0e1f34",
  "expiresAt": "2026-06-09T21:15:00.123Z",
  "files": [
    {
      "fileName": "test.pdf",
      "fileUri": "2001906/import/data-refinery/f4e1c0a2-9b7d-4e3a-8c21-2a6b9d0e1f34/input/test.pdf",
      "uploadUrl": "string"
    }
  ]
}

Get RDR Folder

The Get Folder operation (GET /platform/riskdatarefinery/v1/folders/{folderUuid}) retrieves the specified RDR folder.

The required folderUuid path parameter specified the UUID of an RDR folder.

If true, the optional detectFiles body parameter detects the presence of files in the RDR folder and returns the updated status and updatedAt folder properties, and the detectionStatus, fileType, and priority of each file in that folder. If false, returns the stored classification without re-parsing. By default, false.

The response includes information about each file in the RDR folder:

{
  "folderUuid": "f4e1c0a2-9b7d-4e3a-8c21-2a6b9d0e1f34",
  "expiresAt": "2026-06-09T21:15:00.123Z",
  "status": "COMPLETED",
  "updatedAt": "2026-06-09T21:05:13.456Z",
  "files": [
    {
      "fileName": "test.pdf",
      "detectionStatus": "COMPLETED",
      "fileType": "slip",
      "priority": 1,
      "fileUri": "2001906/import/data-refinery/f4e1c0a2-9b7d-4e3a-8c21-2a6b9d0e1f34/input/test.pdf",
      "isIncluded": true
    }
  ]
}

Create Submission

The Create Submission operation (POST /platform/riskdatarefinery/v1/submissions) creates an RDR submission,

A submission is a bundle of uploaded documents (one or more policy slip and/or SoV documents, in any supported format) that are imported together as a single unit for processing. Every submission is defined by UUID of a RDR folder (folderUuid) and the names of the files (slipStream and sovStream) uploaded to that RDR folder.

This operation supports submitting slipStream and sovSteam files that have been uploaded to the specified RDR folder.

  • A slipStream file is a policy slip document, a broker-authored submission text that states the account's limits, deductibles, sublimits, exclusions, and perils. Within a submission it is routed to the slip pipeline, which uses AI to extract those coverage terms into structured, model-ready policy data.
  • An sovStream file is a Schedule of Values workbook that lists an account's insured locations and exposure attributes (e.g. addresses, construction, occupancy, and coverage values). Within a submission it is routed to the SoV pipeline, which cleanses, geocodes, and enriches the data into model-ready location and account exposure.

Typically, both a slip stream and statement of value document are submitted in the same submission. In general, most accounts include both a slipStream file and an sovStream file. Both documents go into one import," added "as one submission bundle. The slipStream and sovStream parameters are optional.

The x-rms-resource-group-id header parameter is required.

{
  "folderUuid": "f4e1c0a2-9b7d-4e3a-8c21-2a6b9d0e1f34",
  "submissionName": "ABC.pdf",
  "groupIds": ["5f1c0a2b-9b7d-4e3a-8c21-2a6b9d0e1f34"],
  "slipStream": {
    "files": [
      {
        "fileName": "Sov1.xlsx",
        "isIncluded": true,
        "priority": 1
      }
    ],
    "decode": {
      "specialInstructions": "Treat the attached email body as the policy slip."
    }
  },
  "sovStream": {
    "files": [
      {
        "fileName": "Sov1.xlsx",
        "isIncluded": true
      }
    ]
  }
}

The folderUuid is required. The request is usually defined by both slipStream and sovStream objects. If a file is uploaded

PropertyTypeDescription
folderUuidstring (uuid)Unique ID of the folder containing the uploaded files, returned by Create folder.
submissionNamestringName of the submission. Provided by the principal; if omitted, defaults to the uploaded file name.
groupIdsarray of string (uuid)IDs of groups to assign the submission to.
slipStreamobjectPolicy slip extraction stream inputs. Optional; omit to let the pipeline classify files automatically.
sovStreamobjectSchedule of values (SOV) extraction stream inputs. Optional; omit to let the pipeline classify files automatically.

A slipStream file is a policy slip document: the broker-authored submission text, typically 20 to 200 pages, that states the account’s limits, deductibles, sublimits, exclusions, and perils. Within a submission it is routed to the slip pipeline, which uses AI to extract those coverage terms into structured, model-ready policy data.”

PropertyTypeDescription
filesarrayFiles to process in the policy slip stream.
files[].fileNamestringName of the uploaded file to process.
files[].isIncludedbooleanWhether the file is included in submission processing. Included by default; set to false to exclude. By default, true
files[].priorityint32Processing priority of the file. Lower numbers are processed first.
decodeobjectSpecial instructions to process instead of files. Used when no files are uploaded.
decode.specialInstructionsstringFree-text special instructions for the policy slip stream.

An sovStream file is a Schedule of Values workbook: a worksheet that lists an account’s insured locations and exposure attributes (e.g. addresses, construction, occupancy, and coverage values). Within a submission it is routed to the SoV pipeline, which cleanses, geocodes, and enriches the data into model-ready location and account exposure.

PropertyTypeDescription
filesarray of objectFiles to process in the schedule of values stream.
files[].fileNamestringName of the uploaded file to process.
files[].isIncludedboolean (default true)Whether the file is included in submission processing. Included by default; set to false to exclude.

Search Submissions

The Search Submission operation (GET /platform/riskdatarefinery/v1/submissions) returns a list of submissions.

This operation supports filtering based on the value of query string parameters:

PropertyData TypeComparisonListLogical
submissionIdint64=INAND
userIdstring=INAND
statusstring=INAND
progressint32=INAND
submissionNamestringLIKEINAND
exposureResourceNamestringLIKEINAND
startTimedate-time< <= > >=AND
endTimedate-time< <= > >=AND
groupIdsuuid=INAND

This operation supports sorting by processingTime. To learn more, see Filtering Responses

For each submission that matches the specified filter, the response returns following values:

[
  {
    "submissionId": 100024,
    "userId": "[email protected]",
    "status": "COMPLETED",
    "progress": 100,
    "submissionName": "ABC.pdf",
    "processingTime": 445.043,
    "startTime": "2026-06-03T20:12:48.125Z",
    "endTime": "2026-06-03T20:20:13.168Z",
    "exposureResourceName": "XYZ",
    "groupIds": ["5f1c0a2b-9b7d-4e3a-8c21-2a6b9d0e1f34"],
    "metrics": {
      "fileTypes": ["slip", "sov"],
      "fileCount": 2,
      "accountsProcessed": 12,
      "locationsProcessed": 480,
      "sheetsProcessed": 3
    }
  }
]
PropertyData typeDescription
submissionIdint64ID of submission.
userIdstringLogin of principal that submitted the document, e.g. [email protected].
statusstringStatus of submission processing. Accepted case-insensitively. One of COMPLETED, CANCELLED, PENDING, FAILED, IN_PROGRESS, QUEUED)
progressint32Percent of submission processing completion.
submissionNamestringName of submission.
processingTimedoubleTotal processing time in seconds.
startTimestringTime submission processing started in ISO 8601 format, e.g. 2020-01-01T00:00:00.000Z. null when processing has not started.
endTimestringTime submission processing ended in ISO 8601 format, e.g. 2020-01-01T00:00:00.000Z. null when processing has not ended.
exposureResourceNamestringName of the exposure resource extracted from the submission. null when no exposure resource has been extracted.
groupIdsarrayUUIDs of team groups.
metricsobjectMetrics for the submission.

The metrics object returns information about the data extracted during the submission:

PropertyData typeDescription
fileTypesarrayStream types (slip, sov) in the submission. Both values indicate a mixed submission; an empty array indicates files are not yet classified.
fileCountint32Number of documents in the submission.
accountsProcessedint32Number of accounts processed.
locationsProcessedint32Number of locations processed.
sheetsProcessedint32Number of Excel sheets processed in the submission's input files.

Get Submission

The Get Submission operation (GET /platform/riskdatarefinery/v1/submissions/{submissionId}) returns detailed information about the specified submission.

This operation can be used to poll the status of a submission.

{
  "submissionId": 100024,
  "userId": "[email protected]",
  "status": "COMPLETED",
  "progress": 100,
  "submissionName": "ABC.pdf",
  "processingTime": 445.043,
  "startTime": "2026-06-03T20:12:48.125Z",
  "endTime": "2026-06-03T20:20:13.168Z",
  "exposureResourceName": "XYZ",
  "groupIds": ["5f1c0a2b-9b7d-4e3a-8c21-2a6b9d0e1f34"],
  "metrics": {
    "fileTypes": ["slip", "sov"],
    "fileCount": 2,
    "accountsProcessed": 12,
    "locationsProcessed": 480,
    "sheetsProcessed": 3
  },
  "slipStream": {
    "uuid": "947e5e86-328b-49ec-8985-5bad47a16dd7",
    "status": "COMPLETED",
    "progress": 100,
    "currentStep": "completed",
    "name": "Sample_Policy_Slip.pdf",
    "type": "slip",
    "totalSize": 883122,
    "startTime": "2026-06-04T07:32:48.124Z",
    "endTime": "2026-06-04T07:40:13.168Z"
  },
  "sovStream": {
    "uuid": "947e5e86-328b-49ec-8985-5bad47a16dd7",
    "status": "COMPLETED",
    "progress": 100,
    "currentStep": "completed",
    "name": "Sample_Policy_Slip.pdf",
    "type": "sov",
    "totalSize": 883122,
    "startTime": "2026-06-04T07:32:48.124Z",
    "endTime": "2026-06-04T07:40:13.168Z"
  },
  "riskData": {
    "jobId": 72893672,
    "status": "COMPLETED",
    "progress": 100,
    "exposureName": "EDM_NA_Property_2026Q3",
    "priorJobIds": [0]
  }
}

Delete Submission

The Delete Submission operation (DELETE /platform/riskdatarefinery/v1/submissions/{submissionId}) deletes the specified submission.

Download Submission

The Download Submission operation (POST /platform/riskdatarefinery/v1/submissions/{submissionId}/download) downloads files from specified submission.

The downloadType and fileExtension parameters are required.

{
  "downloadType": "exposureBatchEditFile",
  "fileExtension": "json",
  "fileName": "exposure_batch_edit",
  "delimiter": "comma"
}

The required downloadType parameter specifies the type of files to download from the folder.

Download TypeOutputSupported Files
exposureBatchEditFileCombined exposure batch as a flat JSON fileJSON
mriFilesMRI account and location files, delivered as a single ZIP archiveCSV
processedSoVFileProcessed SOV outputXLSX, PDF
processedSlipFileProcessed policy slip outputJSON, PARQUET, XLS

If successful returns 202 Accepted. The download is prepared asynchronously; poll Get task until status is COMPLETED, then download the file from fileUrl. The Task UUID is returned in the Location HTTP response header.

The Save Risk Data

The Save Risk Data operation (POST /platform/riskdatarefinery/v1/submissions/{submissionId}/save-risk-data) saves to an EDM processed data from the specified submission.

This operation creates an EXPOSURE_BATCH_EDIT job that copies the processed submission data to the specified EDM.

The resourceType and resourceUri body parameters are required.

{
  "resourceType": "exposure",
  "resourceUri": "/platform/riskdata/v1/exposures/2334242",
  "settings": {
    "jobName": "Bell Partners"
  }
}

The resourceType and resourceUri body parameters are required.

ParameterTypeDescription
resourceTypestringType of risk data resource, i.e. exposure (EDM).
resourceUristringURI of EDM into which exposure data is to be saved.
settings.descriptionstringDescription of EXPOSURE_BATCH_EDIT job.
settings.jobNamestringName of of EXPOSURE_BATCH_EDIT job.

If successful, returns 202 Accepted. The submission's processed exposure data is applied to the destination EDM asynchronously via an EXPOSURE_BATCH_EDIT job.

Poll the job URL returned in the Location header for live status (see Search risk data jobs in the Risk Data API). The latest job's status is also returned in the riskData block of Get submission.

Only one save job may run per submission at a time. Once the job ends, a new save may be started; each new save replaces the submission's riskData block.

Workflow Builder

This release adds updates to numerous API operations that are designed to support the Workflow Builder in the UnderwriteIQ, ExposureIQ, and Risk Modeler applications.

Risk Modeler and other Intelligent Risk Platform applications support preconfigured workflow templates that let you standardize and reuse your end-to-end workflows. Using Workflow Builder, you can build a template once, and then you and other users on your tenant can run it directly from selected portfolios with fewer manual steps and less chance of misconfiguration.

Preconfigured batch templates let you standardize and reuse your end-to-end workflows. Build a template once, and then you and other users on your tenant can run it directly from selected portfolios with fewer manual steps and less chance of misconfiguration. For more information, see Batch Templates