Documentação

O Smart AIPI oferece APIs compatíveis com OpenAI e Anthropic. Use nosso serviço com qualquer SDK, ferramenta ou app existente da OpenAI ou Anthropic simplesmente mudando a base URL. Zero mudanças de código necessárias.

OpenAI Base URL

https://api.smartaipi.com/v1

Anthropic Base URL

https://api.smartaipi.com

Ferramentas CLI e MCP

O Smart AIPI oferece dois pacotes npm para ajudar desenvolvedores a trabalhar com suas contas:

smart-aipi — Uma ferramenta CLI para gerenciar programaticamente sua conta, API keys e uso pelo terminal.
@smart-aipi/mcp — Um servidor MCP que dá aos agentes de AI acesso direto à sua conta Smart AIPI.

Instalar Ambos

terminal
npm install -g smart-aipi @smart-aipi/mcp

Instalar Individualmente

Apenas CLI
npm install -g smart-aipi
Apenas MCP
npm install -g @smart-aipi/mcp

Autenticação

Todas as requisições da API exigem uma API key. A mesma chave funciona com os dois métodos de autenticação:

Estilo OpenAI (header Authorization)
Authorization: Bearer YOUR_API_KEY
Estilo Anthropic (header x-api-key)
x-api-key: YOUR_API_KEY

Guia de Migração

A migração leva menos de um minuto. Nossa API é 100% compatível com endpoints OpenAI e Anthropic.

Da OpenAI

1

Pegue sua API key do Smart AIPI

Cadastre-se e crie uma API key no seu dashboard.

2

Mude a base URL

Substitua https://api.openai.com/v1 por https://api.smartaipi.com/v1

3

Atualize sua API key

Use sua chave Smart AIPI em vez da sua chave OpenAI. É só isso!

Da Anthropic

1

Pegue sua API key do Smart AIPI

Cadastre-se e crie uma API key no seu dashboard.

2

Mude a base URL

Substitua https://api.anthropic.com por https://api.smartaipi.com

3

Atualize sua API key

Use sua chave Smart AIPI em vez da sua chave Anthropic. Seus nomes de modelo Claude existentes funcionam como estão.

Seu código, SDKs e apps existentes usando a Anthropic Messages API funcionarão sem nenhuma mudança de código. Os nomes de modelo Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) são roteados automaticamente para modelos GPT-5.4 de alto desempenho. Toda resposta inclui um x-actual-model header mostrando o modelo real de backend para total transparência.

Conclusões de bate-papo

Crie uma chat completion para as mensagens e o modelo fornecidos. Este é o principal endpoint para interagir com modelos de linguagem.

POST /v1/chat/completions

Parâmetros do Corpo da Requisição

Parâmetro Tipo Obrigatório Descrição
model corda Sim ID do modelo a usar (ex.: "gpt-6-astra", "gpt-5.6-sol")
messages variedade Sim Array de objetos de mensagem com role e content
temperature número Não Temperatura de amostragem (0-2). Maior = mais aleatório. Padrão: 1
max_tokens inteiro Não Máximo de tokens a gerar na resposta
top_p número Não Nucleus sampling. Considera tokens com probabilidade top_p. Padrão: 1
frequency_penalty número Não Penaliza tokens com base na frequência (-2 a 2). Padrão: 0
presence_penalty número Não Penaliza tokens com base na presença (-2 a 2). Padrão: 0
stop string/array Não Sequências de parada. Até 4 sequências onde a geração para.
stream booleano Não Ativa respostas por streaming via SSE. Padrão: false

Roles de Mensagem

  • system - system - Define o comportamento/persona do assistente
  • user - user - Mensagens do usuário
  • assistant - assistant - Respostas anteriores do assistente

Exemplos de Código

from openai import OpenAI

client = OpenAI(
    base_url="https://api.smartaipi.com/v1",
    api_key="your-api-key"
)

response = client.chat.completions.create(
    model="gpt-6-astra",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ],
    temperature=0.7,
    max_tokens=1000
)

print(response.choices[0].message.content)

Streaming

Ative streaming para receber tokens à medida que forem gerados via Server-Sent Events (SSE). Isso oferece uma experiência melhor para o usuário em respostas longas.

Defina "stream": true na sua requisição para ativar streaming.

Exemplo de Streaming

from openai import OpenAI

client = OpenAI(
    base_url="https://api.smartaipi.com/v1",
    api_key="your-api-key"
)

# Enable streaming
stream = client.chat.completions.create(
    model="gpt-6-astra",
    messages=[{"role": "user", "content": "Write a poem"}],
    stream=True
)

# Process chunks as they arrive
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Esforço de Reasoning

Controle a profundidade do reasoning com o parâmetro reasoning_effort para modelos GPT-5.

O Smart AIPI usa como padrão reasoning.effort = "high" para todas as requisições da Responses API.

Depois de muitos testes, descobrimos que high é o melhor esforço de reasoning para uso prático - ele oferece uso de ferramentas e análise profundos e confiáveis sem o custo de latência de xhigh. Você pode sobrescrever isso definindo explicitamente o esforço de reasoning na sua requisição.

O Smart AIPI usa por padrão store = false para todas as requisições da Responses API e WebSocket.

A API upstream exige store: false para GPT-5.4 e modelos mais novos. Se você definir explicitamente store: true nas suas requisições, você receberá um erro "Store must be set to false". Remova isso ou defina como false.

Modelos Suportados

API de Responses

gpt-5.4, gpt-5.3, gpt-5.1, gpt-5 e todas as variantes Codex

Apenas Chat Completions

gpt-5.4-nano — o suporte a reasoning está disponível apenas em /v1/chat/completions .

Níveis de Esforço de Reasoning

  • none - Sem reasoning. Pula o pensamento completamente.
  • low - Reasoning mínimo. Ótimo para tarefas simples.
  • medium - Equilíbrio entre velocidade e profundidade.
  • high - Análise profunda para problemas complexos. (Padrão do Smart AIPI)
  • xhigh - Extra alto. Profundidade máxima de reasoning para os problemas mais difíceis.

Modo Rápido (Processamento Prioritário)

Usar service_tier: "priority" para processamento prioritário com menor latência. É isso que o comando /fast no Codex CLI usa. Isso não muda a profundidade do reasoning - você recebe a mesma qualidade, mais rápido.

Preço: O processamento prioritário é cobrado a 1,5x da taxa padrão. Por exemplo, a saída do GPT-5.4 normalmente custa $3.75/1M tokens - com prioridade custa $5.625/1M tokens.

response = client.responses.create(
    model="gpt-6-astra",
    input="Refactor this function",
    service_tier="priority"              # priority processing, lower latency
)

API de Chat Completions

response = client.chat.completions.create(
    model="gpt-6-astra",
    messages=[{"role": "user", "content": "Analyze this code for bugs..."}],
    reasoning_effort="high"  # or "xhigh" for maximum depth
)

API de Responses

# Reasoning is set via the "reasoning" object
response = client.responses.create(
    model="gpt-6-astra",
    input=[{"role": "user", "content": "Refactor this function..."}],
    reasoning={"effort": "high"}  # defaults to "high" on Smart AIPI
)

Geração de Imagens

Gere imagens a partir de prompts de texto usando nosso endpoint de geração de imagens.

Limitações Atuais: Variações de imagem ( /v1/images/variations ) ainda não são suportadas. Edições de imagem estão disponíveis em /v1/images/edits.
POST /v1/images/generations
Novo: gpt-image-2.5-flare e gpt-image-2.5-sunburst disponíveis agora. Os mais novos modelos de imagem da OpenAI já estão disponíveis: qualidade superior à do gpt-image-2 com até 50% menor latência (flare), além de controle mais preciso de edições em várias etapas para criação de produção (sunburst). As taxas de tokens permanecem inalteradas em relação ao gpt-image-2, portanto os preços aqui são idênticos — a atualização não custa nada a mais. Ambos oferecem suporte a gerações, edições e preenchimento interno com máscara, a 50% do preço direto da OpenAI. Leia a publicação de lançamento.

Parâmetros do Corpo da Requisição

Parâmetro Tipo Descrição
prompt corda Descrição em texto da imagem a gerar (obrigatório)
model corda "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst" ou "gpt-image-2". Padrão: "gpt-image-2.5-flare"
n inteiro Número de imagens a gerar (1-10). Padrão: 1
size corda "1024x1024", "1024x1792" ou "1792x1024". Padrão: "1024x1024"
quality corda "standard" ou "hd". Padrão: "standard"

Modelos Disponíveis

  • gpt-image-2.5-flare - Modelo de ponta, maior qualidade (padrão)
  • gpt-image-2.5-sunburst - Edição de precisão e trabalho criativo premium (geração mais lenta)
  • gpt-image-latest - Alias para gpt-image-2.5-flare
  • gpt-image-2 - Carro-chefe da geração anterior
  • gpt-image-1.5 - Carro-chefe mais antigo (oferece suporte a fundos transparentes)
  • gpt-image-1 - Geração de imagem em qualidade total
  • gpt-image-1-mini - Imagens menores e mais rápidas

Exemplo

response = client.images.generate(
    model="gpt-image-2.5-flare",
    prompt="A futuristic city at sunset, cyberpunk style",
    size="1024x1024",
    n=1
)

# Response contains base64-encoded image
image_b64 = response.data[0].b64_json

# Save to file
import base64
with open("output.png", "wb") as f:
    f.write(base64.b64decode(image_b64))

Edição de Imagens

Edite imagens existentes usando um prompt de texto. Aceita tanto JSON (string base64) quanto multipart/form-data (upload de arquivo), então os SDKs da OpenAI funcionam imediatamente.

Nota: Apenas edições de imagem única são suportadas. Entradas com múltiplas imagens e campos de máscara não estão disponíveis no momento.
POST /v1/images/edits

Parâmetros do Corpo da Requisição

Parâmetro Tipo Descrição
prompt corda Descrição em texto da edição desejada (obrigatório)
image corda Imagem codificada em base64 para editar (obrigatório)
model corda "gpt-image-2.5-flare" (padrão), "gpt-image-2.5-sunburst" ou "gpt-image-2"
n inteiro Número de imagens editadas a gerar (1-10). Padrão: 1
size corda "1024x1024", "1024x1792" ou "1792x1024". Padrão: "1024x1024"
quality corda "low", "medium", "high" ou "auto". Padrão: "medium"
Multi-reference edits and mask inpainting are supported. Pass image as an array of base64 strings (JSON) or as repeated image / image[] parts (multipart). Add a mask field alongside image to restrict edits to specific regions (white = edit, black = preserve). Works identically to the official OpenAI SDK.

Exemplo

import base64

response = client.images.edit(
    model="gpt-image-2.5-flare",
    image=open("input.png", "rb"),
    prompt="Change the background to a sunset beach",
    size="1024x1024",
    n=1
)

# Save the edited image
edited_b64 = response.data[0].b64_json
with open("edited.png", "wb") as f:
    f.write(base64.b64decode(edited_b64))

Realtime API com WebSocket

WebSockets são uma API amplamente suportada para transferência de dados em tempo real, e uma ótima escolha para conectar à Realtime API do Smart AIPI em aplicações server-to-server.

Em uma integração server-to-server, seu sistema de backend se conecta via WebSocket diretamente à Realtime API. Use uma Chave API padrão para autenticar a conexão, já que o token só está disponível no seu servidor de backend seguro.

WSS wss://api.smartaipi.com/v1/responses

Conectar via WebSocket

Abaixo estão vários exemplos de conexão via WebSocket. Além de usar a URL de WebSocket, você também precisará passar um header de autenticação usando sua API key.

import WebSocket from "ws";

const url = "wss://api.smartaipi.com/v1/responses";
const ws = new WebSocket(url, {
  headers: {
    Authorization: "Bearer " + process.env.SMARTAIPI_API_KEY,
  },
});

