curl --request GET \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType} \
--header 'Authorization: <api-key>'import requests
url = "https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}', 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://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}",
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: <api-key>"
],
]);
$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://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440301",
"fieldModelV1Data": {
"exposureName": "Acme Corp HQ"
},
"createdAt": 1736937000,
"createdBy": "google-oauth2|123456789",
"updatedAt": 1736937000,
"updatedBy": null,
"createdByName": "Jane Adjuster",
"updatedByName": null
}
],
"hasMore": false,
"totalCount": 1
}List Entities
Returns a paginated list of {entityType} entities. One parametric endpoint
serves all six CRUD entity types.
Free-text search (filterText) matches the entity’s configured display
field (e.g. exposureName, submissionNumber/submissionName).
Field-value filtering (filters) accepts tenant filters only as
{ fieldType: "declared", key, operator, value }, where key names a
listFilters definition for this entity’s list surface. Explicit fixed
system-filter forms remain supported. Implicit field-derived forms fail
with HTTP 400 and code implicit-filters-disabled.
Sorting is config-driven — sortBy accepts createdAt (default),
updatedAt, or any configured field referenceId.
Pagination is zero-based (pageNumber=0 is the first page); pageSize
defaults to 51. To enumerate a whole book, walk pageNumber upward until
hasMore is false, pairing it with an explicit sortBy / sortDirection
so the ordering is fixed across the walk. pageNumber must be a
non-negative integer and pageSize a positive integer; anything else is a
400.
Unrecognised query parameters are rejected with 400 InvalidRequest,
and the message lists the ones this endpoint accepts. Paging has exactly one
spelling here — pageNumber — so ?page=, ?offset=, ?cursor= and
friends are errors rather than silently ignored. They used to be ignored,
which made a book larger than one page impossible to walk: the endpoint kept
answering with the first page and hasMore: true.
Required permission: <resource>.view for the entity’s resource (event.view,
exposure.view, quote.view, submission.view, person.view,
organization.view), derived from the path’s
{entityType}. See
Permissions.
curl --request GET \
--url https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType} \
--header 'Authorization: <api-key>'import requests
url = "https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}', 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://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}",
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: <api-key>"
],
]);
$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://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://go.aiinsurance.io/api/v1/companies/{companyId}/entities/{entityType}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440301",
"fieldModelV1Data": {
"exposureName": "Acme Corp HQ"
},
"createdAt": 1736937000,
"createdBy": "google-oauth2|123456789",
"updatedAt": 1736937000,
"updatedBy": null,
"createdByName": "Jane Adjuster",
"updatedByName": null
}
],
"hasMore": false,
"totalCount": 1
}Authorizations
API key authentication. Send your raw API key as the Authorization header value with NO scheme prefix — Authorization: YOUR-API-KEY. Do NOT prefix it with Bearer or ApiKey, and do not use an X-API-Key header; those are not accepted.
Path Parameters
Company identifier
Field Model V1 entity type (lowercase kebab-case URL slug). One of the six
CRUD entity types: event, exposure, quote, submission, person,
organization. policy is NOT valid here — Policy has no generic CRUD (its
writes go through the policy transaction endpoints), though it does have a
read-only /configuration schema.
event, exposure, quote, submission, person, organization Query Parameters
Search across quote number, description, and other text fields
JSON-encoded array of filters applied server-side with AND semantics.
Tenant filters must be { "fieldType": "declared", "key", "operator", "value" }, where key names a listFilters definition for this entity's
list surface. The definition controls the expression, logical result type, and
permitted operators.
Explicit fixed system-filter forms (systemUser, systemDate, and systemId)
are also supported. Implicit field-derived forms such as text, number,
optionSet, or join fail with HTTP 400 and code
implicit-filters-disabled; use the corresponding declared definition key.
See the Configuration API for the tenant's listFilters definitions.
Field to sort by. Accepts createdAt, updatedAt, or any configured field
referenceId for the entity type (sorting is config-driven). Default createdAt.
Sort direction (default desc)
asc, desc Zero-based page index (default 0).
x >= 0Number of records per page (default 51).
x >= 1