SUB&SUB · Docs
Idioma
Tema

Referência da API

O SUB&SUB expõe um relay multi-provedor em https://api.subnsub.com/v1. Clientes OpenAI acessam /v1/chat/completions; clientes Anthropic acessam /v1/messages. A mesma chave sk-cf-... roteia ambos — escolha o modelo no corpo da requisição e o relay escolhe o upstream.

Disponibilidade do serviço

Apenas contas existentes O acesso à API está atualmente limitado às contas criadas antes de 8 de junho de 2026 (hora de Pequim). Novos registos podem usar a conta partilhada e o SUB&SUB Tools, mas não podem entrar na consola da API, criar uma chave, adicionar crédito de API ou chamar o relay. Esta secção será atualizada quando o acesso à API reabrir.

Início rápido

Para uma conta existente com API ativa, são necessárias três coisas:

  1. Base URL: https://api.subnsub.com/v1 (clientes OpenAI) ou https://api.subnsub.com (clientes Anthropic — o SDK acrescenta /v1/messages por conta própria)
  2. Chave API: sk-cf-... emitida no console
  3. Modelo: um dos 16 modelos compatíveis — por exemplo, gpt-5.4-mini ou claude-sonnet-5

Autenticação

Toda requisição deve carregar um cabeçalho Authorization: Bearer sk-cf-.... As chaves são emitidas no console e armazenadas como hashes SHA-256 — assim que você sai da tela de criação, o texto plano se perde para sempre, então salve-o imediatamente.

Dica Gere uma chave por integração (chatbot, plugin de IDE, job em lote). Revogar uma chave vazada no console entra em vigor em segundos.

Endpoints

A interface pública estável está descrita abaixo e no documento OpenAPI 3.1 legível por máquina. Os campos não listados podem ser enviados ao upstream, mas não passam automaticamente a fazer parte do contrato de compatibilidade da SUB&SUB.

POST /v1/chat/completions

POST/v1/chat/completions

Envie uma requisição de chat completion. O formato da requisição corresponde à API OpenAI Chat Completions — os SDKs da OpenAI funcionam sem modificações.

ParâmetroTipoDescrição
modelstringUm dos IDs de modelo verificados.
messagesarrayHistórico da conversa. Cada item: {role, content} com rolesystem / user / assistant.
streambooleanSe true, a resposta é enviada como chunks SSE. Veja Streaming.
stream_optionsobjectOpcional. O relay sempre força {include_usage: true} no upstream para que o chunk final carregue o bloco de uso de tokens — sobrescrevê-lo não tem efeito.
max_tokensintegerLimita o tamanho da completion. O padrão é o máximo do modelo.
temperaturenumber0 – 2. Maior = mais aleatório.

POST /v1/responses

POST/v1/responses

OpenAI Responses API — o formato de solicitação OpenAI mais recente (client.responses.create(...)). Funciona com todos os modelos de catálogo: gpt-* nativamente, claude-* através da mesma ponte de compatibilidade que chat/conclusões. O uso é medido de forma idêntica – tokens de entrada/saída de acordo com a taxa de nível do modelo.

ParâmetroTipoDescrição
modelstringQualquer ID do modelo de catálogo.
inputstring | arrayO prompt — uma string simples ou a lista de itens estruturados que Responses API define.
max_output_tokensintegerComprimento da resposta do Caps (raciocínio + saída visível combinados).
reasoningobject{"effort": "..."} — mesmos cinco valores de reasoning_effort.
streambooleanSe true, transmite a sequência de respostas padrão SSE: response.created, response.output_text.delta,…, response.completed.
backgroundbooleanNão suportado. background: true retorna 400 unsupported_background_mode — o relé atende apenas execuções síncronas.
Atenção O sufixo de pesquisa na Web :online não tem efeito neste endpoint — o sufixo é removido, mas nenhum contexto de pesquisa é injetado (as consultas são extraídas de messages, que as solicitações de Respostas não carregam). Use /v1/chat/completions ou /v1/messages para pesquisa na Web.

Exemplo executável de Responses:

curl https://api.subnsub.com/v1/responses \
  -H "Authorization: Bearer sk-cf-xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini",
    "input": "Explain exponential backoff in two sentences."
  }'

POST /v1/messages

