Skip to content
INFRO

Every AI model. One API.
Full control.

One production-ready API for leading text, image, video, and audio models — routed, observed, and governed, at or below the direct price.

Routing ledgerSimulated traffic · real catalog rates

A demonstration ledger of API requests being routed and metered, each priced below the provider's direct rate.

Saved vs direct prices, this demo: $0.89

Get your number

120+ models<40ms routing overhead99.9% uptime target

The models you already use. For less.

Same models, same quality, reached through one integration — priced at or below the rate you'd pay going direct.

ModelINFROSave
FLUX.2 [pro]Black Forest Labs$0.030 /image40%
FLUX.2 [dev]Black Forest Labs$0.014 /image44%
Imagen 4 UltraGoogle$0.046 /image23%
Ideogram 3.0Ideogram$0.053 /image34%
Recraft V3Recraft$0.026 /image35%
Seedream 4ByteDance$0.018 /image40%
Qwen-ImageAlibaba$0.011 /image45%

New models added continuously · prices in USD, illustrative at launch

Browse the full catalog

How much are you overpaying for AI?

Add the models you run today and what you spend on each. We price the same workload at INFRO rates.

Cost auditMonthly · USD

Your monthly AI spend

4 models
  • −0%
  • −40%
  • −43%
  • −29%

Enter what you spend today at each provider's direct price. Savings are computed per model from the published rates on this page — models we price the same as the provider show no saving.

Your estimate

Current spend

$8,420

per month

Estimated with INFRO

$5,880

per month

Potential savings

$2,540

$30,480 a year · 30% blended

30% of current spend

Start buildingHave us audit your real bill →

From idea to production in minutes.

Install one SDK, set one key, and call every modality through the same client. Streaming, retries, and async jobs are handled for you.

import os
from infro import Infro

client = Infro(api_key=os.environ["INFRO_API_KEY"])

# Text — OpenAI-compatible
chat = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[{"role": "user", "content": "Summarize this release."}],
)

# Image
image = client.images.generate(
    model="bfl/flux-2-pro",
    prompt="studio product shot, soft rim light",
)

# Video — async job, delivered by webhook
job = client.videos.create(
    model="kuaishou/kling-2.5",
    prompt="drone shot over a coastline at sunrise",
    duration_seconds=6,
    webhook={"url": "https://api.acme.com/hooks/infro"},
)
OpenAI-compatible where it counts
Text requests keep the request shape your code already speaks — change the base URL and the model string, nothing else.
One client, every modality
Images, video, audio, and embeddings live on the same client, the same key, and the same error model.
First-class Dart SDK
Flutter apps call the same API without a proxy layer, with streaming and job polling handled in the client.
Read the documentation

Your application shouldn't care where inference happens.

Capacity degrades, queues back up, limits get hit. We absorb that so your product keeps returning results.

Automatic failover
A degraded route is taken out of rotation and the request is retried elsewhere before your client ever sees an error.
Health-aware routing
Live error rates, latency, and rate-limit pressure decide where each request lands — scores update within minutes.
Retries with backoff
Transient failures are retried with jittered backoff, and idempotency keys keep replays from double-charging you.
Rate-limit absorption
Capacity is pooled across routes, so a single upstream limit stops being your application's ceiling.
Request lifecyclesimulated

01  Request

POST /v1/videos

02  INFRO

Scores healthy routes on price, latency, and error rate

03  Execute

route atimeout · retiring
route baccepted

04  Your application receives

202 Accepted · job_8fJq3k

Your code sees one outcome. Which route served it is a detail in the response, not a branch in your application.

Every request, on the record.

Trace each call from gateway to final token — model, route, latency, and exact cost attached — grouped by your users and sessions, in the stack you already run.

Request tracereq_9f03e1

Model

anthropic/claude-sonnet-5

auto-routed

Status

200

streamed

Duration

1.72s

first token 241ms

Cost

$0.0475

9,412 in · 1,284 out

gateway · auth + policy2.4ms
route selection0.9ms
anthropic/claude-sonnet-5 · first token241ms
token stream · 1,284 tok1,477ms
user usr_8k3nsession ses_42dftag checkout-agentlogging onCSV · Usage API · OTel

Simulated request · cost computed from live catalog rates

Request-level truth
Every call keeps its model, route, latency, token counts, and exact cost — inspectable seconds after it happens.
Your users, your sessions
Attach your own user and session ids to any request and see cost and latency per user, per session, per feature.
Analytics that answer questions
p50 and p95 latency, error rate, and spend — grouped by model, key, project, or any tag you set.
OpenTelemetry native
Traces export to the stack you already run — Datadog, Grafana, Honeycomb — no bespoke agent to adopt.

Know exactly where your AI money goes.

See spend per model, per project, and per key — while it is happening, not at month end.

UsageAug 1 – Aug 23

Spend

$6,142

this month

Saved

$2,905

vs direct prices

Requests

1.84M

+12% MoM

Budget used

61%

of $10,000

Tokens

297M

Images

53.2K

Video

13.1K sec

Speech

10.6M chars

Cost by model

  • kuaishou/kling-2.5$2,088
  • anthropic/claude-sonnet-5$1,781
  • bfl/flux-2-pro$1,597
  • elevenlabs/turbo-v3$676

