Built by Fubrio · fubrio.in

One API.
Every AI.

Connect the API keys you already own. FubriOne finds every model they unlock, checks each one daily with real requests, and serves them all behind a single OpenAI-compatible endpoint — with fallback, health monitoring and honest usage accounting built in.

  • Your keys stay yours
  • Free during early access
  • No per-token markup
A real routing decision, traced
POST /v1/chat/completions
model: FubriOne/fast
┌ candidates: 14 verified models · 3 connections
├ health filter: 12 healthy, 1 degraded, 1 down
├ cost × latency scoring…
└ picked: groq/llama-3.3-70b-versatile
ttft 212 ms$0.14 / Mtokstreamed · SSEfallback armed

Model statuses, kept honest

Discoveredseen in the provider's live list
Verifieda real probe request succeeded
Unavailableprobe failed — provider says no
Retiredgone from the provider's list

Verification is budget-controlled: small probes, staggered, so discovery never burns your rate limits.

Works with the keys you already have

OpenAIAnthropicGoogle GeminiGroqCerebrasMistralDeepSeekOpenRouterTogether AIFireworks AICoherexAI+ any OpenAI-compatible endpoint

Three steps, then it keeps itself running

No model lists to maintain by hand, no dead endpoints to discover from your users’ error reports.

01

Connect a key you already own

Paste a provider API key — or point FubriOne at any OpenAI-compatible base URL (vLLM, Ollama, LiteLLM, an internal gateway). Keys are encrypted with AES-256-GCM the moment they arrive, decrypted only in memory when a request needs them, and never shown or sent anywhere again. Up to 100 keys per provider, so you can spread load and rate limits across accounts.

02

We find out what it actually reaches

Every connection re-syncs on a 24-hour cycle: FubriOne pulls the provider’s live model list, then probes a bounded budget of models with tiny real requests. A model isn’t “available” because a catalogue says so — it’s available because a request succeeded. Time-to-first-token, full latency, tool calls, vision and embeddings are measured, not guessed.

03

Route everything through one endpoint

You get a single OpenAI-compatible API: /v1/chat/completions, /v1/embeddings and /v1/models, with SSE streaming. Call models directly (groq/llama-3.3-70b-versatile) or let an alias pick. When a provider fails mid-request, the next healthy candidate takes over — up to five attempts, never switching mid-stream.

Eight aliases for the decisions you don’t want to make

A model ID is a commitment. An alias is a policy: FubriOne picks the best live model that fits it, on your connections, at request time. Want a specific model anyway? Call it directly — provider/model-id.

# today, on your keys:
FubriOne/fast → groq/llama-3.3-70b
FubriOne/cheap → deepseek/deepseek-chat
FubriOne/quality → anthropic/claude-sonnet-4
# tomorrow? whatever verifies best.
FubriOne/autoBest overall pick for the request — balances health, speed and cost.
FubriOne/fastLowest time-to-first-token among healthy chat models.
FubriOne/cheapLowest estimated cost per token.
FubriOne/qualityHighest quality score from verified benchmarks.
FubriOne/reasoningReasoning-tuned models, for problems that need the extra thinking.
FubriOne/codingCoding-tuned models for development work.
FubriOne/visionModels that accept images.
FubriOne/embeddingVerified embedding models for /v1/embeddings.

If your code speaks OpenAI, it already speaks FubriOne

Point your base URL here, swap in a FubriOne key, keep your SDKs, your types and your streaming code exactly as they are.

streaming chat via alias
curl https://your-fubrione-url/v1/chat/completions \
  -H "Authorization: Bearer fub_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "FubriOne/fast",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": true
  }'

Daily discovery, honest statuses

New models land as Discovered, get probed, and become Verified — or Unavailable, or Verification failed. When a provider pulls a model, it turns Retired and routing skips it. Every change is in your history feed.

Health that reflects reality

Each model carries an availability score built from its last twenty probes, plus TTFT and latency percentiles. Degraded providers lose routing priority before they fail entirely.

You choose what's exposed

Toggle any model off and it disappears from your /v1/models and from routing. Filter the catalogue by free or paid pricing. Add models manually when a provider has no list endpoint.

Fallback you can reason about

Explicit fallback chains per alias, ordered your way. Bounded retries across candidates, per-attempt logging, and no mid-stream provider switching — a stream that started on a model finishes on it.

Accounting, not vanity charts

Every request is logged with token counts and estimated cost from provider pricing — rolled up per key, per provider, per model, per day. Error rates and latency included.

Keys handled like secrets

Provider keys: encrypted at rest, never logged, never returned. FubriOne keys: shown once, then stored hashed, with scopes, monthly limits, expiry and one-click revocation.

Bring your own keys. We never touch the price.

FubriOne is free during early access. There’s no token markup and no reselling: your requests go to your providers on your keys, and you pay them directly. What we add is the layer providers don’t ship — discovery, verification, routing, fallback and accounting across all of them at once.

What’s included

  • Unlimited connections (100 keys / provider)
  • 24-hour discovery + verification cycles
  • All eight omni/* aliases
  • Usage analytics & cost estimates
  • Scoped, revocable API keys

Questions, answered plainly

Bring one key.
Get every model.

Your first connection takes about a minute — paste a key, watch discovery run, make your first routed request.