.NET 10 API client for Highlight Reporting API.
$ dotnet add package Highlight.ApiA .NET 10 client library for the Highlight API, designed to interact with the Highlight performance testing and reporting features.
dotnet add package Highlight.Api
Official API documentation: https://help.highlight.net/reporting/reporting-api
Version 2.0.12 introduces a new request object pattern for all API methods. The old method signatures with individual parameters are now marked as [Obsolete] and will cause compile-time errors that include instructions on how to migrate.
The migration to the new pattern is straightforward and improves code readability and maintainability.
Before (deprecated):
// This will cause a compile-time error
var result = await client.BearerSummary.GetAsync(
lastNDays: 7,
outputAvailability: true,
cancellationToken: token);
After (recommended):
var request = new BearerSummaryRequest
{
LastNDays = 7,
OutputAvailability = true
};
var result = await client.BearerSummary.GetAsync(request, token);
To migrate your code:
BearerSummaryRequest, PerformanceSummaryRequest)The obsolete methods are marked with [Obsolete("...", true)] which generates compile-time errors. Follow the compiler messages to identify which calls need to be updated.
using Highlight.Api;
using Highlight.Api.Data;
var client = new HighlightClient(new HighlightClientOptions
{
ApiKey = Guid.Parse("your_api_key_here"),
BaseAddress = new Uri("https://reportingapi.highlighter.net")
});
// Using request objects (recommended)
var request = new PerformanceSummaryRequest
{
LastNDays = 7,
IsBusinessHours = true
};
var result = await client
.PerformanceTestSummary
.GetPrecisionAsync(request, CancellationToken.None);
The client provides access to the following API endpoints:
| Property | Description |
|---|---|
BearerSummary | Bearer circuit summary data (ADSL, SDSL, Dedicated Access) |
BroadbandSummary | Broadband connection summary data |
CellularSummary | Cellular connection summary data |
DeviceInventory | SNMP device inventory data |
Folders | Folder/location hierarchy |
PerformanceTestSummary | Performance test results (ICMP/TCP/UDP, Precision, MOS, HTTP Server) |
SlaComplianceSummary | SLA compliance summary data |
SwitchPortCapacitySummary | Switch port capacity summary data |
TunnelSummary | SD-WAN VPN tunnel summary data |
WatchNodes | Watch node information |
WirelessAccessPoints | Wireless access point summary data |
All summary endpoints accept request objects that encapsulate query parameters:
| Property | Type | Description |
|---|---|---|
IsBusinessHours | bool? | Filter by business hours (true) or 24-hour period (false) |
LastNDays | int? | Number of days to look back from today |
FromDate | string? | Start date for the time window |
ToDate | string? | End date for the time window |
DateGranularity | string? | "Day" or "Month" |
FolderIds | List<int>? | Filter by specific folder IDs |
| Request Class | Additional Properties |
|---|---|
BearerSummaryRequest | OutputAvailability, OutputLoad, OutputHealth |
BroadbandSummaryRequest | - |
CellularSummaryRequest | - |
DeviceInventoryRequest | FolderIds only |
PerformanceSummaryRequest | OutputHealth |
SlaComplianceSummaryRequest | OutputAvailability, OutputLoad, OutputHealth |
SwitchPortCapacitySummaryRequest | - |
TunnelSummaryRequest | OutputAvailability, OutputLoad, OutputHealth |
WirelessAccessPointSummaryRequest | OutputAvailability, OutputHealth |
WatchNodesRequest | FolderIds only |
var request = new BearerSummaryRequest
{
LastNDays = 30,
OutputAvailability = true,
OutputLoad = true,
OutputHealth = true
};
var bearers = await client.BearerSummary.GetAsync(request, cancellationToken);
var request = new PerformanceSummaryRequest
{
LastNDays = 7,
DateGranularity = "Day"
};
// Different test types available
var precision = await client.PerformanceTestSummary.GetPrecisionAsync(request, cancellationToken);
var icmpTcpUdp = await client.PerformanceTestSummary.GetIcmpTcpUdpAsync(request, cancellationToken);
var mos = await client.PerformanceTestSummary.GetMosAsync(request, cancellationToken);
var httpServer = await client.PerformanceTestSummary.GetHttpServerAsync(request, cancellationToken);
// Get all folders
var folders = await client.Folders.GetAllAsync(cancellationToken);
// Get watch nodes for specific folders
var watchRequest = new WatchNodesRequest
{
FolderIds = [1, 2, 3]
};
var watchNodes = await client.WatchNodes.GetAsync(watchRequest, cancellationToken);
var request = new DeviceInventoryRequest();
var devices = await client.DeviceInventory.GetAsync(request, cancellationToken);
var request = new SlaComplianceSummaryRequest
{
LastNDays = 30,
OutputAvailability = true,
OutputHealth = true
};
var compliance = await client.SlaComplianceSummary.GetAsync(request, cancellationToken);
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright � 2025 Panoramic Data Limited. All rights reserved.