Find an API

Search public APIs with auth details & Postman guides

← All APIs

IVANS Exchange API

ivansinsurance.com · Company

Company OAuth2 Paid Insurance Insurance Data Exchange Agency Management

IVANS Exchange is the industry-standard data exchange network connecting insurance carriers and MGAs to independent agencies. The IVANS API provides programmatic access to policy download (carrier-to-agency policy data), download activity tracking, and agency connectivity status. Used by 30,000+ independent agencies and 300+ carriers. Essential for any InsurTech integrating with the independent agency channel.

Authentication

OAuth2 OAuth2 client credentials. Separate credentials for carrier partners and agency management system vendors. Register at developer.ivansinsurance.com.

Sample Requests

GET Get agency download activity

Returns policy download activity for an agency — lists carriers that have sent data, transaction types, and processing status. Key for monitoring data sync health.

https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/downloads?status=processed&endDate=2024-01-31&startDate=2024-01-01

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Authorization Bearer YOUR_ACCESS_TOKEN
curl -X GET "https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/downloads?status=processed&endDate=2024-01-31&startDate=2024-01-01" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
params = {
    "status": "processed",
    "endDate": "2024-01-31",
    "startDate": "2024-01-01"
}
headers = {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
    "https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/downloads",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/downloads');
url.searchParams.set('status', 'processed');
url.searchParams.set('endDate', '2024-01-31');
url.searchParams.set('startDate', '2024-01-01');

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.ivansinsurance.com/exchange/v1/agencies/{agencyId}/downloads")
	q := baseURL.Query()
	q.Set("status", "processed")
	q.Set("endDate", "2024-01-31")
	q.Set("startDate", "2024-01-01")
	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.ivansinsurance.com/exchange/v1/agencies/{agencyId}/downloads")
uri.query = URI.encode_www_form({
  "status" => "processed",
  "endDate" => "2024-01-31",
  "startDate" => "2024-01-01"
})

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.ivansinsurance.com/exchange/v1/agencies/{agencyId}/downloads?" . http_build_query([
    "status" => "processed",
    "endDate" => "2024-01-31",
    "startDate" => "2024-01-01"
]);
$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));
GET Check carrier connectivity

Returns list of carriers connected to an agency via IVANS and their download configuration status.

https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/carriers

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Authorization Bearer YOUR_ACCESS_TOKEN
curl -X GET "https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/carriers" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
import requests
headers = {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(
    "https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/carriers",
    headers=headers,
)
print(response.json())
const url = 'https://api.ivansinsurance.com/exchange/v1/agencies/{agencyId}/carriers';

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.ivansinsurance.com/exchange/v1/agencies/{agencyId}/carriers"
	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.ivansinsurance.com/exchange/v1/agencies/{agencyId}/carriers")

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.ivansinsurance.com/exchange/v1/agencies/{agencyId}/carriers";
$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

Get Postman ↗
  1. Register at developer.ivansinsurance.com — separate tracks for carriers, MGAs, and AMS vendors
  2. IVANS uses ACORD AL3 format for policy download transactions — parsed by AMS systems
  3. Agency IDs are the IVANS agency number, not AMS internal IDs — map via /agencies/search
  4. IVANS provides a test environment with simulated download transactions
  5. Policy download covers: new business, renewals, endorsements, cancellations, billing
  6. For carrier integration: IVANS Download Connector handles AL3 to ACORD XML transformation

What can you build with IVANS Exchange API?

IVANS Exchange 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. IVANS Exchange 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 ↗