NAV Navigation
Shell HTTP JavaScript Ruby Python PHP Java Go

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:

  1. 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.
  2. 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

  1. Get your Client ID and Secret Key from your point of contact at Trellis.
  2. Get a Trellis Account ID from the Trellis Widget (passed in the onSuccess callback).
  3. Get basic information about an account with the GET /account endpoint documented below
  4. 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

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
email 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
» email 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