POST/v1/messages

Endpoint nativo da Anthropic para os modelos claude-* — o SDK da Anthropic (anthropic-sdk-python, @anthropic-ai/sdk, claude-code) funciona sem modificações contra este caminho. Aponte sua base URL para https://api.subnsub.com e autentique pelo cabeçalho x-api-key (a forma Authorization-Bearer também funciona, se o seu cliente preferir).

ParâmetroTipoDescrição
modelstringUm ID de modelo claude-* (veja Modelos disponíveis). Passar um modelo OpenAI aqui retorna 400 invalid_request_error.
max_tokensintegerObrigatório pela Anthropic — limita o tamanho da resposta do assistente.
messagesarrayHistórico da conversa, formato Anthropic: {role, content} com roleuser / assistant.
streambooleanSe true, retorna a sequência padrão de eventos SSE da Anthropic: message_start, content_block_delta, message_delta, message_stop.
thinkingobjectEncaminhado literalmente para Anthropic. Use {"type":"adaptive"} onde houver suporte; Fable 5 sempre usa pensamento adaptativo mesmo quando este campo é omitido. Não há IDs de modelo -thinking sintéticos.
cache_controlobjectO prompt-caching é suportado. Tokens de escrita em cache são cobrados a 1.25× e tokens de leitura em cache a 0.10× da tarifa de entrada do tier.
Atenção As solicitações Claude são atendidas diretamente pelas contas oficiais Anthropic. Use os IDs de modelo oficiais exatos listados abaixo.

Exemplo executável de Anthropic Messages:

curl https://api.subnsub.com/v1/messages \
  -H "x-api-key: sk-cf-xxxxxxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

POST /v1/messages/count_tokens

POST/v1/messages/count_tokens

Conte um prompt no formato Anthropic antes de o enviar. Use os mesmos campos x-api-key, anthropic-version, model, system, messages e tools que enviaria para /v1/messages. Este endpoint não é faturado. O sufixo :online é removido, mas os resultados de pesquisa não são obtidos nem contados.

curl https://api.subnsub.com/v1/messages/count_tokens \
  -H "x-api-key: sk-cf-xxxxxxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Count this prompt."}]
  }'

GET /v1/models

GET/v1/models

Liste os modelos que você realmente pode usar. A integridade da retransmissão verifica ambas as famílias upstream e retorna os 16 IDs públicos verificados — a mesma lista de permissões que os endpoints POST impõem, para que a descoberta nunca anuncie um modelo que seria 400. Se o catálogo upstream estiver inacessível, o endpoint retornará 502 models_unreachable em vez de uma lista vazia enganosa.

# sample response (truncated)
{
  "object": "list",
  "data": [
    { "id": "gpt-5.4-mini",      "type": "model", ... },
    { "id": "gpt-5.4",           "type": "model", ... },
    { "id": "claude-sonnet-5",     "type": "model", ... },
    { "id": "claude-fable-5",      "type": "model", ... },
    ...
  ]
}

Contrato de compatibilidade

Ser compatível com OpenAI não significa que todos os campos de todos os modelos upstream sejam garantidos em todas as rotas. Existem três níveis de suporte:

StatusDetalhe
Documentado e estávelGeração de texto nos quatro endpoints acima; respostas síncronas e em streaming; controlos de raciocínio documentados; cache de prompts Anthropic; :online em Chat Completions e Messages; autenticação, medição e formatos de erro documentados.
Encaminhado, conforme o modeloChamadas de ferramentas/funções, strict tools, saída estruturada/JSON Schema, controlos de amostragem, sequências de paragem, conteúdo multipartes (incluindo imagens ou documentos) e limites de contexto/saída do modelo. O edge encaminha estes campos sem validação local, mas o suporte e a forma exata da resposta podem variar por modelo e protocolo. Teste o modelo e payload exatos antes de produção; não é prometida normalização entre fornecedores.
Não disponibilizadoExecuções de Responses em segundo plano; :online em Responses; APIs OpenAI de geração de imagens, áudio, Realtime, Batch, Files, Embeddings e Moderation; aliases Claude sintéticos com -thinking; e o esforço de raciocínio OpenAI minimal.
Dica Considere openapi.json e esta página como o contrato suportado. Um campo aceite hoje por um upstream pode ser retirado sem se tornar uma garantia permanente da SUB&SUB.

Modelos disponíveis

Duas famílias a montante. Os 7 modelos OpenAI são direcionados para contas compartilhadas da camada ChatGPT; os 9 modelos Claude são atendidos por contas oficiais Anthropic. As taxas por token dependem do nível (consulte Preços) — a mesma chave funciona para ambos.

OpenAI

ID do modeloFamíliaTierNotas
gpt-5.4-mini GPT-5.4Mini Rápido & barato. Padrão recomendado para chat & programação.
gpt-5.4 GPT-5.4StandardGPT-5.4 completo — mais lento, raciocínio mais forte.
gpt-5.4-2026-03-05GPT-5.4StandardSnapshot datado do gpt-5.4.
gpt-5.5 GPT-5.5Premium Flagship mais recente.
gpt-5.6-luna GPT-5.6Luna Leve GPT-5.6 — entre Mini e Padrão.
gpt-5.6-terra GPT-5.6StandardTamanho médio GPT-5.6 — mesma taxa de gpt-5.4.
gpt-5.6-sol GPT-5.6Premium Top GPT-5.6 — mesma taxa de gpt-5.5.

Anthropic

ID do modeloFamíliaTierNotas
claude-fable-5 Fable 5 Fable O modelo mais capaz e amplamente lançado de Anthropic; o pensamento adaptativo está sempre ativado.
claude-haiku-4-5-20251001 Haiku 4.5 Mini O menor Claude — mesma tarifa por token do gpt-5.4-mini.
claude-sonnet-4-5-20250929 Sonnet 4.5 StandardClaude de nível intermediário — mesma tarifa por token do gpt-5.4.
claude-sonnet-4-6 Sonnet 4.6 StandardAjuste mais recente do Sonnet — tier Standard, mesma tarifa do sonnet-4.5.
claude-sonnet-5 Sonnet 5 Sonnet 5 IntroÚltimo Sonnet; o preço inicial se aplica até 31 de agosto de 2026.
claude-opus-4-5-20251101 Opus 4.5 Ultra Claude de fronteira. Cobrado ao preço de lista da Anthropic — sem margem (veja Preços).
claude-opus-4-6 Opus 4.6 Ultra Ajuste mais recente do Opus.
claude-opus-4-7 Opus 4.7 Ultra Snapshot anterior do Opus.
claude-opus-4-8 Opus 4.8 Ultra Snapshot mais recente do Opus.
Atenção O catálogo Claude usa IDs de modelo Anthropic oficiais. O cache de prompt é suportado: o cache grava a fatura a 1,25× e lê a 0,10× a taxa de entrada do nível (consulte Preços).
Fable recusas Fable 5 classificadores de segurança podem retornar HTTP 200 com stop_reason: "refusal" e uma matriz de conteúdo vazia. Os clientes devem ramificar no status stop_reason, não apenas no status HTTP, e tentar novamente a solicitação com claude-opus-4-8. Através dos endpoints do protocolo OpenAI, o mesmo resultado é exposto como finish_reason: "content_filter" (chat/conclusões) ou status: "incomplete" com incomplete_details.reason: "content_filter" (respostas). As recusas imediatas não são deduzidas do seu saldo; uma recusa no meio do fluxo após a produção parcial ser cobrada normalmente.
Indisponível IDs OpenAI obsoletos (gpt-5.2* e gpt-5.3-codex*), o alias gpt-5.6 simples (use as variantes nomeadas acima), variantes OpenAI Pro/image/áudio/tempo real, IDs de notação de ponto (por exemplo, claude-sonnet-4.5) e IDs de modelo -thinking sintéticos não estão disponíveis. Use os IDs exatos acima e o campo thinking nativo de Anthropic.

Esforço de raciocínio

Cada modelo OpenAI acima é um modelo de raciocínio - o back-end pode gastar mais ou menos tokens de "pensamento" antes de emitir uma saída visível. Defina reasoning_effort no corpo da solicitação OpenAI /v1/chat/completions (ou reasoning: {"effort": ...} em /v1/responses) para controlar o orçamento. Para Claude, use os campos Anthropic-nativos thinking e output_config.effort — consulte a seção /v1/messages. Os modelos OpenAI aceitam os mesmos cinco valores de esforço:

