Find an API

Search public APIs with auth details & Postman guides

← All APIs

Vertafore Rating API (PL Rating)

vertafore.com · Company

Company API Key Paid Insurance Rating Commercial Lines Personal Lines

Cloud-based commercial and personal lines rating API from Vertafore. PL Rating provides real-time multi-carrier rating for personal auto, home, and small commercial lines. Formerly known as Transact Now and Sapiens Rating (after Vertafore acquisition). Enables agents and direct platforms to get comparative rates from multiple carriers simultaneously. Used by thousands of agencies and embedded in agency portals.

Authentication

API Key API key issued per agency or platform through the Vertafore partner program. Passed as a header on all requests.

Parameter name: X-Vertafore-ApiKey (in header)

Sample Requests

POST Rate personal auto

Submits driver and vehicle data for real-time multi-carrier personal auto rating. Returns premium quotes from all available carriers in the configured market.

https://rating.vertafore.com/api/v2/rating/personal-auto

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Content-Type application/json
X-Vertafore-ApiKey auth YOUR_API_KEY
Request Body — data you're sending
{
  "state": "OH",
  "drivers": [
    {
      "dob": "1992-03-10",
      "lastName": "Brown",
      "firstName": "Michael",
      "violations": [],
      "licenseNumber": "OH123456"
    }
  ],
  "vehicles": [
    {
      "vin": "4T1BF1FK5LU123456",
      "make": "Toyota",
      "year": 2020,
      "model": "Camry",
      "usage": "Commute",
      "annualMiles": 12000
    }
  ],
  "coverages": {
    "collision": 500,
    "bodilyInjury": "100/300",
    "comprehensive": 500,
    "propertyDamage": "100"
  },
  "effectiveDate": "2024-04-01"
}
curl -X POST "https://rating.vertafore.com/api/v2/rating/personal-auto" \
  -H "Content-Type: application/json" \
  -H "X-Vertafore-ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"state":"OH","drivers":[{"dob":"1992-03-10","lastName":"Brown","firstName":"Michael","violations":[],"licenseNumber":"OH123456"}],"vehicles":[{"vin":"4T1BF1FK5LU123456","make":"Toyota","year":2020,"model":"Camry","usage":"Commute","annualMiles":12000}],"coverages":{"collision":500,"bodilyInjury":"100/300","comprehensive":500,"propertyDamage":"100"},"effectiveDate":"2024-04-01"}'
import requests
headers = {
    "Content-Type": "application/json",
    "X-Vertafore-ApiKey": "YOUR_API_KEY"
}
data = {
    "state": "OH",
    "drivers": [
        {
            "dob": "1992-03-10",
            "lastName": "Brown",
            "firstName": "Michael",
            "violations": [],
            "licenseNumber": "OH123456"
        }
    ],
    "vehicles": [
        {
            "vin": "4T1BF1FK5LU123456",
            "make": "Toyota",
            "year": 2020,
            "model": "Camry",
            "usage": "Commute",
            "annualMiles": 12000
        }
    ],
    "coverages": {
        "collision": 500,
        "bodilyInjury": "100/300",
        "comprehensive": 500,
        "propertyDamage": "100"
    },
    "effectiveDate": "2024-04-01"
}
response = requests.post(
    "https://rating.vertafore.com/api/v2/rating/personal-auto",
    headers=headers,
    json=data,
)
print(response.json())
const url = 'https://rating.vertafore.com/api/v2/rating/personal-auto';

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Vertafore-ApiKey': 'YOUR_API_KEY'
  },
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "state": "OH",
  "drivers": [
    {
      "dob": "1992-03-10",
      "lastName": "Brown",
      "firstName": "Michael",
      "violations": [],
      "licenseNumber": "OH123456"
    }
  ],
  "vehicles": [
    {
      "vin": "4T1BF1FK5LU123456",
      "make": "Toyota",
      "year": 2020,
      "model": "Camry",
      "usage": "Commute",
      "annualMiles": 12000
    }
  ],
  "coverages": {
    "collision": 500,
    "bodilyInjury": "100/300",
    "comprehensive": 500,
    "propertyDamage": "100"
  },
  "effectiveDate": "2024-04-01"
}),
}); 
const data = await response.json();
console.log(data);
package main

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

