Authentication
Authentication can be done in two different ways. Session tokens are useful for frontend calls, while API keys are useful for backend calls.- API Key:
Add your API key in the header
x-ws-api-key
->{ 'x-ws-api-key': '{apiKey}' } - Session Token:
Add the token in the header
Authorizationas:Bearer {sessionToken}
->{ 'Authorization': 'Bearer {sessionToken}' }
How to Get a Session Token
Use this endpoint to get a session token (helpful for frontend calls):[POST] /v1/onboarding/session-token/generate
Onboarding Flow
Steps to Onboard a Home
1. Fetch Utilities and Rate Plans
Fetch all utilities and rate plans for a given zip code.[POST] /v1/utility/get
ratePlans, then use that plan’s ratePlans[].id value as ratePlanId when calling the home endpoints. The companion ratePlans[].rateID field is the semantic normalized tariff identifier for reference and troubleshooting.
2. Create a Home
Create Home with basic details, connecting to the utility, and select a rate plan.[POST] /v1/homes/create
id; use that value as the homeId in later requests.
For solar homes, the recommended fields are solarSystemSizeKw and isNonNetMetered. When both are present, WattShift creates solar info using standard defaults for module type, array type, efficiency, azimuth, and tilt. If you need to supply the full solar model yourself, use the advanced solarInfo object in the API reference.
3. Add or Update Solar Later (if needed)
If the home already exists, send the same solar fields to Update Home.[POST] /v1/homes/{homeId}/update
[POST] /v1/homes/solar/create