ValorComportamento
none Sem pensamento — direto para a resposta. O mais barato e rápido.
low Uma passagem curta de raciocínio.
medium Padrão se você não passar o campo. Equilibrado.
high Raciocínio mais profundo. Recomendado para programação não trivial / problemas com múltiplas etapas.
xhigh Esforço máximo. O mais lento e caro; reserve para análises difíceis em que você realmente precise dele.
# Two equivalent forms — pick whichever your SDK supports
{
  "model": "gpt-5.4-mini",
  "reasoning_effort": "high",
  "messages": [ ... ]
}

{
  "model": "gpt-5.5",
  "reasoning": { "effort": "xhigh" },
  "messages": [ ... ]
}
Custo Os tokens de pensamento contam como tokens de saída para cobrança — mais esforço = mais tokens de saída = uma conta maior no mesmo prompt. A tarifa por token não muda.
Atenção O protocolo OpenAI também define 'minimal', mas os modelos deste relay o rejeitam: "'minimal' is not supported with this model". Atenha-se aos cinco valores acima.

Streaming

Defina "stream": true para receber Server-Sent Events. O chunk final carrega um bloco usage (forçamos stream_options.include_usage no upstream para que as contagens de tokens sejam sempre emitidas), e então um literal data: [DONE] encerra o stream.

# Streaming format (line by line)
data: {"id":"resp_...","choices":[{"delta":{"content":"Hi"}}]}

data: {"id":"resp_...","choices":[{"delta":{"content":"!"}}]}

data: {"id":"resp_...","choices":[],"usage":{"prompt_tokens":18,"completion_tokens":11,"total_tokens":29}}

data: [DONE]

Exemplo executável de streaming em Python:

from openai import OpenAI

client = OpenAI(
    api_key="sk-cf-xxxxxxxxxxxx",
    base_url="https://api.subnsub.com/v1",
)

stream = client.chat.completions.create(
    model="gpt-5.4-mini",
    messages=[{"role": "user", "content": "Hello"}],
    stream=True,
)
for chunk in stream:
    text = chunk.choices[0].delta.content if chunk.choices else None
    if text:
        print(text, end="", flush=True)

Acrescente :online a qualquer ID de modelo suportado pelo endpoint e o relay executará uma busca na web antes de encaminhar ao modelo, prefixando os resultados na conversa para que a resposta se baseie em dados frescos. O sufixo funciona em /v1/chat/completions e /v1/messages (este último ainda exige uma base claude-*); nenhum campo de requisição específico de busca é necessário.

# Same call as before — just :online on the model
curl https://api.subnsub.com/v1/chat/completions \
  -H "Authorization: Bearer sk-cf-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini:online",
    "messages": [
      {"role": "user", "content": "What did Anthropic ship this week?"}
    ]
  }'

Como funciona: o relay remove o :online, toma a mensagem de usuário mais recente como consulta (limitada a 400 caracteres), chama o Tavily para até 3 resultados com o texto da página extraído quando disponível, mais um resumo opcional gerado pelo Tavily, e então os prefixa nesse mesmo turno do usuário como um bloco <search_results> claramente delimitado antes de enviar a requisição ao upstream. A chamada de busca tem um timeout de 8 segundos. Os resultados são deliberadamente injetados no papel de usuário — nunca no system prompt — para que trechos não confiáveis não possam ser elevados a instruções de prioridade de sistema.

O bloco <search_results> tem esta aparência. Ele é precedido por uma instrução de uma linha dizendo ao modelo para tratar o bloco como dados externos não confiáveis e citar os itens numerados em linha:

<search_results query="What did Anthropic ship this week?" retrieved="2026-05-21">
Summary: <short LLM-generated synthesis of the result set>

[1] Anthropic launches Opus 4.8
URL: https://www.anthropic.com/news/opus-4-8
<extracted page text, or short snippet if extraction failed — up to ~2000 chars>