ws.on("open", function open() {
  console.log("Connected to server.");

  // Send a response.create event
  ws.send(JSON.stringify({
    type: "response.create",
    response: {

      model: "gpt-6-astra",
      store: false,
      input: [{ role: "user", content: "Hello!" }],
      stream: true,
    },
  }));
});

ws.on("message", function incoming(message) {
  const event = JSON.parse(message.toString());
  console.log(event.type, event);
});

Enviando e Recebendo Eventos

As sessões são gerenciadas usando eventos JSON enviados pelo cliente e pelo servidor na conexão WebSocket. Encapsule sua requisição em um envelope response.create :

Evento Direção Descrição
response.create Cliente Envie uma requisição (encapsula seu modelo, entrada e parâmetros)
response.created Servidor Sessão aceita, processamento iniciado
response.output_text.delta Servidor Chunk de texto em streaming
response.completed Servidor Evento terminal com resposta completa e uso
response.failed Servidor Evento terminal indicando um erro
Importante: Requisições WebSocket devem incluir "store": false no envelope da resposta. A conexão persiste em vários turnos - envie frames response.create adicionais sem reconectar.

Listar Modelos

Recupere uma lista de todos os modelos disponíveis. Use este endpoint para descobrir dinamicamente quais modelos estão disponíveis para sua conta.

GET /v1/models

Formato da Resposta

{
    "object": "list",
    "data": [
        {
            "id": "gpt-6-astra",
            "object": "model",
            "created": 1700000000,
            "owned_by": "smart-aipi"
        },
        {
            "id": "gpt-5.3-codex",
            "object": "model",
            "created": 1700000000,
            "owned_by": "smart-aipi"
        },
        // ... more models
    ]
}

Exemplo

from openai import OpenAI

client = OpenAI(
    base_url="https://api.smartaipi.com/v1",
    api_key="your-api-key"
)

# List all available models
models = client.models.list()

for model in models.data:
    print(model.id)

Modelos Disponíveis

Série GPT

  • gpt-6-astra Mais recente
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-5.6-luna
  • gpt-5.5
  • gpt-5.4-pro
  • gpt-5.4
  • gpt-5.4-mini
  • gpt-5.4-nano apenas completions

Série Codex

  • gpt-5.3-codex
  • gpt-5.2-codex
  • gpt-5.2
  • gpt-5.1

Anthropic Mensagens API

Compatibilidade total com a Anthropic Messages API. Use qualquer SDK da Anthropic, Claude Code ou app que fale o protocolo Anthropic - basta mudar a base URL.

POST /v1/messages

Recursos Suportados

  • Streaming (protocolo completo de eventos SSE da Anthropic)
  • Uso de ferramentas / function calling
  • Mensagens de sistema (formatos string e array)
  • Entradas de imagem (base64 e URL)
  • Contagem de Token (/v1/messages/count_tokens)
  • Pensamento estendido / esforço de reasoning

Exemplos de Código

from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.smartaipi.com",
    api_key="your-api-key"
)

response = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)

print(response.content[0].text)

Mapeamento de Modelos

Nomes de modelo Claude são aceitos e roteados automaticamente para GPT-5.4 com esforço de reasoning em camadas. Toda resposta inclui um x-actual-model header mostrando o modelo real de backend.

Modelo Claude Back-end Raciocínio Melhor Para
claude-opus-4-6 gpt-5.4 Alto Reasoning complexo, arquitetura
claude-sonnet-4-5-20250929 gpt-5.4 Médio Programação do dia a dia, qualidade equilibrada
claude-haiku-4-5-20251001 gpt-5.4 Baixo Respostas rápidas, tarefas simples

Claude Code

Use Claude Code com Smart AIPI como backend. Compatibilidade total com uso de ferramentas, streaming e recursos agentic.

Configuração Automática

Um comando
npx smart-aipi claude

Isso configura ~/.claude/settings.json e ~/.claude.json automaticamente. Se você já tiver o Claude Code configurado com uma conta Anthropic, ele vai mostrar a configuração manual em vez de sobrescrever.

