Skip to content

AI gateway

One gateway in front of the AI providers you already use. Your accounts, your rates, 0% markup on model spend.

Cancel before day 14 and pay nothing.

  • RoutingRules pick the model for each request.
  • FailoverAnother provider takes over when one fails.
  • BudgetsSpend limits checked before every call.

Your providers, routed through one gateway

OpenAIAnthropicGoogle AI (Gemini)Azure OpenAIAWS BedrockGoogle Vertex AIxAIMistralCohereGroqTogether AIFireworks AIDeepSeekOpenRouterRunwayTypeSafeCloudflare Workers AIInceptionLiquid AIUpstageMoonshot AI (Kimi)Z.ai (GLM)MiniMaxAlibaba Cloud Model StudioCerebrasPerplexityElevenLabsfal.aiReplicate

Run an AI API? Join the Provider Program

Routing

A request stream entering a layered glass control plane, with separate paths leading out to five provider endpoints.

Connect the provider accounts you already hold. Your apps call one API; each request runs on your credentials and is billed by your provider.

How routes work Supported providers

Product

Inspect a request, test a fallback, connect a provider and set a budget, right here.

Requests

4 requests · last 15 minutes

TimeProjectProviderStatusLatencyEst. cost
Served
3 of 4
Recovered by fallback
1
Refused before a provider
1
Est. provider cost
$0.0100

Select a request to see every attempt, its latency and its estimated cost.

Developers

Keep your OpenAI client. Change three lines, or let your coding agent do it.

API key
An INFRO gateway key. Provider credentials stay sealed inside INFRO.
Base URL
https://api.infro.io/v1
Model
A vendor/model id, or a route you configured.

Responses keep the OpenAI shape. INFRO’s own refusals have their own error codes.

app.py+3−2
import osfrom openai import OpenAI client = OpenAI(Removed:     api_key=os.environ["OPENAI_API_KEY"],Added:     api_key=os.environ["INFRO_API_KEY"],Added:     base_url="https://api.infro.io/v1",) response = client.chat.completions.create(Removed:     model="gpt-5.6-terra",Added:     model="openai/gpt-5.6-terra",    messages=messages,)

Configure projects, keys, routes and budgets as code through /manage/v1. Management API

Platform

Every capability runs on the provider accounts you connect.

Rules decide where a request goes. Failure rules decide what happens next.

Add if-rules to a route, and choose what each kind of failure does.

  • Match on the request. Metadata, feature, user, key, prompt size, tools or time of day.
  • Retry, fail over or stop. Choose per failure: rate limit, server error, timeout, connection or credential.
  • Several keys per provider. Active keys share traffic; standby keys take over.

Failover applies before the response starts. Interrupted streams are not restarted.

A request with feature support-triage reaches the route named support. Its first rule, long-prompts, sends prompts estimated above 32,000 input tokens to a Vertex AI connection and does not match. Its second, support-triage, matches and sends the request to an Anthropic connection, then an AWS Bedrock connection. Anthropic answers 429, the route's failure rule for rate_limit says failover, and the Bedrock connection serves it: the response names the route, the chain position standby_a and the provider.

Images, video and sound on the providers you already pay, from the first prompt to the cut your editor opens.

An example project, Night market: a 30-second spot of 9 shots. Each keyframe was made with GPT Image 2 and animated on a video model, with voice, effects and music on the audio models of the organization's own providers.

On every plan, with no add-on. 0% markup on model spend.

Decision models

Decision models answer typed questions with probabilities. INFRO turns each answer into an action: a model, a block, an approval, a label.

8decision models, one APIEach on your own provider account.
POST/v1/chat/completionsRoute classifier

Three prompts arrive on a route. For each one the decision model answers a choice question, how much reasoning the request needs, with a probability for small, medium and large. INFRO's route rules send the request to the model for the most likely class, and the response names the class in the X-INFRO-Route-Class header. Answered here by GPT-6 Luna (Decisions) from OpenAI.

  • Your provider accountsEvery decision runs on your own connection, billed by your provider.
  • Inside your budgetsChecked against key scope and spend limits before the call.
  • Recorded with its costEach call is a row in the request log: model, answer, estimated cost.