func main() {
	targetURL := "https://rating.vertafore.com/api/v2/rating/personal-auto"
	jsonData, _ := json.Marshal({"state":"OH","drivers":[{"dob":"1992-03-10","lastName":"Brown","firstName":"Michael","violations":[],"licenseNumber":"OH123456"}],"vehicles":[{"vin":"4T1BF1FK5LU123456","make":"Toyota","year":2020,"model":"Camry","usage":"Commute","annualMiles":12000}],"coverages":{"collision":500,"bodilyInjury":"100/300","comprehensive":500,"propertyDamage":"100"},"effectiveDate":"2024-04-01"})
	req, _ := http.NewRequest("POST", targetURL, bytes.NewBuffer(jsonData))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("X-Vertafore-ApiKey", "YOUR_API_KEY")
	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://rating.vertafore.com/api/v2/rating/personal-auto")

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["X-Vertafore-ApiKey"] = "YOUR_API_KEY"
req["Content-Type"] = "application/json"
req.body = "{\"state\":\"OH\",\"drivers\":[{\"dob\":\"1992-03-10\",\"lastName\":\"Brown\",\"firstName\":\"Michael\",\"violations\":[],\"licenseNumber\":\"OH123456\"}],\"vehicles\":[{\"vin\":\"4T1BF1FK5LU123456\",\"make\":\"Toyota\",\"year\":2020,\"model\":\"Camry\",\"usage\":\"Commute\",\"annualMiles\":12000}],\"coverages\":{\"collision\":500,\"bodilyInjury\":\"100/300\",\"comprehensive\":500,\"propertyDamage\":\"100\"},\"effectiveDate\":\"2024-04-01\"}"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://rating.vertafore.com/api/v2/rating/personal-auto";
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "Content-Type: application/json",
        "X-Vertafore-ApiKey: YOUR_API_KEY",
        "Content-Type: application/json"
    ]),
    "content" => json_encode({"state":"OH","drivers":[{"dob":"1992-03-10","lastName":"Brown","firstName":"Michael","violations":[],"licenseNumber":"OH123456"}],"vehicles":[{"vin":"4T1BF1FK5LU123456","make":"Toyota","year":2020,"model":"Camry","usage":"Commute","annualMiles":12000}],"coverages":{"collision":500,"bodilyInjury":"100/300","comprehensive":500,"propertyDamage":"100"},"effectiveDate":"2024-04-01"}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST Rate BOP (business owners policy)

Submits small business data for BOP rating across participating commercial carriers.

https://rating.vertafore.com/api/v2/rating/commercial/bop

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Content-Type application/json
X-Vertafore-ApiKey auth YOUR_API_KEY
Request Body — data you're sending
{
  "state": "FL",
  "business": {
    "name": "Main Street Bakery",
    "naics": "311811",
    "annualRevenue": 400000,
    "yearsInBusiness": 5
  },
  "location": {
    "zip": "32801",
    "city": "Orlando",
    "address": "200 Main St",
    "squareFootage": 2500
  },
  "effectiveDate": "2024-04-01"
}
curl -X POST "https://rating.vertafore.com/api/v2/rating/commercial/bop" \
  -H "Content-Type: application/json" \
  -H "X-Vertafore-ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"state":"FL","business":{"name":"Main Street Bakery","naics":"311811","annualRevenue":400000,"yearsInBusiness":5},"location":{"zip":"32801","city":"Orlando","address":"200 Main St","squareFootage":2500},"effectiveDate":"2024-04-01"}'
import requests
headers = {
    "Content-Type": "application/json",
    "X-Vertafore-ApiKey": "YOUR_API_KEY"
}
data = {
    "state": "FL",
    "business": {
        "name": "Main Street Bakery",
        "naics": "311811",
        "annualRevenue": 400000,
        "yearsInBusiness": 5
    },
    "location": {
        "zip": "32801",
        "city": "Orlando",
        "address": "200 Main St",
        "squareFootage": 2500
    },
    "effectiveDate": "2024-04-01"
}
response = requests.post(
    "https://rating.vertafore.com/api/v2/rating/commercial/bop",
    headers=headers,
    json=data,
)
print(response.json())
const url = 'https://rating.vertafore.com/api/v2/rating/commercial/bop';

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Vertafore-ApiKey': 'YOUR_API_KEY'
  },
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "state": "FL",
  "business": {
    "name": "Main Street Bakery",
    "naics": "311811",
    "annualRevenue": 400000,
    "yearsInBusiness": 5
  },
  "location": {
    "zip": "32801",
    "city": "Orlando",
    "address": "200 Main St",
    "squareFootage": 2500
  },
  "effectiveDate": "2024-04-01"
}),
}); 
const data = await response.json();
console.log(data);
package main

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

func main() {
	targetURL := "https://rating.vertafore.com/api/v2/rating/commercial/bop"
	jsonData, _ := json.Marshal({"state":"FL","business":{"name":"Main Street Bakery","naics":"311811","annualRevenue":400000,"yearsInBusiness":5},"location":{"zip":"32801","city":"Orlando","address":"200 Main St","squareFootage":2500},"effectiveDate":"2024-04-01"})
	req, _ := http.NewRequest("POST", targetURL, bytes.NewBuffer(jsonData))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("X-Vertafore-ApiKey", "YOUR_API_KEY")
	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://rating.vertafore.com/api/v2/rating/commercial/bop")

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["X-Vertafore-ApiKey"] = "YOUR_API_KEY"
req["Content-Type"] = "application/json"
req.body = "{\"state\":\"FL\",\"business\":{\"name\":\"Main Street Bakery\",\"naics\":\"311811\",\"annualRevenue\":400000,\"yearsInBusiness\":5},\"location\":{\"zip\":\"32801\",\"city\":\"Orlando\",\"address\":\"200 Main St\",\"squareFootage\":2500},\"effectiveDate\":\"2024-04-01\"}"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://rating.vertafore.com/api/v2/rating/commercial/bop";
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "Content-Type: application/json",
        "X-Vertafore-ApiKey: YOUR_API_KEY",
        "Content-Type: application/json"
    ]),
    "content" => json_encode({"state":"FL","business":{"name":"Main Street Bakery","naics":"311811","annualRevenue":400000,"yearsInBusiness":5},"location":{"zip":"32801","city":"Orlando","address":"200 Main St","squareFootage":2500},"effectiveDate":"2024-04-01"}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. Enroll in the Vertafore partner program at vertafore.com/partners for API access
  2. API key is issued per agency or per platform integration — keep separate keys for dev and prod
  3. Carrier availability varies by state — the API response includes which carriers returned quotes
  4. LOB-specific endpoints: /personal-auto, /homeowners, /commercial/bop, /commercial/gl
  5. Rating API responses include carrier quote IDs — use these to bind via AMS360 or carrier portal
  6. Vertafore provides a test environment with simulated carrier responses

What can you build with Vertafore Rating API (PL Rating)?

Vertafore Rating API (PL Rating) 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

API Key authentication. You'll receive a key after signing up. Send it with every request — in a header or query parameter. Keep it out of client-side code and never commit it to version control. Vertafore Rating API (PL Rating) 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 ↗