Setup

The DRN Team will provide a client_id and client_secret. Utilize these values in the request parameters provided to receive your Authorization Bearer Token to be used in the header of your future requests. These tokens expire every 60 minutes by default, so be sure you have a way to programmatically check the status and / or refresh your tokens.

Parameters

When passing parameters to create or update an object, you should pass a JSON object containing the appropriate attribute names and values as key-value pairs. When you use this format, you should specify that you are sending a JSON object in the header by setting the Content-Type header to application/json.

Authentication

To interact programmatically with the data in your account, the server will require you to present an Authorization Bearer Token. You can request this with the following request using your client_id and client_secret.

Url: https://insurance.drndata.com/oauth/token

Example Request:

"grant_type": "client_credentials",
"client_id": “”,
"client_secret": "",
"scope": ""

Example Response:

{"token_type":"Bearer",
"expires_in":1296000,
"access_token":"{AccessTokenHere}"}

When an API request is made, a bearer token is required in the header. The client_id and client_secret are used to obtain a bearer token. Tokens are obtained through an API POST request to the following URL: https://drnsights.drndata.com/oauth/token/. The form of the API POST should be as follows:

<pre>{

      client_id: { client id },

      client_secret: { client secret },

      grant_type: 'client_credentials'

}</pre>

Bearer tokens expire after 15 days. When a bearer token has expired, please request another at https://drnsights.drndata.com/oath/token. If you send a request before your token is expired, it will refresh for an additional15 days.

Requests

The rest of the API URLs referenced in this documentation start with the following base part:

https://insurance.drndata.com/api-client

Any tool that is fluent in HTTP can communicate with the API simply by properly formatting and requesting from the correct URI. Requests should be made using the HTTPS protocol so that traffic is encrypted. The interface responds to different methods depending on the action required.

GarageAware API

The DRNSights GarageAware API allows you to request GarageAware data by VIN and policy location. The API will return an aggregated score based on the most commonly sighted location. DRN classifies the score into the following color-coded buckets. Additional return objects are described below:

Color Description
White No sightings
Green At least 2 sleep hour sightings at given and at least 5 total sightings at given
Red+ Not green and at least 2 sleep hour sightings at discovered and at least 10 total sightings at discovered and premium differential > $99
Red Not green and not red+ and at least 5 total sightings at discovered and premium differential > $99
Yellow+ Sighted but not green, not red+, and not red with positive premium differential
Yellow Sighted but not green, not red+, and not red without positive premium differential

GET API - GarageAware

Get all locations for a VIN.

The following endpoint will return locations based on the parameters passed.

In order for DRN to properly determine premium differentials, a valid rating table (by zipcode) needs to be provided to DRN before utilizing the GarageAware API. This will be part of your post-sales on-boarding process and will be loaded & updated by DRN.

URLs

https://platform.drndata.com/api/Insurance/Garage
http://staging.external.drndata.com/api/Insurance/Garage
PARAMETERS
Param Name Types Required Options / Notes
vin String true MAX 17 character VINs
policy_id Int true
street String false
city String false
state String false
zip String true Please include leading zeros if necessary (I.E Highland Park, NJ = 08904)
latitude Float false Required if ZIP is not present
longitude Float false Required if ZIP is not present
start date false
end date false

Sample Response

