API Hop

Documentação

Documentação do API Hop

Conclusões de chat comuns

API de chat unificada para alternar modelos de texto pelo parâmetro `model`. O formato da requisição é compatível com OpenAI Chat Completions.

POSThttps://api.apihop.ai/v1/chat-completions

API de chat unificada para alternar modelos de texto pelo parâmetro model. O formato da requisição é compatível com OpenAI Chat Completions.

O Claude Sonnet 4.6 (claude-sonnet-4-6) é suportado pelo fornecedor, mas não está publicado atualmente na RequestBeam. Não é o padrão de uma integração ativa. Antes de chamar qualquer modelo, confirme o acesso com sua própria resposta de GET https://api.apihop.ai/v1/models.

Este endpoint retorna uma resposta JSON completa por padrão. Defina stream: true explicitamente quando precisar de streaming SSE.

text
POST https://api.apihop.ai/v1/chat-completions

Autenticação

Todas as requisições exigem autenticação com token Bearer.

http
Authorization: Bearer YOUR_API_KEY

Se a autenticação falhar, verifique:

  • Se a chave de API está correta
  • Se a chave é válida para esta URL base da API
  • Se o cabeçalho da requisição está escrito corretamente
  • Se um proxy reescreve o cabeçalho de autorização

Corpo da requisição

modelstringobrigatórioPadrão: gpt-5.4

IDs de modelos de texto documentados (confirme o acesso com GET https://api.apihop.ai/v1/models):

  • OpenAI: gpt-5.4, gpt-5.5, gpt-5.6-sol, gpt-5.6-terra, gpt-6-astra
  • Anthropic: claude-fable-5, claude-fable-5-1, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8, claude-opus-5, claude-opus-5-5, claude-sonnet-5, claude-sonnet-5-5
  • DeepSeek: deepseek-v4-flash, deepseek-v4-pro, deepseek-v4.1-flash

(V4.1 Flash é um ID de modelo distinto, disponível somente após implantação e ativação; consulte GET https://api.apihop.ai/v1/models).

  • Gemini: gemini-3.6-flash, gemini-3.7-flash, gemini-3.8-flash, gemini-3.5-flash-lite, gemini-4-argon (após implantação e ativação)
  • Kimi: kimi-k3
  • MiniMax: minimax-m3

Consulte o Catálogo de modelos para a lista completa e os modelos visíveis à chave de API atual. Use sua própria resposta de GET https://api.apihop.ai/v1/models como fonte atual de disponibilidade. Veja os guias DeepSeek, Gemini, Kimi e MiniMax para notas de seleção e exemplos específicos de cada família.

messagesobject[]obrigatório

Mensagens de chat. Cada mensagem deve incluir:

  • role: system, user ou assistant
  • content: conteúdo da mensagem

Exemplo:

json
  [
    {"role": "system", "content": "You are a helpful Python tutor."},
    {"role": "user", "content": "How should I learn programming?"}
  ]

Limites de amostragem específicos do modelo: gpt-6-astra não aceita os campos antigos temperature, top_p ou top_logprobs; omita-os mesmo quando um cliente antigo os inclui. O Playground GPT-6 Astra da RequestBeam também oculta os controles antigos de amostragem e penalidade. claude-sonnet-5 rejeitou top_p em uma reverificação de integração documentada, portanto omita-o também nesse modelo. Encaminhar um campo opcional por um proxy não comprova que o modelo do provedor escolhido o suporte.

temperaturenumberPadrão: 1.0

Temperatura de amostragem. Clientes compatíveis com OpenAI costumam usar de 0 a 2, mas o modelo escolhido decide a validação final.

max_tokensinteger

Máximo opcional de tokens de saída, como inteiro positivo. Omita o campo para usar o padrão do provedor para o modelo escolhido; padrões e limites máximos variam por modelo e configuração do provedor.

Dependendo do modelo, o orçamento pode incluir tokens de raciocínio e texto final. Um orçamento pequeno pode causar finish_reason: "length", truncar a resposta ou se esgotar antes do texto final. Aumentá-lo pode elevar o custo.

max_completion_tokensinteger

Alternativa opcional de compatibilidade a max_tokens, com as mesmas considerações de orçamento. Um modelo pode aceitar apenas um desses campos; comece com um corpo mínimo ao trocar de modelo. Omita ambos para usar o padrão do provedor.

streambooleanPadrão: false

Se a resposta deve ser transmitida em streaming.

  • true: retorna Server-Sent Events
  • false: retorna uma resposta completa
top_pnumberPadrão: 1.0

Parâmetro de amostragem nucleus. Clientes compatíveis com OpenAI costumam usar de 0 a 1; o modelo escolhido faz a validação final.

frequency_penaltynumberPadrão: 0

Penalidade de frequência. Clientes compatíveis com OpenAI costumam usar de -2.0 a 2.0; o modelo escolhido faz a validação final.

presence_penaltynumberPadrão: 0

Penalidade de presença. Clientes compatíveis com OpenAI costumam usar de -2.0 a 2.0; o modelo escolhido faz a validação final.

stopstring | array

Sequência de parada ou array de sequências. O modelo escolhido determina a quantidade aceita e o comportamento.

nintegerPadrão: 1

Número de respostas a gerar. Use um número como 1, não uma string entre aspas.

Diferenças de parâmetros entre modelos

Os modelos de texto atuais suportam requisições Chat mínimas com e sem streaming, mas aceitação e efeitos de parâmetros opcionais variam conforme o modelo escolhido e sua implementação de compatibilidade.

A reverificação mais recente, em 2026-09-26, aceitou claude-fable-5 com temperature: 0 e retornou texto. A mesma verificação rejeitou claude-sonnet-5 com top_p: 0.9, retornando HTTP 400 e top_p is deprecated. Omita top_p nesse modelo. Aceitação não comprova efeito na amostragem nem garante outros modelos ou requisições futuras; não presuma que todos os parâmetros de amostragem sejam suportados.

As verificações OpenAI de 2026-09-26 aceitaram stop para gpt-5.6-sol e gpt-5.6-terra. A aceitação de parâmetros pode mudar no provedor e não prova que uma sequência de parada seja eficaz.

O encaminhamento Chat nativo compatível com OpenAI preserva top_p e stop na requisição ao provedor. Uma rota que converte Chat em Responses preserva top_p, mas não encaminha stop. Encaminhar um campo não comprova suporte nem efeito no provedor; nenhum dos dois tem garantia válida em todas as rotas da plataforma.

Comece com uma requisição mínima ao trocar de modelo e verifique amostragem, sequências de parada e parâmetros avançados de ferramentas separadamente. Para sequências de parada, inspecione o texto real e o motivo da parada, não apenas o status HTTP. HTTP 200 não comprova efeito de amostragem. Os orçamentos de saída devem cobrir o raciocínio e o texto final do modelo.

Exemplo de requisição

json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself briefly."
    }
  ],
  "stream": false
}

