HomeGuidesAPI ReferenceChangelog
Log In
API Reference

Solar Incentives are programs offered by cities, states, utilities, and other entities that are designed to encourage the installation of distributed solar.

🚧

This data is only made available under special circumstances and you need to be an Enterprise customer using our Switch Product.

These incentives fall into a few broad categories:

  • Rebates - Cash payments. Usually, the size of the rebate is related to the size of the project but, sometimes, they can just be fixed payments.
  • Bill credits - Similar to rebates, but applied directly to your energy bill.
  • Tax credits - Credits that can be applied to your local, state, or federal taxes, depending on the program.
  • Discounts - Subsidized prices for various project materials

This page outlines the data definitions and basic API operations for solar incentives. For a more in-depth guide on how to use this API, see the how-to.

Accessing Solar Incentives

To access incentives, you'll need special permissions on your account. Please contact us to find out more.

Data Definitions

An Incentive object consists of a set of properties describing how to calculate the incentive amount along with a list of applicabilities that specify what kinds of customers the solar incentive applies to.

Incentive

The Incentive object has the following data structure.

NameTypeDescription
incentiveIdIntegerArcadia ID of the solar incentive
masterIncentiveIdInteger"Master" ID for this incentive. Tracks a single incentive across multiple versions.
eligibilityEligibilityOne of ELIGIBLE, INELIGIBLE, or COULD_BE_ELIGIBLE. If an incentive has any applicabilities that the user has not supplied any values for and none of the already-supplied applicabilities make the user INELIGIBLE, eligibility will be set to COULD_BE_ELIGIBLE and requiredData will be populated with the additional information that is required.
requiredDataList of ApplicabilityIf an incentive has formula-based applicabilities and the user does not provide all of the required information for that applicability, eligibility will be set to COULD_BE_ELIGIBLE and requiredData will be populated with the additional information that is required.
incentiveNameStringThe name of the incentive
projectTypeStringThe type of project that this incentive applies to. AlwayssolarPv.
incentiveTypeStringThe type of incentive. Can be a rebate, billCredit, taxCredit, or discount
stateStringIf applicable, the state where this incentive is available.
lseIdIntegerThe Arcadia ID of the LSE by whom the incentive is managed.
lseNameStringThe name of the LSE providing the incentive.
lseCodeStringThe shortcode for the LSE providing the incentive.
customerClassStringThe class of customer that is eligible for this incentive. Our solar incentives are residential.
startDateDateThe date when the incentive became or will become effective.
endDateDateThe date when the incentive expires.
isExhaustedBooleantrue or false, depending on whether there are incentive funds remaining
jurisdictionStringThe entity type that offers this incentive. In the case of a tax credit, this is also used to determine if the incentive applies to state or federal taxes.
quantityKeyPropertyKeyThe quantity by which to multiply the incentive rate.
rateDecimalThe rate by which to multiply the applicable quantity
rateUnitStringThe type of rate for this incentive. Can be COST_PER_UNIT or PERCENTAGE.
quantityKeyCapStringThe maximum quantity key (e.g. systemSizeAc) that is eligible for this incentive. For example, if quantityKey=systemSizeAc, the value of this field is 50, and the system size is 60, then the first 50 kW of the system is eligible for the incentive.
paymentCapIntegerMaximum dollar amount (in US) of this incentive.
percentCostCapKey[PropertyKey][pk]Quantity key that's used to calculate the percent cost cap
percentCostCapDecimalThe maximum portion of the cost of the system cost that can be covered by the incentive
paymentDurationIntegerThe duration of the incentive is in years. Will be 1 if this is a one-time, up-front incentive
incentivePaidToStringThe party to whom the incentive is paid
projectTypeExclusiveBooleanIndicates if more than one incentive from this LSE/jurisdiction can be used for a customer for this projectType. True means only one incentive from the LSE/jurisdiction can be used. False means more than one incentive from the LSE/jurisdiction can be used.
summaryStringFree text field describing the incentive. Designed to be used in a user interface as a general overview.
requirementsStringFree text field describing the requirements for the incentive. Designed to be used in a user interface to give an overview of incentives' requirements.
applicabilitiesList of ApplicabilityA list of applicabilities. Applicabilities are used to determine whether the customer is eligible for this incentive.

Applicability

The Applicability object has the following data structure. Applicabilities are used to determine whether a customer is eligible for an incentive. Customers must meet all applicabilities on an incentive in order to be eligible for that incentive.

NameTypeDescription
applicabilityKeyStringThe name of variable that this applicability applies to. Examples include systemOwnership, azimuth, and tilt.
displayNameStringA user-presentable name for this applicability.
descriptionStringA user-presentable description of what this applicability represents.
requiredValueStringIf there is a single value that is allowed for this applicability, it will show up here. For example, if systemOwnership requires host, it will be here.
minValueDecimalFor numeric applicabilities, the minimum allowed value.
maxValueDecimalFor numeric applicabilities, the maximum allowed value.
operatorStringFor formulaic applicabilities, the relationship that must be true for this applicability relative to its quantityKey. For example, estimatedFirstYearkWh might have a quantityKey of 110percentAnnualConsumption and an operator of <. This indicates that the estimated first-year production of the solar power system must be less than 110% of the customer's annual consumption.
quantityKeyStringFor formulaic applicabilities, a pointer to a PropertyKey that holds the formula defining this applicability.
choicesListFor applicabilities with a fixed set of choices, the list of available choices.

