Vertafore AMS360 API
vertafore.com · Company
REST API for Vertafore AMS360 — one of the most widely used agency management systems (AMS) in the US independent agency market. AMS360 manages clients, policies, certificates of insurance, accounting, and carrier communications. The API enables InsurTech platforms, comparative raters, and carrier portals to read/write client and policy data into the agency's book of business. Competing directly with Applied Epic in the AMS market.
Authentication
Sample Requests
Returns full customer (insured) account including contact details, policies, and account executive assignment.
Hover any highlighted part to learn what it does
| Authorization | Bearer YOUR_ACCESS_TOKEN |
curl -X GET "https://api.vertafore.com/ams360/v1/customers/{customerId}" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"import requests
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
"https://api.vertafore.com/ams360/v1/customers/{customerId}",
headers=headers,
)
print(response.json())const url = 'https://api.vertafore.com/ams360/v1/customers/{customerId}';
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.vertafore.com/ams360/v1/customers/{customerId}"
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.vertafore.com/ams360/v1/customers/{customerId}")
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.vertafore.com/ams360/v1/customers/{customerId}";
$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));Returns all policies associated with a customer account, including carrier, line of business, premium, and effective dates.
Hover any highlighted part to learn what it does
| Authorization | Bearer YOUR_ACCESS_TOKEN |
curl -X GET "https://api.vertafore.com/ams360/v1/customers/{customerId}/policies?status=Active&pageSize=25" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"import requests
params = {
"status": "Active",
"pageSize": "25"
}
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
"https://api.vertafore.com/ams360/v1/customers/{customerId}/policies",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.vertafore.com/ams360/v1/customers/{customerId}/policies');
url.searchParams.set('status', 'Active');
url.searchParams.set('pageSize', '25');
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"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.vertafore.com/ams360/v1/customers/{customerId}/policies")
q := baseURL.Query()
q.Set("status", "Active")
q.Set("pageSize", "25")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
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.vertafore.com/ams360/v1/customers/{customerId}/policies")
uri.query = URI.encode_www_form({
"status" => "Active",
"pageSize" => "25"
})
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.vertafore.com/ams360/v1/customers/{customerId}/policies?" . http_build_query([
"status" => "Active",
"pageSize" => "25"
]);
$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));Postman Setup Guide
- Register your application at developer.vertafore.com to receive OAuth2 client credentials
- AMS360 uses per-agency authorization — each agency must grant consent via OAuth2 auth code flow
- Vertafore's API ecosystem also includes TransactNOW, Orange Partner Platform, and AgencyZoom APIs
- Developer sandbox environment available after app registration
- Webhook support for policy change notifications and renewal reminders
- AMS360 data model: Customer > Policy > Line > Coverage — traverse this hierarchy in API calls
What can you build with Vertafore AMS360 API?
Vertafore AMS360 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. Vertafore AMS360 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?