Rewiring America
Contains structured data about home electrification incentives in the US, and an API server that calculates which incentives a user is eligible for.
https://github.com/rewiringamerica/api.rewiringamerica.org
Category: Energy Systems
Sub Category: Energy Data Accessibility and Integration
Keywords
climate electrification energy incentives rebates tax-credits taxes
Last synced: about 8 hours ago
JSON representation
Repository metadata
A RESTful web API for federal, state, utility and local rebates, tax credits and other electrification incentives.
- Host: GitHub
- URL: https://github.com/rewiringamerica/api.rewiringamerica.org
- Owner: rewiringamerica
- License: apache-2.0
- Created: 2022-12-26T21:34:38.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-03-16T15:09:18.000Z (10 days ago)
- Last Synced: 2026-03-18T22:52:41.746Z (8 days ago)
- Topics: climate, electrification, energy, incentives, rebates, tax-credits, taxes
- Language: TypeScript
- Homepage: https://api.rewiringamerica.org
- Size: 31.3 MB
- Stars: 11
- Watchers: 10
- Forks: 2
- Open Issues: 11
- Releases: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
README.md
Incentives API
This repo contains structured data about home electrification incentives in the US, and an API server that calculates which incentives a user is eligible for.
See public API docs at https://docs.rewiringamerica.org/.
An instance of this API is live at https://api.rewiringamerica.org. An API key is required to use it; sign up for a key here.
Running the server
For local development
-
(Optional) If you want the server to be able to accept addresses as well as ZIP codes, you'll need to get an API key for Geocodio. (RA employees: there's one in the internal password manager.)
-
Create a file called
.envat the root of your working copy:GEOCODIO_API_KEY=<YOUR_GEOCODIO_API_KEY>If you don't have a Geocodio key, just put nothing after the equals sign.
-
Install Node 18. We recommend using NVM.
-
Install Yarn by running
corepack enable. -
Run
yarn installto install dependencies. -
Run
yarn buildto build the SQLite database of geographic and income data. -
Run
yarn tscto compile TS scripts -
Run
yarn devto run the API server. It will automatically reload whenever you modify code. The server listens on port 3000 by default.
See CONTRIBUTING.md for a guide to the codebase.
For deployment
You can run the API server as a Docker container, without setting up a development environment.
🚨 We strongly recommend that you use Rewiring America's public API instance, rather than deploying your own instance. We update incentive data at least once a week, and it's important to keep up with those changes. If our public API doesn't meet your needs, please contact us to discuss.
-
Run
docker build .to build the image. -
The container listens for HTTP requests on port 8080.
-
If you have a Geocodio API key, put it in the environment variable
GEOCODIO_API_KEYto enable the API server to accept addresses as well as ZIP codes. -
The server does not deal with access control (e.g. API keys) or rate limiting. Rewiring America's public API instance uses Zuplo to handle those concerns.
There is also a Fastify plugin to handle CORS, but it's enabled only when
NODE_ENV !== 'production', because RA's public API instance also uses Zuplo to handle CORS.
Data
Scope of Incentives data collected
Aligning to our mission, the scope of the incentive data we have collected so far is representative of the following household types and technologies.
Household Type:
- Only Residential and Single-family households
Technology (Appliances / Product):
- Heat pumps (heating and cooling) HVAC (includes all types of heat pumps such as Air-to-water heat pumps, Ductless heat pumps, Ducted heat pumps, Air source heat pumps, Mini-split heat pumps)
- Geothermal / Ground Source Heat Pump
- Heat Pump Water Heater (HPWH)
- Electric Stoves / Induction Cooktop
- Heat Pump Dryers / Electric Clothes Dryer
- Electric Vehicles (new and used)
- Electric Vehicle chargers
- Rooftop Solar
- Battery Storage
- Weatherization (includes insulation, windows, and air sealing etc)
- Electric wiring (electric upgrades / retrofits)
- Electric panel (electric upgrades / retrofits)
- Electric lawn equipment (mower, edger, leaf blower, weed whacker)
- Smart Thermostat
- E-Bike
Management
Incentive data is managed in Rewiring America's Home Electrification Resource Organizer (HERO), and periodically exported to this repo as JSON. This export happens at least once per week.
Refer to the Incentive data model definition, and to the public API docs, to understand the meaning of the data fields.
We expect the data model to evolve incrementally as we gather more comprehensive information about incentive programs nationwide, and as our requirements for detail and structure in the data change.
Contributing
🚧 Our capacity to accept contributions is limited. We're not currently set up for external contributions of new incentive data, though we're working towards it.
That said, there are two situations we consider to be serious bugs, of which we gladly welcome reports:
- False positive eligibility results. That is: the API returning an incentive, given a specific set of inputs that would make someone ineligible for that incentive. If you see this, please file an issue.
- Incorrect incentive information. For example, if the calculator is showing the wrong amount for an incentive, or a description is inaccurate, or a link is broken, please file an issue.
In general, we know that our incentive coverage is incomplete, and we're working to change that. However, we expect the coverage we have to be accurate, and if it's not, we want to fix that as soon as possible.
We also welcome reports of bugs that don't pertain to incentive data, such as unexpected errors from the API. Please file issues for these.
For further information, including guidance on working on code, see CONTRIBUTING.md.
Contact
See the Contributing section for specific situations where we'd like you to file an issue.
For other matters, you can email us at api@rewiringamerica.org.
For FAQs, refer to the Incentive Calculator FAQ page.
Owner metadata
- Name: Rewiring America
- Login: rewiringamerica
- Email: hello@rewiringamerica.org
- Kind: organization
- Description: Rewiring America is the leading electrification nonprofit, focused on electrifying everything in our communities.
- Website: https://www.rewiringamerica.org
- Location: United States of America
- Twitter: rewiringamerica
- Company:
- Icon url: https://avatars.githubusercontent.com/u/74219987?v=4
- Repositories: 1
- Last ynced at: 2023-05-10T23:22:47.279Z
- Profile URL: https://github.com/rewiringamerica
Committers metadata
Last synced: about 2 years ago
Total Commits: 250
Total Committers: 8
Avg Commits per committer: 31.25
Development Distribution Score (DDS): 0.664
Commits in past year: 201
Committers in past year: 8
Avg Commits per committer in past year: 25.125
Development Distribution Score (DDS) in past year: 0.582
| Name | Commits | |
|---|---|---|
| Owen Yamauchi | o****n@r****g | 84 |
| Tom Carden | t****c@r****g | 80 |
| mariabajzek | m****b@r****g | 25 |
| dependabot[bot] | 4****] | 25 |
| Sarah Ransohoff | s****o@g****m | 12 |
| Dan Turcza | d****5 | 10 |
| Monique de Zahr | m****r@g****m | 7 |
| ayangster | a****y@r****g | 7 |
Committer domains:
Dependencies
- actions/checkout v5 composite
- actions/create-github-app-token v2 composite
- actions/setup-node v6 composite
- actions/setup-python v6 composite
- peter-evans/create-pull-request v7 composite
- numpy ==1.26.4
- openpyxl ==3.1.5
- pandas ==2.3.3
- requests ==2.32.5
- xlrd ==2.0.2
- certifi ==2026.1.4
- charset-normalizer ==3.4.4
- geopandas ==1.1.2
- idna ==3.10
- numpy ==2.2.4
- packaging ==24.2
- pandas ==2.3.3
- pyogrio ==0.11.0
- pyproj ==3.7.2
- python-dateutil ==2.9.0.post0
- pytz ==2025.2
- requests ==2.32.5
- shapely ==2.1.2
- six ==1.17.0
- tzdata ==2025.2
- urllib3 ==2.6.3
- actions/checkout v5 composite
- actions/setup-node v6 composite
- actions/checkout v4 composite
- docker/build-push-action v3 composite
- docker/login-action v3 composite
- google-github-actions/auth v1 composite
- google-github-actions/deploy-cloudrun v1 composite
- actions/checkout v4 composite
- actions/setup-node v3 composite
- node $VERSION-alpine build
- @fastify/type-provider-json-schema-to-ts ^2.2.2 development
- @types/glob ^8.1.0 development
- @types/lodash ^4.14.200 development
- @types/make-fetch-happen ^10.0.3 development
- @types/minimist ^1.2.5 development
- @types/node 16.18.38 development
- @types/qs ^6.9.8 development
- @typescript-eslint/eslint-plugin ^6.1.0 development
- @typescript-eslint/parser ^6.1.0 development
- ajv ^8.11.0 development
- csv ^6.3.5 development
- dotenv ^16.3.1 development
- dotenv-cli ^7.2.1 development
- eslint ^8.52.0 development
- fastify-tsconfig ^1.0.1 development
- json-schema-to-ts ^2.0.0 development
- make-fetch-happen ^13.0.0 development
- minimist ^1.2.8 development
- openai ^4.20.1 development
- prettier ^3.0.3 development
- prettier-plugin-multiline-arrays ^3.0.0 development
- prettier-plugin-organize-imports ^3.2.3 development
- tap ^18.6.1 development
- ts-morph ^21.0.1 development
- ts-node ^10.9.1 development
- typescript ^5.1.6 development
- @fastify/autoload ^5.7.1
- @fastify/sensible ^5.2.0
- @fastify/swagger ^8.12.0
- fastify ^4.17.0
- fastify-cli ^5.7.1
- fastify-plugin ^4.5.0
- fastify-sqlite ^1.1.0
- geocodio-library-node ^1.5.0
- lodash ^4.17.21
- qs ^6.11.2
- sqlite ^4.1.2
- 611 dependencies
Score: 5.170483995038152