# Get Historic Rooftop PV

`GET /data/historic/rooftop_pv_power`

Get historical basic rooftop PV power estimated actuals for the requested location, derived from satellite (clouds and irradiance over non-polar continental areas) and numerical weather models (other data). Data is available from 2007-01-01T00:00Z to 7 days ago.

## Parameters

### Query Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `latitude` | number (double) | yes | The latitude of the location you request data for. Must be a decimal number between -90 and 90. |
| `longitude` | number (double) | yes | The longitude of the location you request data for. Must be a decimal number between -180 and 180. |
| `start` | string | yes | ISO_8601 compliant starting datetime for the historical data. If the supplied value does not specify a timezone, the timezone will be inferred from the time_zone parameter, if supplied. Otherwise UTC is assumed. |
| `duration` | string | no | Must include one of end_date and duration. ISO_8601 compliant duration for the historical data. Must be within 31 days of the start_date. |
| `end` | string | no | Must include one of end_date and duration. ISO_8601 compliant ending datetime for the historical data. Must be within 31 days of the start_date. If the supplied value does not specify a timezone, the timezone will be inferred from the time_zone parameter, if supplied. Otherwise UTC is assumed. |
| `period` | string | no | Length of the averaging period in ISO 8601 duration format. Default is PT30M. |
| `azimuth` | number (float) | no | The azimuth is defined as the angle (degrees) from true north that the PV system is facing. An azimuth of 0 means the system is facing true north. Positive values are anticlockwise, so azimuth is -90 for an east-facing system and 135 for a southwest-facing system. If you don't specify an azimuth, we use a default value of 0 (north facing) in the southern hemisphere and 180 (south-facing) in the northern hemisphere. |
| `capacity` | number (float) | yes | The capacity of the inverter (AC) or the modules (DC), whichever is greater, in kilowatts (kW). |
| `format` | string | no | Response format. Default is HTML if not supplied. |
| `install_date` | string | no | The date (yyyy-MM-dd) of installation of the PV system. We use this to estimate your loss_factor based on the ageing of your system. If you provide us with a loss_factor directly, we will ignore this date. |
| `loss_factor` | number (float) | no | Default is 0.90 A factor to reduce your output forecast from the full capacity based on characteristics of the PV array or inverter. This is effectively the non-temperature loss effects on the nameplate rating of the PV system, including inefficiency and soiling. For a 1kW PV system anything that reduces 1000W/m2 solar radiation from producing 1000W of power output (assuming temperature is 25C). Valid values are between 0 and 1 (i.e. 0.6 equals 60%). If you specify 0.6 your returned power will be a maximum of 60% of AC capacity. |
| `output_parameters` | string[] | no | The output parameters to include in the response. |
| `terrain_shading` | boolean | no | If true, irradiance parameters are modified based on the surrounding terrain from a 90m-horizontal-resolution digital elevation model. The direct component of irradiance is set to zero when the beam from the sun is blocked by the terrain. The diffuse component of irradiance is reduced throughout the day if the sky view at the location is significantly reduced by the surrounding terrain. Global irradiance incorporates both effects. |
| `tilt` | number (float) | no | The angle (degrees) that the PV system is tilted off the horizontal. A tilt of 0 means the system faces directly upwards, and 90 means the system is vertical and facing the horizon. If you don't specify tilt, we use a default tilt angle based on the latitude you specify in your request. Must be between 0 and 90. |
| `time_zone` | string | no | Timezone to return in data set. Accepted values are utc, longitudinal, or a range from -13 to 13 in 0.25 hour increments for utc offset. |

## Example request

### cURL

```bash
curl -X GET "https://api.solcast.com.au/data/historic/rooftop_pv_power?start=2026-01-01&latitude=-33.8567&longitude=151.2152&capacity=1&output_parameters=pv_power_rooftop&end=<end>&duration=P1D" \
  -H "Authorization: Bearer $API_KEY"
```

### Python

```python
import requests

params = {
    "start": "2026-01-01",
    "latitude": "-33.8567",
    "longitude": "151.2152",
    "capacity": "1",
    "output_parameters": "pv_power_rooftop",
}

response = requests.get(
    "https://api.solcast.com.au/data/historic/rooftop_pv_power", params=params,
    headers={"Authorization": "Bearer API_KEY"},
)
data = response.json()
```

## Example response (200)

```json
{
  "estimated_actuals": [
    {
      "pv_power_rooftop": 0.132,
      "period_end": "2026-01-01T01:00:00+00:00",
      "period": "PT60M"
    },
    {
      "pv_power_rooftop": 0.111,
      "period_end": "2026-01-01T02:00:00+00:00",
      "period": "PT60M"
    },
    {
      "pv_power_rooftop": 0.122,
      "period_end": "2026-01-01T03:00:00+00:00",
      "period": "PT60M"
    }
  ]
}
```

## Responses

### 200 — OK

Schema: `HistoricPvPowerResponse`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `estimated_actuals` | object[] | no |  |

Source: /docs/section/rooftop-pv-power#getDataHistoricRooftopPvPower
