Moody's RMS Composite API

Returns multiple layers for an address, including chaining the output of one layer into the input for another

Operations 1

POST /composite Composite Lookup #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/moodys-rms-composite-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

moodys-rms-composite-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Location Intelligence Composite API
  version: 2022.09.c
  description: Use LI API data to access RMS model insights in a flexible, scalable, and programmable way. The suite of layers includes exposure enhancement, geocoding, hazard, risk scoring, and loss costs to provide information for key decisions in the underwriting workflow, including screening, selection, and pricing.
servers:
- url: https://{host}/li
  description: Location Intelligence
  variables:
    host:
      enum:
      - api-euw1.rms.com
      - api-use1.rms.com
      default: api-euw1.rms.com
      description: 'Data center that hosts the tenant instance: api-euw1.rms.com or api-use1.rms.com.'
security:
- apiKey: []
tags:
- name: Composite
  description: Returns multiple layers for an address, including chaining the output of one layer into the input for another
paths:
  /composite:
    post:
      tags:
      - Composite
      summary: Composite Lookup
      description: Performs multiple lookups a specific location. If geocoding is included, the geocoded address is used for all other lookups.
      operationId: composite
      requestBody:
        description: Request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompositeInput'
            example:
              location:
                address:
                  admin1Code: CA
                  cityName: NEWARK
                  countryCode: US
                  countryScheme: ISO2A
                  postalCode: '94560'
                  streetAddress: 7575 GATEWAY BLVD
                characteristics:
                  construction: ATC1
                  occupancy: ATC1
                  yearBuilt: 1973
                  numOfStories: 3
                coverageValues:
                  buildingValue: 1000000
                  contentsValue: 100000
                  businessInterruptionValue: 50000
              layers:
              - name: geocode
                version: latest
              - name: us_eq_loss_cost
                version: latest
              - name: us_fema_firm
                version: latest
                options:
                  distanceUnit: feet
                  proximityDistance: 100
        required: true
      responses:
        '200':
          description: Everything worked as expected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompositeOutput'
        '400':
          $ref: '#/components/responses/400Response'
        '401':
          $ref: '#/components/responses/401Response'
        '500':
          $ref: '#/components/responses/500Response'
