Score US property catastrophe risk.

REST API · MCP server · embeddable widget. Start with free previews and trial report credits.

Start an evaluation →

Already a customer? Sign in to manage keys.

Use PerilScore in an assistant

The published ChatGPT app gives a free, single-address preview. Claude uses a custom connector at https://app.perilscore.com/mcp until the directory listing is available.

Agent Kit A reliable starting point for coding agents

Tell your agent exactly what to build.

Choose preview or full-report access and an integration style. We’ll generate an implementation prompt with the right contract, safeguards, and PerilScore semantics.

1. Data access

Free scoring is read-only and never consumes a credit.

2. Integration

Live machine contracts

The kit teaches the workflow; these endpoints remain the source of truth for current fields and tools.

Copy into your coding agent

Free · MCP · Detect my stack

The prompt uses placeholders only. It never reads or inserts your API key.

Create an evaluation API key

New accounts receive trial report credits to evaluate full reports. Production REST requests require an API key and available report capacity.

Create key →

Quick start

Endpoint

GET https://app.perilscore.com/api/v1/score/?address=...

curl

curl "https://app.perilscore.com/api/v1/score/?address=123+Main+St,+Miami+FL+33101" \
  -H "Authorization: Bearer YOUR_API_KEY"

Python

import requests

response = requests.get(
    "https://app.perilscore.com/api/v1/score/",
    params={"address": "123 Main St, Miami FL 33101"},
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = response.json()
print(data["overall_score"], data["overall_risk_label"])

Node.js (server-side)

// Run on your server — never expose the API key in browser code.
const res = await fetch(
  "https://app.perilscore.com/api/v1/score/?address=123+Main+St,+Miami+FL+33101",
  { headers: { Authorization: "Bearer YOUR_API_KEY" } }
);
const data = await res.json();
console.log(data.overall_score, data.overall_risk_label);

Full-report response schema

{
  "formatted_address": "123 Main Street, Miami, FL 33139",
  "overall_score": 7.2,
  "overall_risk_band": "HIGH",
  "overall_risk_label": "High",
  "overall_score_status": "complete",
  "overall_score_locked": false,
  "perils": [{
    "peril": "hurricane", "peril_name": "Hurricane",
    "numeric_score": 8.5, "risk_label": "High",
    "factors": {"dist_coast_km": 2.1, "storm_count": 14, "max_category": 5}
  }],
  "fire_station": {"name": "Miami Fire Station #1", "distance_miles": 0.8},
  "fire_protection_score": 2,
  "report_url": "...",
  "property": {
    "year_built": 1998,
    "square_footage": 2500,
    "construction_class_name": "Frame",
    "number_of_stories": 2,
    "occupancy_type": "Single Family",
    "replacement_cost": {
      "status": "complete",
      "low": 475000,
      "base": 525000,
      "high": 590000,
      "display_range": "$475,000–$590,000",
      "confidence": "Medium"
    }
  },
  "cope": {
    "construction_class_name": "Frame",
    "num_stories": 2,
    "occupancy_type": "Single Family",
    "occupancy_risk_tags": null,
    "occupancy_vacancy_flag": false,
    "protection_label": "Good",
    "protection_score": 2,
    "fire_protection_score": 2
  },
  "ai_summary": "This wood frame home near Miami faces significant hurricane risk...",
  "tier": "premium"
}

This representative full-report response shows fields when available. REST requires an API key and organization report capacity; trial credits can be used for evaluation. It uses normalized, privacy-allowlisted property and construction fields. property.replacement_cost is an indicative structure rebuild range, not an appraisal. Permit signals include an availability state because jurisdiction and vendor coverage vary. COPE fields derive from property and fire-station data.

Already have a client who uses PerilScore? They can share their embed key from their Developer Dashboard – their plan applies, no extra cost to you.