Multi-model AI management · Supabase native

Every AI model, every prompt, every dollar — managed in one place.

odnoga is the AI control plane for Supabase SaaS. Version your prompts, route across every LLM, bill your end users on Stripe, and trace every call — without writing the infrastructure.

No cardSupabase-nativeOpenAI-compatibleMCP & Vercel AI SDK
supabase/functions/chat/index.ts
const jwt = req.headers.get("authorization")!.split(" ")[1];
const sub = JSON.parse(atob(jwt.split(".")[1])).sub;    // Supabase user id

const r = await fetch(ODNOGA + "/chat/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${Deno.env.get("ODNOGA_API_KEY")}`,
    "x-odnoga-end-user": sub,                        // metered per end user
  },
  body: JSON.stringify({
    model: "auto",                                   // router picks the model
    messages: [{ role: "user", content: "Hello!" }],
  }),
});

Read the Supabase-native guide.

Tokens processed through odnoga

One key — every provider

Why odnoga

Three things nobody else gives you in one platform.

Generic LLM gateways forward requests. odnoga ships the business layer your multi-tenant SaaS actually needs.

Prompt management

Git-like prompts. No redeploys.

Stop hardcoding prompts across edge functions. Version, label (production / staging), A/B test and rollback instantly — call by slug from your SDK.

const r = await ai.prompts.chat({
  slug: 'welcome-email',
  label: 'production',
  variables: { name: 'Ada' },
});
Prompt management →
Supabase-native

Twelve lines in your Edge Function.

Built for Supabase Edge Functions: forward the caller's Supabase user id and every request is metered, billed and traced per end user — no package to install, no metering layer to write.

const jwt = req.headers.get("authorization")!.split(" ")[1];
const sub = JSON.parse(atob(jwt.split(".")[1])).sub;

await fetch("https://api.odnoga.com/functions/v1/airouter-openai-compat/v1/chat/completions", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${Deno.env.get("ODNOGA_API_KEY")}`,
    "x-odnoga-end-user": sub, // metered per end user
  },
  body: JSON.stringify({ model: "auto", messages }),
});
Supabase native →
Multi-tenant billing

Per-end-user billing on Stripe.

One header attributes cost to your end user. Tenants get their own Stripe customer, their own plans, one consolidated invoice across every vendor — OpenAI, Anthropic, Gemini, Replicate.

// One header attributes cost & limits.
await fetch("https://api.odnoga.com/functions/v1/airouter-openai-compat/v1/chat/completions", {
  headers: {
    Authorization: `Bearer ${KEY}`,
    "x-airouter-end-user": "tenant_acme:user_42",
  },
  body: JSON.stringify({ model: "auto", messages }),
});
Multi-tenant billing →
Vault & key rotation
"auto" routing + fallback
MCP (Claude, Cursor, Lovable)
Realtime observability
Soft & hard budgets
Drop-in OpenAI-compatible
Why we built it

We were the team drowning in this.

Building a multi-tenant AI SaaS, we hit the same walls every time. odnoga is what we wished existed.

Pain

Models hardcoded across 30 edge functions.

Fix

Routing rules in the dashboard. Change models server-side, no redeploy.

Pain

Prompts buried in code. No A/B, no rollback.

Fix

Prompt registry with versions, labels, A/B routing and instant rollback.

Pain

Edge functions are a black box. Who called what, when, for whom?

Fix

Every call is a row: tenant, end-user, prompt version, cost, latency, provider.

Pain

You can't bill your customers. AI cost just sits on your card.

Fix

Per-end-user attribution + tenant Stripe + consolidated invoice across all vendors.

12+
model providers
<40ms
router overhead
99.95%
uptime SLA
1 header
per-user billing
Stripe
Full billing integration
At a glance

What is odnoga?

odnoga is a multi-model AI management platform that gives a multi-tenant SaaS everything it needs to ship AI to production — prompt versioning with A/B and rollback, per-end-user billing on Stripe, smart routing across every LLM provider, an encrypted key vault, and full traceability — natively wired into Supabase.

Who is it for?

SaaS teams building on Supabase that manage many AI models and prompts, and need to bill their own customers for AI usage without writing the metering, billing and tracing layer themselves.

How is it different?

  • Per-end-user attribution built for Supabase: forward the JWT subject and usage, budgets and invoices follow that user.
  • Prompt management is first-class: versions, labels, A/B routing, instant rollback — built in, not a separate tool.
  • Multi-tenant billing with per-end-user attribution and consolidated Stripe invoicing across every vendor.

Ready to start?

5 minutes to your first request. No card.