EV Life Incentives API
The EV Life Incentives API provides access to the latest electric vehicle incentives and rebates available in the United States.
API Endpoints
https://api.evlife.co/{{slug}}
Headers
# Your API token provided by EV Life. Must be included in all API calls.
Authorization: Bearer <YOUR_TOKEN_HERE>
Queries
carSlugs
Response
Returns [CarSlug!]
Example
Query
query CarSlugs {
carSlugs {
name
slug
image
}
}
Response
{
"data": {
"carSlugs": [
{
"name": "abc123",
"slug": "abc123",
"image": "abc123"
}
]
}
}
incentivesByCar
Response
Returns a Car
Arguments
| Name | Description |
|---|---|
carData - CarDataWithIncentivesInput!
|
Example
Query
query IncentivesByCar($carData: CarDataWithIncentivesInput!) {
incentivesByCar(carData: $carData) {
MSRP
baseModelMSRP
batterySizeKwh
electricRangeInMilesEpa
fuelType
image
incentiveSum
incentives {
amount
amountDetail
category
childIncentives {
...IncentiveFragment
}
description
incentiveProductClass
incentiveSource
incentiveType
isNonStackable
isSelectedNonStackable
isPaused
links {
...IncentiveLinkFragment
}
nonStackableGroup {
...NonStackableGroupFragment
}
slug
title
}
kwhPer100MilesEpa
make
model
slug
year
}
}
Variables
{"carData": CarDataWithIncentivesInput}
Response
{
"data": {
"incentivesByCar": {
"MSRP": 123.45,
"baseModelMSRP": 987.65,
"batterySizeKwh": 123.45,
"electricRangeInMilesEpa": 123.45,
"fuelType": "abc123",
"image": "abc123",
"incentiveSum": 987.65,
"incentives": [Incentive],
"kwhPer100MilesEpa": 123,
"make": "abc123",
"model": "xyz789",
"slug": "xyz789",
"year": 123
}
}
}
locationDataByZipCode
Example
Query
query LocationDataByZipCode($zipCode: String!) {
locationDataByZipCode(zipCode: $zipCode) {
airQualityDistrictOptions
city
county
defaultAirQualityDistrict
defaultElectricUtility
electricUtilityOptions
latitude
longitude
state
zipCode
}
}
Variables
{"zipCode": "xyz789"}
Response
{
"data": {
"locationDataByZipCode": {
"airQualityDistrictOptions": [
"xyz789"
],
"city": "xyz789",
"county": "xyz789",
"defaultAirQualityDistrict": "xyz789",
"defaultElectricUtility": "xyz789",
"electricUtilityOptions": ["abc123"],
"latitude": "xyz789",
"longitude": "abc123",
"state": "xyz789",
"zipCode": "abc123"
}
}
}
Types
Boolean
Description
The Boolean scalar type represents true or false.
Car
Fields
| Field Name | Description |
|---|---|
MSRP - Float!
|
Sometimes used as eligiblity criteria. |
baseModelMSRP - Float
|
Sometimes used as eligiblity criteria. |
batterySizeKwh - Float
|
Sometimes used as eligiblity criteria. |
electricRangeInMilesEpa - Float
|
Sometimes used as eligiblity criteria. As reported by the Environmental Protection Agency. |
fuelType - String
|
Sometimes used as eligiblity criteria. Possible values will be:
|
image - String
|
|
incentiveSum - Float!
|
|
incentives - [Incentive!]
|
|
kwhPer100MilesEpa - Int
|
Sometimes used as eligiblity criteria. As reported by the Environmental Protection Agency. |
make - String!
|
|
model - String!
|
|
slug - String!
|
A vehicle's identifier as determined by EV Life. |
year - Int!
|
Example
{
"MSRP": 123.45,
"baseModelMSRP": 123.45,
"batterySizeKwh": 987.65,
"electricRangeInMilesEpa": 123.45,
"fuelType": "abc123",
"image": "xyz789",
"incentiveSum": 123.45,
"incentives": [Incentive],
"kwhPer100MilesEpa": 123,
"make": "abc123",
"model": "xyz789",
"slug": "abc123",
"year": 123
}
CarDataWithIncentivesInput
Fields
| Input Field | Description |
|---|---|
customer - CustomerInput!
|
|
slug - String!
|
A vehicle's identifier as determined by EV Life. |
Example
{
"customer": CustomerInput,
"slug": "xyz789"
}
CarSlug
CustomerInput
Fields
| Input Field | Description |
|---|---|
aqd - String
|
Represents a California customer's Air Quality District, which may or may not have incentive programs related to EVs or chargers. |
carScrapOrRetire - Boolean
|
Certain incentive programs will offer cash for retiring older, polluting gas vehicles. |
householdIncome - Int!
|
|
householdSize - Int!
|
|
taxFilingStatus - String!
|
Tax filing status options:
|
electricUtility - String
|
|
zipCode - Int!
|
Example
{
"aqd": "abc123",
"carScrapOrRetire": true,
"householdIncome": 987,
"householdSize": 987,
"taxFilingStatus": "xyz789",
"electricUtility": "xyz789",
"zipCode": 123
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
Incentive
Fields
| Field Name | Description |
|---|---|
amount - Int!
|
|
amountDetail - String
|
Typically contains text to clarify the incentive amount. 'per year' or 'lbs CO2e reduced/year' are common values for this field. |
category - String!
|
Used to filter/organize incentives by:
|
childIncentives - [Incentive!]
|
Some vehicle incentives come packaged with a charging incentive. If the customer qualifies for the parent incentive, they're automatically qualified for the child incentive. |
description - String!
|
|
incentiveProductClass - String
|
Used to filter/organize incentives by the product they apply to:
|
incentiveSource - String
|
Used to filter/organize incentives by the source of funds. Possible values include:
|
incentiveType - String
|
Used to filter/organize incentives by the type of incentive. Possible values include:
|
isNonStackable - Boolean
|
Denotes if this particular incentive can not be combined with other incentives. Ideally, customers will be able to choose between programs that can not be stacked. |
isSelectedNonStackable - Boolean
|
Denotes the incentive program that is selected by default when there are other programs that can not be combined. |
isPaused - Boolean
|
Certain programs will pause their application processing if funds are running low. Use this field to show the customer a warning that there is risk of not receiving this incentive. |
links - [IncentiveLink!]
|
|
nonStackableGroup - NonStackableGroup
|
An array of other incentive programs that can not be combined with this particlaur incentive program. Ideally, customers will be able to choose between programs that can not be stacked. |
slug - String!
|
|
title - String!
|
Example
{
"amount": 123,
"amountDetail": "xyz789",
"category": "xyz789",
"childIncentives": [Incentive],
"description": "xyz789",
"incentiveProductClass": "abc123",
"incentiveSource": "xyz789",
"incentiveType": "abc123",
"isNonStackable": false,
"isSelectedNonStackable": false,
"isPaused": false,
"links": [IncentiveLink],
"nonStackableGroup": NonStackableGroup,
"slug": "abc123",
"title": "xyz789"
}
IncentiveLink
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
Location
Fields
| Field Name | Description |
|---|---|
airQualityDistrictOptions - [String!]
|
Given a CA zip code, used to build a dropdown list of available AQDs. |
city - String!
|
|
county - String
|
|
defaultAirQualityDistrict - String
|
Given a CA zip code, the default AQD that should be selected. Users should be able to override by selecting another AQD. |
defaultElectricUtility - String
|
Given a zip code, the default Electric Utility that should be selected. Users should be able to override by selecting another Electric Utility. |
electricUtilityOptions - [String!]
|
Given a zip code, used to build a dropdown list of Electric Utilities in customer's state. |
latitude - String
|
|
longitude - String
|
|
state - String!
|
|
zipCode - String!
|
Example
{
"airQualityDistrictOptions": ["abc123"],
"city": "xyz789",
"county": "xyz789",
"defaultAirQualityDistrict": "abc123",
"defaultElectricUtility": "xyz789",
"electricUtilityOptions": ["abc123"],
"latitude": "abc123",
"longitude": "abc123",
"state": "xyz789",
"zipCode": "xyz789"
}
NonStackableGroup
Fields
| Field Name | Description |
|---|---|
members - [NonStackableGroupMember!]
|
Example
{"members": [NonStackableGroupMember]}
NonStackableGroupMember
Fields
| Field Name | Description |
|---|---|
slug - String!
|
Example
{"slug": "abc123"}
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"