Find an API

Search public APIs with auth details & Postman guides

← All APIs

Moody's RMS RiskIntelligence API

rms.com · Company

Company OAuth2 Paid Insurance Financial Services Catastrophe Modeling Reinsurance Insurance

Catastrophe risk scoring and modeling APIs from Moody's RMS — the global leader in catastrophe modeling. Provides location-level risk scores for hurricane, earthquake, flood, wildfire, and other perils. Used by reinsurers and primary carriers integrated with Guidewire for risk selection and portfolio management.

Authentication

OAuth2 OAuth2 client credentials. Requires RMS license agreement. Contact rms.com/contact for access.

Sample Requests

POST Get location risk scores

Returns peril risk scores for one or more property locations. Covers hurricane, earthquake, flood, wildfire, severe convective storm.

https://api.rms.com/riskintelligence/v1/scores

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Content-Type application/json
Authorization Bearer YOUR_ACCESS_TOKEN
Request Body — data you're sending
{
  "perils": [
    "Hurricane",
    "Flood"
  ],
  "locations": [
    {
      "id": "loc1",
      "city": "Miami",
      "state": "FL",
      "address": "123 Main St",
      "postalCode": "33101"
    }
  ]
}
curl -X POST "https://api.rms.com/riskintelligence/v1/scores" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"perils":["Hurricane","Flood"],"locations":[{"id":"loc1","city":"Miami","state":"FL","address":"123 Main St","postalCode":"33101"}]}'
import requests
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
data = {
    "perils": [
        "Hurricane",
        "Flood"
    ],
    "locations": [
        {
            "id": "loc1",
            "city": "Miami",
            "state": "FL",
            "address": "123 Main St",
            "postalCode": "33101"
        }
    ]
}
response = requests.post(
    "https://api.rms.com/riskintelligence/v1/scores",
    headers=headers,
    json=data,
)
print(response.json())
const url = 'https://api.rms.com/riskintelligence/v1/scores';

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  },
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "perils": [
    "Hurricane",
    "Flood"
  ],
  "locations": [
    {
      "id": "loc1",
      "city": "Miami",
      "state": "FL",
      "address": "123 Main St",
      "postalCode": "33101"
    }
  ]
}),
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"bytes"
	"encoding/json"
)

func main() {
	targetURL := "https://api.rms.com/riskintelligence/v1/scores"
	jsonData, _ := json.Marshal({"perils":["Hurricane","Flood"],"locations":[{"id":"loc1","city":"Miami","state":"FL","address":"123 Main St","postalCode":"33101"}]})
	req, _ := http.NewRequest("POST", targetURL, bytes.NewBuffer(jsonData))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.rms.com/riskintelligence/v1/scores")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)
req["Content-Type"] = "application/json"
req["Authorization"] = "Bearer YOUR_ACCESS_TOKEN"
req["Content-Type"] = "application/json"
req.body = "{\"perils\":[\"Hurricane\",\"Flood\"],\"locations\":[{\"id\":\"loc1\",\"city\":\"Miami\",\"state\":\"FL\",\"address\":\"123 Main St\",\"postalCode\":\"33101\"}]}"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.rms.com/riskintelligence/v1/scores";
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "Content-Type: application/json",
        "Authorization: Bearer YOUR_ACCESS_TOKEN",
        "Content-Type: application/json"
    ]),
    "content" => json_encode({"perils":["Hurricane","Flood"],"locations":[{"id":"loc1","city":"Miami","state":"FL","address":"123 Main St","postalCode":"33101"}]}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. Requires RMS (Moody's) license agreement — contact rms.com/contact
  2. RMS provides a sandbox with test locations for development
  3. Risk scores are normalized 0-100 per peril and return as JSON
  4. Guidewire PolicyCenter integration allows real-time risk scoring at new business/renewal
  5. Batch API available for portfolio-level analysis
  6. RMS also offers catastrophe model loss estimation as a separate licensed product

What can you build with Moody's RMS RiskIntelligence API?

Moody's RMS RiskIntelligence API is a Company API. Developers commonly use company APIs for:

  • enriching CRM records with company firmographics
  • building lead-generation and prospecting tools
  • verifying business identity and registration details
  • monitoring competitors and market intelligence
  • powering B2B data enrichment pipelines

OAuth 2.0. OAuth lets your app act on behalf of a user. You redirect them to authorise access, receive a token, then use that token in requests. Best for accessing user-owned data. Moody's RMS RiskIntelligence API is a paid API — check the provider's pricing page before building a production integration.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