Get a List of Incentives

This allows you to search for a set of incentives and get them back as a list of Incentive objects.

Resource URI

GET /rest/v1/incentives

Request Parameters

NameTypeDescription
projectTypeStringRestrict the search to the given project type
incentiveTypeStringRestrict the search to the given incentive type
defaultIncentivesStringReturn the incentives that are available to most people, where “most people” is defined as those incentives that match the defaults for their respective applicabilities
applicabilitiesStringGet incentives accepts an arbitrary list of key=value pairs representing inputs for the different applicability keys. Inputs do not cause the list of incentives to be filtered, but the eligibility status for each incentive is set depending on the applicability key values. For example, if a user inputs ?tilt=7&azimuth=180, then incentives that require a system with a tilt of 7 degrees and an azimuth of 180 degrees will be set to ELIGIBLE if those are the only applicabilities. If additional applicabilities exist, depending on key values, eligibility may also be INELIGIBLE or COULD_BE_ELIGIBLE. Available applicabilities for a given area are returned by Get Incentive Applicabilities. See the how-to guide for an example of how to use this endpoint.
customerClassesStringRESIDENTIAL, GENERAL, or SPECIAL_USE. The type of customer
countryCodeStringRestrict the search to the given country
lseIdIntegerRestrict the search to the given LSE
stateStringRestrict the search to the given state
zipCodeStringRestrict the search to the given ZIP code
addressStringStringRestrict the search to the given addressString
effectiveOnDateGet only those incentives that are available as of the specified date.
fromDateDateGet incentives that are available after a certain date.
toDateDateGet incentives that are available before a certain date.
isExhaustedBooleanGet incentives that are exhausted (or not)

Example

This example will get a list of solar rebates for ZIP code 94105 that were effective on October 26, 2015, and are not exhausted.

GET /rest/v1/incentives?zipCode=95448&projectType=solarPv&customerClasses=RESIDENTIAL&effectiveOn=2015-11-05&isExhausted=FALSE
{  
  "status": "success",  
  "count": 2,  
  "type": "Incentive",  
  "results": [  
    {  
      "incentiveId": 3158839,  
      "masterIncentiveId": 3158839,  
      "eligibility": "ELIGIBLE",  
      "tariffCode": "None",  
      "incentiveName": "Residential Renewable Energy Tax Credit",  
      "lseId": 100281,  
      "lseName": "State of California Incentives",  
      "serviceType": "SOLAR_PV",  
      "customerClass": "RESIDENTIAL",  
      "startDate": "2006-01-01",  
      "endDate": "2016-12-31",  
      "isExhausted": false,  
      "projectType": "solarPv",  
      "incentiveType": "taxCredit",  
      "rate": 30,  
      "rateUnit": "PERCENTAGE",  
      "documents": null,  
      "jurisdiction": "federal",  
      "quantityKey": {  
        "keyName": "systemCostMinusIncentives",  
        "displayName": "System Cost After Incentives",  
        "description": "Cost of the solar system after incentives, rebates and tax credits"  
      },  
      "quantityKeyCap": null,  
      "state": "CA",  
      "percentCostCap": null,  
      "percentCostCapKey": {  
        "keyName": null  
      },  
      "paymentCap": 0,  
      "paymentDuration": 1,  
      "incentivePaidTo": "tenantOrOwner",  
      "projectTypeExclusive": false,  
      "applicabilities": [],  
      "summary": "Established by The Energy Policy Act of 2005, the federal tax credit for residential energy property initially applied to solar-electric & solar water heating. Other key revisions included an 8-year extension of the credit to 12/31/2016; the ability to take the credit against the alternative minimum tax; & the removal of the $2000 credit limit for solar-electric beginning in 2009. The credit was further enhanced in February 2009 by The American Recovery & Reinvestment Act of 2009, which removed the maximum credit amount for all eligible technologies placed in service after 2008. A taxpayer may claim a credit of 30% of qualified expenditures for a system that serves a dwelling unit that is owned & used as a residence by the taxpayer. If the installation is at a new home, the \"placed in service\" date is the date of occupancy by the homeowner. Expenditures include labor costs for on-site preparation, assembly or original system installation, & for piping or wiring to interconnect a system to the home.",  
      "requirements": "A taxpayer may claim a credit of 30% of qualified expenditures for a system that serves a dwelling unit that is owned & used as a residence by the taxpayer. Expenditures include labor costs for on-site preparation, assembly or original system installation, & for piping or wiring to interconnect a system to the home. The bill extends the 30% ITC for residential solar property for eight years through December 31, 2016."  
   },
     /* more incentives */
     ]}

Get One Incentive

This endpoint retrieves a particular incentive by incentiveId.

Resource URI

GET /rest/v1/incentives/{incentiveId}

Request Parameters

