Vertafore Rating API (PL Rating)
vertafore.com · Company
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
Parameter name: X-Vertafore-ApiKey (in header)
Sample Requests
Submits driver and vehicle data for real-time multi-carrier personal auto rating. Returns premium quotes from all available carriers in the configured market.
Hover any highlighted part to learn what it does
| Content-Type | application/json |
| X-Vertafore-ApiKey auth | YOUR_API_KEY |
{
"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));Submits small business data for BOP rating across participating commercial carriers.
Hover any highlighted part to learn what it does
| Content-Type | application/json |
| X-Vertafore-ApiKey auth | YOUR_API_KEY |
{
"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
- Enroll in the Vertafore partner program at vertafore.com/partners for API access
- API key is issued per agency or per platform integration — keep separate keys for dev and prod
- Carrier availability varies by state — the API response includes which carriers returned quotes
- LOB-specific endpoints: /personal-auto, /homeowners, /commercial/bop, /commercial/gl
- Rating API responses include carrier quote IDs — use these to bind via AMS360 or carrier portal
- 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?