Configuração Manual

Adicione em ~/.claude/settings.json:

~/.claude/settings.json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.smartaipi.com",
    "ANTHROPIC_API_KEY": "sk-your-key",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
  },
  "model": "opus"
}

Depois adicione "hasCompletedOnboarding": true a ~/.claude.json para pular o assistente de configuração.

Depois de editar as configurações, reinicie o Claude Code para que as alterações tenham efeito. Se você já tiver o Claude Code conectado a uma conta Anthropic real, definir essas env vars vai sobrescrever essa conexão - use um .claude/settings.json no nível do projeto para manter ambos.

O Que Cada Configuração Faz

  • "model": "opus" — Modelo principal. Usa claude-opus-4-6 (alto reasoning) para todas as tarefas principais.
  • ANTHROPIC_DEFAULT_HAIKU_MODEL — Modelo de background. Usa claude-haiku-4-5 (baixo reasoning) para tarefas rápidas em background, como indexação de arquivos.
  • Alterne entre modelos no meio da sessão com /model sonnet, /model opus, ou /model haiku.
Apelido Modelo Claude Back-end Raciocínio
opus claude-opus-4-6 gpt-5.4 Alto
sonnet claude-sonnet-4-5-20250929 gpt-5.4 Médio
haiku claude-haiku-4-5-20251001 gpt-5.4 Baixo

OpenCode

Use Smart AIPI como backend do OpenCode via SDK compatível com OpenAI.

Configuração

~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "smart-aipi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Smart AIPI",
      "options": {
        "baseURL": "https://api.smartaipi.com/v1",
        "apiKey": "YOUR_API_KEY"
      },
      "models": {
        "gpt-6-astra": {
          "name": "GPT-6 Astra",
          "reasoning": true,
          "limit": { "context": 400000, "output": 128000 }
        },
        "gpt-5.3-codex": {
          "name": "GPT-5.3 Codex",
          "reasoning": true,
          "limit": { "context": 400000, "output": 128000 }
        },
        "gpt-5.2-codex": {
          "name": "GPT-5.2 Codex",
          "reasoning": true,
          "limit": { "context": 400000, "output": 128000 }
        },
        "gpt-5-codex": {
          "name": "GPT-5 Codex",
          "reasoning": true,
          "limit": { "context": 400000, "output": 128000 }
        }
      }
    }
  },
  "model": "smart-aipi/gpt-6-astra"
}

Códice CLI

Use o Smart AIPI com a ferramenta Codex CLI da OpenAI. Três arquivos precisam ser configurados.

Configuração Automática

Um comando
npx smart-aipi codex

Isso configura automaticamente os três arquivos abaixo. Depois de executar, adicione model_reasoning_effort à sua configuração (veja o passo 2).

Configuração Manual

Configure estes três arquivos:

1. Chave API — ~/.codex/auth.json

~/.codex/auth.json
{
  "auth_mode": "apikey",
  "OPENAI_API_KEY": "sk-your-key"
}

2. Modelo e Reasoning — ~/.codex/config.toml

Sempre inclua model_reasoning_effort - obrigatório para modelos personalizados.

Sem isso, o Codex usa como padrão nenhum reasoning e não vai funcionar corretamente. Use "high" para melhores resultados.

~/.codex/config.toml
model = "gpt-6-astra"
model_reasoning_effort = "high"

Níveis de reasoning válidos: low, medium, high (recomendado), xhigh.

3. Variáveis de Ambiente — ~/.zshrc

~/.zshrc (or ~/.bashrc)
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"

Depois de editar o perfil do seu shell, reinicie o terminal ou execute source ~/.zshrc para que as alterações tenham efeito.

Depois use o Codex normalmente:

terminal
codex "fix this bug"

Guia de Velocidade do Codex WebSocket

O modo WebSocket geralmente é mais rápido para fluxos de programação agentic com muitas tool calls. Em vez de se reconectar repetidamente por HTTP e reenviar envelopes completos da requisição, o Codex mantém uma única conexão ativa e envia turnos incrementais, o que reduz a sobrecarga de continuação.