Pricing

Roles, budgets and model policy on every plan. Annual billing costs about 2 months less.

  • Developer

    For your first production AI application.

    $35/ month

    Gateway requests
    100k / mo
    Seats
    1
  • Startup

    For small teams running growing workloads.

    $79/ month

    Gateway requests
    500k / mo
    Seats
    3
  • Team

    For teams that need deeper observability.

    $199/ month

    Gateway requests
    2M / mo
    Seats
    10
  • Business

    For company-wide oversight and reconciliation.

    $599/ month

    Gateway requests
    10M / mo
    Seats
    Unlimited

Enterprise

For organizations with procurement, security review and their own terms.

Custom pricing

Invoiced quarterly or annually. 0% markup on model spend.

Everything in Business, including SSO and SCIM, plus

  • Self-hosted or hybrid: In your own cloud, or hybrid with our hosted console.
  • Contractual SLA: Availability committed in the contract, with remedies.
  • A named engineer: A shared channel and agreed incident response times.
  • Custom request volume: Agreed with you, past the 10M a month Business includes.
  • 365 days of history: Up to 365 days of request history; Business keeps 90.
  • Your MSA and DPA: Your paper reviewed, and your security questionnaire answered in writing.

14-day trial · Card required · Cancel before day 14 and you won't be charged · 0% markup on model spend

FAQ

Why use INFRO instead of calling OpenAI or Anthropic directly?

If you use one model from one vendor and nobody has asked what it costs, you probably should go direct — that is a real answer and we would rather give it than waste your evaluation. INFRO earns its place when at least one of these is true: you run several models across several vendors, a provider incident has taken your product down, someone has started asking which customer or feature is spending what, or provider keys have started appearing in more than one place. You still call the same providers on the same accounts; you stop owning the integration, the failover and the accounting between them.

How does the trial start?

Create an account at dash.infro.io and verify your email address. You create your organization, choose a plan and add a card at checkout, and your 14-day trial starts when that checkout completes. At the end of day 14 the plan you have selected is charged automatically — cancel before day 14 and you won't be charged. Your providers keep billing you directly for model usage throughout.

Can I run TypeSafe's Jev through INFRO?

Yes. INFRO serves TypeSafe's POST /v1/systemone with TypeSafe's request body and model names, so TypeSafe's SDK works against INFRO with a new base URL and an INFRO gateway key. Each decision runs on your own TypeSafe account and TypeSafe bills you for it directly. Before TypeSafe is called, INFRO checks the key and any spend limit; afterwards it returns TypeSafe's answers with the version that answered and an estimated cost, and records the request.

What happens if INFRO itself fails?

We become one more dependency — that is the honest cost of the trade, and you should price it in. Three things make it survivable. The status page runs on a separate, far simpler deployment than the gateway and checks the gateway from your own browser. Text speaks the OpenAI shape, so keeping a direct provider key and a base-URL switch in your config is a two-line contingency we actively recommend. And there is no published uptime SLA, because a service with no operating history cannot honestly offer one; an enterprise agreement can carry a contractual one.

Can I leave later?

Yes, and the migration back is the same two lines that brought you in. Retrieve request and usage history through the public APIs, or download it as CSV from the request log and Analytics, and keep it in your own systems before it leaves your plan's queryable history window. There are no scheduled or emailed exports.

How is our company data handled, and do you train on it?

We never train on your prompts, inputs, or outputs, and we never sell them. Usage metadata supports platform metering, cost estimates and governance. Optional prompt and response logging is off by default and limited by your plan. Job records and generated media needed for delivery are separate. Your AI providers' data-use and retention settings remain governed by your agreements with them.

24 more answers

Start on your own provider account, or see the product with our team first.