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.
https://api.apihop.ai/v1/chat-completionsAPI 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.
POST https://api.apihop.ai/v1/chat-completionsAutenticação
Todas as requisições exigem autenticação com token Bearer.
Authorization: Bearer YOUR_API_KEYSe 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.4IDs 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órioMensagens de chat. Cada mensagem deve incluir:
role:system,userouassistantcontent: conteúdo da mensagem
Exemplo:
[
{"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.0Temperatura de amostragem. Clientes compatíveis com OpenAI costumam usar de 0 a 2, mas o modelo escolhido decide a validação final.
max_tokensintegerMá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_tokensintegerAlternativa 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: falseSe a resposta deve ser transmitida em streaming.
true: retorna Server-Sent Eventsfalse: retorna uma resposta completa
top_pnumberPadrão: 1.0Parâ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: 0Penalidade 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: 0Penalidade 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 | arraySequência de parada ou array de sequências. O modelo escolhido determina a quantidade aceita e o comportamento.
nintegerPadrão: 1Nú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
{
"model": "gpt-5.4",
"messages": [
{
"role": "user",
"content": "Hello, introduce yourself briefly."
}
],
"stream": false
}Resposta
idstringIdentificador exclusivo da resposta.
objectstringTipo de objeto, normalmente chat.completion ou chat.completion.chunk em streaming.
createdintegerTimestamp Unix de criação.
modelstringIdentificador do modelo retornado na resposta.
choicesarrayOpções geradas, incluindo conteúdo da mensagem, índice e motivo de conclusão.
usageobjectEstatísticas de uso de tokens.
Exemplo de sucesso
{
"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:
{
"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 stringmessage: descrição legível do errotype:api_errorrequestId: identificador opcional da requisição para diagnóstico
| Status HTTP | code | Significado |
|---|---|---|
| 400 | 10000 | Requisição inválida |
| 401 | 20000 | Autenticação ausente ou inválida |
| 402 | 40000 | Saldo insuficiente |
| 403 | 20001 | Acesso negado ou modelo indisponível para esta chave |
| 404 | 30000 | Modelo ou recurso não encontrado |
| 409 | 30001 | Conflito de requisição |
| 422 | 10001 | Erro de validação |
| 429 | 40001 | Limite de taxa excedido |
| 500 | 50003 | Erro interno |
| 502 | 50000 | Erro do provedor |
| 503 | 50001 | Serviço indisponível |
| 504 | 50002 | Tempo 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.