Find an API

Search public APIs with auth details & Postman guides

← All APIs

Verisk ISO ClaimSearch API

verisk.com · Company

Company OAuth2 Paid Insurance Claims Fraud Insurance

ISO ClaimSearch is the insurance industry's largest claims database — 1.4 billion claims from 1,500+ insurers. Used in Guidewire ClaimCenter workflows to detect duplicate claims, identify fraud patterns, and verify loss history. Also includes A-PLUS (auto claims) and Property Underwriting reports.

Authentication

OAuth2 OAuth2 client credentials. Requires ISO/Verisk member agreement. Contact [email protected].

Sample Requests

POST Submit FNOL match search

Searches ClaimSearch database for matching claims based on insured, vehicle, or property. Returns potential duplicates and fraud indicators.

https://api.verisk.com/iso-claimsearch/v1/searches

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
{
  "vin": "1HGBH41JXMN109186",
  "lossDate": "2024-01-10",
  "insuredDOB": "1980-06-01",
  "searchType": "Auto",
  "claimNumber": "CL-1234",
  "insuredLastName": "Doe",
  "insuredFirstName": "Jane"
}
curl -X POST "https://api.verisk.com/iso-claimsearch/v1/searches" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"vin":"1HGBH41JXMN109186","lossDate":"2024-01-10","insuredDOB":"1980-06-01","searchType":"Auto","claimNumber":"CL-1234","insuredLastName":"Doe","insuredFirstName":"Jane"}'
import requests
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
data = {
    "vin": "1HGBH41JXMN109186",
    "lossDate": "2024-01-10",
    "insuredDOB": "1980-06-01",
    "searchType": "Auto",
    "claimNumber": "CL-1234",
    "insuredLastName": "Doe",
    "insuredFirstName": "Jane"
}
response = requests.post(
    "https://api.verisk.com/iso-claimsearch/v1/searches",
    headers=headers,
    json=data,
)
print(response.json())
const url = 'https://api.verisk.com/iso-claimsearch/v1/searches';

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({
  "vin": "1HGBH41JXMN109186",
  "lossDate": "2024-01-10",
  "insuredDOB": "1980-06-01",
  "searchType": "Auto",
  "claimNumber": "CL-1234",
  "insuredLastName": "Doe",
  "insuredFirstName": "Jane"
}),
}); 
const data = await response.json();
console.log(data);
package main

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

func main() {
	targetURL := "https://api.verisk.com/iso-claimsearch/v1/searches"
	jsonData, _ := json.Marshal({"vin":"1HGBH41JXMN109186","lossDate":"2024-01-10","insuredDOB":"1980-06-01","searchType":"Auto","claimNumber":"CL-1234","insuredLastName":"Doe","insuredFirstName":"Jane"})
	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.verisk.com/iso-claimsearch/v1/searches")

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 = "{\"vin\":\"1HGBH41JXMN109186\",\"lossDate\":\"2024-01-10\",\"insuredDOB\":\"1980-06-01\",\"searchType\":\"Auto\",\"claimNumber\":\"CL-1234\",\"insuredLastName\":\"Doe\",\"insuredFirstName\":\"Jane\"}"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.verisk.com/iso-claimsearch/v1/searches";
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "Content-Type: application/json",
        "Authorization: Bearer YOUR_ACCESS_TOKEN",
        "Content-Type: application/json"
    ]),
    "content" => json_encode({"vin":"1HGBH41JXMN109186","lossDate":"2024-01-10","insuredDOB":"1980-06-01","searchType":"Auto","claimNumber":"CL-1234","insuredLastName":"Doe","insuredFirstName":"Jane"}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST Submit claim to ClaimSearch

Submits a new claim to the ClaimSearch database. Required for ISO member insurers.

https://api.verisk.com/iso-claimsearch/v1/claims

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
{
  "lossDate": "2024-01-10",
  "lossType": "Collision",
  "claimNumber": "CL-1234",
  "policyNumber": "POL-000123",
  "lineOfBusiness": "PersonalAuto"
}
curl -X POST "https://api.verisk.com/iso-claimsearch/v1/claims" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"lossDate":"2024-01-10","lossType":"Collision","claimNumber":"CL-1234","policyNumber":"POL-000123","lineOfBusiness":"PersonalAuto"}'
import requests
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
data = {
    "lossDate": "2024-01-10",
    "lossType": "Collision",
    "claimNumber": "CL-1234",
    "policyNumber": "POL-000123",
    "lineOfBusiness": "PersonalAuto"
}
response = requests.post(
    "https://api.verisk.com/iso-claimsearch/v1/claims",
    headers=headers,
    json=data,
)
print(response.json())
const url = 'https://api.verisk.com/iso-claimsearch/v1/claims';

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({
  "lossDate": "2024-01-10",
  "lossType": "Collision",
  "claimNumber": "CL-1234",
  "policyNumber": "POL-000123",
  "lineOfBusiness": "PersonalAuto"
}),
}); 
const data = await response.json();
console.log(data);
package main

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

func main() {
	targetURL := "https://api.verisk.com/iso-claimsearch/v1/claims"
	jsonData, _ := json.Marshal({"lossDate":"2024-01-10","lossType":"Collision","claimNumber":"CL-1234","policyNumber":"POL-000123","lineOfBusiness":"PersonalAuto"})
	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.verisk.com/iso-claimsearch/v1/claims")

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 = "{\"lossDate\":\"2024-01-10\",\"lossType\":\"Collision\",\"claimNumber\":\"CL-1234\",\"policyNumber\":\"POL-000123\",\"lineOfBusiness\":\"PersonalAuto\"}"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.verisk.com/iso-claimsearch/v1/claims";
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "Content-Type: application/json",
        "Authorization: Bearer YOUR_ACCESS_TOKEN",
        "Content-Type: application/json"
    ]),
    "content" => json_encode({"lossDate":"2024-01-10","lossType":"Collision","claimNumber":"CL-1234","policyNumber":"POL-000123","lineOfBusiness":"PersonalAuto"}),
]];
$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 ISO/Verisk member agreement — contact [email protected]
  2. Access to developer.verisk.com portal provided upon agreement
  3. Guidewire Marketplace: pre-built ClaimSearch accelerator for ClaimCenter
  4. FNOL match search should be triggered automatically at claim creation in Guidewire
  5. Response includes match score and match category (e.g. Exact, Similar, Suspicious)
  6. Test data and sandbox environment provided by Verisk during onboarding

What can you build with Verisk ISO ClaimSearch API?

Verisk ISO ClaimSearch 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. Verisk ISO ClaimSearch 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 ↗