Seq.Api 4.2.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Seq.Api --version 4.2.2
                    
NuGet\Install-Package Seq.Api -Version 4.2.2
                    
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="Seq.Api" Version="4.2.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Seq.Api" Version="4.2.2" />
                    
Directory.Packages.props
<PackageReference Include="Seq.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 Seq.Api --version 4.2.2
                    
#r "nuget: Seq.Api, 4.2.2"
                    
#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 Seq.Api@4.2.2
                    
#: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=Seq.Api&version=4.2.2
                    
Install as a Cake Addin
#tool nuget:?package=Seq.Api&version=4.2.2
                    
Install as a Cake Tool

Seq HTTP API Client Build status NuGet Pre Release Join the chat at https://gitter.im/datalust/seq

This library includes:

  • C# representations of the entities exposed by the Seq HTTP API
  • Helper classes for interacting with the API

It's useful for querying events and working with configuration data - everything you can do using the Seq web UI, you can do programmatically via the API.

If you want to write events to Seq, use one of the logging framework clients, such as Serilog.Sinks.Seq or NLog.Targets.Seq instead.

Getting started

Install from NuGet:

Install-Package Seq.Api

Create a SeqConnection with your server URL:

var connection = new SeqConnection("http://localhost:5341");

Navigate the "resource groups" exposed as properties of the connnection:

var installedApps = await connection.Apps.ListAsync();

To authenticate, the SeqConnection constructor accepts an apiKey parameter (make sure the API key permits user-level access) or, if you want to log in with personal credentials you can await connection.Users.Login(username, password).

For a more complete example, see the seq-tail app included in the source.

Creating entities

The Seq API provides a /template resource for each resource group that provides a new instance of the resource with defaults populated. The API client uses this pattern when creating new entities:

var signal = await connection.Signals.TemplateAsync();
signal.Title = "Signal 123";
await connection.Signals.AddAsync(signal);

See the signal-copy app for an example of this pattern in action.

Reading events

Seq internally limits the resources a query is allowed to consume. The query methods on SeqConnection.Events include a status with each result set - a Partial status indicates that further results must be retrieved.

The snippet below demonstrates paging through results to retrieve the complete set.

string lastReadEventId = null;

while(true)
{
  var resultSet = await connection.Events.InSignalAsync(
      filter: "Environment = 'Test'",
      render: true,
      afterId: lastReadEventId);
      
  foreach (var evt in resultSet.Events)
    Console.WriteLine(evt.RenderedMessage);

  if (resultSet.Statistics.Status != ResultSetStatus.Partial)
    break;
    
  lastReadEventId = resultSet.Statistics.LastReadEventId;
}

If the result set is expected to be small, ListAsync() will buffer results and return a complete list:

var resultSet = await connection.Events.ListAsync(
    filter: "Environment = 'Test'",
    render: true,
    count: 1000);
  
foreach (var evt in resultSet)
  Console.WriteLine(evt.RenderedMessage);

All methods that retrieve events require a count. The API client defaults this value to 30 if not specified.

Streaming events

Seq 3.4 provides live streaming of events matching a filter and/or set of signals.

var filter = "@Level = 'Error'";

using (var stream = await connection.Events.StreamAsync<JObject>(filter: filter))
using (stream.Select(jObject => LogEventReader.ReadFromJObject(jObject))
             .Subscribe(evt => Log.Write(evt)))
{
    await stream;
}

The Events.StreamAsync() method returns a hot IObservable<T> over a WebSocket. The observable will keep producing events until either it's disposed, or the server is shut down.

Seq streams the events in compact JSON format, which the Seq API client library can deserialize into JSON.NET JObjects for consumption.

Serilog.Formatting.Compact.Reader provides the LogEventReader class used above to turn these documents back into Serilog LogEvents. Having the events represented in Serilog’s object model means they can be passed back into a logging pipeline, as performed above using Log.Write().

Working with the basic client

The SeqApiClient class implements the low level interactions with the API's entities and links. It's one step up from System.Net.HttpClient - you may be able to use it in cases not supported by the high-level wrapper.

Create a SeqApiClient with your server URL:

var client = new SeqApiClient("http://localhost:5341");

Get the root resource and use it to retrieve one or more of the resource groups:

