Obtain a free API key by registering at developer.nrel.gov; the key is passed as the 'api_key' query parameter.
Make a GET request to https://developer.nrel.gov/api/pvwatts/v8.json with required parameters: api_key, system_capacity (kW DC), lat and lon (or address), azimuth, tilt, and array_type.
Review the 'outputs' object in the JSON response; key fields include 'ac_annual' (annual AC energy in kWh), 'ac_monthly' (array of 12 monthly values), and 'solrad_annual' (average daily solar radiation).
Adjust 'losses' (default around 14%) to reflect site-specific factors like soiling, shading, or wiring losses; this parameter significantly affects modeled output.
For time-series hourly output, add the 'timeframe=hourly' parameter; the response will include an 'ac' array of 8760 hourly AC power values in watts.
Known gotchas
PVWatts uses the nearest TMY (Typical Meteorological Year) weather station, which may not represent a site with unusual microclimates; the response includes 'station_info' showing which station was used — verify it is geographically reasonable.
The 'tilt' and 'azimuth' defaults (latitude tilt, 180° for north hemisphere) assume fixed-tilt; passing array_type=1 (fixed open rack) vs. array_type=2 (fixed roof mount) changes the default losses applied — mismatching array_type with actual installation overstates production.
DC system capacity is the nameplate rating; the API applies the dc_ac_ratio (default around 1.2) internally — avoid manually dividing by dc_ac_ratio to convert; instead, pass the correct DC capacity and let the API handle the ratio.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp