Insurer API / v1

Evidence at quote speed.

Turn a business domain into a 0–850 CyberScore, category evidence, and premium multiplier through one read-only request.

REST / JSON100 req/hrRead only
Underwriting console200 OK
POST/v1/score { domain: "acme.in" }

Decision output

Proceed with controls.

Risk band
Moderate
Confidence
High
Premium signal
1.08×

CyberScore

672out of 850
ScoreCategoriesMultiplier

Integration model / v1

Risk evidence without the security questionnaire.

A narrow API surface designed for quote flows, renewal reviews, and portfolio monitoring.

01

Submit

Send a business domain and your policy context.

02

Observe

Poll one stable endpoint while the ten-signal engine runs.

03

Decide

Receive CyberScore, evidence, and underwriting multipliers.

Response shape
{ "cyberScore": 720, "scale": 850, "riskBand": "good", "provisional": false }
REST · JSON · v1

API reference

Base URL https://api.riskpulse.tech. All requests require Authorization: Bearer <your_api_key>. Rate limit: 100 req/hr per key.

GET
/v1/score?domain=acme.in

Latest CyberScore (0–850), band, raw finding-based category values, and recommended premium multiplier for the domain.

GET
/v1/report?domain=acme.in

Underwriter report with projected findings, grounded narrative. Treat provisional results as requiring follow-up evidence.

Authentication

API keys are issued per insurer with server-side hashing. Keys are shown once at issue time. Calls are rate-limited and audited, and keys can be rotated or revoked anytime.

categoryScores are raw 0–100 finding-based sub-scores. A value of 100 means no scored finding was observed for that category, which is not the same as proof that the category was fully measured; always interpret it with coverageScore and provisional.

bash
curl https://api.riskpulse.tech/v1/score?domain=acme.in \
  -H "Authorization: Bearer YOUR_API_KEY"

Premium multiplier

Multiply your baseline annual premium by the returned recommendedCoverageMultiplier. Excellent scores get a discount (down to 0.85x), poor scores a surcharge (up to 1.30x). Always inspect coverageScore and provisional; a provisional or low-coverage result is not evidence of a clean domain.

750–850
Excellent
0.85×
600–749
Good
0.95×
450–599
Fair
1.00×
300–449
Poor
1.15×
0–299
Critical
1.30×

Sample response

GET /v1/score?domain=acme.in

json
{
  "success": true,
  "data": {
    "domain": "acme.in",
    "cyberScore": 569,
    "scoreBand": "Fair",
    "categoryScores": {
      "ssl": 95,
      "emailSecurity": 70,
      "breaches": 50,
      "openPorts": 80,
      "cves": 65,
      "reputation": 90,
      "httpHeaders": 60,
      "darkWeb": 75,
      "cloudExposure": 100,
      "dpdpCompliance": 33
    },
    "recommendedCoverageMultiplier": 1.0,
    "scanAgeDays": 2,
    "scoringVersion": "v3.0",
    "coverageScore": 90,
    "reportConfidence": 0.78,
    "provisional": false
  }
}

Node.js example

ts
import fetch from 'node-fetch';

const res = await fetch(
  'https://api.riskpulse.tech/v1/score?domain=acme.in',
  { headers: { Authorization: `Bearer ${process.env.RISKPULSE_API_KEY}` } },
);
const { data } = await res.json();
if (data.provisional) {
  throw new Error('Additional evidence review is required before binding.');
}
const annualPremium = baselinePremium * data.recommendedCoverageMultiplier;

Ready to underwrite better?

Email us with your firm name and expected monthly call volume. We will send a sandbox API key within one business day.