var root = await client.GetRootAsync();
var events = await client.GetAsync<ResourceGroup>(root, "EventsResources");

(Available resource groups, like Events, Users and so-on, can be seen in the root document's Links collection.)

Use the client to navigate links from entity to entity:

var matched = await client.List<EventEntity>(
  events,
  "Items",
  new Dictionary<string, object>{{"count", 10}, {"render", true}});

foreach (var match in matched)
  Console.WriteLine(matched.RenderedMessage);

Package versioning

This package does not follow the SemVer rule of major version increments for breaking changes. Instead, the package version tracks the Seq version it supports.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.3 is compatible.  netstandard1.4 was computed.  netstandard1.5 was computed.  netstandard1.6 was computed.  netstandard2.0 was computed.  netstandard2.1 was computed. 
.NET Framework net452 is compatible.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Seq.Api:

Package Downloads
akilin.Utils

Package Description

Phoenix.Functionality.Logging.Extensions.Serilog.Seq

Containes helper functionality for using the Seq sink of Serilog.

Seq.App.Splunk

Description

InnovationNorway.FluentPulumi

Wrapper project for pulumi simplifying the creation of azure infrastructure for Innovation Norway

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Seq.Api:

Repository Stars
datalust/seqcli
The Seq command-line client. Administer, log, ingest, search, from any OS.
Version Downloads Last Updated
2025.2.2 2,617 8/11/2025
2025.2.2-dev-00263 125 8/11/2025
2025.2.1 153 8/11/2025
2025.2.0 5,652 6/17/2025
2025.2.0-dev-00260 122 8/11/2025
2025.2.0-dev-00255 152 6/17/2025
2025.2.0-dev-00252 276 6/10/2025
2025.1.0 7,237 5/9/2025
2025.1.0-dev-00249 164 5/9/2025
2025.1.0-dev-00247 308 2/17/2025
2024.3.0 189,149 5/1/2024
2024.3.0-dev-00246 115 2/14/2025
2024.3.0-dev-00241 112 4/29/2024
2024.3.0-dev-00239 319 4/22/2024
2024.3.0-dev-00237 131 4/22/2024
2024.3.0-dev-00235 127 4/22/2024
2024.2.0 9,997 3/25/2024
2024.2.0-dev-00232 117 4/2/2024
2024.2.0-dev-00228 117 3/24/2024
2024.1.0 30,281 1/24/2024
2024.1.0-dev-00223 110 1/24/2024
2023.4.0 79,713 8/30/2023
2023.4.0-dev-00213 173 8/30/2023
2023.3.0 75,772 7/7/2023
2023.3.0-dev-00208 189 7/7/2023
2023.2.0 41,300 5/31/2023
2023.2.0-dev-00204 196 5/31/2023
2023.1.2-dev-00212 172 8/30/2023
2023.1.2-dev-00201 2,190 3/8/2023
2023.1.0 117,595 1/20/2023
2023.1.0-dev-00197 227 1/20/2023
2022.1.1-dev-00196 338 1/16/2023
2022.1.1-dev-00191 2,034 5/16/2022
2022.1.0 161,911 3/15/2022
2022.1.0-dev-00186 249 3/15/2022
2022.1.0-dev-00184 259 2/24/2022
2021.4.0 78,188 12/14/2021
2021.4.0-dev-00177 288 12/13/2021
2021.4.0-dev-00175 284 12/13/2021
2021.3.1 62,766 10/25/2021
2021.3.1-dev-00172 371 10/22/2021
2021.3.0 4,014 10/12/2021
2021.3.0-dev-00167 424 8/26/2021
2021.2.1-dev-00162 620 7/13/2021
2021.2.0 80,109 3/17/2021
2021.2.0-dev-00158 341 3/17/2021
2021.1.0 5,903 2/5/2021
2021.1.0-dev-00155 356 2/5/2021
2020.5.0 45,884 12/24/2020
2020.5.0-dev-00151 438 12/24/2020
2020.4.0 18,682 11/12/2020
2020.4.0-dev-00147 420 11/12/2020
2020.3.0-dev-00164 309 8/25/2021
2020.1.1-dev-00145 483 9/1/2020
2020.1.1-dev-00139 458 8/31/2020
2020.1.1-dev-00135 481 6/23/2020
2020.1.0 85,833 6/23/2020
2020.1.0-dev-00132 618 5/15/2020
2020.1.0-dev-00130 472 5/5/2020
2020.1.0-dev-00129 486 4/22/2020
5.1.3-dev-00126 12,511 12/30/2019
5.1.2 44,509 12/9/2019
5.1.2-dev-00118 495 12/9/2019
5.1.2-dev-00116 521 12/4/2019
5.1.1 15,747 9/13/2019
5.1.1-dev-00112 528 9/13/2019
5.1.1-dev-00109 516 9/13/2019
5.1.1-dev-00106 507 9/12/2019
5.1.1-dev-00104 520 9/12/2019
5.1.1-dev-00101 528 9/12/2019
5.1.1-dev-00099 534 9/12/2019
5.1.0 68,800 3/21/2019
5.1.0-dev-00094 600 3/21/2019
5.0.0 8,536 11/5/2018
5.0.0-dev-00088 787 10/29/2018
5.0.0-dev-00086 772 10/18/2018
5.0.0-dev-00084 1,590 5/17/2018
5.0.0-dev-00082 1,297 4/21/2018
5.0.0-dev-00079 1,165 4/17/2018
4.2.3-dev-00076 1,225 2/19/2018
4.2.2 40,293 1/16/2018
4.2.2-dev-00072 1,241 1/16/2018
4.2.1 1,518 1/16/2018
4.2.1-dev-00069 1,327 1/16/2018
4.2.1-dev-00066 1,221 1/15/2018
4.2.1-dev-00064 1,212 1/15/2018
4.2.0 1,909 1/15/2018
4.2.0-dev-00062 1,301 1/15/2018
4.2.0-dev-00059 1,271 1/10/2018
4.2.0-dev-00057 1,269 12/7/2017
4.0.0 51,704 5/16/2017
4.0.0-dev-00047 1,119 4/28/2017
4.0.0-dev-00045 1,142 4/25/2017
4.0.0-dev-00042 1,111 4/16/2017
4.0.0-dev-00041 1,053 4/16/2017
3.4.3 27,025 2/7/2017
3.4.3-dev-00035 1,075 1/29/2017
3.4.3-dev-00033 1,077 1/27/2017
3.4.3-dev-00031 1,106 1/23/2017
3.4.2 2,828 12/14/2016
3.4.2-dev-00027 1,068 12/14/2016
3.4.1 3,344 11/29/2016
3.4.1-dev-00023 1,074 11/29/2016
3.4.1-dev-00020 1,075 11/18/2016
3.4.0 3,263 11/18/2016
3.4.0-dev-00017 1,090 11/18/2016
3.4.0-dev-00016 1,080 10/31/2016
3.4.0-dev-00014 1,082 10/28/2016
3.4.0-dev-00012 1,060 10/28/2016
3.4.0-dev-00010 1,072 10/28/2016
3.4.0-dev-00008 1,078 10/28/2016
3.4.0-dev-00006 1,096 10/27/2016
3.4.0-dev-00003 1,076 10/27/2016
3.3.1 2,086 8/29/2016
3.0.3 1,663 3/14/2016
2.1.38 1,767 1/17/2016
2.1.36 1,365 1/8/2016
2.1.33 1,437 12/21/2015
2.1.32 1,449 11/14/2015
2.1.31 1,359 11/14/2015
2.1.30 1,550 9/10/2015
2.1.29 1,429 9/10/2015
2.1.28 1,583 7/27/2015
2.0.27 1,510 7/27/2015
2.0.26 1,444 7/27/2015
2.0.25 1,428 7/27/2015
2.0.24 1,472 7/24/2015
2.0.23 1,497 7/24/2015
2.0.22 1,379 6/16/2015
2.0.21 1,368 6/10/2015
0.6.19 1,583 3/10/2015
0.6.18 1,403 1/20/2015
0.6.17 1,388 1/19/2015
0.6.16 1,703 12/16/2014
0.6.14 1,687 12/15/2014
0.6.13 1,639 12/15/2014
0.6.12 1,620 12/15/2014
0.6.11 1,641 12/15/2014
0.6.10 1,697 12/15/2014
0.6.9 1,699 12/13/2014
0.6.8 1,649 12/11/2014
0.1.0 1,982 12/11/2014