Guias de migraçãoVindo do OpenRouter
Do OpenRouter, com o OpenRouter ainda no cenário, se você quiser
O OpenRouter oferece uma conta e uma chave para modelos de muitos fornecedores, pagas com os créditos dele, com suas próprias chaves de provedor como opção. O INFRO é o contrário: toda requisição roda em uma conta de provedor que você tem. Os dois não são excludentes, porque o OpenRouter é um dos provedores a que o INFRO se conecta. Esta página mostra os dois caminhos: o OpenRouter como um upstream entre suas contas diretas, ou só contas diretas.
A Stripe concordou em adquiri-lo (anunciado em 2026-08-19); nenhum aviso de conclusão até 2026-10-19
As contas do INFRO são self-service. O catálogo, a documentação e o contrato da API são públicos, o gateway está implantado, e tudo o que vai além da v1 está marcado para depois. Planos e teste
Situação atual
Propriedade
A Stripe anunciou em 2026-08-19 que concordou em adquirir o OpenRouter. O post do próprio OpenRouter diz que o nome, o produto e o roadmap continuam e que as integrações não mudam. Nenhuma das duas empresas tinha publicado um aviso de conclusão quando lemos suas páginas em 2026-10-19.
A conta de quem atende a requisição
Por padrão, as próprias contas de provedor do OpenRouter, pagas com créditos pré-pagos. Com BYOK, sua chave de provedor é tentada primeiro; a documentação do OpenRouter diz que ele pode recorrer à capacidade compartilhada em caso de falha, a menos que isso seja desativado por chave.
O que migra
URL base e chave; models para fallbacks; roteamento provider para rotas ou routing.providers; user, session_id e trace para metadata ou headers do INFRO. HTTP-Referer e X-OpenRouter-Title saem.
O OpenRouter resolve o acesso: uma conta, muitos fornecedores. Se esse é o seu problema, ele é o produto certo, e você ainda pode colocar o INFRO na frente dele.
- Você não quer ter conta em cada fornecedor. O INFRO só roda em contas que você tem, então cada modelo que você chama precisa de uma conta de provedor por trás (a do OpenRouter pode ser uma delas).
- Você escolhe entre muitos hosts de modelos open-weight por preço, throughput ou latência por requisição (
provider.sort,max_price). O INFRO não tem ordenação por preço ou latência por requisição; uma rota define a ordem. - Você depende de
openrouter/autoou de presets que carregam um prompt de sistema e parâmetros. O mais próximo no INFRO é uma rota com um classificador de prompts, que escolhe destinos, não prompts. - Você precisa de roteamento na região da UE hoje. A residência de dados do INFRO está no roadmap, não disponível.
As alterações, uma linha cada. Tudo o que não está listado aqui continua como está.
| OpenRouter | INFRO | |
|---|---|---|
| URL base | https://openrouter.ai/api/v1 | https://api.infro.io/v1 |
| Chave | Uma chave do OpenRouter; suas chaves de provedor podem ser adicionadas como BYOK. | Uma chave do gateway do INFRO. Suas contas de provedor (e sua chave do OpenRouter, se você a mantiver) são conexões no console. |
| Id do modelo | vendor/model, ~vendor/...-latest, openrouter/auto, @preset/name. | vendor/model do catálogo do INFRO, ou o nome de uma rota. GET /v1/models lista o que suas conexões servem. Alguns prefixos de fornecedor diferem dos do OpenRouter (xai/ no INFRO, x-ai/ no OpenRouter). |
| Campos do corpo | models, provider { order, only, ignore, sort, max_price }, user, session_id, trace. | fallbacks (até 5), routing.providers { allow, deny }, metadata { user_id, session_id, tags }; X-INFRO-Trace-Id para um id de trace. |
Antes · OpenRouter
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
defaultHeaders: { "X-OpenRouter-Title": "Example App" },
});
await client.chat.completions.create({
model: "anthropic/claude-sonnet-5.5",
messages: [{ role: "user", content: "Hello" }],
user: "user_123",
// @ts-expect-error OpenRouter extensions
models: ["anthropic/claude-sonnet-5.5", "openai/gpt-5.6-terra"],
provider: { order: ["anthropic", "google-vertex"] },
});Depois · INFRO
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.infro.io/v1",
apiKey: process.env.INFRO_API_KEY,
});
await client.chat.completions.create({
model: "anthropic/claude-sonnet-5.5",
messages: [{ role: "user", content: "Hello" }],
// @ts-expect-error INFRO extensions
fallbacks: ["openai/gpt-5.6-terra"],
routing: { providers: { allow: ["anthropic", "google-vertex"] } },
metadata: { user_id: "user_123" },
});A ordem fica em uma rota
routing.providers restringe quais dos seus provedores podem atender uma requisição; ele não define a ordem. Para uma ordem fixa, crie uma rota (por exemplo chat-default) com seus destinos em sequência e envie-a como model.
Mantendo o OpenRouter atrás do INFRO
Conecte sua chave do OpenRouter como provedor no console. As requisições podem então fazer failover das suas contas diretas para o OpenRouter, e routing.providers com openrouter em allow ou deny o inclui ou exclui por requisição.
Gatilhos de fallback
Os fallbacks são tentados depois que todas as conexões para model falharam. Um erro do provedor depois que a resposta começou o streaming é devolvido, não roteado de novo.
Os objetos do OpenRouter comparados aos do INFRO, a partir da documentação pública do OpenRouter lida em 19 de outubro de 2026 e conferidos com o que o gateway implementa. Duas linhas dizem que o INFRO não tem nada.
| OpenRouter | O que faz lá | No INFRO |
|---|---|---|
| Chave e créditos do OpenRouterdiferente | Uma chave para todos os modelos, paga com créditos pré-pagos. | Uma chave do gateway sobre as contas de provedor que você conecta; cada provedor cobra você diretamente. O INFRO cobra uma assinatura e adiciona 0% ao gasto com modelos. |
| BYOKdiferente | Suas chaves de provedor, tentadas primeiro; fallback para capacidade compartilhada, a menos que seja desativado por chave. | O único modo. Nenhuma capacidade compartilhada por trás do gateway: se todas as conexões falharem, a requisição falha. |
| Fallbacks de `models`mesmo formato | Uma lista de prioridade de modelos tentados em caso de erro. | fallbacks, até 5 ids de modelo tentados depois que todas as conexões para model falharam. |
| `provider` order, only, ignorediferente | Escolher, ordenar e excluir provedores upstream por requisição. | allow ou deny de routing.providers por requisição; a ordem é definida em uma rota, com regras de falha por tipo (429, 5xx, timeout). |
| `provider.sort`, `max_price`, preferências de throughput e latêncianada | Escolher um host por requisição por preço, throughput ou latência. | Nada. O INFRO não escolhe entre hosts por preço ou latência; a ordem ou os pesos de uma rota decidem. |
| Auto routerdiferente | openrouter/auto escolhe um modelo por prompt. | Uma rota pode classificar cada prompt com um modelo de decisão na sua própria conexão e enviar cada classe para seus próprios destinos. |
| Presetsdiferente | Configuração nomeada no servidor: modelo, roteamento, prompt de sistema, parâmetros. | As rotas levam o modelo e os destinos. Prompts de sistema e parâmetros ficam no seu código. |
| Cache de respostasmesmo formato | Cache por correspondência exata por chave via headers X-OpenRouter-Cache. | Um cache opcional por correspondência exata para chat completions, com namespace e TTL. |
| Guardrails (orçamentos, listas de permissões)mesmo formato | Tetos de gastos e listas de permissões de modelos ou provedores por workspace, membro ou chave. | Orçamentos na organização, no projeto, no membro, na chave e no cliente final que recusam com 402 antes da chamada; listas de permissão e de bloqueio por organização, projeto e chave. |
| Broadcastdiferente | Traces exportados para Langfuse, Datadog, um coletor OTel, S3 ou um webhook. | Spans para seu coletor OpenTelemetry, exportações de requisições e o log de requisições. Sem destinos integrados para fornecedores específicos. |
| Custo por requisiçãodiferente | Custo por geração pelo preço que o OpenRouter lista. | Uma estimativa da fatura do seu provedor em cada resposta (usage.cost, usage.price_source): seu preço negociado, se você informou um; caso contrário, o preço de tabela do fornecedor; e unpriced em vez de zero quando nenhum dos dois é conhecido. |
| Roteamento na região da UE, endpoints ZDRnada | Uma URL base na UE e um filtro para endpoints com retenção zero de dados. | Não disponível. A fixação de região está no roadmap; a retenção no provedor é regida pelo seu próprio contrato com ele. |
Nossa leitura da documentação publicada do OpenRouter, não um teste nem um benchmark. Se lemos algo errado, avise-nos e corrigimos a linha.
O que o INFRO não faz
- Dar acesso a um fornecedor com o qual você não tem conta, exceto por uma conexão a uma conta de agregador que você tem (inclusive a do OpenRouter).
- Escolher um host por requisição por preço, throughput ou latência.
- Armazenar prompts de sistema e parâmetros no servidor (presets).
- Fixar o tráfego na UE; residência de dados está no roadmap.
- Servir embeddings em provedores que não sejam OpenAI, Azure OpenAI, Mistral ou um endpoint compatível com OpenAI.
O que não é levado
- Seu histórico de atividade e os logs de geração do OpenRouter. Não há importador.
- Créditos. Eles ficam na sua conta do OpenRouter e só são gastos se você mantiver o OpenRouter como conexão.
- Presets, workspaces e guardrails. Recrie-os como rotas, projetos, orçamentos e listas de permissões.
Perguntas
- Posso manter o OpenRouter e adicionar o INFRO?
- Sim. O OpenRouter é um tipo de provedor no INFRO: conecte sua chave do OpenRouter e ele atende requisições ao lado das suas contas diretas, com failover entre elas.
- O INFRO vende créditos ou revende acesso a modelos?
- Não. O INFRO executa toda requisição em uma conta de provedor que você tem, seus provedores cobram você diretamente, e o INFRO cobra uma assinatura com 0% de margem sobre o gasto com modelos.
- O que substitui os campos `models` e `provider`?
fallbackssubstituimodels; allow e deny derouting.providerssubstituemprovider.onlyeprovider.ignore; uma rota nomeada define a ordem. A ordenação por preço e latência não tem equivalente.
Migre conosco ou por conta própria
O programa de migração mapeia, numa chamada, a sua configuração do OpenRouter para conexões, rotas e orçamentos do INFRO e migra o primeiro serviço com você. Seus provedores continuam cobrando você diretamente; o INFRO é uma assinatura e acrescenta 0% ao gasto com modelos.
Fontes
Cada afirmação desta página sobre o OpenRouter vem de uma destas fontes, lidas em 19 de outubro de 2026. Nada é inferido de um teste, de um benchmark ou de uma conversa.
- Stripe newsroom — Stripe agrees to acquire OpenRouterlido em 19 de out. de 2026
- OpenRouter — OpenRouter is joining Stripelido em 19 de out. de 2026
- OpenRouter — announcementslido em 19 de out. de 2026
- OpenRouter docs — Quickstartlido em 19 de out. de 2026
- OpenRouter docs — BYOKlido em 19 de out. de 2026
- OpenRouter docs — Provider routinglido em 19 de out. de 2026
- OpenRouter docs — Model fallbackslido em 19 de out. de 2026
- OpenRouter docs — Auto routerlido em 19 de out. de 2026
- OpenRouter docs — Presetslido em 19 de out. de 2026
- OpenRouter docs — Response cachinglido em 19 de out. de 2026
- OpenRouter docs — Guardrailslido em 19 de out. de 2026
- OpenRouter docs — Broadcastlido em 19 de out. de 2026
- OpenRouter docs — Zero data retentionlido em 19 de out. de 2026