Solcast 2.0.0
dotnet add package Solcast --version 2.0.0
NuGet\Install-Package Solcast -Version 2.0.0
<PackageReference Include="Solcast" Version="2.0.0" />
<PackageVersion Include="Solcast" Version="2.0.0" />
<PackageReference Include="Solcast" />
paket add Solcast --version 2.0.0
#r "nuget: Solcast, 2.0.0"
#:package Solcast@2.0.0
#addin nuget:?package=Solcast&version=2.0.0
#tool nuget:?package=Solcast&version=2.0.0
Solcast API C# SDK 
A C# SDK to access the Solcast API, allowing you to retrieve solar radiation, weather data, and forecasts from satellite and numerical models.
Features
- 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.
Documentation
- C# SDK documentation: https://solcast.github.io/solcast-api-csharp-sdk/
- Full API documentation available at: Solcast API Docs
Installation
Install the SDK via NuGet with the following command:
dotnet add package Solcast
Alternatively, 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 build
Configuration
Before 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}"
Basic Usage
Retrieving Live Radiation and Weather Data
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);
Retrieving Forecast Data
using Solcast.Clients;
var forecastClient = new ForecastClient();
var response = await forecastClient.GetForecastRadiationAndWeather(
latitude: -33.856784,
longitude: 151.215297,
outputParameters: ["air_temp", "dni", "ghi"]
);
Retrieving Historic Radiation and Weather Data
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"
);
Retrieving TMY Radiation and Weather Data
using Solcast.Clients;
var tmyClient = new TmyClient();
var response = await tmyClient.GetTmyRadiationAndWeather(
latitude: -33.856784,
longitude: 151.215297,
);
Retrieving Grid Aggregation Forecast Data
using Solcast.Clients;
var aggregationClient = new AggregationClient();
var response = await aggregationClient.GetForecastAggregations(
collectionId: "country_total",
aggregationId: "it_total",
outputParameters: ["percentage", "pv_estimate"],
format: "csv"
);
Listing all available PV Power Sites:
using Solcast.Clients;
var pvClient = new PvPowerSiteClient();
var response = await pvClient.GetPvPowerSites();
Getting metadata of a specific PV Power Site:
using Solcast.Clients;
var pvClient = new PvPowerSiteClient();
var response = await pvClient.GetPvPowerSite("ba75-e17a-7374-95ed");
API Methods
LiveClient
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.
ForecastClient
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.
HistoricClient
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.
TmyClient
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.
AggregationClient
GetLiveAggregations
: Retrieves live grid aggregation data for up to 7 days.GetForecastAggregations
: Retrieves forecast grid aggregation data for up to 7 days.
PvPowerSiteClient
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.
Optional: Enabling SDK Update Checks
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.
Contributing
We welcome contributions to this SDK! If you'd like to contribute, please submit a Pull Request or open an issue with any suggestions or bug reports.
To generate the sdk from the openapi specs run:
python3 generate_sdk_csharp.py
To generate the documentation run:
python3 generate_sdk_docs.py [--use-cache]
Running Tests
To run the tests, use the following command:
dotnet build && dotnet test
Executing examples:
Live:
dotnet run --project examples/Solcast.Examples/Solcast.Examples.csproj live
Historic:
dotnet run --project examples/Solcast.Examples/Solcast.Examples.csproj historic
Forecast:
dotnet run --project examples/Solcast.Examples/Solcast.Examples.csproj forecast
License
This SDK is licensed under the Apache 2.0 License. See the LICENSE file for more information.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Newtonsoft.Json (>= 13.0.1)
- System.Net.Http.Json (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
2.0.0 | 486 | 7/22/2025 |
1.0.2 | 239 | 11/22/2024 |
1.0.1 | 115 | 11/14/2024 |
1.0.0 | 127 | 11/14/2024 |
1.0.0-beta3 | 95 | 11/14/2024 |
1.0.0-beta2 | 100 | 11/14/2024 |
1.0.0-alpha1 | 84 | 11/13/2024 |
0.1.3 | 124 | 10/24/2024 |
0.1.2 | 113 | 10/24/2024 |
0.1.2-alpha1 | 86 | 10/24/2024 |