{"openapi":"3.0.2","info":{"title":"Model API","version":"2025.11.b"},"servers":[{"url":"https://{host}/platform/model/v1","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"}}}],"x-readme":{"explorer-enabled":false,"parameter-ordering":["header","path","query","body","form","cookie"],"samples-languages":["json","curl","python","java","csharp","node"],"proxy-enabled":true,"samples-enabled":true},"security":[{"rms_api_key":[]},{"rms_bearer_token":[]}],"paths":{"/jobs":{"post":{"tags":["Model Jobs"],"summary":"Create model job","operationId":"createModelJob","parameters":[{"name":"x-rms-resource-group-id","description":"ID of <<glossary:resource group>>. Operation is assigned to this resource group's quota. See [Resource Groups](doc:resource-management)","in":"header","required":true,"schema":{"type":"string","default":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/HdModelRequest"},{"$ref":"#/components/schemas/DlmModelRequest"},{"$ref":"#/components/schemas/AlmModelRequest"}],"discriminator":{"propertyName":"type","mapping":{"HD":"#/components/schemas/HdModelRequest","DLM":"#/components/schemas/DlmModelRequest","ALM":"#/components/schemas/AlmModelRequest"}}}}}},"responses":{"201":{"description":"Created","headers":{"Location":{"description":"Location of the job with jobId.","schema":{"type":"string","format":"uri"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}},"get":{"tags":["Model Jobs"],"summary":"Search model jobs","operationId":"getModelJobs","parameters":[{"name":"filter","in":"query","description":"<<glossary:Query string>> to select response data based on property values. \n\nSupported properties: `endedAt`, `jobId`, `name`, `startedAt`,`status`, `type`, `userName`\n\n|Property|Data Type|Comparison|List| Logical\n|:--------|:--------|:--------|:---|:---|\n|`endedAt`|`YYYY-MM-DD`|`=` ||`AND`\n|`jobId`|`string`|`=` ||`AND`\n|`name`|`string`|`=` ||`AND`\n|`startedAt`|`YYYY-MM-DD`|`=` ||`AND`\n|`status`|`string`|`=` ||`AND`\n|`type`|`string`|`=` ||`AND`\n|`userName`|`string`|`=` ||`AND`\n\nSee [Filtering Responses](doc:response-filtering)","schema":{"type":"string"}},{"name":"sort","in":"query","description":"Comma-delimited list of properties. Sort order defined by one of `ASC` (ascending) or `DESC` (descending). See [Response Pagination](doc:response-pagination).\n\nSupported propeties: `jobId`, `name`, `status`, `type`","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of records to display per page","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32","default":20}},{"name":"offset","in":"query","description":"Number of page displaying the returned records, starting at _0_.","schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"Model job initiated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobSearchResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}}},"/jobs/{jobId}":{"get":{"tags":["Model Jobs"],"summary":"Get model job","operationId":"getModelJob","parameters":[{"$ref":"#/components/parameters/JobIdParam"}],"responses":{"200":{"description":"Model job initiated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}},"patch":{"tags":["Model Jobs"],"summary":"Update model job","operationId":"updateModelJob","parameters":[{"$ref":"#/components/parameters/JobIdParam"}],"requestBody":{"description":"Updates to model job","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["CANCELLED"]},"priority":{"type":"string","enum":["high","medium","low","veryhigh","verylow"]}}}}}},"responses":{"200":{"description":"Model job initiated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobsActionObject"}}}},"400":{"description":"Bad Request: Please check that you are provided all required values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"description":"'Unauthorized.'","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"403":{"description":"Forbidden to perform the \"Model Flat Files\" action.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"500":{"description":"Internal Server Error: The server has encountered a situation it does not know how to handle.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}}}},"components":{"parameters":{"JobIdParam":{"name":"jobId","in":"path","description":"ID of job.","schema":{"type":"string"},"required":true},"ProfileIdParam":{"name":"profileId","in":"path","description":"ID of profile.","schema":{"type":"string"},"required":true}},"schemas":{"RiskdataResource":{"type":"string","format":"uri"},"DlmModelRequest":{"type":"object","required":["resourceUri","resourceType","type","settings"],"properties":{"resourceUri":{"description":"URI of the exposure resource modeled. For example, `/platform/riskdata/v1/exposures/21323/portfolio/12`","$ref":"#/components/schemas/RiskdataResource"},"resourceType":{"type":"string","description":"Type of exposure resource to model.","enum":["portfolio","account","portfolioVariation","accountVariation"]},"type":{"type":"string","description":"Model type used in analysis.","enum":["DLM"]},"settings":{"required":["currency","modelProfileId","outputProfileId","eventRateSchemeId"],"type":"object","properties":{"currency":{"description":"Currency used in modeled losses.","$ref":"#/components/schemas/Currency"},"modelProfileId":{"description":"ID of <<glossary:model profile>> used to model the exposure.","type":"integer","format":"int32"},"eventRateSchemeId":{"description":"ID of <<glossary:event rate scheme>>.","type":"integer","format":"int32"},"treatyIds":{"description":"List of treaty IDs.","type":"array","items":{"type":"integer","format":"int32"}},"name":{"description":"Name of result.","maxLength":64,"minLength":0,"pattern":"^\\w((?!--)[\\w\\s:-])*\\w$|^\\w*$","type":"string"},"outputProfileId":{"description":"ID of <<glossary:output profile>>.","type":"integer","format":"int32"},"climateChangeVariationId":{"description":"ID of climate change event set used by North Atlantic Hurricane models.","maximum":68,"minimum":0,"type":"integer","format":"int32"},"franchiseDeductible":{"description":"If `true`, <<glossary:franchise deductible>> is used. If `false`, <<glossary:conventional deductible>> is used.","type":"boolean"},"minLossThreshold":{"description":"Threshold for writing losses to ELTs. Loss values beneath `minLossThreshold` are not written to the event loss tables.","minimum":0,"exclusiveMinimum":false,"type":"number","format":"double"},"treatConstructionOccupancyAsUnknown":{"description":"Determines method for processing accounts or portfolios if `buildingClassScheme` or `occupancyTypeScheme` are unrecognized. \n\n- If `true`, assumes `esbBuildingClass` value of _RMS 0_ or `esbOccupancyType` value of _ATC 0_. \n- If `false`, locations are not analyzed.","type":"boolean"},"numMaxLossEvent":{"description":"Maximum number of events to write to ELT in maximum credible or maximum historical analysis.","maximum":5000,"minimum":1,"type":"integer","format":"int32"},"tagIds":{"type":"array","description":"List of tags to apply to this job. See [Tags](ref:reference-data-api-overview).","items":{"type":"integer","format":"int32"}}}}}},"HdModelRequest":{"type":"object","required":["resourceUri","resourceType","type","settings"],"properties":{"resourceUri":{"description":"URI of exposure resource modeled. For example, `/platform/riskdata/v1/exposures/21323/portfolios/12`","$ref":"#/components/schemas/RiskdataResource"},"resourceType":{"description":"Type of the exposure modeled.","type":"string","enum":["account","portfolio","accountVariation","portfolioVariation"]},"type":{"description":"Model used in analysis.","type":"string","enum":["HD"]},"settings":{"description":"HD modeling job parameters.","required":["currency","modelProfileId","outputProfileId"],"type":"object","properties":{"currency":{"description":"Currency used in modeled losses.","$ref":"#/components/schemas/Currency"},"modelProfileId":{"description":"ID of <<glossary:model profile>> used to model the exposure.","type":"integer","format":"int32"},"eventRateSchemeId":{"description":"ID of <<glossary:event rate scheme>>.","type":"integer","format":"int32"},"treatyIds":{"description":"List of treaty IDs.","type":"array","items":{"type":"integer","format":"int32"}},"name":{"description":"Name of result.","maxLength":64,"minLength":0,"pattern":"^\\w((?!--)[\\w\\s:-])*\\w$|^\\w*$","type":"string"},"outputProfileId":{"description":"ID of <<glossary:output profile>>.","type":"integer","format":"int32"},"climateChangeVariationId":{"description":"ID of climate change event set used by North Atlantic Hurricane models.","maximum":68,"minimum":0,"type":"integer","format":"int32"},"franchiseDeductible":{"description":"If `true`, <<glossary:franchise deductible>> is used. If `false`, <<glossary:conventional deductible>> is used.","type":"boolean"},"minLossThreshold":{"description":"Threshold for writing losses to PLTs. Loss values beneath `minLossThreshold` are not written to the event loss tables.","minimum":0,"exclusiveMinimum":false,"type":"number","format":"double"},"treatConstructionOccupancyAsUnknown":{"description":"Determines method for processing accounts or portfolios if `buildingClassScheme` or `occupancyTypeScheme` are unrecognized. \n\n- If `true`, assumes `esbBuildingClass` value of _RMS 0_ or `esbOccupancyType` value of _ATC 0_. \n- If `false`, locations are not analyzed.","type":"boolean"},"numMaxLossEvent":{"description":"Maximum number of events to write to PLT in maximum credible or maximum historical analysis.","maximum":5000,"minimum":1,"type":"integer","format":"int32"},"tagIds":{"type":"array","description":"List of tags to apply to this job. See [Tags](ref:reference-data-api-overview).","items":{"type":"integer","format":"int32"}}}}}},"AlmModelRequest":{"required":["resourceUri","resourceType","type","settings"],"type":"object","properties":{"resourceUri":{"description":"URI of the exposure resource modeled. For example, `/platform/riskdata/v1/exposures/21323/aggregatePortfolio/12`","$ref":"#/components/schemas/RiskdataResource"},"resourceType":{"description":"Type of exposure resource to model.","type":"string","enum":["aggregatePortfolio","aggregatePortfolioVariation"]},"type":{"type":"string","description":"Model type used in analysis.","enum":["ALM"]},"settings":{"type":"object","required":["currency","almProfileIds"],"properties":{"currency":{"description":"Currency used in modeled losses.","$ref":"#/components/schemas/Currency"},"treaties":{"description":"List of treaty IDs.","type":"array","items":{"type":"integer","format":"int32"}},"name":{"description":"Name of result.","maxLength":64,"minLength":0,"pattern":"^\\w((?!--)[\\w\\s:-])*\\w$|^\\w*$","type":"string"},"almProfileIds":{"description":"List of <<glossary:ALM profile>> IDs used to model the exposure.","type":"array","items":{"type":"integer","format":"int32"}},"analysisMode":{"type":"string","description":"Mode of analysis. One of `expected` or`distributed`\n\n- Distributed mode combines damage curve with financial structure to produce a weighted average for each layer of financial structure. For RiskLink version profiles only.\n- Expected mode applies mean of damage curve to the financial structure. For RiskLink version profiles only."},"portEltByGeoidByLobByCedant":{"type":"boolean","description":"If `true`, save event losses for `GR` and `RP` <<glossary:financial perspective>>s by geoID, LOB, by cedant. For RiskLink version profiles only."},"portStatsByGeoidByLobByCedant":{"description":"If `true`, save pure premium for `GR` and `RP` <<glossary:financial perspective>>s by geoID, by line of business, by cedant. For RiskLink version profiles only.","type":"boolean"},"portStatsByGeoidByCedant":{"type":"boolean","description":"If `true`, save pure premium for `GR` and `RP` <<glossary:financial perspective>>s by geoID. For RiskLink version profiles only."},"tagIds":{"type":"array","description":"List of tags to apply to this job. See [Tags](ref:reference-data-api-overview).","items":{"type":"integer","format":"int32"}}}}}},"Task":{"type":"object","properties":{"taskId":{"type":"string","format":"int32","description":"ID of <<glossary:task>>."},"guid":{"type":"string","format":"uuid","description":"Unique of task."},"jobId":{"type":"string","format":"int64","description":"ID of <<glossary:batch job>>."},"status":{"type":"string","description":"Status of task.","enum":["QUEUED","RUNNING","FINISHED","FAILED","CANCELLED","PENDING","CANCELLING","CANCEL_REQUESTED"]},"submittedAt":{"type":"string","description":"Time job was submitted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. `2020-01-01T00:00:00.000Z`."},"createdAt":{"type":"string","description":"Time job was created in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. `2020-01-01T00:00:00.000Z`."},"name":{"type":"string","description":"Name of task."},"percentComplete":{"type":"integer","format":"int32","description":"Percent of job completion."},"priorTaskGuids":{"type":"array","description":"List of tasks in batch job.","items":{"type":"string","format":"uuid"}},"output":{"type":"object","description":"List of error messages and logs.","properties":{"summary":{"type":"string"},"errors":{"type":"array","description":"List of error messages.","items":{"type":"object","properties":{"message":{"type":"string"}}}},"log":{"type":"object","description":"Log of task processing.","additionalProperties":{"type":"string"}}}}}},"JobSummary":{"type":"object","properties":{"jobId":{"type":"string","format":"int64","description":"ID of job."},"priority":{"type":"string","description":"Priority of job.","enum":["verylow","low","medium","high","veryhigh"]},"userName":{"type":"string","format":"email","description":"Login of <<glossary:principal>> that submitted job, e.g. `user.name@company.com` or `SSO_user.name@company` for <<glossary:federated tenant>>s. Login strings are lowercase. See [Logins](principals).","example":"user.name@company.com"},"status":{"type":"string","description":"Status of job.","enum":["QUEUED","RUNNING","FINISHED","FAILED","CANCELLED","PENDING","CANCELLING","CANCEL_REQUESTED"]},"submittedAt":{"type":"string","description":"Time job was submitted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. `2020-01-01T00:00:00.000Z`."},"startedAt":{"type":"string","description":"Time job was submitted in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. `2020-01-01T00:00:00.000Z`."},"endedAt":{"type":"string","description":"Time job was ended in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, e.g. `2020-01-01T00:00:00.000Z`."},"name":{"type":"string","description":"Name of job."},"type":{"type":"string","description":"Type of job. See [Platform Jobs](doc:platform-jobs)."},"progress":{"type":"integer","format":"int32","description":"Percent of job completion."},"details":{"type":"object","description":"Detailed information about job and child tasks.","properties":{"resources":{"type":"array","description":"List of <<glossary:URI>>s.","items":{"type":"object","properties":{"uri":{"type":"string","format":"uri"}}}},"summary":{"type":"string"}}}}},"Job":{"type":"object","allOf":[{"$ref":"#/components/schemas/JobSummary"},{"type":"object","properties":{"tasks":{"type":"array","items":{"$ref":"#/components/schemas/Task"}}}}]},"JobSearchResult":{"type":"array","items":{"$ref":"#/components/schemas/JobSummary"}},"JobsActionObject":{"type":"object","properties":{"jobStatus":{"$ref":"#/components/schemas/JobStatus"}}},"JobStatus":{"type":"string","description":"Status of job.","enum":["queued","running","failed","completed","created","cancelled"]},"ErrorMessage":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"logId":{"type":"string"}}},"Currency":{"required":["asOfDate","code","scheme","vintage"],"type":"object","properties":{"code":{"type":"string","description":"Code that identifies default currency used to calculate losses. Corresponds to a value in the specified currency scheme (`scheme`). If RMS Currency Scheme, conforms to [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) standard.","example":"USD"},"scheme":{"type":"string","description":"Name of <<glossary:currency scheme>> used to calculate the value of specified currency (`code`) based on the exchange rate between that currency and the scheme's <<glossary:anchor currency>> at the specified point in time (`vintage`).","example":"RMS"},"asOfDate":{"type":"string","description":"Effective date of currency scheme vintage.","example":"014-09-10T00:00:00.000Z"},"vintage":{"type":"string","description":"Version of <<glossary:currency scheme>> that defines exchange rate between the <<glossary:anchor currency>> and the specified currency (`currencyCode`).","example":"RL25"}}}},"securitySchemes":{"rms_bearer_token":{"type":"http","description":"RMS tenant specific bearer token to make authorized requests with temporary life span","scheme":"bearer","bearerFormat":"JWT"},"rms_api_key":{"type":"apiKey","name":"Authorization","description":"RMS tenant specific api key to make authorized requests","in":"header"}}}}