Using the HTTP API
Seq provides a compete HTTP API for manipulating events, queries, apps and so-on.
Seq also provides a rich Command-line Client that wraps the HTTP API and can be used on any OS.
Integrating from C#/.NET
The complete functionality of the Seq application is exposed to C# apps via the Seq.Api NuGet package.
This package makes it trivial to interact with Seq from C#:
var connection = new SeqConnection("http://localhost:5341");
var installedApps = await connection.Apps.ListAsync();
C# API Client Documentation is on GitHub
Instructions for installing the Seq.Api package, authenticating, and making calls to Seq can be found on the API GitHub project. The repository also includes some samples to get you started.
Integrating from Other Languages
Navigating to /api/
with a logged-in Seq session will show the root resource, with links to the various parts of the API.
{
"Product": "Seq - Machine data, for humans.",
"Version": "2020.1.4292",
"Links": {
"ApiKeysResources": "/api/apikeys/resources",
...
Check out the Server HTTP Endpoints documentation for a list of supported API endpoints.
Authentication
If authentication is enabled on the server, client applications will need to provide an API key, or log in and maintain the provided cookie.
API keys are the recommended way of authenticating with the Seq UI. The API key may either be provided in the query string:
GET /api/events?count=10&apiKey=a789b43750b297853
Or, included in an HTTP header:
X-Seq-ApiKey: a789b43750b297853
Checking Health
Seq exposes the /health
endpoint for monitoring purposes.
When served by Seq, GET /health
will return either 200 or 503, and will respond with a JSON body including a status property:
{"status": "The Seq node is in service."}
In a multi-node (e.g. DR) configuration, /health
will always be served by the node handling the request (other API endpoints may be internally routed to another node).
Updated about 3 years ago