Documentação do API Hop
Respostas multimodais OpenAI
API Responses compatível com OpenAI. Este endpoint usa `input` no estilo OpenAI e suporta texto, URLs públicas de imagens, entrada de PDF, chamadas de ferramentas, opções de raciocínio e parâmetros de streaming.
https://api.apihop.ai/openai/responsesAPI Responses compatível com OpenAI. Este endpoint usa input no estilo OpenAI e suporta texto, URLs públicas de imagens, entrada de PDF, chamadas de ferramentas, opções de raciocínio e parâmetros de streaming.
POST https://api.apihop.ai/openai/responsesAutenticação
Todas as requisições exigem autenticação com token Bearer.
Authorization: Bearer YOUR_API_KEYCorpo da requisição
modelstringobrigatórioPadrão: gpt-5.4Modelos atualmente ativos com suporte a Responses:
gpt-5.4gpt-5.5gpt-5.6-solgpt-5.6-terragpt-6-astra
Veja o Catálogo de modelos para os modelos visíveis à chave de API atual.
inputstring | object[]Conteúdo de entrada. Obrigatório, exceto quando um previous_response_id não vazio é fornecido. Omitir ambos ou usar um tipo de entrada inválido retorna 400 antes da cobrança.
Formas suportadas:
- Uma string, equivalente a uma entrada de texto
user. - Um array de itens de entrada para histórico da conversa, entrada multimodal e resultados de ferramentas.
Cada objeto no array de entrada pode conter os campos abaixo:
typestringTipo de item de entrada.
Valores comuns:
message: uma mensagem de entrada.function_call_output: resultado de uma chamada de ferramenta de função.
rolestringPapel quando type=message.
Valores comuns:
developersystemuserassistant
contentstring | object[]Conteúdo da mensagem.
Use um array de blocos de conteúdo para requisições multimodais. Os blocos suportam:
typestringTipo de bloco de conteúdo.
Atualmente suportados:
input_textinput_imageinput_file
textstringConteúdo de texto quando type=input_text.
image_urlstringURL pública de imagem quando type=input_image.
Somente URLs de imagens http:// ou https:// acessíveis publicamente são suportadas. URLs de dados Base64 como data:image/...;base64,... não são suportadas.
detailstringPadrão: autoNível de detalhe da imagem quando type=input_image.
Valores comuns:
autolowhigh
file_datastringURL de dados do conteúdo do arquivo quando type=input_file. PDFs podem usar data:application/pdf;base64,....
filenamestringNome do arquivo quando type=input_file.
instructionsstringInstruções de sistema ou desenvolvedor inseridas no contexto do modelo.
max_output_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. Dependendo do modelo, o orçamento pode incluir tokens de raciocínio e texto final. Um orçamento pequeno pode truncar a resposta ou se esgotar antes do texto final; aumentá-lo pode elevar o custo.
streambooleanPadrão: falseSe a resposta deve ser transmitida em streaming.
false: retorna uma resposta completatrue: retorna eventos SSE no estilo OpenAI Responses
temperaturenumberPadrão: 1.0Temperatura de amostragem, normalmente de 0 a 2.
top_pnumberPadrão: 1.0Parâmetro de amostragem nucleus, normalmente de 0 a 1.
textobjectConfiguração de saída de texto.
text.formatobjectConfiguração do formato de texto, como { "type": "text" } ou um esquema JSON.
text.verbositystringDetalhamento da saída, como low, medium ou high. O suporte depende do modelo escolhido.
toolsobject[]Definições de ferramentas. A disponibilidade depende do modelo escolhido e dos recursos disponíveis.
tool_choicestring | objectPolítica de seleção de ferramentas.
parallel_tool_callsbooleanSe chamadas paralelas de ferramentas são permitidas.
reasoningobjectOpções relacionadas ao raciocínio.
includestring[]Campos extras a incluir na resposta.
prompt_cache_keystringChave de cache de prompt para reutilização do cache.
prompt_cache_retentionstringPolítica de retenção do cache de prompt. Os valores suportados dependem do modelo escolhido e dos recursos disponíveis.
safety_identifierstringIdentificador estável do usuário final para controles de segurança.
storebooleanSe o estado da resposta pode ser armazenado.
Diferenças de parâmetros entre modelos
- O encaminhamento Responses nativo compatível com OpenAI preserva
top_pna requisição ao provedor; validação e comportamento de amostragem dependem do modelo e provedor escolhidos. As verificações de 2026-09-26 aceitaramtop_p: 0.9paragpt-5.5,gpt-5.6-solegpt-5.6-terra. Aceitação e encaminhamento não comprovam efeito na amostragem nem garantem suporte a outros valores, modelos ou requisições futuras. Comece com uma requisição mínima. - O suporte desta página se aplica somente ao endpoint regular
/openai/responses. Não implica que o mesmo modelo suporte/openai/responses/compact, WebSocket ouprevious_response_idcom estado. - Os cinco modelos GPT listados acima não têm atualmente um canal Compact verificado. Requisições Compact são rejeitadas antes da cobrança quando não há um canal explicitamente ativado. Responses normal e Responses WebSocket continuam disponíveis.
Exemplos de requisição
Os exemplos abaixo fornecem input. Uma continuação pode omitir input se fornecer um previous_response_id válido e o canal escolhido suportar continuação com estado. Um ID de resposta não habilita essa capacidade em um canal sem suporte. Resultados de ferramentas continuam sendo itens de entrada válidos, incluindo function_call_output.
Texto
{
"model": "gpt-5.4",
"input": "Hello, introduce yourself in one sentence."
}Parâmetros no estilo Codex CLI
{
"model": "gpt-5.5",
"input": "Reply with READY only.",
"reasoning": {
"effort": "xhigh"
},
"store": false,
"text": {
"verbosity": "low"
},
"stream": true
}Compreensão de imagens
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "What is in this image?"
},
{
"type": "input_image",
"image_url": "https://example.com/cat.png",
"detail": "high"
}
]
}
]
}Entrada de arquivo
Use file_data junto com filename para enviar conteúdo PDF. file_data deve ser uma URL de dados completa.
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Summarize the key points in this PDF."
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "report.pdf"
}
]
}
]
}Entrada de imagem e arquivo
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Give three conclusions based on the image and attachment."
},
{
"type": "input_image",
"image_url": "https://example.com/chart.png",
"detail": "high"
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "notes.pdf"
}
]
}
]
}Saída em streaming
{
"model": "gpt-5.4",
"stream": true,
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Explain this diagram step by step."
},
{
"type": "input_image",
"image_url": "https://example.com/diagram.png"
}
]
}
]
}Resposta
Respostas sem streaming seguem o estilo OpenAI Responses. Os campos reais podem variar conforme as capacidades do modelo escolhido.
idstringIdentificador exclusivo da resposta.
objectstringTipo de objeto da resposta, normalmente response.
created_atintegerData e hora de criação.
modelstringModelo realmente usado.
outputobject[]Lista de itens de saída. Itens comuns incluem message, function_call e saídas relacionadas a ferramentas.
usageobjectEstatísticas de uso de tokens, como input_tokens, output_tokens e total_tokens.
Exemplo de sucesso
{
"id": "resp_123",
"object": "response",
"created_at": 1766534400,
"model": "gpt-5.4",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"text": "The image shows a cat, and the attachment is a document about pet care."
}
]
}
],
"usage": {
"input_tokens": 128,
"output_tokens": 42,
"total_tokens": 170
}
}Resposta em streaming
Quando stream=true, o endpoint retorna Server-Sent Events.
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"The image"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123"}}Leia os eventos até response.completed ou até a conexão fechar.
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 gerados pela plataforma usam os campos planos abaixo em vez de um envelope error. Alguns erros do provedor podem manter a estrutura original; erros dentro de um stream SSE já iniciado não seguem este exemplo de resposta HTTP.
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}Observações
- O endpoint
Responsesusainput, nãomessages. Se o cliente envia apenasmessages, use/openai/v1/chat/completions. - Entrada de imagem usa
input_image;image_urldeve ser uma URL públicahttp://ouhttps://. URLs de dados Base64 não são suportadas para imagens. - Entrada de arquivo usa
input_file. Para PDFs, usefile_dataefilename;file_datadeve ser uma URLdata:application/pdf;base64,...completa. - Entrada/saída de áudio, ferramentas de geração de imagens, busca de arquivos e outras capacidades avançadas dependem do modelo escolhido e dos recursos disponíveis.
- Os campos desta página formam o contrato público atual de requisições Responses; não presuma que campos não listados estejam disponíveis.
/openai/responsesé o caminho público recomendado./v1/responsessegue o mesmo contrato público de requisição e resposta./compat/v1/responsessegue o mesmo contrato público de requisição e resposta./openai/v1/responsessegue o mesmo contrato público de requisição e resposta.