Skip to content

C# / .NET

Overview

Floopy is a zero-SDK gateway. The Betalgo.OpenAI NuGet package supports custom base domains, so you can route all requests through Floopy without any extra dependencies. You get caching, rate limiting, fallbacks, and observability for free.

Installation

Terminal window
dotnet add package Betalgo.OpenAI

Configuration

using OpenAI;
using OpenAI.Managers;
using OpenAI.ObjectModels;
using OpenAI.ObjectModels.RequestModels;
var openAiService = new OpenAIService(new OpenAIOptions
{
BaseDomain = "https://api.floopy.ai/v1",
ApiKey = Environment.GetEnvironmentVariable("FLOOPY_API_KEY") // starts with fp_
});

Set FLOOPY_API_KEY in your environment. You can create one in the dashboard.

Basic Request

var completionResult = await openAiService.ChatCompletion.CreateCompletion(
new ChatCompletionCreateRequest
{
Messages = new List<ChatMessage>
{
ChatMessage.FromUser("Explain quantum computing in one sentence.")
},
Model = Models.Gpt_4o,
}
);
if (completionResult.Successful)
{
Console.WriteLine(completionResult.Choices.First().Message.Content);
}

Streaming

var completionResult = openAiService.ChatCompletion.CreateCompletionAsStream(
new ChatCompletionCreateRequest
{
Messages = new List<ChatMessage>
{
ChatMessage.FromUser("Write a short poem.")
},
Model = Models.Gpt_4o,
}
);
await foreach (var result in completionResult)
{
if (result.Successful)
{
Console.Write(result.Choices.First().Message.Content);
}
}

Custom Headers

Pass Floopy-specific headers using an HttpClient with default request headers:

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Floopy-Cache", "semantic");
httpClient.DefaultRequestHeaders.Add("floopy-property-environment", "production");
httpClient.DefaultRequestHeaders.Add("floopy-fallback", "claude-sonnet-4-20250514");
var openAiService = new OpenAIService(new OpenAIOptions
{
BaseDomain = "https://api.floopy.ai/v1",
ApiKey = Environment.GetEnvironmentVariable("FLOOPY_API_KEY"),
}, httpClient);
HeaderDescription
Floopy-CacheCache strategy: semantic or exact
floopy-property-*Attach custom metadata for filtering in the dashboard
floopy-fallbackFallback model if the primary provider fails
floopy-session-idGroup related requests into a session
floopy-user-idAssociate requests with an end user

See the Headers Reference for the full list.