Cost by project key

  • web-appsk_infro_·······4f2a$3,410
  • mobilesk_infro_·······91c7$1,888
  • batch-jobssk_infro_·······0d53$844

Console preview · illustrative data

Budgets and alerts
Set a monthly ceiling per account, project, or key. Get notified at your thresholds — or have requests stop at the limit.
Attribution that survives audit
Every request carries its model, route, latency, and exact cost. Group by project, key, or your own end-user id.
Savings, made visible
Each line shows what the same call would have cost at reference pricing, so the value is a number rather than a claim.
Export everything
Request-level CSV and a usage API, so the numbers land in your warehouse instead of a screenshot.

One account the whole company can use.

Bring every team onto one bill without giving up control — roles, spend ceilings, approved models, and an audit trail, managed from one console.

Roles that map to your org
Owners set policy, admins manage members and keys, developers build, analysts read. Access follows your identity provider over SSO and SCIM.
Spend ceilings that actually stop
A cap per member, per project, and per key. Get alerted at your thresholds — or have requests stop cold at the limit.
Approved models only
Allowlist what each project may call. Anything else returns a policy error in your logs, not a surprise on your invoice.
An audit trail for all of it
Every member, key, policy, and export event is recorded — kept twelve months and exportable when your auditor asks.
INFRO for Enterprise
Organizationacme-ai · 5 members
  • A. KellerOwner$2,410cap $4,000
  • M. OkaforAdmin$1,988cap $3,000
  • S. LindqvistDeveloper$1,204cap $2,000
  • J. BarrosDeveloper$540cap $2,000
  • R. TanakaAnalystread-only

Monthly cap

$10,000

Models

17 of 34

allowed by policy

Region

EU only

requests stay in zone

SSO

Okta · SAML

SCIM provisioning on

Console preview · illustrative data

The whole layer, not another point tool.

Routers route. Observability proxies watch. Media APIs stop at media. INFRO covers the surface end to end — for every modality.

 Model accessRouting & failoverObservabilityCost optimizationGovernanceEnterprise
OpenRoutertext-firstyesyespartialpartialyespartialpartialpartialpartial
Requestytext-firstyesyesyesyespartialpartialyes
Heliconetext-firstyesyesyesyesyesyes
Runwarepartialmedia onlypartialyespartialpartialyespartialpartialpartialpartial
INFROtext · image · video · audioyesyesyesat or below directyesyesyes

Our reading of each product's public documentation, August 2026. Think a mark is wrong? Tell us and we'll fix it.

Questions, answered plainly.

What exactly is INFRO?

INFRO is the infrastructure layer between your application and the AI ecosystem. One API and one account give you text, image, video, and audio models, and we handle routing, retries, failover, rate limits, usage tracking, and billing behind it.

How can you charge less than going direct?

We buy inference capacity in volume and pass most of the discount through. That works best where many routes compete for the same workload — image, video, audio, and open-weight text — which is where our biggest reductions are. Some frontier models are priced at their list rate, and we show that plainly rather than implying a universal discount.

Do I have to change my models or my prompts?

No. The pitch is the same models you already run, reached a simpler way. Text requests keep the OpenAI-compatible shape, so you change the base URL, the key, and the model string. Image, video, and audio use one consistent request shape across every model.

What happens when an upstream provider fails?

Requests are scored against live health, so a degrading route is taken out of rotation. On a timeout or 5xx before the response starts, we retry another route automatically. Your application sees a successful response, not a provider incident.

How does video generation work if it takes minutes?

Video runs as an async job. You submit and get a job id back immediately, then either poll the job endpoint or, better, receive a signed webhook when the render completes. Jobs survive interruptions and resume rather than silently dropping.

Is my data used for training?

Never. We don't train on your prompts, inputs, or outputs, and we don't sell them. By default we retain request metadata for billing and a short debugging window for content; set logging to false on any request and content is never written to disk.

Can I keep my own provider contracts?

Yes. Bring your own key routes traffic for that provider through your account under your existing rates and data agreements, while you keep unified analytics, failover, and one place to see spend.

Can my whole company share one account?

Yes — that's what organizations are for. Invite members with roles (owner, admin, developer, analyst), give each member and project its own spend ceiling, restrict which models each project may call, and turn on SSO and SCIM so access follows your identity provider. Every change lands in the audit log.

How do you handle European data rules?

Pin your organization or a single project to the EU routing zone and request content is processed only in EU datacenters. A DPA with Standard Contractual Clauses is available in the console, the subprocessor list is public, and per-request logs record which model produced every output — the record-keeping the EU AI Act expects of you.

Why not a router plus a separate observability tool?

You can wire a routing gateway into a logging proxy into a billing spreadsheet — three vendors, three dashboards, and gaps between them. INFRO is one layer doing the whole job: the request that was routed is the request that was traced, priced, and checked against your org's policy. One integration, one place to look.

How does billing work?

Pay as you go, per unit of what you actually used — tokens, images, seconds of video, characters of speech, hours transcribed. Add credits with a card, set spend limits per key or project, and export usage down to the individual request. No subscription, no minimum.

Your AI bill doesn't have to keep growing.

Move your AI infrastructure onto one API and let us handle the complexity behind it.