[2] ...
</search_results>
ComportamentoDetalhe
CustoSem sobretaxa hoje — você paga a tarifa por token normal do modelo; o relay absorve a chamada de busca. O bloco <search_results> injetado conta como tokens de entrada, então espere uma conta de tokens de prompt mais alta do que a mesma pergunta sem :online.
Modo de falhaSuave. Se o Tavily der timeout ou erro, a requisição continua para o modelo sem contexto de busca (você ainda recebe uma resposta, apenas sem embasamento). A única falha grave é 503 search_unavailable quando a busca não está configurada no relay de jeito nenhum.
count_tokens/v1/messages/count_tokens remove o sufixo mas nunca chama o Tavily — a contagem reflete o seu prompt original, não o aumentado.
Multi-turnoApenas o último turno do usuário é consultado & aumentado; turnos anteriores ficam intocados. Para buscar de novo, envie uma nova mensagem de usuário com :online ainda no modelo.

Quando usar :online

O relay faz uma única chamada ao Tavily por requisição e injeta os resultados — não é um loop de busca agêntico. O modelo não decide buscar de novo com base no que vê, do jeito que o Perplexity Sonar ou a ferramenta de navegação do ChatGPT fazem. Planeje considerando essa limitação:

Boa escolhaMá escolha
Fatos sensíveis ao tempo (notícias, preços, números de versão, datas de lançamento)Código privado ou colado que não está na web pública — adiciona ruído ao prompt sem embasamento
Localizar um documento ou anúncio oficialMatemática, raciocínio, tradução, escrita criativa — nada a embasar
Qualquer coisa que você de outra forma verificaria pesquisando no GoogleConhecimento estável já presente nos dados de treinamento ("o que é uma árvore binária")

Formule a última mensagem de usuário como uma consulta de busca autônoma. A busca é executada contra o texto literal do seu turno de usuário mais recente (limitado a 400 caracteres), então perguntas conversacionais de acompanhamento como "e quanto à versão mais recente?" viram consultas inúteis sem contexto. Em um chat multi-turno, reformule o tópico ao adicionar :online — ex.: "versão mais recente do SDK Python da Anthropic" em vez de "a mais recente".

Para perguntas que precisam de síntese em múltiplas etapas (comparar e contrastar, pesquisa aprofundada), divida-as em vários turnos e adicione :online a cada um. O modelo lerá os resultados frescos de cada turno; você direciona a próxima consulta manualmente. Observe que o bloco <search_results> injetado é enviado apenas ao upstream — não é devolvido ao seu cliente nem preservado na próxima requisição, então se um turno posterior depender de detalhes de fontes anteriores, peça ao modelo para resumi-los na sua resposta visível. O modo de pesquisa em uma única tacada não é suportado.

Dica Combine com esforço de raciocínio alto (reasoning_effort: "high") para que o modelo realmente pondere as fontes retornadas em vez de se apoiar no primeiro resultado. A instrução injetada pede ao modelo que cite as fontes numeradas como [1], [2] em linha, então a saída geralmente trará tais citações — embora o modelo não esteja estritamente vinculado a esse formato.

Erros

O envelope depende de qual endpoint você chamou — o relay retorna erros no protocolo que corresponde ao SDK do chamador, e os erros de upstream são repassados tal e qual.

Caminhos OpenAI (/v1/chat/completions, /v1/responses, /v1/models) — envelope OpenAI:

{ "error": { "message": "...", "type": "...", "code": "..." } }

Caminhos Anthropic (/v1/messages, /v1/messages/count_tokens) — envelope Anthropic:

{ "type": "error", "error": { "type": "...", "message": "..." } }

O envelope Anthropic usa um formato diferente — sem o campo code, e o discriminador type: "error" fica no nível superior (com o error.type interno informando a categoria, ex.: authentication_error, invalid_request_error, permission_error, api_error). Os SDKs da Anthropic já analisam esse formato; os tratadores de erro do SDK OpenAI puro não, então chame /v1/messages com um SDK da Anthropic (ou faça HTTP cru).

Os códigos de status são os HTTP canônicos em ambos os protocolos:

