Soenneker.HighLevel.Contacts
11.0.307
Prefix Reserved
See the version list below for details.
dotnet add package Soenneker.HighLevel.Contacts --version 11.0.307
NuGet\Install-Package Soenneker.HighLevel.Contacts -Version 11.0.307
<PackageReference Include="Soenneker.HighLevel.Contacts" Version="11.0.307" />
<PackageVersion Include="Soenneker.HighLevel.Contacts" Version="11.0.307" />
<PackageReference Include="Soenneker.HighLevel.Contacts" />
paket add Soenneker.HighLevel.Contacts --version 11.0.307
#r "nuget: Soenneker.HighLevel.Contacts, 11.0.307"
#:package Soenneker.HighLevel.Contacts@11.0.307
#addin nuget:?package=Soenneker.HighLevel.Contacts&version=11.0.307
#tool nuget:?package=Soenneker.HighLevel.Contacts&version=11.0.307
Soenneker.HighLevel.Contacts
Upsert, search, retrieve, update, and delete HighLevel contacts through typed request and response models.
Install
dotnet add package Soenneker.HighLevel.Contacts
Register
using Soenneker.HighLevel.Contacts.Registrars;
services.AddHighLevelContactsUtilAsScoped();
The scoped registration keeps the underlying HighLevel client provider singleton, so disposing a scope does not tear down clients reused by later scopes. Use AddHighLevelContactsUtilAsSingleton() when the contact service itself should live for the application lifetime.
Set HighLevel:LogEnabled to true to emit operation-level logs. API keys are supplied per method call, allowing one service instance to work with multiple HighLevel accounts.
Upsert a contact
using Soenneker.HighLevel.Contacts.Abstract;
using Soenneker.HighLevel.OpenApiClient.Models;
var contact = new UpsertContactDto
{
LocationId = locationId,
Email = "person@example.com",
FirstName = "Morgan",
LastName = "Lee"
};
UpsertContactsSuccessfulResponseDto? response = await contacts.Upsert(
apiKey,
contact,
cancellationToken);
Upsert and Update normalize a non-null email address to lowercase on the supplied model before sending it.
Look up a contact
ContactsByIdSuccessfulResponseDto? byId = await contacts.GetById(
apiKey,
contactId,
cancellationToken);
ContactsSearchSchema? byEmail = await contacts.GetByEmail(
apiKey,
"person@example.com",
locationId,
cancellationToken);
GetByEmail performs an advanced search limited to one result and returns the first contact, or null when the response contains no match.
Other operations
ContactsSearchSuccessfulResponseDto? matches = await contacts.Search(
apiKey,
searchRequest,
cancellationToken);
UpdateContactsSuccessfulResponseDto? updated = await contacts.Update(
apiKey,
contactId,
updateRequest,
cancellationToken);
DeleteContactsSuccessfulResponseDto? deleted = await contacts.Delete(
apiKey,
contactId,
cancellationToken);
HighLevel error responses are surfaced as exceptions by the generated client; a nullable result means the API returned no usable response body, not that an error was suppressed.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net11.0 is compatible. |
-
net11.0
- Microsoft.Extensions.Configuration.Binder (>= 11.0.0-rc.3.26522.148)
- Soenneker.Extensions.String (>= 4.0.800)
- Soenneker.HighLevel.ClientUtil (>= 11.0.381)
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 |
|---|---|---|
| 11.0.308 | 46 | 10/28/2026 |
| 11.0.307 | 47 | 10/27/2026 |
| 11.0.306 | 50 | 10/27/2026 |
| 11.0.305 | 44 | 10/27/2026 |
| 11.0.304 | 40 | 10/27/2026 |
| 11.0.303 | 49 | 10/27/2026 |
| 11.0.302 | 48 | 10/27/2026 |
| 11.0.301 | 52 | 10/26/2026 |
| 11.0.300 | 56 | 10/26/2026 |
| 11.0.299 | 56 | 10/26/2026 |
| 4.0.298 | 54 | 10/26/2026 |
| 4.0.297 | 60 | 10/25/2026 |
| 4.0.296 | 75 | 10/23/2026 |
| 4.0.295 | 109 | 10/21/2026 |
| 4.0.294 | 242 | 10/15/2026 |
| 4.0.293 | 99 | 10/15/2026 |
| 4.0.292 | 95 | 10/15/2026 |
| 4.0.289 | 88 | 10/14/2026 |
| 4.0.287 | 92 | 10/14/2026 |
Updated Soenneker.HighLevel.ClientUtil to 11.0.381