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

Response

Returns a Location

Arguments
Name Description
zipCode - String!

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:

  • BEV (battery electric)
  • PHEV (plug-in hybrid)
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

Fields
Field Name Description
name - String!
slug - String! A vehicle's identifier as determined by EV Life.
image - String!
Example
{
  "name": "xyz789",
  "slug": "abc123",
  "image": "abc123"
}

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:

  • 'Single'
  • 'Head of Household'
  • 'Married filing Separately'
  • 'Married filing Jointly'
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:

  • ENVIRONMENTAL
  • PERK
  • POSTPURCHASE
  • PREPURCHASE
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:

  • VEHICLE
  • CHARGER
incentiveSource - String

Used to filter/organize incentives by the source of funds. Possible values include:

  • FEDERAL
  • STATE
  • COUNTY
  • CITY
  • AQMD
  • ELECTRIC_UTILITY
  • OTHER
incentiveType - String

Used to filter/organize incentives by the type of incentive. Possible values include:

  • REBATE
  • POINT_OF_SALE
  • GRANT
  • TAX_CREDIT
  • DISCOUNTED_ELECTRICITY_RATE
  • HOV_DECAL
  • VEHICLE_RETIREMENT
  • BILL_CREDIT_REWARDS
  • FREE_CHARGER
  • MISC_PERK
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"
}

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"