Felo API PlatformFelo API Platform

Gateway de LLM

Um gateway de LLM com a camada de dados acoplada

Três URLs base, uma chave, um saldo. Chat, imagem, vídeo e modelos de decisão no SDK que você já usa; busca, documentos e slides com os mesmos créditos — a partir de um décimo do preço oficial do provedor.

  • ⁦10⁩%

    Preço inicial, comparado ao preço oficial da API do provedor

  • ⁦5,000+⁩

    APIs no mesmo catálogo

Um gateway costuma ter uma superfície. Este tem três.

Elas compartilham a sua conta, a sua chave e o seu saldo, mas respondem a perguntas diferentes e vivem em URLs base diferentes. Saber qual delas você está chamando é o segredo inteiro.

SuperfícieURL baseUse para
API de modelosopenapi.felo.ai/api/v1 · openapi.felo.ai/apiChamar diretamente um modelo de linguagem, imagem, vídeo ou decisão
API de dadosopenapi.felo.ai/v1/betaChamar um provedor de dados ou busca de terceiros indicado por nome
Felo APIsopenapi.felo.ai/v2Fluxos próprios da Felo: busca, escritório, extração e conhecimento

Uma chave cobre as três. A recarga compra créditos de serviço em dólar, e a chamada de modelo, a chamada da API de dados e o fluxo Felo saem todos do mesmo lugar — sem uma conta separada por fornecedor.

Ler a documentação

Seis endpoints, não um

Tudo sob /api/v1 é chamada de modelo, mas o tipo de modelo define qual endpoint pode responder — e cada endpoint devolve um formato próprio.

EndpointProtocoloRetorna
POST /api/v1/chat/completionsOpenAI Chat CompletionsStreaming ou uma resposta
POST /api/v1/responsesOpenAI ResponsesStreaming ou uma resposta
POST /api/v1/messagesAnthropic MessagesStreaming ou uma resposta
POST /api/v1/images/generationsEnvelope de imagem da OpenAIUm task_id para consultar
POST /api/v1/videos/generationsEnvelope de vídeo da OpenAIUm task_id para consultar
POST /api/v1/decisionsEsquema de decisão FeloRespostas tipadas, sem streaming

As três superfícies de chat são implementações nativas, não uma camada de tradução: cada uma transmite eventos no próprio protocolo, então você analisa o stream exatamente como hoje.

Escolha o endpoint pelo tipo de modelo, não por tentativa

Todo modelo do catálogo carrega um model_kind, e o tipo define qual endpoint pode chamá-lo. A descoberta é gratuita: lê o catálogo local.

# discover before you call — free, reads the catalog
GET /api/v1/models   # every kind, with channels and rates
GET /api/v1/models/{model_id}  # one model, in detail
GET /api/v1/videos/models     # video_generation only
GET /api/v1/decisions/models  # decisions only
model_kindEndpoint
chatResponses, Chat Completions ou Messages, conforme o modelo suportar
image_generationPOST /api/v1/images/generations
video_generationPOST /api/v1/videos/generations
decisionsPOST /api/v1/decisions

Filtre com ?provider= para ver um fornecedor só, ou ?exclude_video_and_decisions=true para esconder tudo menos chat e imagem. Estar no catálogo não é promessa: um modelo de vídeo não responde a um pedido de chat, e a API devolve model_kind_mismatch.

Rota padrão ou um cabeçalho para escolher o provedor

Um modelo pode ser servido por vários canais upstream, cada um com seu fornecedor e seu preço publicado. Sem o cabeçalho, a plataforma escolhe um por você; com X-Felo-Channel, quem escolhe é você.

# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic  # ordered selection, not a retry list
  • O valor é uma lista ordenada de códigos públicos de canal, tirados de channels[].code do modelo, validada na ordem em que você a escreve.
  • Só o grupo de provedor do primeiro canal é enviado, e é o preço desse canal que você paga.
  • Não existe fallback automático. Uma lista de canais é uma seleção, não uma política de retentativa — se um provedor falhar, reenvie pela sua aplicação com outro canal.

X-Felo-Channel funciona nos seis endpoints de geração acima. Não se aplica à API de dados nem às Felo APIs: essas vão para o fornecedor que você nomeia na requisição.

Ler a documentação

Quanto uma chamada custa de verdade

Chamadas de modelo são cobradas por token — entrada, saída e cache — com o multiplicador de desconto do canal aplicado. As tarifas aparecem por 1 milhão de tokens para facilitar a leitura, mas a cobrança usa a precisão por token do snapshot de preços atual, então um pedido curto nunca é arredondado para um milhão.

  • Tarifas de cache só se aplicam quando a resposta do protocolo reporta uso de cache; um modelo sem esse relatório cobra tudo pela tarifa de entrada.
  • Busca na web que o serviço do modelo executa e reporta custa $0.01 por busca.
  • Alguns modelos têm faixas por tamanho do prompt: Claude Haiku 5.5 custa $0.10 na entrada e $0.50 na saída por 1 milhão de tokens até um prompt de 100K tokens, e depois $0.50 e $2.50 pelo pedido inteiro.
  • A primeira recarga é de $1. Sem assinatura, sem taxa por assento, sem compromisso mínimo — uma chave parada não custa nada.

Chamadas da API de dados e fluxos Felo saem do mesmo saldo, cada um na sua base publicada: por requisição bem-sucedida, por item retornado ou por uso real.