{
  "code": 100, // integer
  "message": null, // string
  "data": {
    "given": {
      "location": {
        "address": "", // string
        "latitude": NULL, // float
        "longitude": NULL, // float
        "method": "", // string
        "premium": 0 // float
      },
      "sightings": {
        "total": 0, // integer
        "night": 0 // integer
      },
      "visits": 0, // integer
      "visits_area": "", // integer
      "vehicle": {
        "vin": "", // string
        "plate": {
          "number": "", // string
          "state": "" // string
        }
      }
    },
    "sightings": "", 
    "distances": {
      "1": 0, // integer
      "5": 0, // integer
      "10": 0, // integer
      "25": 0, // integer
      "50": 0, // integer
      "150": 1 // integer
    },
    "score": {
      "location": {
        "state": "", // string
        "zipcode": "", // string
        "latitude": 0, // float
        "longitude": 0, // float
        "distance_from_given": 0, // integer
        "premium": 0, // float
        "premium_differential": 0, // float
        "address": "" // string
      },
      "visits": 3, // integer
      "sightings": {
        "night": 1, // integer
        "total": 1 // integer
      },
      "vehicle_popularity_percent": 33, // integer
      "date_first_seen": "2017-03-16T02:04:40+00:00", // string
      "date_last_seen": "2017-03-16T02:04:40+00:00", // string
      "type": "residential", // string
      "score": "Yellow" // string
    },
    "locations": {
      "residential": {
        "location": {
          "state": "", // string
          "zipcode": "", // string
          "latitude": 0, // float
          "longitude": 0, // float
          "distance_from_given":0, // integer
          "premium": 0, // float
          "premium_differential": 0, // float
          "address": ""
        },
        "visits": 3, // integer
        "sightings": {
          "night": 1, // integer
          "total": 1 // integer
        },
        "vehicle_popularity_percent": 33, // integer
        "date_first_seen": "2017-03-16T02:04:40+00:00",
        "date_last_seen": "2017-03-16T02:04:40+00:00",
        "type": "residential", // string
        "score": "Yellow" // string
      },
      "workplace": {
        "location": null,
        "visits": 0, // integer
        "sightings": {
          "night": 0, // integer
          "total": 0 // integer
        },
        "vehicle_popularity_percent": 0, // integer
        "date_first_seen": null, // string
        "date_last_seen": null, // string
        "type": null, // string
        "score": "White" // string
      },
      "public": {
        "location": null,
        "visits": 0, // integer
        "sightings": {
          "night": 0, // integer
          "total": 0 // integer
        },
        "vehicle_popularity_percent": 0, // integer
        "date_first_seen": null, // string
        "date_last_seen": null, // string
        "type": null, // string
        "score": "White" // string
      },
      "other": {
        "location": null,
        "visits": 0, // integer
        "sightings": {
          "night": 0, // integer
          "total": 0 // integer
        },
        "vehicle_popularity_percent": 0, // integer
        "date_first_seen": null, // string
        "date_last_seen": null, // string
        "type": null, // string
        "score": "White" // string
      }
    },
    "scans": []
  }
}

GarageAware Data Dictionary

Click below to view a data dictionary for the GarageAware API:

GarageAware API Data Dictionary_ Enterprise

RadiusCheck API

Given a VIN, address, and radius, our Radius API can determine how frequently a given vehicle has been sighted farther than the given radius from the given address.

Get API - RadiusCheck

URLs

Production: https://platform.drndata.com/api/Insurance/Radius Non-production: http://staging.external.drndata.com/api/Insurance/Radius
PARAMETERS
Param Name Types Required Options
vin String true
policy_id Int true
street String false
city String false
state String false
zip String false Required if longitude and latitude are not present.
latitude Float false Required if ZIP is not present
longitude Float false Required if ZIP is not present
radius Numeric true MAX:200 (In Miles)
start date  false
end date  false

Sample Response


{
  "code": 100,
  "message": "",
  "data": {
    "given": {
      "location": {
        "address": "",
        "latitude": 0,
        "longitude": 0,
        "method": "full"
      },
      "vehicle": {
        "vin": "",
        "plate": {
          "number": "",
          "state": ""
        }
      },
      "radius": 200
    },
    "distances": {
      "inside": {
        "closest": 146.56,
        "furthest": 160.05
      },
      "outside": {
        "closest": 0,
        "furthest": 0
      },
      "overall": {
        "closest": 146.56,
        "furthest": 538.24
      }
    },
    "sightings": {
      "inside": 2,
      "outside": 0,
      "overall": 2
    },
    "excluded": ""
  }
}

RadiusCheck Data Dictionary

Click below to view a data dictionary for the RadiusCheck API:

RadiusCheck API Data Dictionary_Enterprise