Trellis Connect API v1.1.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Streamline insurance quotes by fetching information from existing insurers / institutions
Looking for our Widget SDK Docs? Find them here: https://github.com/trellisconnect/js-sdk-docs
There are two ways to authenticate with the Trellis API endpoints:
- SecretKeyAuth: To be used from private backend servers ONLY. Pass the X-API-Client-Id and X-API-Secret-Key in the headers for authentication.
- TemporaryAccessKeyAuthForConnectionId: To be used from client pages. Pass the X-API-Client-Id and X-API-Temporary-Access-Key in the headers for authentication. Note that temporary access keys are valid only for a limited time and are intended to be used by the client's browser in the workflow after account creation. You can get the temporaryAccessKey from the onSuccess handler from the Trellis Widget SDK.
The basic flow of a Trellis integration is as follows
- Get your Client ID and Secret Key from your point of contact at Trellis.
- Get a Trellis Account ID from the Trellis Widget (passed in the onSuccess callback).
- Get basic information about an account with the GET /account endpoint documented below
- Retrieve policy information with the GET /policies endpoint documented below. IMPORTANT: This endpoint will return 400 with a body of PRODUCT_NOT_READY if we're still in the process of fetching policies for this accountId. You can check whether policies are available via the policiesAvailable flag on the account returned in /account.
Base URLs:
Email: Support License: Apache 2.0
Authentication
-
API Key (ClientIdKeyAuth)
- Parameter Name: X-API-Client-Id, in: header.
-
API Key (SecretKeyAuth)
- Parameter Name: X-API-Secret-Key, in: header.
-
API Key (TemporaryAccessKeyAuthForConnectionId)
- Parameter Name: X-API-Temporary-Access-Key, in: header.
Accounts
/account/{accountId}
Code samples
# You can also use wget
curl -X GET https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId} \
-H 'Accept: application/json' \
-H 'X-API-Client-Id: API_KEY' \
-H 'X-API-Secret-Key: API_KEY'
GET https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId} HTTP/1.1
Host: api.trellisconnect.com
Accept: application/json
const headers = {
'Accept':'application/json',
'X-API-Client-Id':'API_KEY',
'X-API-Secret-Key':'API_KEY'
};
fetch('https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'X-API-Client-Id' => 'API_KEY',
'X-API-Secret-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'X-API-Client-Id': 'API_KEY',
'X-API-Secret-Key': 'API_KEY'
}
r = requests.get('https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}', headers = headers)
print(r.json())
'application/json',
'X-API-Client-Id' => 'API_KEY',
'X-API-Secret-Key' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"X-API-Client-Id": []string{"API_KEY"},
"X-API-Secret-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /account/{accountId}
Return information concerning a given user account, including the present validity of the access credentials and the status of retrieving and processing the user's insurance information. Requires the X-API-Client-Id and X-API-Secret-Key header. This endpoint should be called by your application server because it requires your API Secret Key, which is not safe to share with users' web browsers.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID from POST /account |
Example responses
200 Response
{
"accountId": "1234-abcd-edf1-1231-1111",
"issuer": "geico",
"loginStatus": "Access Granted",
"policiesAvailable": false,
"policyCount": 0
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | User's insurance information | Account |
401 | Unauthorized | API Client ID or Secret Key is missing or invalid | None |
404 | Not Found | No account found | None |
/account/{accountId}/policies
Code samples
# You can also use wget
curl -X GET https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies \
-H 'Accept: application/json' \
-H 'X-API-Client-Id: API_KEY' \
-H 'X-API-Secret-Key: API_KEY'
GET https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies HTTP/1.1
Host: api.trellisconnect.com
Accept: application/json
const headers = {
'Accept':'application/json',
'X-API-Client-Id':'API_KEY',
'X-API-Secret-Key':'API_KEY'
};
fetch('https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'X-API-Client-Id' => 'API_KEY',
'X-API-Secret-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'X-API-Client-Id': 'API_KEY',
'X-API-Secret-Key': 'API_KEY'
}
r = requests.get('https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies', headers = headers)
print(r.json())
'application/json',
'X-API-Client-Id' => 'API_KEY',
'X-API-Secret-Key' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"X-API-Client-Id": []string{"API_KEY"},
"X-API-Secret-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.trellisconnect.com/trellis/connect/1.1.0/account/{accountId}/policies", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /account/{accountId}/policies
Return insurance policies associated with this user account.
Requires X-API-Client-Id and either the X-API-Secret-Key header OR the X-Temporary-Access-Key header.
This endpoint should be called by your application server because it requires your API Secret Key, which is not safe to share with users' web browsers.
NOTE: This endpoint should be polled and may take up to 5 minutes to return policy information. Most policies will be returned much sooner.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
accountId | path | string | true | Account ID from POST /account |
Example responses
200 Response
{
"policies": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"issuer": "geico",
"policyNumber": "5232-11-255-22",
"policyHolder": {
"name": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"address": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"phoneNumber": "(123) 456-2233",
"email": "johnksmith@gmail.com",
"isHomeOwner": true
},
"policyTermMonths": 6,
"paymentScheduleMonths": 1,
"numberOfPayments": 1,
"issueDate": "2019-01-01",
"renewalDate": "2019-07-01",
"canceledDate": "2019-04-01",
"dateRetrieved": "2019-02-01",
"premiumCents": 94200,
"operators": [
{
"name": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"gender": "female",
"maritalStatus": "married",
"education": "associates",
"relationship": "primary insured",
"birthday": "1985-08-29",
"birthdayRange": {
"start": "1988-01-01",
"end": "1988-12-31"
},
"ageLicensed": 16,
"ageLicensedInternationally": 16,
"isPrimary": true,
"driversLicenseState": "MA",
"driversLicenseNumber": "S22229999",
"email": "johnksmith@gmail.com",
"addressRaw": "123 Main St, San Francisco CA 94129",
"address": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
}
}
],
"vehicles": [
{
"year": 2015,
"vin": "WBA2F7C55FVX55555",
"make": "BMW",
"model": "228XI 2D 4X4",
"type": null,
"annualMileage": 5000,
"driver": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"use": "commute",
"garagingLocationRaw": "123 Main St, San Francisco CA 94129",
"garagingLocation": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"discounts": [
{
"name": "Good Driver",
"discountCents": 5000
}
],
"discountTotalCents": 5000,
"purchaseDate": "1999-04-12",
"antiTheftDevices": true,
"ownershipStatus": "owned",
"lienHolder": "TD Auto Finance",
"lienHolderAddress": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"lienHolderAddressRaw": "123 Main Street, New York NY 10011",
"isRideSharing": false,
"premiumCents": 12344,
"coverages": [
{
"name": "Bodily Injury Liability",
"premiumCents": 7400,
"isDeclined": false,
"perPersonLimitCents": 20000,
"perAccidentLimitCents": 40000,
"deductibleCents": 1000,
"perDayLimitCents": 40000
}
]
}
],
"discounts": [
{
"name": "Good Driver",
"discountCents": 5000
}
],
"documents": [
{
"url": "https://storage.googleapis.com/...",
"urlExpiration": "2020-09-24",
"type": "DEC_PAGE"
}
]
}
],
"status": "READY",
"issuerName": "GEICO"
}
403 Response
"string"
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Returned account policy information | PolicyList |
400 | Bad Request | PRODUCT_NOT_READY -- Policies are still being retrieved. Check /account/{accountId} for retrieval status. | None |
401 | Unauthorized | API key is missing or invalid | None |
403 | Forbidden | Missing required permisson to access policies for this connecton. | string |
404 | Not Found | No policies found | None |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
401 | X-API-Client-Id | string | none | |
401 | X-API-Secret-Key | string | none |
Schemas
Account
{
"accountId": "1234-abcd-edf1-1231-1111",
"issuer": "geico",
"loginStatus": "Access Granted",
"policiesAvailable": false,
"policyCount": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accountId | string | false | none | none |
issuer | string | false | none | none |
loginStatus | string | false | none | An enum value explaining the current state of Trellis's attempt to login with a given set of credentials |
policiesAvailable | boolean | false | none | false until Trellis has completed extracting all account policies from the institution |
policyCount | integer | false | none | The number of policies Trellis was able to identify from the institution |
Enumerated Values
Property | Value |
---|---|
loginStatus | Access Granted |
loginStatus | Access Denied |
loginStatus | Access In Progress |
loginStatus | Access Attempt Aborted |
Address
{
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
number | integer | false | none | none |
street | string | false | none | none |
type | string | false | none | none |
sec_unit_type | string | false | none | none |
sec_unit_num | integer | false | none | none |
city | string | false | none | none |
state | string | false | none | none |
zip | integer(int32) | false | none | none |
plus4 | integer(int32) | false | none | none |
Coverage
{
"name": "Bodily Injury Liability",
"premiumCents": 7400,
"isDeclined": false,
"perPersonLimitCents": 20000,
"perAccidentLimitCents": 40000,
"deductibleCents": 1000,
"perDayLimitCents": 40000
}
Represents a single type of coverage on a policy. A missing/declined coverage may show up in this list as declined ("isDeclined = true") or it may be omitted entirely. Here is a mapping of coverage type to which amounts may appear on an instance of that coverage type:
Bodily Injury Liability: ['perPersonLimitCents', 'perAccidentLimitCents']
Property Damage Liability: ['perPersonLimitCents', 'perAccidentLimitCents']
Uninsured Motorist Bodily Injury: ['perPersonLimitCents', 'perAccidentLimitCents']
Underinsured Motorist Bodily Injury: ['perPersonLimitCents', 'perAccidentLimitCents']
Uninsured Motorist Property Damage: ['perAccidentLimitCents']
Unerinsured Motorist Property Damage: ['perAccidentLimitCents']
Comprehensive: ['deductibleCents']
Collision: ['deductibleCents']
Emergency Road Service: ['perAccidentLimitCents']
Car Rental & Travel Expenses: ['perDayLimitCents', 'perAccidentLimitCents']
Medical Payments: ['perPersonLimitCents']
Personal Injury Protection: ['perPersonLimitCents', 'deductibleCents']
Mechanical Breakdown: ['deductibleCents']
Vanishing Deductible: ['deductibleCents']
Rideshare Gap: []
Permissive User: []
Optional Basic Economic Loss: ['perAccidentLimitCents']
Accidental Death and Dismemberment: ['perAccidentLimitCents']
Road Trip Accident Accomodations: ['perAccidentLimitCents']
Collision Deductible Waiver: []
Custom Parts and Equipment: ['perAccidentLimitCents']
Loan/Lease Payoff: []
Comprehensive Glass: ['deductibleCents']
Work Loss Benefit: ['perMonthLimitCents', 'perWeekLimitCents']
Necessary Expenses: ['perDayLimitCents']
Disability: []
Guest Personal Injury Protection: []
Additional Personal Injury Protection: []
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | See Enumerated Values below |
premiumCents | integer(int32) | false | none | none |
isDeclined | boolean | false | none | May be null |
perPersonLimitCents | integer(int32) | false | none | See coverage mapping above for which coverage types this appears on |
perAccidentLimitCents | integer(int32) | false | none | See coverage mapping above for which coverage types this appears on |
deductibleCents | integer(int32) | false | none | See coverage mapping above for which coverage types this appears on |
perDayLimitCents | integer(int32) | false | none | See coverage mapping above for which coverage types this appears on |
Enumerated Values
Property | Value |
---|---|
name | Bodily Injury Liability |
name | Property Damage Liability |
name | Uninsured Motorist Bodily Injury |
name | Underinsured Motorist Bodily Injury |
name | Uninsured Motorist Property Damage |
name | Unerinsured Motorist Property Damage |
name | Comprehensive |
name | Collision |
name | Emergency Road Service |
name | Car Rental & Travel Expenses |
name | Medical Payments |
name | Personal Injury Protection |
name | Mechanical Breakdown |
name | Vanishing Deductible |
name | Rideshare Gap |
name | Permissive User |
name | Optional Basic Economic Loss |
name | Accidental Death and Dismemberment |
name | Road Trip Accident Accomodations |
name | Collision Deductible Waiver |
name | Custom Parts and Equipment |
name | Loan/Lease Payoff |
name | Comprehensive Glass |
name | Work Loss Benefit |
name | Necessary Expenses |
name | Disability |
name | Guest Personal Injury Protection |
name | Additional Personal Injury Protection |
Discount
{
"name": "Good Driver",
"discountCents": 5000
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | false | none | none |
discountCents | integer | false | none | none |
Enumerated Values
Property | Value |
---|---|
name | Good Driver |
name | Customer Loyalty |
name | Homeowner |
name | Multi-Product |
name | Multi-Vehicle |
name | AutoPay |
name | New Car |
name | Professional |
name | Auto Safety Equipment |
name | Low Mileage |
name | Electric Vehicle |
name | Anti-Theft |
name | Automatic Disabling |
name | OnStar |
name | Vehicle Recovery Device |
name | Audible Alarm |
name | VIN Etching |
name | Manual Disabling |
name | Other |
Document
{
"url": "https://storage.googleapis.com/...",
"urlExpiration": "2020-09-24",
"type": "DEC_PAGE"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
url | string(url) | false | none | Signed, expiring public URL to a policy document |
urlExpiration | string(date) | false | none | URL expiration date |
type | string | false | none | Document type, see below for the list of possible values |
Enumerated Values
Property | Value |
---|---|
type | DEC_PAGE |
Name
{
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
firstName | string | false | none | none |
middleName | string | false | none | none |
lastName | string | false | none | none |
Operator
{
"name": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"gender": "female",
"maritalStatus": "married",
"education": "associates",
"relationship": "primary insured",
"birthday": "1985-08-29",
"birthdayRange": {
"start": "1988-01-01",
"end": "1988-12-31"
},
"ageLicensed": 16,
"ageLicensedInternationally": 16,
"isPrimary": true,
"driversLicenseState": "MA",
"driversLicenseNumber": "S22229999",
"email": "johnksmith@gmail.com",
"addressRaw": "123 Main St, San Francisco CA 94129",
"address": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | Name | false | none | none |
gender | string | false | none | none |
maritalStatus | string | false | none | none |
education | string | false | none | none |
relationship | string | false | none | This field represents the relationship of the operator to the policyholder. Its value is "Named Insured" if the operator is the policyholder. |
birthday | string | false | none | Exact date of birth of operator, if known. Only populated if an exact date of birth is found. If only a birth year or age is available, this field will be blank. |
birthdayRange | object | false | none | Issuers sometimes provide only a birthyear or age at the time of policy issuance. This implies a range of potential birthdays, which is returned here. If given the age at time of the policy, this will be the 364 day window of possible birthdays. If it is the birth year, then it is January 1st and December 31st of that year. |
» start | string | false | none | Start date of implied birthday range, inclusive. |
» end | string | false | none | Ending date of implied birthday range, inclusive. |
ageLicensed | number | false | none | none |
ageLicensedInternationally | number | false | none | none |
isPrimary | boolean | false | none | This field represents if the operator is the primary Named Insured (i.e policyholder). Exactly one operator on each policy will have isPrimary = true. |
driversLicenseState | string | false | none | none |
driversLicenseNumber | string | false | none | none |
string | false | none | none | |
addressRaw | string | false | none | The raw address pulled from the institutition. Note that the "address" field is a result from best-effort parsing the addressRaw. |
address | Address | false | none | none |
Enumerated Values
Property | Value |
---|---|
gender | female |
gender | male |
gender | nonbinary |
maritalStatus | married |
maritalStatus | single |
maritalStatus | other |
education | associates |
education | bachelors |
education | doctorate |
education | no high school diploma |
education | high school |
education | masters |
education | medical school |
education | law school |
education | other |
relationship | primary insured |
relationship | au pair |
relationship | aunt |
relationship | brother |
relationship | brother-in-law |
relationship | cousin |
relationship | daughter |
relationship | daughter-in-law |
relationship | registered domestic partner |
relationship | domestic partner |
relationship | estranged spouse |
relationship | est-domestic partner |
relationship | est-registered domestic partner |
relationship | ex-domestic partner |
relationship | ex-registered domestic partner |
relationship | ex-spouse |
relationship | father |
relationship | father-in-law |
relationship | fiance/fiancee |
relationship | friend |
relationship | granddaughter |
relationship | grandfather |
relationship | grandmother |
relationship | grandson |
relationship | mother |
relationship | mother-in-law |
relationship | nephew |
relationship | niece |
relationship | other |
relationship | roommate |
relationship | sister |
relationship | sister-in-law |
relationship | son |
relationship | son-in-law |
relationship | spouse |
relationship | stepbrother |
relationship | stepdaughter |
relationship | stepfather |
relationship | stepmother |
relationship | stepsister |
relationship | stepson |
relationship | uncle |
Policy
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"issuer": "geico",
"policyNumber": "5232-11-255-22",
"policyHolder": {
"name": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"address": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"phoneNumber": "(123) 456-2233",
"email": "johnksmith@gmail.com",
"isHomeOwner": true
},
"policyTermMonths": 6,
"paymentScheduleMonths": 1,
"numberOfPayments": 1,
"issueDate": "2019-01-01",
"renewalDate": "2019-07-01",
"canceledDate": "2019-04-01",
"dateRetrieved": "2019-02-01",
"premiumCents": 94200,
"operators": [
{
"name": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"gender": "female",
"maritalStatus": "married",
"education": "associates",
"relationship": "primary insured",
"birthday": "1985-08-29",
"birthdayRange": {
"start": "1988-01-01",
"end": "1988-12-31"
},
"ageLicensed": 16,
"ageLicensedInternationally": 16,
"isPrimary": true,
"driversLicenseState": "MA",
"driversLicenseNumber": "S22229999",
"email": "johnksmith@gmail.com",
"addressRaw": "123 Main St, San Francisco CA 94129",
"address": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
}
}
],
"vehicles": [
{
"year": 2015,
"vin": "WBA2F7C55FVX55555",
"make": "BMW",
"model": "228XI 2D 4X4",
"type": null,
"annualMileage": 5000,
"driver": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"use": "commute",
"garagingLocationRaw": "123 Main St, San Francisco CA 94129",
"garagingLocation": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"discounts": [
{
"name": "Good Driver",
"discountCents": 5000
}
],
"discountTotalCents": 5000,
"purchaseDate": "1999-04-12",
"antiTheftDevices": true,
"ownershipStatus": "owned",
"lienHolder": "TD Auto Finance",
"lienHolderAddress": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"lienHolderAddressRaw": "123 Main Street, New York NY 10011",
"isRideSharing": false,
"premiumCents": 12344,
"coverages": [
{
"name": "Bodily Injury Liability",
"premiumCents": 7400,
"isDeclined": false,
"perPersonLimitCents": 20000,
"perAccidentLimitCents": 40000,
"deductibleCents": 1000,
"perDayLimitCents": 40000
}
]
}
],
"discounts": [
{
"name": "Good Driver",
"discountCents": 5000
}
],
"documents": [
{
"url": "https://storage.googleapis.com/...",
"urlExpiration": "2020-09-24",
"type": "DEC_PAGE"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
issuer | string | false | none | none |
policyNumber | string | false | none | none |
policyHolder | object | false | none | Refers to the person who owns and is covered under a given insurance policy. |
» name | Name | false | none | none |
» address | Address | false | none | none |
» phoneNumber | string | false | none | none |
string | false | none | none | |
» isHomeOwner | boolean | false | none | Absence of this field implies we have no homeownership information |
policyTermMonths | integer | false | none | Length of the policy in months |
paymentScheduleMonths | integer | false | none | How often is the policyHolder making payments in months |
numberOfPayments | integer | false | none | How many payments the policyHolder will make over the length of the policy. |
issueDate | string(date) | false | none | none |
renewalDate | string(date) | false | none | none |
canceledDate | string(date) | false | none | none |
dateRetrieved | string(date) | false | none | none |
premiumCents | integer(int32) | false | none | none |
operators | [Operator] | false | none | none |
vehicles | [Vehicle] | false | none | none |
discounts | [Discount] | false | none | none |
documents | [Document] | false | none | Links to policy documents, if any |
PolicyList
{
"policies": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"issuer": "geico",
"policyNumber": "5232-11-255-22",
"policyHolder": {
"name": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"address": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"phoneNumber": "(123) 456-2233",
"email": "johnksmith@gmail.com",
"isHomeOwner": true
},
"policyTermMonths": 6,
"paymentScheduleMonths": 1,
"numberOfPayments": 1,
"issueDate": "2019-01-01",
"renewalDate": "2019-07-01",
"canceledDate": "2019-04-01",
"dateRetrieved": "2019-02-01",
"premiumCents": 94200,
"operators": [
{
"name": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"gender": "female",
"maritalStatus": "married",
"education": "associates",
"relationship": "primary insured",
"birthday": "1985-08-29",
"birthdayRange": {
"start": "1988-01-01",
"end": "1988-12-31"
},
"ageLicensed": 16,
"ageLicensedInternationally": 16,
"isPrimary": true,
"driversLicenseState": "MA",
"driversLicenseNumber": "S22229999",
"email": "johnksmith@gmail.com",
"addressRaw": "123 Main St, San Francisco CA 94129",
"address": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
}
}
],
"vehicles": [
{
"year": 2015,
"vin": "WBA2F7C55FVX55555",
"make": "BMW",
"model": "228XI 2D 4X4",
"type": null,
"annualMileage": 5000,
"driver": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"use": "commute",
"garagingLocationRaw": "123 Main St, San Francisco CA 94129",
"garagingLocation": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"discounts": [
{
"name": "Good Driver",
"discountCents": 5000
}
],
"discountTotalCents": 5000,
"purchaseDate": "1999-04-12",
"antiTheftDevices": true,
"ownershipStatus": "owned",
"lienHolder": "TD Auto Finance",
"lienHolderAddress": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"lienHolderAddressRaw": "123 Main Street, New York NY 10011",
"isRideSharing": false,
"premiumCents": 12344,
"coverages": [
{
"name": "Bodily Injury Liability",
"premiumCents": 7400,
"isDeclined": false,
"perPersonLimitCents": 20000,
"perAccidentLimitCents": 40000,
"deductibleCents": 1000,
"perDayLimitCents": 40000
}
]
}
],
"discounts": [
{
"name": "Good Driver",
"discountCents": 5000
}
],
"documents": [
{
"url": "https://storage.googleapis.com/...",
"urlExpiration": "2020-09-24",
"type": "DEC_PAGE"
}
]
}
],
"status": "READY",
"issuerName": "GEICO"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
policies | [Policy] | false | none | none |
status | string | false | none | Whether or not policies are ready to be consumed. |
issuerName | string | false | none | Name of the issuer we got the policies from. |
Enumerated Values
Property | Value |
---|---|
status | READY |
status | NOT_READY |
Vehicle
{
"year": 2015,
"vin": "WBA2F7C55FVX55555",
"make": "BMW",
"model": "228XI 2D 4X4",
"type": null,
"annualMileage": 5000,
"driver": {
"firstName": "John",
"middleName": "K",
"lastName": "Smith"
},
"use": "commute",
"garagingLocationRaw": "123 Main St, San Francisco CA 94129",
"garagingLocation": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"discounts": [
{
"name": "Good Driver",
"discountCents": 5000
}
],
"discountTotalCents": 5000,
"purchaseDate": "1999-04-12",
"antiTheftDevices": true,
"ownershipStatus": "owned",
"lienHolder": "TD Auto Finance",
"lienHolderAddress": {
"number": 123,
"street": "Main",
"type": "St",
"sec_unit_type": "Apt",
"sec_unit_num": 2,
"city": "San Francisco",
"state": "CA",
"zip": 94111,
"plus4": 2233
},
"lienHolderAddressRaw": "123 Main Street, New York NY 10011",
"isRideSharing": false,
"premiumCents": 12344,
"coverages": [
{
"name": "Bodily Injury Liability",
"premiumCents": 7400,
"isDeclined": false,
"perPersonLimitCents": 20000,
"perAccidentLimitCents": 40000,
"deductibleCents": 1000,
"perDayLimitCents": 40000
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
year | integer(int32) | false | none | none |
vin | string | false | none | none |
make | string | false | none | none |
model | string | false | none | none |
type | string | false | none | none |
annualMileage | integer(int32) | false | none | none |
driver | Name | false | none | none |
use | string | false | none | none |
garagingLocationRaw | string | false | none | The raw garaging location pulled from the institutition. Note that the "garagingLocation" field is a result from best-effort parsing the garagingLocationRaw. |
garagingLocation | Address | false | none | none |
discounts | [Discount] | false | none | none |
discountTotalCents | integer | false | none | none |
purchaseDate | string(date) | false | none | none |
antiTheftDevices | boolean | false | none | none |
ownershipStatus | string | false | none | none |
lienHolder | string | false | none | none |
lienHolderAddress | Address | false | none | none |
lienHolderAddressRaw | string | false | none | none |
isRideSharing | boolean | false | none | none |
premiumCents | integer | false | none | none |
coverages | [Coverage] | false | none | [Represents a single type of coverage on a policy. A missing/declined coverage may show up in this list as declined ("isDeclined = true") or it may be omitted entirely. Here is a mapping of coverage type to which amounts may appear on an instance of that coverage type: Bodily Injury Liability: ['perPersonLimitCents', 'perAccidentLimitCents'] Property Damage Liability: ['perPersonLimitCents', 'perAccidentLimitCents'] Uninsured Motorist Bodily Injury: ['perPersonLimitCents', 'perAccidentLimitCents'] Underinsured Motorist Bodily Injury: ['perPersonLimitCents', 'perAccidentLimitCents'] Uninsured Motorist Property Damage: ['perAccidentLimitCents'] Unerinsured Motorist Property Damage: ['perAccidentLimitCents'] Comprehensive: ['deductibleCents'] Collision: ['deductibleCents'] Emergency Road Service: ['perAccidentLimitCents'] Car Rental & Travel Expenses: ['perDayLimitCents', 'perAccidentLimitCents'] Medical Payments: ['perPersonLimitCents'] Personal Injury Protection: ['perPersonLimitCents', 'deductibleCents'] Mechanical Breakdown: ['deductibleCents'] Vanishing Deductible: ['deductibleCents'] Rideshare Gap: [] Permissive User: [] Optional Basic Economic Loss: ['perAccidentLimitCents'] Accidental Death and Dismemberment: ['perAccidentLimitCents'] Road Trip Accident Accomodations: ['perAccidentLimitCents'] Collision Deductible Waiver: [] Custom Parts and Equipment: ['perAccidentLimitCents'] Loan/Lease Payoff: [] Comprehensive Glass: ['deductibleCents'] Work Loss Benefit: ['perMonthLimitCents', 'perWeekLimitCents'] Necessary Expenses: ['perDayLimitCents'] Disability: [] Guest Personal Injury Protection: [] Additional Personal Injury Protection: [] ] |
Enumerated Values
Property | Value |
---|---|
type | null |
type | automobile |
type | trailer |
type | motorcycle |
type | boat |
type | rv |
type | other |
use | commute |
use | business |
use | pleasure |
use | other |
ownershipStatus | owned |
ownershipStatus | financed |
ownershipStatus | leased |