curl --request GET \
--url https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"from": 5949,
"to": 5949,
"coverage": [
{
"year": 5949,
"exhibit": "part-1b",
"available": true
}
],
"lineSelections": [
{
"year": 5949,
"exhibit": "part-1b",
"codes": [
"<string>"
]
}
],
"lineResults": [
{
"id": "<string>",
"carrier": {
"id": "<string>",
"name": "<string>"
},
"naicCompanyCode": "<string>",
"year": 5949,
"line": {
"code": "<string>",
"name": "<string>",
"family": "allied-lines",
"scheme": "statement",
"note": "<string>"
},
"sources": [
{
"exhibit": "<string>",
"statementYear": 5949,
"line": "<string>"
}
],
"exhibit": "part-1b",
"premium": {
"direct": 123,
"assumedAffiliated": 123,
"assumedUnaffiliated": 123,
"cededAffiliated": 123,
"cededUnaffiliated": 123,
"net": 123
}
}
],
"nextCursor": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}List a carrier’s line results
Requires the organization’s NAIC dataset grant after acceptance of the NAIC terms. The grant is checked before carrier lookup on every request. Each successful request costs 0.02plus0.01 per returned observation. Failed requests are not charged; repeated successful reads are charged again. Read reported Part 1B premium and IEE Part 3 underwriting observations, preserving each exhibit, source company, year and line as a separate resource. Whole US dollars; IEE money is scaled from thousands. Null is not zero; negative values are preserved. Supply both from and to (inclusive, at most eight years), or omit both for the latest loaded year in the selected exhibits. Optional exhibit, exact line or lineFamily filters. Families resolve separately by exhibit/year; exact codes never expand. Coverage describes loaded exhibit-years before filtering, not completeness. Line 35 is a total and line 34 aggregate write-ins; never sum them with their components. Individual write-ins, footnotes, calculated ratios and cross-exhibit joins are not included. Ordered by source company, ascending year, exhibit and line code (text ordering). Repeat original filters and limit with nextCursor. Omitted year bounds remain pinned; cursors bind caller, carrier identifiers and query and expire after 24 hours. Live paging is not a snapshot. Read returned lineResults[].id at GET /insurance/carriers//line-results/. Read-only; private, no-store.
curl --request GET \
--url https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.canary.effectiveai.app/api/v2/insurance/carriers/{carrierId}/line-results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"from": 5949,
"to": 5949,
"coverage": [
{
"year": 5949,
"exhibit": "part-1b",
"available": true
}
],
"lineSelections": [
{
"year": 5949,
"exhibit": "part-1b",
"codes": [
"<string>"
]
}
],
"lineResults": [
{
"id": "<string>",
"carrier": {
"id": "<string>",
"name": "<string>"
},
"naicCompanyCode": "<string>",
"year": 5949,
"line": {
"code": "<string>",
"name": "<string>",
"family": "allied-lines",
"scheme": "statement",
"note": "<string>"
},
"sources": [
{
"exhibit": "<string>",
"statementYear": 5949,
"line": "<string>"
}
],
"exhibit": "part-1b",
"premium": {
"direct": 123,
"assumedAffiliated": 123,
"assumedUnaffiliated": 123,
"cededAffiliated": 123,
"cededUnaffiliated": 123,
"net": 123
}
}
],
"nextCursor": "<string>"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}{
"error": "<string>",
"code": "<string>",
"details": [
{
"location": "path",
"path": [
"<string>"
],
"code": "required",
"message": "<string>"
}
],
"requestId": "<string>",
"dataset": "naic"
}Authorizations
Effective API key. Send Authorization: Bearer sk-eai-...
Path Parameters
Managed carrier_ ID or bare checked code. Legacy five-digit NAIC codes and naic: codes are also accepted.
1 - 100Query Parameters
Inclusive first statement year; supply with to. At most eight years. Omit both for the latest loaded year across the selected exhibits, before line filtering.
^\d{4}$Inclusive last statement year; supply with from. Use equal bounds for one year. Omitted bounds stay pinned in a continuation.
^\d{4}$Read Part 1B premium observations or IEE Part 3 underwriting observations. Omit for both, as separate resources.
part-1b, iee-part-3 Exact statement code. Must be catalog-known and valid in at least one selected exhibit in every requested year. Invalid exhibit/year combinations select no rows; never expands a parent. Cannot combine with lineFamily.
^\d{2}(?:\.\d{1,2})?$Resolve separately for each exhibit and year. See lineSelections for the selected codes; no summation.
allied-lines, cmp, group-ah, other-ah, inland-marine, ppa-liability, commercial-auto-liability, auto-physical-damage Maximum number of items to return (1-200).
1 <= x <= 200nextCursor from the previous page.
Response
One page of line observations.
1900 <= x <= 99991900 <= x <= 9999For every selected year/exhibit: whether any rows exist for any of this carrier’s source codes, before line filtering. True does not imply complete company/line/field coverage.
16Show child attributes
Show child attributes
Empty without a line filter. Otherwise each year/exhibit lists its selected codes; an empty codes array means an exact code is outside that exhibit’s known era.
16Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
Cursor for the next page, or null on the last page.