Built by Fubrio · fubrio.in
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.
Model statuses, kept honest
Verification is budget-controlled: small probes, staggered, so discovery never burns your rate limits.
Works with the keys you already have
No model lists to maintain by hand, no dead endpoints to discover from your users’ error reports.
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.
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.
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.
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.
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.Point your base URL here, swap in a FubriOne key, keep your SDKs, your types and your streaming code exactly as they are.
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
}'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.
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.
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.
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.
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.
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.
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
Your first connection takes about a minute — paste a key, watch discovery run, make your first routed request.