2026.12.a

🥥

Highlights

The 2026.12 release introduces the 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

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.