Logitech.Api 1.0.6

dotnet add package Logitech.Api --version 1.0.6
                    
NuGet\Install-Package Logitech.Api -Version 1.0.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Logitech.Api" Version="1.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Logitech.Api" Version="1.0.6" />
                    
Directory.Packages.props
<PackageReference Include="Logitech.Api" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Logitech.Api --version 1.0.6
                    
#r "nuget: Logitech.Api, 1.0.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Logitech.Api@1.0.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Logitech.Api&version=1.0.6
                    
Install as a Cake Addin
#tool nuget:?package=Logitech.Api&version=1.0.6
                    
Install as a Cake Tool

Logitech.Api

Codacy Badge NuGet Version NuGet Downloads License: MIT

Introduction

Logitech.Api is a .NET 10 client library for the Logitech Sync Cloud API.

The current OpenAPI definition in this repository documents a single endpoint:

  • GET /org/{orgId}/place

This library is designed around that contract, with strongly typed models, mTLS support, and safety controls for write operations.

OpenAPI source used by this package: Docs/openapi-spec

Installation

dotnet add package Logitech.Api

Requirements

  • .NET 10 SDK/runtime
  • A Logitech Sync organization ID
  • A valid client certificate for Logitech Sync API mTLS authentication

Quick Start

using Logitech.Api;
using System.Security.Cryptography.X509Certificates;

var certificate = X509CertificateLoader.LoadPkcs12FromFile(
	"path/to/logitech-client-certificate.pfx",
	"certificate-password");

using var httpClient = new HttpClient
{
	BaseAddress = new Uri("https://api.sync.logitech.com/v1/")
};

var client = new LogitechSyncClient(
	httpClient,
	new LogitechSyncClientOptions
	{
		ClientCertificate = certificate,
		IsWritePermitted = false
	});

var response = await client.Places.GetAsync(
	orgId: "YOUR_ORG_ID",
	limit: 100,
	rooms: true,
	desks: true,
	unlicensed: false,
	projection: "place.info,place.occupancy,place.device,place.device.info,place.device.status");

API Surface

Property Endpoint Description
Places GET /org/{orgId}/place Returns rooms/desks and optionally nested device information

Query Parameters for Places.GetAsync

Parameter Type Description
orgId string Required organization ID
continuation string? Pagination token returned by previous call
limit int? Max results per page (1-1000)
rooms bool? Include rooms
desks bool? Include desks
unlicensed bool? Include unlicensed places with basic fields
projection string? Comma-separated field projection list

Safety Model

LogitechSyncClientOptions.IsWritePermitted defaults to false.

When false, the internal handler blocks all outgoing POST, PUT, PATCH, and DELETE requests with an InvalidOperationException.

This helps prevent accidental mutations when running in read-only mode.

Error Handling and Throttling

Based on the OpenAPI definition, you should expect at least:

  • 400 Bad Request for invalid query parameters
  • 403 Forbidden for invalid/expired certificates or organization access
  • 429 Too Many Requests when quota/rate limits are exceeded

The API documentation recommends implementing retries with exponential backoff for throttled (429) responses.

Testing

This repository includes both unit tests and integration tests.

Integration tests use user-secrets. Configure the following values:

{
  "Logitech": {
	"OrgId": "YOUR_ORG_ID",
	"Certificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
	"PrivateKey": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
  }
}

Reference files:

Run tests:

dotnet test Logitech.Api.Test/Logitech.Api.Test.csproj -v minimal

Collect coverage:

dotnet test Logitech.Api.Test/Logitech.Api.Test.csproj -v minimal --collect:"XPlat Code Coverage"

License

This project is licensed under the MIT License. See LICENSE.

Copyright (c) 2026 Panoramic Data Limited. All rights reserved.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.0.6 115 6/7/2026
1.0.3 116 6/6/2026