Ver tarifas e créditos

Dois limites que parecem iguais e não são

Falta de crédito devolve 402 INSUFFICIENT_CREDITS. Chamada rápida demais devolve 429 RATE_LIMITED. Esperar resolve o segundo e nunca resolve o primeiro.

StatusCódigoO que fazer
401UNAUTHORIZEDCorrija ou reemita a chave
402INSUFFICIENT_CREDITSRecarregue no faturamento do console e reenvie
404depende do endpointConfira o ID do modelo, da tarefa ou da rota
429RATE_LIMITEDEspere o Retry-After e tente de novo
5xxCHAT_FAILED, SERVICE_UNAVAILABLETente de novo com backoff exponencial e jitter

Hoje só /v2/chat documenta limites rígidos. Chamadas de modelo também podem ser limitadas upstream, e isso aparece como 429 — leia X-RateLimit-* e Retry-After em vez de fixar números. Toda resposta traz um request_id, e o X-Request-Id que você envia volta ecoado, então os logs batem.

Ler a documentação

Imagem e vídeo terminam em segundo plano

Os dois endpoints de geração devolvem um task_id em vez do resultado. Envie, consulte, recolha — e note que, depois que a tarefa existe, a maioria das falhas chega como 200 com status terminal, não como erro HTTP.

# submit, then poll the task
POST /api/v1/images/generations       → task_id
GET  /api/v1/images/generations/{id}  → status, result
POST /api/v1/videos/generations       → task_id
GET  /api/v1/videos/generations/{id}  → status, result

Leia o status antes do resultado: failed e interrupted também são respostas, e error.message diz por quê. Um 402 no envio significa que a tarefa nunca foi criada. O SuperAgent é diferente — devolve um stream_key e empurra eventos por SSE, então não há o que consultar.

Ler a documentação

Troque a URL base, mantenha o cliente

Os dois SDKs funcionam sem alteração assim que a URL base aponta para cá. npx feloapi-cli setup escreve a mesma configuração para Claude Code e Codex.

# OpenAI SDK
base_url = "https://openapi.felo.ai/api/v1"

# Anthropic SDK — one level up; the SDK appends /v1/messages
base_url = "https://openapi.felo.ai/api"

# pin a provider (optional)
default_headers = {"X-Felo-Channel": "claude-cc"}

IDs de modelo não são iguais entre provedores. Escolha no catálogo antes de virar a URL base, ou a primeira chamada responde 404.

A metade que um gateway costuma deixar com você

Um gateway de LLM roteia chamadas de modelo. Aqui a mesma chave também alcança um catálogo de ⁦5,000+⁩ APIs — então a etapa de busca no seu agente, os slides que ele gera e o documento que ele lê de volta são cobrados dos mesmos créditos, não de mais três fornecedores.

  • Search
  • PPT Task
  • SuperAgent
  • Web Fetch
  • X Search
  • Mindmap
  • Landing Page Task
  • LiveDoc
  • YouTube Subtitling

As chamadas da API de dados vão para provedores nomeados sob /v1/beta — Tavily, Exa, Apollo e o resto do catálogo — cada um na sua base publicada.

Ver todas as APIs

Onde o gateway para

  • Sem failover automático entre canais — a retentativa é lógica da sua aplicação, de propósito.
  • Estar no catálogo não garante compatibilidade; cada tipo de modelo tem uma superfície de chamada.
  • Não há limite de requisições documentado na plataforma para chamadas de modelo, mas o limite do provedor upstream continua valendo.
  • Os créditos são pré-pagos, não reembolsáveis e não podem ser sacados — recarregue o valor que pretende gastar.

Seis perguntas sobre gateway de LLM

O que é um gateway de LLM?

Um endpoint na frente de vários provedores de modelo, para que seu código fale com uma URL base, uma chave e um saldo em vez de uma dúzia de SDKs de fornecedores. Um gateway de IA faz o mesmo; este também vende as APIs de dados que um agente precisa.

Posso manter meu SDK da OpenAI ou da Anthropic?

Pode. Chat Completions e Responses têm o formato da OpenAI e Messages é nativo. As URLs base são https://openapi.felo.ai/api/v1 e https://openapi.felo.ai/api — um nível acima, porque esse SDK acrescenta /v1/messages sozinho.

Como sei qual modelo chamar?

GET /api/v1/models lista todos os tipos com canais e tarifas; modelos de vídeo e de decisão têm listas próprias. Leia o model_kind e chame o endpoint correspondente. Estar listado não significa que todo endpoint aceita aquele modelo.

Ele faz failover quando um provedor cai?

Não, e isso é proposital. Uma lista de canais é uma seleção, não uma política de retentativa: só o primeiro é enviado. O failover pertence à sua aplicação, onde dá para ver o erro, o orçamento e o fallback que você realmente quer.

Quanto custa?

Cada modelo tem uma tarifa Felo que começa em um décimo do preço oficial do provedor, e o canal que você fixa define a tarifa paga. Pré-pago, cobrado por chamada, primeira recarga de $1, sem assinatura.

Também posso chamar imagem, vídeo e APIs de dados?

Sim. Uma chave alcança modelos de chat, imagem, vídeo e decisão e o catálogo de ⁦5,000+⁩ APIs atrás de /v1/beta — tudo cobrado dos mesmos créditos.

Teste em uma chamada

Crie uma chave, recarregue e aponte o SDK que você já usa para uma URL base.