Zywave Insurance Agency Platform API
zywave.com · Company
API for Zywave's insurance agency platform — a suite of tools for commercial lines and employee benefits agencies. Zywave provides proposal generation, benefits administration, risk management analytics, compliance tools, and client engagement workflows. The API enables integration with agency management systems, benefits portals, and HR platforms. Key use case: syncing employer/employee benefits data between Zywave and HRIS systems.
Authentication
Sample Requests
Returns the commercial lines risk profile for a client including industry, employee count, revenue, and associated risk scores used for renewal analysis.
Hover any highlighted part to learn what it does
| Authorization | Bearer YOUR_ACCESS_TOKEN |
curl -X GET "https://api.zywave.com/v2/clients/{clientId}/risk-profile" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"import requests
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
"https://api.zywave.com/v2/clients/{clientId}/risk-profile",
headers=headers,
)
print(response.json())const url = 'https://api.zywave.com/v2/clients/{clientId}/risk-profile';
const response = await fetch(url, {
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
)
func main() {
targetURL := "https://api.zywave.com/v2/clients/{clientId}/risk-profile"
req, _ := http.NewRequest("GET", targetURL, nil)
req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
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.zywave.com/v2/clients/{clientId}/risk-profile")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_ACCESS_TOKEN"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.zywave.com/v2/clients/{clientId}/risk-profile";
$opts = ["http" => [
"method" => "GET",
"header" => implode("\r\n", [
"Authorization: Bearer YOUR_ACCESS_TOKEN"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Creates an insurance proposal document using Zywave's proposal engine. Merges client data, carrier quotes, and agency branding into a PDF proposal.
Hover any highlighted part to learn what it does
| Content-Type | application/json |
| Authorization | Bearer YOUR_ACCESS_TOKEN |
{
"lines": [
"GeneralLiability",
"WorkersComp",
"CommercialAuto"
],
"clientId": "CLT-001234",
"proposalType": "Renewal",
"agencyBranding": true,
"includeRiskAnalysis": true
}
curl -X POST "https://api.zywave.com/v2/proposals" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"lines":["GeneralLiability","WorkersComp","CommercialAuto"],"clientId":"CLT-001234","proposalType":"Renewal","agencyBranding":true,"includeRiskAnalysis":true}'import requests
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
data = {
"lines": [
"GeneralLiability",
"WorkersComp",
"CommercialAuto"
],
"clientId": "CLT-001234",
"proposalType": "Renewal",
"agencyBranding": true,
"includeRiskAnalysis": true
}
response = requests.post(
"https://api.zywave.com/v2/proposals",
headers=headers,
json=data,
)
print(response.json())const url = 'https://api.zywave.com/v2/proposals';
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({
"lines": [
"GeneralLiability",
"WorkersComp",
"CommercialAuto"
],
"clientId": "CLT-001234",
"proposalType": "Renewal",
"agencyBranding": true,
"includeRiskAnalysis": true
}),
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"bytes"
"encoding/json"
)
func main() {
targetURL := "https://api.zywave.com/v2/proposals"
jsonData, _ := json.Marshal({"lines":["GeneralLiability","WorkersComp","CommercialAuto"],"clientId":"CLT-001234","proposalType":"Renewal","agencyBranding":true,"includeRiskAnalysis":true})
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.zywave.com/v2/proposals")
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 = "{\"lines\":[\"GeneralLiability\",\"WorkersComp\",\"CommercialAuto\"],\"clientId\":\"CLT-001234\",\"proposalType\":\"Renewal\",\"agencyBranding\":true,\"includeRiskAnalysis\":true}"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.zywave.com/v2/proposals";
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Content-Type: application/json",
"Authorization: Bearer YOUR_ACCESS_TOKEN",
"Content-Type: application/json"
]),
"content" => json_encode({"lines":["GeneralLiability","WorkersComp","CommercialAuto"],"clientId":"CLT-001234","proposalType":"Renewal","agencyBranding":true,"includeRiskAnalysis":true}),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- Contact [email protected] to register your integration and receive OAuth2 credentials
- Zywave offers two API tracks: Agency Platform (commercial lines/benefits) and Broker Briefcase (content)
- Client IDs must be established in Zywave — import via /clients endpoint or sync from AMS
- Proposal generation is async — poll /proposals/{id}/status until complete, then download PDF
- Zywave also provides compliance and regulatory content APIs for insurance content delivery
- Benefits API covers enrollment, employee census, and carrier submission workflows
What can you build with Zywave Insurance Agency Platform API?
Zywave Insurance Agency Platform 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. Zywave Insurance Agency Platform 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?