OpenRouter.NET
0.1.0
See the version list below for details.
dotnet add package OpenRouter.NET --version 0.1.0
NuGet\Install-Package OpenRouter.NET -Version 0.1.0
<PackageReference Include="OpenRouter.NET" Version="0.1.0" />
<PackageVersion Include="OpenRouter.NET" Version="0.1.0" />
<PackageReference Include="OpenRouter.NET" />
paket add OpenRouter.NET --version 0.1.0
#r "nuget: OpenRouter.NET, 0.1.0"
#:package OpenRouter.NET@0.1.0
#addin nuget:?package=OpenRouter.NET&version=0.1.0
#tool nuget:?package=OpenRouter.NET&version=0.1.0
OpenRouter.NET
A modern .NET SDK for the OpenRouter API - providing a unified interface to access multiple LLM providers.
Features
🚀 Simple and intuitive API 🔒 Type-safe with full async/await support 📦 Lightweight with minimal dependencies 🎯 Built for .NET 9.0+ 🔄 Full streaming support 🛠️ Tool calling (server-side auto-execute and client-side modes) 📄 Artifact support with incremental parsing ⚡ Async enumerable streaming (IAsyncEnumerable)
Installation
dotnet add package OpenRouter.NET
Or via NuGet Package Manager:
Install-Package OpenRouter.NET
Quick Start
Basic Usage
using OpenRouter.NET;
using OpenRouter.NET.Models;
var client = new OpenRouterClient("your-api-key");
var request = new ChatCompletionRequest
{
Model = "anthropic/claude-3.5-sonnet",
Messages = new List<Message>
{
Message.FromUser("Hello! What's the weather like?")
}
};
var response = await client.CreateChatCompletionAsync(request);
Console.WriteLine(response.Choices[0].Message.Content);
Streaming
using OpenRouter.NET;
using OpenRouter.NET.Models;
var client = new OpenRouterClient("your-api-key");
var request = new ChatCompletionRequest
{
Model = "anthropic/claude-3.5-sonnet",
Messages = new List<Message>
{
Message.FromUser("Tell me a story")
}
};
await foreach (var chunk in client.StreamAsync(request))
{
if (chunk.TextDelta != null)
{
Console.Write(chunk.TextDelta);
}
}
Artifacts
using OpenRouter.NET;
using OpenRouter.NET.Models;
var client = new OpenRouterClient("your-api-key");
var request = new ChatCompletionRequest
{
Model = "anthropic/claude-3.5-sonnet",
Messages = new List<Message>
{
Message.FromUser("Create a hello world function")
}
};
// Enable artifact support
request.EnableArtifactSupport();
await foreach (var chunk in client.StreamAsync(request))
{
if (chunk.TextDelta != null)
{
Console.Write(chunk.TextDelta);
}
if (chunk.Artifact is ArtifactCompleted completed)
{
Console.WriteLine($"\n\nArtifact: {completed.Title}");
Console.WriteLine(completed.Content);
}
}
Conversation (Multi-turn)
using OpenRouter.NET;
using OpenRouter.NET.Models;
var client = new OpenRouterClient("your-api-key");
var conversationHistory = new List<Message>();
// Add user message
conversationHistory.AddUserMessage("What is the capital of France?");
var request = new ChatCompletionRequest
{
Model = "anthropic/claude-3.5-sonnet",
Messages = conversationHistory
};
var response = await client.CreateChatCompletionAsync(request);
var assistantMessage = response.Choices[0].Message.Content;
// Add assistant response to history
conversationHistory.AddAssistantMessage(assistantMessage);
// Continue conversation
conversationHistory.AddUserMessage("What's the population?");
request.Messages = conversationHistory;
response = await client.CreateChatCompletionAsync(request);
Console.WriteLine(response.Choices[0].Message.Content);
Samples
Check out the samples/ directory for complete working examples:
- BasicCliSample - Interactive CLI to list models and chat with streaming
To run a sample:
export OPENROUTER_API_KEY="your-key-here"
cd samples/BasicCliSample
dotnet run
Requirements
- .NET 9.0 or later
Documentation
Full documentation coming soon.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
Acknowledgments
Built for the OpenRouter API platform.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. 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. |
-
net9.0
- No dependencies.
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 |
|---|---|---|
| 0.7.5 | 39,086 | 2/13/2026 |
| 0.7.4 | 792 | 11/25/2025 |
| 0.7.3 | 507 | 11/19/2025 |
| 0.7.2 | 466 | 11/19/2025 |
| 0.7.1 | 463 | 11/19/2025 |
| 0.7.0 | 469 | 11/19/2025 |
| 0.6.1 | 342 | 11/11/2025 |
| 0.6.0 | 334 | 11/11/2025 |
| 0.5.0 | 549 | 11/6/2025 |
| 0.4.0 | 271 | 11/5/2025 |
| 0.3.1 | 249 | 11/5/2025 |
| 0.3.0 | 251 | 10/28/2025 |
| 0.2.0 | 193 | 10/24/2025 |
| 0.1.0 | 246 | 10/23/2025 |