StatusOpenAI code / Anthropic error.typeSignificado
401invalid_api_key / authentication_errorChave sk-cf-... ausente ou desconhecida.
402insufficient_balance / permission_errorO saldo da conta está negativo. Recarregue na aba de cobrança do console.
403key_revoked / permission_errorA chave foi revogada.
403account_closed / permission_errorA conta não está habilitada para acesso API. As inscrições após o término do serviço de 08/06/2026 não incluem o serviço API.
400model_not_available / invalid_request_errorO model que você enviou não está no catálogo verificado, ou está errado para o endpoint (ex.: um modelo OpenAI em /v1/messages) — confira Modelos disponíveis.
400unsupported_background_mode / —background: true em /v1/responses — o relé atende apenas execuções síncronas. Somente envelope OpenAI.
429rate_limit_exceeded / rate_limit_errorA capacidade upstream partilhada está temporariamente limitada. Respeite retry-after, quando presente, e volte a tentar com espera exponencial e jitter.
503Nenhuma conta de upstream atende a requisição no momento — geralmente uma janela transitória de rate-limit que afeta todo o pool. Tente novamente após um breve backoff.
503search_unavailable / api_errorVocê usou :online mas a busca na web não está configurada neste relay. Veja Busca na web.
502upstream_unreachable / api_errorO relay não conseguiu alcançar o backend. Tente novamente após um curto backoff.
500server_error / api_errorO relay falhou antes ou depois de contactar o upstream. Volte a tentar apenas se for seguro repetir a operação; caso contrário, verifique primeiro o histórico de utilização.

Novas tentativas e fiabilidade

Limite as novas tentativas. O relay depende de capacidade upstream partilhada e os pedidos de geração não são idempotentes.

Preços e cobrança

Pague pelo uso, cobrado por token em microdólares (1 micro = $0.000001 = 1/10,000 de um centavo) para que requisições abaixo de um centavo sejam rastreadas com precisão. As tarifas são por 1M tokens, por tier — veja a tabela de modelos para qual tier cada modelo mapeia.

TierModelosEntrada / 1MSaída / 1M
Mini gpt-5.4-mini, claude-haiku-4-5-20251001 $0.20$1.60
Luna gpt-5.6-luna $0.30$2.40
Standardgpt-5.4, gpt-5.4-2026-03-05, gpt-5.6-terra, claude-sonnet-4-5-20250929, claude-sonnet-4-6$0.75$6.00
Premium gpt-5.5, gpt-5.6-sol $1.10$8.80
Sonnet 5 Introclaude-sonnet-5 $2.00$10.00
Ultra claude-opus-4-5-20251101, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8$5.00$25.00
Fable claude-fable-5 $10.00$50.00

As tarifas de Fable e Ultra correspondem aos preços de tabela publicados de Anthropic. Sonnet 5 usa a taxa introdutória de US$ 2/US$ 10 de Anthropic até 31 de agosto de 2026; seu preço padrão publicado após essa data é de US$ 3/US$ 15. Os outros níveis funcionam abaixo das taxas upstream graças ao suporte de assinatura em pool.

Os tokens de raciocínio (quando você define reasoning_effort em OpenAI ou o campo nativo thinking de Anthropic em Claude) contam como tokens de saída na taxa de nível do modelo — não há sobretaxa separada para alto esforço, mas uma solicitação de pensamento profundo pode facilmente emitir de 10 a 50 vezes mais tokens de saída do que uma solicitação sem esforço, portanto a nota de um dólar balança com ela.

O prompt-caching da Anthropic é cobrado como um item separado: escritas em cache a 1.25× e leituras em cache a 0.10× da tarifa de entrada do tier. Então um cache hit do haiku-4.5 custa 0.20 × 0.10 = $0.02 per 1M tokens, e um cache hit do sonnet-4.5 custa 0.75 × 0.10 = $0.075 per 1M tokens. Os tokens de cache são detalhados no registro de cobrança de cada requisição — o console mostra o detalhamento.

O saldo é descontado em tempo real conforme cada requisição retorna — para requisições em streaming, a liquidação ocorre depois que o chunk [DONE] chega. Veja seu saldo ao vivo e as liquidações por requisição em /console#billing.

Recarga O console suporta Stripe Checkout — cartão, Link, Alipay, WeChat Pay. Os créditos nunca expiram.

Limites de taxa

Sem limites de taxa por chave hoje. A capacidade compartilhada de upstream e o throttling do lado do provedor continuam valendo; se você esbarrar neles, o relay retorna 429 com um cabeçalho retry-after. Limites de RPM / TPM por chave estão planejados.

Estado e suporte

Última revisão da documentação: 14 de julho de 2026.