A C# SDK to access the Solcast API, allowing you to retrieve solar radiation, weather data, and forecasts from satellite and numerical models.
- Retrieve live solar radiation and weather data.
- Access forecast data up to 14 days in advance.
- Access Typical Meteorological Year (TMY) data for irradiance and rooftop PV power.
- Get live and forecast grid aggregation data.
- Manage PV Power Sites for advanced solar power modeling.
- Simple, easy-to-use client classes for API interaction.
- C# SDK documentation: https://solcast.github.io/solcast-api-csharp-sdk/
- Full API documentation available at: Solcast API Docs
Install the SDK via NuGet with the following command:
dotnet add package SolcastAlternatively, you can build the SDK locally by cloning the repository and running the build command:
git clone https://github.com/Solcast/solcast-api-csharp-sdk.git
cd solcast-api-csharp-sdk
dotnet buildBefore using the SDK, you need to set your Solcast API key as an environment variable. You can register for an API key at Solcast Toolkit.
To set the API key in your environment:
Windows PowerShell:
$env:SOLCAST_API_KEY = "{your_api_key}"Linux/macOS:
export SOLCAST_API_KEY="{your_api_key}"using Solcast.Clients;
var liveClient = new LiveClient();
var response = await liveClient.GetLiveRadiationAndWeather(
latitude: -33.856784,
longitude: 151.215297,
outputParameters: ["air_temp", "dni", "ghi"]
format: "csv"
);
Console.WriteLine(response.RawResponse);using Solcast.Clients;
var forecastClient = new ForecastClient();
var response = await forecastClient.GetForecastRadiationAndWeather(
latitude: -33.856784,
longitude: 151.215297,
outputParameters: ["air_temp", "dni", "ghi"]
);using Solcast.Clients;
var historicClient = new HistoricClient();
var response = await historicClient.GetHistoricRadiationAndWeather(
latitude: -33.856784,
longitude: 151.215297,
start: "2022-01-01T00:00",
duration: "P1D"
);using Solcast.Clients;
var tmyClient = new TmyClient();
var response = await tmyClient.GetTmyRadiationAndWeather(
latitude: -33.856784,
longitude: 151.215297,
);using Solcast.Clients;
var aggregationClient = new AggregationClient();
var response = await aggregationClient.GetForecastAggregations(
collectionId: "country_total",
aggregationId: "it_total",
outputParameters: ["percentage", "pv_estimate"],
format: "csv"
);using Solcast.Clients;
var pvClient = new PvPowerSiteClient();
var response = await pvClient.GetPvPowerSites();using Solcast.Clients;
var pvClient = new PvPowerSiteClient();
var response = await pvClient.GetPvPowerSite("ba75-e17a-7374-95ed");GetLiveRadiationAndWeather: Retrieves live solar radiation and weather data.GetLiveAdvancedPvPower: Retrieves advanced PV power live data.GetLiveRooftopPvPower: Retrieves live rooftop PV power data based on location and other parameters.
GetForecastRadiationAndWeather: Retrieves irradiance and weather forecasts for the requested location from the present up to 14 days aheadGetForecastAdvancedPvPower: Retrieves advanced PV power forecasts with customizable options.GetForecastRooftopPvPower: Retrieves rooftop PV power forecast data based on location and other parameters.
GetHistoricRadiationAndWeather: Retrieves historic solar radiation and weather data for a specified time range.GetHistoricAdvancedPvPower: Retrieves advanced PV power historical data.GetHistoricRooftopPvPower: Retrieves rooftop PV power historical data.
GetTmyRadiationAndWeather: Retrieves TMY irradiance and weather data for a specified location.GetTmyAdvancedPvPower: Retrieves advanced PV power TMY data.GetTmyRooftopPvPower: Retrieves TMY rooftop PV power data.
GetLiveAggregations: Retrieves live grid aggregation data for up to 7 days.GetForecastAggregations: Retrieves forecast grid aggregation data for up to 7 days.
GetPvPowerSites: Retrieves a list of all available PV power sites.GetPvPowerSite: Retrieves metadata for a specific PV power site by its resource ID.PostPvPowerSite: Creates a new PV Power Site for use with advanced PV power model.PatchPvPowerSite: Partially updates the specifications of an existing PV power site.PutPvPowerSite: Overwrites an existing PV power site specifications.DeletePvPowerSite: Deletes an existing PV power site.
By default, the SDK does not check for updates during runtime. To enable automatic update checking, you can pass true for the checkForUpdates parameter when creating client instances:
var liveClient = new LiveClient(checkForUpdates: true);Alternatively, to enable update checking automatically for all client instances, set the CHECK_SDK_UPDATE environment variable to true:
Windows PowerShell:
$env:CHECK_SDK_UPDATE = "true"Linux/macOS:
export CHECK_SDK_UPDATE="true"When this flag is set, the SDK will automatically check for new versions during runtime regardless of the checkForUpdates parameter value.
To run the tests, use the following command:
dotnet build && dotnet testLive:
dotnet run --project examples/Solcast.Examples/Solcast.Examples.csproj liveHistoric:
dotnet run --project examples/Solcast.Examples/Solcast.Examples.csproj historicForecast:
dotnet run --project examples/Solcast.Examples/Solcast.Examples.csproj forecastThis SDK is licensed under the Apache 2.0 License. See the LICENSE file for more information.