NameTypeDescription
populateDetailsBooleanWhether to include the applicabilities or not.
populateDocumentsBooleanWhether to return link(s) to the relevant document(s)

Example

GET /rest/v1/incentives/3163702
{  
  "status": "success",  
  "count": 1,  
  "type": "Incentive",  
  "results": [  
    {  
      "incentiveId": 3163702,  
      "masterIncentiveId": 3163702,  
      "tariffCode": "None",  
      "incentiveName": "Residential Solar Energy System Equipment Tax Credit",  
      "lseId": 100287,  
      "lseName": "State of New York Incentives",  
      "serviceType": "SOLAR_PV",  
      "customerClass": "RESIDENTIAL",  
      "startDate": "2012-08-01",  
      "endDate": null,  
      "isExhausted": false,  
      "projectType": "solarPv",  
      "incentiveType": "taxCredit",  
      "rate": 25,  
      "rateUnit": "PERCENTAGE",  
      "documents": null,  
      "jurisdiction": "state",  
      "quantityKey": {  
        "keyName": "systemCost",  
        "displayName": "System Cost",  
        "description": "Cost of the solar system in USD. ",  
        "quantityUnit": "USD"  
      },  
      "quantityKeyCap": null,  
      "state": "NY",  
      "percentCostCap": null,  
      "percentCostCapKey": {  
        "keyName": null  
      },  
      "paymentCap": 5000,  
      "paymentDuration": 1,  
      "incentivePaidTo": "tenantOrOwner",  
      "projectTypeExclusive": false,  
      "applicabilities": [  
        {  
          "applicabilityKey": "systemSizeDcW",  
          "displayName": "System Size DC W",  
          "description": "Size of the solar system in Watts DC",  
          "maxValue": 25000,  
          "quantityUnit": "W"  
        }  
      ],  
      "summary": "Enacted in August 1997, this personal income tax credit originally applied to expenditures on solar-electric (PV) equipment used on residential property. The credit, equal to 25% percent of the cost of equipment and installation, was expanded in August 2005 to include solar-thermal equipment. The solar-thermal provisions apply to taxable years beginning on and after January 1, 2006. The credit is capped at $5,000 for solar-energy systems placed in service on or after September 1, 2006. In August 2012 the credit was amended yet again to allow it to be claimed for systems installed under lease or power purchase agreements (PPAs) of at least 10 years in length. For third-party owned systems, the residential homeowner may claim a tax credit in the amount of lease or PPA payments made during the taxable year, for up to 15 years.",  
      "requirements": "Systems must be new and in compliance with all applicable performance and safety standards. Electricity generation systems must be grid connected. Systems must comply with the 25 kW capacity limit on residential. The solar energy system must use solar radiation to produce energy for heating, cooling, hot water, or electricity for residential use.  The system must also be installed and used at your principal residence in New York State."  
    }  
  ]  
}  


Get Incentive Applicabilities

Get a list of properties representing the universe of applicabilities, restricted by the specified parameters. This can be used by developers entering new markets in order to know exactly what data they’ll need to gather from their customers to in order to find and calculate incentives properly. This endpoint accepts many of the same parameters as Get Incentives.

Resource URI

GET /rest/v1/incentives/applicabilities

Request Parameters

NameTypeDescription
projectTypeStringRestrict the search to the given project type
incentiveTypeStringRestrict the search to the given incentive type
countryStringRestrict the search to the given country
lseIdIntegerRestrict the search to the given LSE
customerClassesStringRESIDENTIAL, GENERAL, SPECIAL_USE. The type of customer
stateStringRestrict the search for applicabilities to the given state
zipCodeStringRestrict the search to the given ZIP code
addressStringStringRestrict the search to the given addressString
effectiveOnDateGet only those incentives that are available as of the specified date. Defaults to today's date, restricting the list of applicabilities to only those on active incentives.
isExhaustedBooleanGet incentives that are exhausted (or not). Defaults to false, restricting the list of applicabilities to only those on non-exhausted incentives.

Example

The following example request will retrieve all of the applicabilities that you might see in the state of California for solar incentives.

GET /rest/v1/incentives/applicabilities?zipCode=95448&projectType=solarPv&customerClasses=RESIDENTIAL
{  
  "status": "success",  
  "count": 2,  
  "type": "IncentiveApplicability",  
  "results": [  
    {  
      "applicabilityKey": "systemOwnership",  
      "displayName": "System Ownership",  
      "description": "If incentive requires the system to be owned by the Host or Third Party to qualify.  ",  
      "choices": [  
        {  
          "displayValue": "Host",  
          "value": "host",  
          "dataValue": "host",  
          "likelihood": null  
        },  
        {  
          "displayValue": "Third Party",  
          "value": "thirdParty",  
          "dataValue": "thirdParty",  
          "likelihood": null  
        }  
      ]  
    },  
    {  
      "applicabilityKey": "systemSizeAcW",  
      "displayName": "System Size AC W",  
      "description": "Size of the solar system in Watts AC",  
      "quantityUnit": "W"  
    }  
  ],  
  "pageCount": 25,  
  "pageStart": 0  
}  
{% endhighlight %}