# Get Historic HSU Losses

`GET /data/historic/soiling/hsu`

Get historical soiling loss using the HSU model for up to 31 days of data at a time for a requested location. 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 | ISO_8601 compliant duration for the historical data. Must be within 31 days of the start_date. Only one of end or duration should be part of the request. |
| `end` | string | no | ISO_8601 compliant ending datetime for the historical data. Must be within 31 days of the start_date. Only one of end or duration should be part of the request. 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. |
| `cleaning_threshold` | number (double) | no | Amount of daily rainfall required to clean the panels (mm). Default is 1.0. |
| `depo_veloc_pm10` | number (double) | no | Deposition or settling velocity of PM10 particulates. [m/s]. Default is 0.004. |
| `depo_veloc_pm2.5` | number (double) | no | Deposition or settling velocity of PM2.5 particulates. [m/s]. Default is 0.0009. |
| `format` | string | no | Response format. Default is HTML if not supplied. |
| `initial_soiling` | number (double) | no | Initial percentage of energy lost due to soiling at time zero in the rainfall series input. If not provided, Solcast will perform a ramp up series calculation to accurately determine this value. If provided must be >= 0 and < 0.3437. |
| `manual_wash_dates` | string[] | no | Optional. Default is none. A list of ISO_8601 compliant dates or a repeating interval when manual cleaning of the panels occurred. A list of dates example: [2025-01-01,2025-01-05,2025-01-10]. A repeating interval example: R3/2025-01-01T00:00:00Z/P14D. Wash dates outside of the start and end of the request are discarded. |
| `pm10` | number[] | no | Optional. Restricted list of PM10 values. Concentration of airborne particulate matter (PM) with aerodynamic diameter less than 10 microns. [g/m^3]. If not provided, HSU endpoint will internally use Solcast's PM10 values tailored to your request time period. |
| `pm2.5` | number[] | no | Optional. Restricted list of PM2.5 values. Concentration of airborne particulate matter (PM) with aerodynamic diameter less than 2.5 microns. [g/m^3]. If not provided, HSU endpoint will internally use Solcast's PM2.5 values tailored to your request time period. |
| `tilt` | number (double) | 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. Default is utc. |

## Example request

### cURL

```bash
curl -X GET "https://api.solcast.com.au/data/historic/soiling/hsu?latitude=-33.8567&longitude=151.2152&start=2026-01-01&time_zone=<time_zone>&period=PT60M" \
  -H "Authorization: Bearer $API_KEY"
```

### Python

```python
import requests

params = {
    "latitude": "-33.8567",
    "longitude": "151.2152",
    "start": "2026-01-01",
}

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

## Example response (200)

```json
{
  "estimated_actuals": [
    {
      "hsu_loss_fraction": 0,
      "period_end": "2026-01-01T00:00:00+00:00",
      "period": "PT60M"
    },
    {
      "hsu_loss_fraction": 0,
      "period_end": "2026-01-01T01:00:00+00:00",
      "period": "PT60M"
    },
    {
      "hsu_loss_fraction": 0,
      "period_end": "2026-01-01T02:00:00+00:00",
      "period": "PT60M"
    }
  ]
}
```

## Responses

### 200 — OK

Schema: `EstimatedActualsDataResponse`

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

Source: /docs/section/soiling#getDataHistoricSoilingHsu