components:
  schemas:
    ErrorItem:
      type: object
      properties:
        code:
          type: string
          example: ERR_XXXX
          description: 'Error codes:

            |   Code   | Description |

            |----------|-------------|

            | ERR_4000 | No details found for requested layer. |

            | ERR_4001 | Insufficient geocoding information. A required field is missing. |

            | ERR_4002 | Insufficient geocoding resolution to look up requested data. |

            | ERR_4003 | Location is in a region that is not supported by this layer. |

            | ERR_4005 | Insufficient information to look up requested data. |

            | ERR_4041 | Invalid input. |

            | ERR_4100 | Invalid lookupType. Valid lookups are ''wetOrDry'', ''floodDepth'', and ''proximity''. |

            | ERR_4101 | Invalid distanceUnit. Valid distanceUnits are ''meters'' and ''feet''. |

            | ERR_4102 | Invalid returnPeriod. Valid returnPeriods are 30, 50, 100, 200, 250, 500, and 1000. |

            | ERR_4103 | Invalid defended option. Valid defended options are ''true'' and ''false''. |

            | ERR_4104 | Invalid proximityDistance. Valid proximityDistances are positive numbers. |

            | ERR_4105 | Invalid distanceUnit. Valid distanceUnits are ''feet'', ''meters'', ''miles'', and ''km''. |

            | ERR_4106 | Insufficient information to look up requested data. Missing one or both of distanceUnit and proximityDistance. |

            | ERR_4300 | Invalid basement. Valid basements are ''yes'', ''no'', and ''default''. |

            | ERR_4400 | General error for the layer. |

            | ERR_4401 | Invalid address input. Incorrect field. |

            | ERR_4010 | Forbidden. |

            | ERR_4030 | Unauthorized. |

            | ERR_4040 | Not found. |

            | ERR_4050 | Method not allowed. |

            | ERR_4060 | Not acceptable. |

            | ERR_4080 | Request timeout. |

            | ERR_4130 | Request too large. |

            | ERR_4150 | Unsupported media type. |

            | ERR_4220 | Unprocessable entity. |

            | ERR_4290 | Quota exceeded. |

            | ERR_5000 | Internal server error. |

            | ERR_5040 | Gateway timeout. |

            '
        message:
          type: string
          example: Error message
    ErrorOutput:
      type: object
      properties:
        contextId:
          type: string
          example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        additionalInfo:
          type: string
          example: ''
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorItem'
    GeocodeInput:
      type: object
      required:
      - countryCode
      - countryScheme
      properties:
        id:
          type: integer
          format: int64
          description: User defined id
          example: 0
        admin1Code:
          type: string
          description: Code for administrative level 1. Admin1 represents large geographic divisions, such as states and provinces.
          example: CA
          maxLength: 16
        admin1Name:
          type: string
          description: Name of administrative level 1
          example: CALIFORNIA
          maxLength: 256
        admin2Code:
          type: string
          description: Code for administrative level 2. Admin2 represents smaller geographic divisions than Admin1, such as counties.
          example: '001'
          maxLength: 16
        admin2Name:
          type: string
          description: Name of administrative level 2
          example: ALAMEDA COUNTY
          maxLength: 256
        admin3Code:
          type: string
          description: Code for administrative level 3. Admin3 represents even smaller geographic divisions than Admin2, such as districts.
          example: ''
          maxLength: 16
        admin3Name:
          type: string
          description: Name of administrative level 3
          example: ''
          maxLength: 256
        admin4Code:
          type: string
          description: Code for administrative level 4
          example: '044230130'
          maxLength: 16
        admin4Name:
          type: string
          description: Name of administrative level 4
          example: '044230130'
          maxLength: 256
        cityName:
          type: string
          description: Name of City/Town
          example: NEWARK
          maxLength: 256
        countryCode:
          type: string
          description: Country Code (optional for geocoding if latitude and longitude are provided)
          example: US
          maxLength: 4
        countryName:
          type: string
          description: Name of Country
          example: United States
          maxLength: 512
        countryScheme:
          type: string
          description: Standard for user-supplied country code (optional for geocoding if latitude and longitude are provided)
          example: ISO2A
          enum:
          - ISO2A
          - ISO3A
          - ISO3N
          - FIPS
        latitude:
          type: number
          format: double
          description: Location Latitude
          example: 37.54120000000001
          minimum: -90
          maximum: 90
        longitude:
          type: number
          format: double
          description: Location Longitude
          example: -122.06061000000001
          minimum: -180
          maximum: 180
        postalCode:
          type: string
          description: Postal Code
          example: '94560'
          maxLength: 16
        streetAddress:
          type: string
          description: Address containing Number, Street Name, Street Type, etc.
          example: 7575 GATEWAY BLVD
          maxLength: 256
        name:
          type: string
          description: Supplemental text captured for the address
          example: ''
          maxLength: 512
    CompositeOutput:
      type: array
      description: results
      items:
        type: object
        properties:
          name:
            type: string
            description: Layer name
            example: geocode
          version:
            type: string
            description: Layer version
            example: latest
          results:
            type: object
            additionalProperties:
              anyOf:
              - type: string
              - type: integer
              - type: number
              - type: boolean
              - type: object
              - type: array
              description: For result fields, see the individual layer documentation
          errors:
            type: array
            items:
              $ref: '#/components/schemas/ErrorItem'
    CompositeInput:
      type: object
      required:
      - location
      - layers
      properties:
        location:
          $ref: '#/components/schemas/LocationInput'
        layers:
          type: array
          items:
            type: object
            required:
            - name
            - version
            properties:
              name:
                type: string
                description: Layer name
                example: geocode
              version:
                type: string
                description: Layer version
                example: latest
              options:
                description: Layer options
                type: object
                additionalProperties:
                  anyOf:
                  - type: string
                  - type: integer
                  - type: number
                  - type: boolean
                  - type: object
    GeocodeOutput:
      type: object
      allOf:
      - $ref: '#/components/schemas/GeocodeInput'
      - type: object
        properties:
          admin1GeoId:
            type: integer
            format: int64
            description: Globally unique ID for administrative level 1. Admin1 represents large geographic divisions, such as states and provinces.
            example: 99999106
          admin2GeoId:
            type: integer
            format: int64
            description: Globally unique ID for administrative level 2. Admin2 represents smaller geographic divisions than Admin1, such as counties.
            example: 99999206001
          admin3GeoId:
            type: integer
            format: int64
            description: Globally unique ID for administrative level 3. Code for administrative level 3. Admin3 represents even smaller geographic divisions than Admin2, such as districts.
            example: 12695859
          admin4GeoId:
            type: integer
            format: int64
            description: Globally unique ID for administrative level 4.
            example: 62219571
          admin5GeoId:
            type: integer
            format: int64
            description: Globally unique ID for administrative level 5.
            example: 0
          cityGeoId:
            type: integer
            format: int64
            description: Globally unique ID for City/Town
            example: 999993061080
          countryFips:
            type: string
            description: Country FIPS code
            example: US
            maxLength: 4
          countryGeoId:
            type: integer
            description: Globally unique ID for Country
            example: 840
          countryRmsCode:
            type: string
            description: RMS code for Country
            example: US
            maxLength: 4
          geoDataSourceId:
            type: integer
            description: Geocode Data Source ID
            example: 8
          geoMatchCode:
            type: string
            description: Code for portions of the input address that matched, did not match, or were modified during the geocoding process.
            example: T1-999993061080-T1A1-S0T100A100-S1A1-00-B-A-X
            maxLength: 255
          locationCode:
            type: string
            description: Census Tract Number / Sonpo / Sector / Short Postal Code
            example: '060014443.01'
            maxLength: 16
          locationCodeGeoId:
            type: integer
            format: int64
            description: Unique identification code for the location
            example: 0
          parcelId:
            type: integer
            format: int64
            description: Parcel id
            example: 0
          postalCodeGeoId:
            type: integer
            format: int64
            description: Globally unique ID for postal code
            example: 99999494560
          rmsGeoModelResolutionCode:
            type: integer
            description: 'Address match level: * `0` - None * `1` - Coordinate * `2` - Street / Parcel / Building * `3` - High Resolution Postcode / Other * `4` - Block Group/Census Tract * `5` - Postal code * `6` - Neighborhood * `7` - City * `8` - District / Municipality * `9` - County * `10` - State/Province * `11` - CRESTA * `12` - Multiple * `13` - User Defined * `14` - Country

              '
            example: 2
            minimum: 0
            maximum: 14
          rmsGeocodingResolutionCode:
            type: integer
            description: Indicates the geocoding resolutions that are supported by the ACORD standard
            example: 31
          ugid:
            type: string
            description: Unique global identifier
            example: USS3121778167575
            maxLength: 50
          zone1Code:
            type: string
            description: CRESTA code
            example: A2
            maxLength: 16
          zone2Code:
            type: string
            description: zone2 code
            example: ''
            maxLength: 16
          zone3Code:
            type: string
            description: zone3 code (Low Resolution CRESTA Zone)
            example: ''
            maxLength: 16
          zone4Code:
            type: string
            description: zone4 code (High Resolution CRESTA Zone)
            example: ''
            maxLength: 16
          zone3Name:
            type: string
            description: zone3 name (Low Resolution CRESTA Zone)
            example: ''
            maxLength: 256
          zone4Name:
            type: string
            description: zone4 name (High Resolution CRESTA Zone)
            example: ''
            maxLength: 256
          zone1GeoId:
            type: integer
            format: int64
            description: Globally unique ID for Zone1 (CRESTA)
            example: 999995062
          zone2GeoId:
            type: integer
            format: int64
            description: Globally unique ID for Zone2 (CRESTA)
            example: 0
          zone3GeoId:
            type: integer
            format: int64
            description: Globally unique ID for Zone3 (Low Resolution CRESTA Zone)
            example: 22505979
          zone4GeoId:
            type: integer
            format: int64
            description: Globally unique ID for Zone4 (High Resolution CRESTA Zone)
            example: 20235111
          dataVersion:
            type: string
            description: Data version
            example: xx.x.xxxx.x
            maxLength: 20
    LocationInput:
      type: object
      required:
      - address
      properties:
        address:
          $ref: '#/components/schemas/GeocodeOutput'
        characteristics:
          $ref: '#/components/schemas/CharacteristicsInput'
        coverageValues:
          $ref: '#/components/schemas/CoverageValuesInput'
    CharacteristicsInput:
      type: object
      properties:
        construction:
          type: string
          description: Construction combines both scheme and class. Construction `scheme` (e.g., ATC) is represented by the letters at the beginning. It is a system used for classifying a building's construction class. Construction `class` is represented by the number(s) following the scheme. It is an attribute referring to the dominant material used in constructing the building frame/structure. Unknown=0.
          example: ATC1
          default: ATC0
          externalDocs:
            description: List of constructions
            url: https://support.rms.com/techpub/OLH_Content/RLRB_Online_Library/Index.htm#RL_RB_DLM_Ref/Supported_Const_Class_Schemes_by_Country.htm
        occupancy:
          type: string
          description: Occupancy combines both scheme and type. Occupancy `scheme` (e.g., ATC) is represented by the letters at the beginning. It is the classification used for identifying a building's occupancy type. Occupancy `type` is represented by the number(s) following the scheme. It is an attribute that describes the typical or dominant use of the building (e.g., residential, or schools, or commercial usage). Unknown=0.
          example: ATC1
          default: ATC0
          externalDocs:
            description: List of occupancies
            url: https://support.rms.com/techpub/OLH_Content/RLRB_Online_Library/Index.htm#RL_RB_DLM_Ref/Supported_Occ_Type_Schemes_by_Country.htm
        yearBuilt:
          type: integer
          description: Attribute describing the year when a structure was constructed. For many RMS peril models, year built is a primary vulnerability attribute.
          example: 1980
          default: 0
        numOfStories:
          type: integer
          description: Attribute that represents the number of floors for a structure. It is a single number, such as 6 or 22, not a range of numbers. Structures are classified according to the number of floors they have.
          default: 0
          example: 1
        foundationType:
          type: integer
          description: Attribute that captures this differentiating factor for flood risk. This attribute is used to infer the height of the first floor during hazard retrieval.
          default: 0
          example: 0
        firstFloorHeightAboveGround:
          type: integer
          description: First floor height above ground
          example: 5
          default: 0
        basement:
          type: string
          description: Indicates whether there is a basement or not
          example: 'YES'
          default: DEFAULT
          enum:
          - DEFAULT
          - 'YES'
          - 'NO'
        floorArea:
          type: integer
          description: Floor area is a primary building characteristic that represents a building's total living area, across all floors. It excludes garages, porches, decks, sunrooms, and basements.
          example: 1452
          default: 0
    CoverageValuesInput:
      type: object
      properties:
        buildingValue:
          type: number
          format: double
          description: Building value
          default: 0
          example: 1000000
        contentsValue:
          type: number
          format: double
          description: Contents value
          default: 0
          example: 100000
        businessInterruptionValue:
          type: number
          format: double
          description: Business interruption value
          default: 0
          example: 50000
  responses:
    401Response:
      description: No valid API key provided.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorOutput'
    500Response:
      description: Something went wrong on our end (this happens rarely)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorOutput'
    400Response:
      description: The request was unacceptable, likely due to missing a required input.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorOutput'
  securitySchemes:
    RMS_Auth:
      type: apiKey
      name: Authorization
      in: header
      description: An API key is a token that enables a client application to make requests to tenant applications running on Intelligent Risk Platform.
      x-default: XXXXXXXXXX
externalDocs:
  description: Find out more about RMS
  url: https://www.rms.com/programs/location-intelligence-api/
x-readme:
  explorer-enabled: false
  samples-languages:
  - curl
  - java
  - csharp
  - node
  - python
  proxy-enabled: true
  samples-enabled: true