kagi-dotnet
0.1.1
See the version list below for details.
dotnet add package kagi-dotnet --version 0.1.1
NuGet\Install-Package kagi-dotnet -Version 0.1.1
<PackageReference Include="kagi-dotnet" Version="0.1.1" />
paket add kagi-dotnet --version 0.1.1
#r "nuget: kagi-dotnet, 0.1.1"
// Install kagi-dotnet as a Cake Addin #addin nuget:?package=kagi-dotnet&version=0.1.1 // Install kagi-dotnet as a Cake Tool #tool nuget:?package=kagi-dotnet&version=0.1.1
kagi-dotnet
An unofficial .NET library for interacting with the Kagi API suite. Designed with .NET standards in mind, this library offers a straightforward, developer-friendly interface for working with advanced features like summarization, search, and content enrichment, making integration into your projects simple and efficient.
Features
- API Coverage – Full support for
v0
of the Universal Summarizer, FastGPT, Search, and Enrichment APIs. - .NET Standards Compliant – Adheres to .NET best practices and conventions.
Installation
Install the library via NuGet:
dotnet add package kagi-dotnet
Usage
- Obtain your API key from the Kagi API portal (requires a Kagi account).
- Pass the API key into a new instance of
KagiClient
or use a configuredHttpClient
if advanced configuration (e.g., proxies) is required. - Use the methods available on
KagiClient
to interact with the Kagi API.
Initialization
The client can be initialized in two ways:
- Basic Initialization – Pass in your API key directly:
var client = new KagiClient("YOUR_KAGI_API_KEY");
- Advanced Initialization – Use an existing HttpClient, ensuring that
BaseAddress
and anAuthorization
header have been set:
var httpClient = new HttpClient
{
BaseAddress = new Uri("https://kagi.com/api/v0/"),
Timeout = TimeSpan.FromSeconds(5)
};
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bot", "YOUR_KAGI_API_KEY");
var client = new KagiClient(httpClient);
Summarization
The Universal Summarizer API uses large language models to generate summaries for various types of content.
var summarizeOptions = new KagiSummarizeOptions
{
// Provide either a URL to summarize...
Url = new Uri("https://en.wikipedia.org/wiki/Kagi_(search_engine)")
// ...or raw text content.
Text = "Kagi is a paid ad-free search engine developed by Kagi Inc..."
};
var summarizeResult = await client.SummarizeAsync(summarizeOptions);
Console.WriteLine(summarizeResult.Data.Output);
Search-augmented Q&A
The FastGPT API combines Kagi’s search engine with language models to answer queries.
var answerOptions = new KagiAnswerOptions
{
Query = "What is the airspeed of a fully-laden swallow?"
};
var answerResult = await client.AnswerAsync(answerOptions);
Console.WriteLine(
$"{answerResult.Data.Output}\n\n" +
$"References Used: {answerResult.Data.References.Length}");
Search
The Search API allows you to access Kagi’s search engine programmatically.
[!NOTE] This API is currently in closed beta for business users.
var searchResults = await client.SearchAsync("weather today", limit: 20);
foreach (var item in searchResults.Data)
{
if (item is KagiRecordSearchData record)
{
// Item contains a search result (i.e. with a URL, title, optional snippet, etc.)
}
else if (item is KagiRelatedQuerySearchData relatedQuery)
{
// Item contains a list of related queries
}
}
Enrichment APIs for Supplemental Content
The Enrichment API allows you to access unique web content from Kagi’s specialized indexes, Teclis (for web content) and TinyGem (for news). This API is designed to provide specialized, non-mainstream results and is ideal for enhancing broader search results.
Web Enrichment
Retrieve supplemental results focused on high-quality "small web" content.
var webEnrichmentResults = await client.SearchWebEnrichmentsAsync("coffee blog");
foreach (var item in webEnrichmentResults.Data)
{
// Processing similar to the Search API output
}
News Enrichment
Retrieve non-mainstream, high-quality news content relevant to your query.
var newsEnrichmentResults = await client.SearchNewsEnrichmentsAsync("local news");
foreach (var item in newsEnrichmentResults.Data)
{
// Processing similar to the Search API output
}
Documentation
Refer to the Usage section above for a quick start, or consult the inline documentation while working in your IDE. For detailed information about the underlying API endpoints, parameters, and expected responses, refer to the official Kagi API documentation.
Contributing
Contributions are welcome! To contribute, fork the repository, create a new branch, and submit a pull request with your changes. Please make sure all tests pass before submitting.
License
This project is licensed under the MIT license. See license.txt
for full details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on kagi-dotnet:
Package | Downloads |
---|---|
kagi-dotnet-dependencyinjection
A .NET library for interacting with the Kagi API |
GitHub repositories
This package is not used by any popular GitHub repositories.