A .NET 10 client library for the Highlight API, designed to interact with the Highlight performance testing and reporting features.
dotnet add package Highlight.ApiOfficial 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 errorvarresult=awaitclient.BearerSummary.GetAsync(lastNDays:7,outputAvailability:true,cancellationToken:token);After (recommended):
varrequest=newBearerSummaryRequest{LastNDays=7,OutputAvailability=true};varresult=awaitclient.BearerSummary.GetAsync(request,token);To migrate your code:
- Create a new request object (e.g.,
BearerSummaryRequest,PerformanceSummaryRequest) - Set the properties on the request object instead of passing individual parameters
- Call the method with the request object and cancellation token
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.
usingHighlight.Api;usingHighlight.Api.Data;varclient=newHighlightClient(newHighlightClientOptions{ApiKey=Guid.Parse("your_api_key_here"),BaseAddress=newUri("https://reportingapi.highlighter.net")});// Using request objects (recommended)varrequest=newPerformanceSummaryRequest{LastNDays=7,IsBusinessHours=true};varresult=awaitclient.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 |
varrequest=newBearerSummaryRequest{LastNDays=30,OutputAvailability=true,OutputLoad=true,OutputHealth=true};varbearers=awaitclient.BearerSummary.GetAsync(request,cancellationToken);varrequest=newPerformanceSummaryRequest{LastNDays=7,DateGranularity="Day"};// Different test types availablevarprecision=awaitclient.PerformanceTestSummary.GetPrecisionAsync(request,cancellationToken);varicmpTcpUdp=awaitclient.PerformanceTestSummary.GetIcmpTcpUdpAsync(request,cancellationToken);varmos=awaitclient.PerformanceTestSummary.GetMosAsync(request,cancellationToken);varhttpServer=awaitclient.PerformanceTestSummary.GetHttpServerAsync(request,cancellationToken);// Get all foldersvarfolders=awaitclient.Folders.GetAllAsync(cancellationToken);// Get watch nodes for specific foldersvarwatchRequest=newWatchNodesRequest{FolderIds=[1,2,3]};varwatchNodes=awaitclient.WatchNodes.GetAsync(watchRequest,cancellationToken);varrequest=newDeviceInventoryRequest();vardevices=awaitclient.DeviceInventory.GetAsync(request,cancellationToken);varrequest=newSlaComplianceSummaryRequest{LastNDays=30,OutputAvailability=true,OutputHealth=true};varcompliance=awaitclient.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.