Rag.NET.Api 1.0.0

dotnet add package Rag.NET.Api --version 1.0.0
                    
NuGet\Install-Package Rag.NET.Api -Version 1.0.0
                    
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="Rag.NET.Api" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Rag.NET.Api" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Rag.NET.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 Rag.NET.Api --version 1.0.0
                    
#r "nuget: Rag.NET.Api, 1.0.0"
                    
#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 Rag.NET.Api@1.0.0
                    
#: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=Rag.NET.Api&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Rag.NET.Api&version=1.0.0
                    
Install as a Cake Tool

Rag.NET.Api

ASP.NET Core REST endpoints for a Rag.NET pipeline: MapRagNetApi() exposes ingest, retrieve, ask and delete over HTTP with API-key authentication, and MapRagNetWebhooks() adds an HMAC-verified ingestion webhook.

Install

dotnet add package Rag.NET.Api

Setup

using Rag.NET.Api.DependencyInjection;
using Rag.NET.DependencyInjection;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRagNet();  // configure your pipeline as usual
builder.Services.AddRagNetApi(o => o.ApiKeys = ["your-api-key"]);

var app = builder.Build();

app.UseRagNetApiAuthentication(); // X-Api-Key middleware
app.MapRagNetApi();

app.Run();

Authentication is an explicit decision: AddRagNetApi throws at startup when RagApiOptions.ApiKeys is empty, unless you opt out deliberately with o.AllowAnonymous = true (for example behind a trusted gateway that authenticates upstream). Setting both at once is rejected as a contradiction. The middleware also fails closed at request time — if the options end up with no keys and no opt-out, requests get 401 rather than an accidentally open API.

Deciding it is not the same as applying it, so both calls above are required, in that order. MapRagNetApi() throws at startup if AddRagNetApi was never called, and — unless you set AllowAnonymous — if app.UseRagNetApiAuthentication() has not already put the middleware in the pipeline. Either omission used to map the endpoints anyway and serve every one of them to every caller, with the configured keys sitting unread.

Example

Event-driven ingestion via the webhook endpoint — callers authenticate with an HMAC-SHA256 signature over the raw request body instead of the API key:

builder.Services.AddRagNetWebhooks(o =>
{
    o.Secret = builder.Configuration["Webhooks:Secret"]!; // required, non-empty
});

app.UseRagNetApiAuthentication();
app.MapRagNetWebhooks(); // POST /rag/webhooks/ingest

The webhook route prefix is exempted from API-key auth (the HMAC signature replaces the key). MapRagNetApi() refuses to start if that exemption would also cover any of the API's own routes — a WebhookOptions.RoutePrefix such as "/rag" that is a parent of /rag/ingest throws at mapping time instead of silently disabling authentication.

curl -X POST https://localhost:5001/rag/webhooks/ingest \
  -H "X-Signature-256: sha256=<hex hmac of body>" \
  -d '{"documentId":"doc-1","content":"full document text"}'

Full guide

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Rag.NET.Api:

Package Downloads
Rag.NET.Api.Client

HTTP client for Rag.NET.Api — implements IRagPipeline over HTTP

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 96 9/15/2026
0.1.0 128 8/11/2026