Melhoria observada: Em nossas execuções de programação com uso intenso de ferramentas, um Codex open-source recompilado com correções de WebSocket reduziu o tempo total de execução em cerca de 30-40% em comparação com o modo de continuação por HTTP.

Ative WebSockets no Codex

Use a feature flag WebSocket v2 em ~/.codex/config.toml: ~/.codex/config.toml:

~/.codex/config.toml
model = "gpt-6-astra"
model_reasoning_effort = "high"

[features]
responses_websockets_v2 = true

Equivalente em CLI:

terminal
codex --enable responses_websockets_v2

Builds mais antigas podem usar a flag legada:

fallback legado
[features]
responses_websockets = true

Comportamento Conhecido do Homebrew

Em algumas builds distribuídas via Homebrew, os turnos via WebSocket podem travar durante tarefas longas e depois voltar silenciosamente para HTTP. Vimos isso especialmente em loops complexos de tool calls. Recompilar a partir do código open-source com as correções abaixo melhorou tanto a estabilidade quanto a velocidade.

Pós-Merge: Corrija o Bug de WebSocket no Open-Source

Depois de fazer merge da sua branch, use este checklist para garantir que a correção está no seu binário local:

terminal
# 1) Pull merged main
git checkout main
git pull --ff-only

# 2) Confirm websocket flags exist
codex features list | rg responses_websockets

# 3) Build and install
cd codex-rs
cargo build --release
install -m 0755 target/release/codex ~/.local/bin/codex-beta

# 4) Run with websocket enabled
CODEX_RS_RESPONSES_WS=true \
OPENAI_BASE_URL=https://api.smartaipi.com/v1 \
~/.local/bin/codex-beta --enable responses_websockets_v2

Se precisar aplicar o patch manualmente, verifique se estas correções no nível de código estão presentes:

correções do cliente websocket
# A) Build websocket request with IntoClientRequest so required headers are set
let mut request = url.as_str().into_client_request()?;
request.headers_mut().extend(headers);

# B) Ensure TLS roots are enabled for tokio-tungstenite in Cargo.toml
tokio-tungstenite = { version = "...", features = ["rustls-tls-native-roots"] }

Cursor e Cline

Use Smart AIPI com o Cursor IDE ou a extensão Cline para VS Code.

Cursor Cursor

  1. Abra as Configurações do Cursor
  2. Vá para a aba Models aba
  3. Clique em + Add Model
  4. Defina a Base URL: https://api.smartaipi.com/v1
  5. Digite sua API key
  6. Modelo: gpt-6-astra

Cline Cline (VS Code)

  1. Abra as configurações do Cline no VS Code
  2. Selecione OpenAI Compatible
  3. Base URL: https://api.smartaipi.com/v1
  4. Digite sua API key
  5. Modelo: gpt-6-astra

Bater papo

Use o Smart AIPI Chat em chat.smartaipi.com. para fluxos de trabalho com texto, imagem, vídeo, código, busca e voz.

Recursos

  • Bater papo — Conversas de texto de propósito geral com modelos Smart AIPI.
  • Imagens — Gere e edite imagens a partir de prompts.
  • Vídeo — Gere vídeos a partir de texto ou imagens.
  • Código — Assistência e edição de código no navegador.
  • Busca — Use busca na web para respostas fundamentadas.
  • Voz — Converse com o modelo usando entrada e respostas por voz.

Primeiros Passos

  1. 1. Abra chat.smartaipi.com
  2. 2. Entre ou crie uma conta.
  3. 3. Comece a conversar com texto, imagens, vídeo, código, busca ou voz.

Cobrança: O uso é cobrado dos seus créditos Smart AIPI.

Testador de API

Teste a API diretamente do seu navegador:

Mensagem enviada

Responderemos em até 2 dias úteis.

Fale com o Suporte

Tem alguma dúvida ou precisa de ajuda? Envie uma mensagem e responderemos em até 2 dias úteis.