Resposta

idstring

Identificador exclusivo da resposta.

objectstring

Tipo de objeto, normalmente chat.completion ou chat.completion.chunk em streaming.

createdinteger

Timestamp Unix de criação.

modelstring

Identificador do modelo retornado na resposta.

choicesarray

Opções geradas, incluindo conteúdo da mensagem, índice e motivo de conclusão.

usageobject

Estatísticas de uso de tokens.

Exemplo de sucesso

json
{
  "id": "chatcmpl-9876543210",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "gpt-5.4",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "I am an AI assistant that can help with writing, coding, and analysis."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 28,
    "completion_tokens": 42,
    "total_tokens": 70
  }
}

Resposta de erro

Consulte Códigos de erro e solução de problemas para a referência completa, diferenças de protocolo e etapas de diagnóstico.

Erros HTTP de Chat Completions usam um corpo JSON plano, incluindo erros HTTP do provedor retornados antes do início de um stream SSE. Por exemplo, HTTP 402 retorna:

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}
  • code: código numérico de erro da plataforma, separado do status HTTP e não uma string
  • message: descrição legível do erro
  • type: api_error
  • requestId: identificador opcional da requisição para diagnóstico
Status HTTPcodeSignificado
40010000Requisição inválida
40120000Autenticação ausente ou inválida
40240000Saldo insuficiente
40320001Acesso negado ou modelo indisponível para esta chave
40430000Modelo ou recurso não encontrado
40930001Conflito de requisição
42210001Erro de validação
42940001Limite de taxa excedido
50050003Erro interno
50250000Erro do provedor
50350001Serviço indisponível
50450002Tempo limite do gateway

Verifique primeiro o status HTTP para determinar se a requisição foi bem-sucedida e depois compare o code numérico para o tratamento específico da aplicação. Não compare code com strings como "400", não presuma que seja igual ao status HTTP nem interprete message como identificador estável do erro. messages ausente ou com tipo incorreto é rejeitado com HTTP 400 e code: 10000 antes de chamar o provedor.

Este formato de erro se aplica a respostas HTTP de Chat Completions, não a erros em um stream SSE já iniciado ou em outros protocolos API. O catálogo de modelos e endpoints de protocolos nativos têm seus próprios formatos de erro documentados.